diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.css index b25783b525..ce3b50968f 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.css @@ -3022,6 +3022,7 @@ div.action-links { } @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #TB_window.plugin-details-modal.thickbox-loading:before { @@ -3176,6 +3177,7 @@ img { font-family: Consolas, Monaco, monospace; font-size: 13px; background: #f6f7f7; + -o-tab-size: 4; tab-size: 4; } @@ -3764,6 +3766,7 @@ img { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { /* Back-compat for pre-3.8 */ div.star-holder, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.min.css index 5a08deaa77..0b1ae9947a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common-rtl.min.css @@ -1,9 +1,9 @@ /*! This file is auto-generated */ -#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.button .screen-reader-text{height:auto}.screen-reader-text+.dashicons-external{margin-top:-1px;margin-right:2px}.screen-reader-shortcut{position:absolute;top:-1000em;right:6px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f0f0f1;color:#2271b1;z-index:100000;line-height:normal}.screen-reader-shortcut:focus{top:-25px;color:#2271b1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:2px solid transparent;outline-offset:-2px}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f0f0f1;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#135e96}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img,a:focus .plugin-icon{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}#adminmenu a:focus{box-shadow:none;outline:1px solid transparent;outline-offset:-1px}.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}.wp-die-message,p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{color:#1d2327;font-size:2em;margin:.67em 0}h2,h3{color:#1d2327;font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:4em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#f0f0f1;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:right;color:#646970}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#50575e;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #c3c4c7}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #c3c4c7;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.js-update-details-toggle .dashicons{text-decoration:none}.js-update-details-toggle[aria-expanded=true] .dashicons::before{content:"\f142"}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}.wrap h1.wp-heading-inline{display:inline-block;margin-left:5px}.wp-header-end{visibility:hidden;margin:-2px 0 0}.subtitle{margin:0;padding-right:25px;color:#50575e;font-size:14px;font-weight:400;line-height:1}.subtitle strong{word-break:break-all}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{display:inline-block;position:relative;box-sizing:border-box;cursor:pointer;white-space:nowrap;text-decoration:none;text-shadow:none;top:-3px;margin-right:4px;border:1px solid #2271b1;border-radius:3px;background:#f6f7f7;font-size:13px;font-weight:400;line-height:2.15384615;color:#2271b1;padding:0 10px;min-height:30px;-webkit-appearance:none}.wrap .wp-heading-inline+.page-title-action{margin-right:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.page-title-action:focus{color:#0a4b78}.form-table th label[for=WPLANG] .dashicons,.form-table th label[for=locale] .dashicons{margin-right:5px}.wrap .page-title-action:focus{border-color:#3582c4;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#8c8f94;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#c5d9ed}.ac_match,.subsubsub a.current{color:#000}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f6f7f7}.bar{background-color:#f0f0f1;border-left-color:#4f94d4}.highlight{background-color:#f0f6fc;color:#3c434a}.wp-ui-primary{color:#fff;background-color:#2c3338}.wp-ui-text-primary{color:#2c3338}.wp-ui-highlight{color:#fff;background-color:#2271b1}.wp-ui-text-highlight{color:#2271b1}.wp-ui-notification{color:#fff;background-color:#d63638}.wp-ui-text-notification{color:#d63638}.wp-ui-text-icon{color:#8c8f94}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#f6f7f7;color:#1d2327}.stuffbox .hndle{border-bottom:1px solid #c3c4c7}.quicktags{background-color:#c3c4c7;color:#000;font-size:12px}.icon32{display:none}#bulk-titles .ntdelbutton:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#787c82;content:"\f153";display:block;font:normal 16px/20px dashicons;speak:never;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-right:2px;border-radius:50%;color:#2271b1;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles .ntdelbutton:focus:before,#bulk-titles .ntdelbutton:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#d63638}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#646970;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #dcdcde;border-bottom:1px solid #f6f7f7}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.privacy_requests .remove-personal-data .remove-personal-data-handle,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,a#remove-post-thumbnail{color:#b32d2e}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.privacy_requests .remove-personal-data .remove-personal-data-handle:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,a#remove-post-thumbnail:hover,abbr.required,span.required{color:#b32d2e;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #dcdcde;background:#f6f7f7}#delete-action{float:right;line-height:2.30769231}#delete-link{line-height:2.30769231;vertical-align:middle;text-align:right;margin-right:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:left;float:left;line-height:1.9}#publishing-action .spinner{float:none;margin-top:5px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}.misc-pub-filename,.word-wrap-break-word{word-wrap:break-word}#minor-publishing-actions{padding:10px 10px 0;text-align:left}#save-post{float:right}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}#misc-publishing-actions .notice{margin-right:10px;margin-left:10px}.wp-filter{display:inline-block;position:relative;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #c3c4c7;background:#fff;color:#50575e;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#646970;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-items{float:right}.filter-links{display:inline-block;margin:0}.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#646970;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #646970;color:#1d2327}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#135e96}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{width:280px;max-width:100%}.wp-filter .search-form select{margin:0}.plugin-install-php .wp-filter{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.wp-filter .search-form.search-plugins{margin-top:0}.no-js .wp-filter .search-form.search-plugins .button,.wp-filter .search-form.search-plugins .wp-filter-search,.wp-filter .search-form.search-plugins select{display:inline-block;margin-top:10px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 6px 0 10px;border-color:transparent;background-color:transparent;color:#646970;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 0 0 5px;color:#646970;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#135e96}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#4f94d4}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -20px 0 -10px;padding:20px;border-top:1px solid #f0f0f1;background:#f6f7f7;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#646970;color:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2271b1}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;background:#fff;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:1.4}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 23px 14px 0}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:2.2}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #f0f0f1}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border:1px solid #c3c4c7;border-right-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.04);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#1d2327;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#d63638}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.notice-success,div.updated{border-right-color:#00a32a}.notice-success.notice-alt{background-color:#edfaef}.notice-warning{border-right-color:#dba617}.notice-warning.notice-alt{background-color:#fcf9e8}.notice-error,div.error{border-right-color:#d63638}.notice-error.notice-alt{background-color:#fcf0f1}.notice-info{border-right-color:#72aee6}.notice-info.notice-alt{background-color:#f0f6fc}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-right:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#d63638;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:rotation 2s infinite linear}@media (prefers-reduced-motion:reduce){.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:none}}.theme-overlay .theme-autoupdate .dashicons-update.spin{margin-left:3px}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#68de7c;content:"\f147"}.update-message.notice-error p:before{color:#d63638;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px}.import-php .updating-message:before{vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:1.4;padding:11px 15px;font-size:14px;margin:25px 2px 0 20px}ul#dismissed-updates{display:none}#dismissed-updates li>p{margin-top:0}#dismiss,#undismiss{margin-right:.5em}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}h2.wp-current-version{margin-bottom:.3em}p.update-last-checked{margin-top:0}p.auto-update-status{margin-top:2em;line-height:1.8}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#9ec2e6}.button.updated-message{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:never}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0}#screen-meta-links{float:left;margin:0 0 0 20px}#screen-meta{display:none;margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #c3c4c7;border-top:none;box-shadow:0 0 0 transparent}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;margin:0 6px 0 0}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:1px solid #c3c4c7;border-top:none;height:auto;margin-bottom:0;padding:3px 16px 3px 6px;background:#fff;border-radius:0 0 4px 4px;color:#646970;line-height:1.7;box-shadow:0 0 0 transparent;transition:box-shadow .1s linear}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#2c3338}#screen-meta-links .show-settings:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}#screen-meta-links .show-settings:active{transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:normal 20px/1 dashicons;speak:never;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:2.35}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px;padding-left:0}.metabox-prefs .screen-options label{line-height:2.2;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #c3c4c7;border-top:none;border-bottom:none;background:#f0f6fc}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:1.4;text-decoration:none;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#2c3338}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #72aee6;background:#f0f6fc;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#c3c4c7;color:#2c3338}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box;-ms-overflow-style:scrollbar}.widefat td,.widefat th{color:#50575e}.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th{color:#2c3338}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#2c3338}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:initial;margin-right:2em}.postbox-container{float:right}.postbox-container .meta-box-sortables{box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .meta-box-sortables{min-height:1px;position:relative}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{outline:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.js .postbox .hndle.is-non-sortable,.js .widget .widget-top.is-non-sortable{cursor:auto}.hndle a{font-size:12px;font-weight:400}.postbox-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c3c4c7}.postbox-header .hndle{flex-grow:1;display:flex;justify-content:space-between;align-items:center}.postbox-header .handle-actions{flex-shrink:0}.postbox .handle-order-higher,.postbox .handle-order-lower,.postbox .handlediv{width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.postbox .handle-order-higher,.postbox .handle-order-lower{color:#787c82;width:1.62rem}.edit-post-meta-boxes-area .postbox .handle-order-higher,.edit-post-meta-boxes-area .postbox .handle-order-lower{width:44px;height:44px;color:#1d2327}.postbox .handle-order-higher[aria-disabled=true],.postbox .handle-order-lower[aria-disabled=true]{cursor:default;color:#a7aaad}.sortable-placeholder{border:1px dashed #c3c4c7;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox.closed{border-bottom:0}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;user-select:none}.postbox .inside{padding:0 12px 12px;line-height:1.4;font-size:13px}.stuffbox .inside{padding:0;line-height:1.4;font-size:13px;margin-top:0}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #c3c4c7}.columns-prefs label{padding:0 0 0 10px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#comment-status-display,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#50575e}#wpfooter p{font-size:13px;margin:0;line-height:1.55}#footer-thankyou{font-style:italic}.nav-tab{float:right;border:1px solid #c3c4c7;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:1.33}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#3c434a}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#3c434a}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f0f0f1;background:#f0f0f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;float:left;vertical-align:middle;opacity:.7;width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-left:16em}#template .notice{margin-top:1em;margin-left:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:1.5}#templateside ul li a{text-decoration:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:#d63638;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #dcdcde;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.4}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.importer-action,.importer-desc,.importer-title{display:block}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:1.55;color:#50575e;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{color:#1d2327;border-bottom:1px solid #f0f0f1}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:100%}#namediv p{margin:10px 0}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:.15}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom right}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top right;height:17px;float:right}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in;text-align:center;color:#dba617}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{transform:rotateY(-180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f6f7f7;font-size:22px;font-weight:600;line-height:2.4;position:relative;height:56px}#plugin-information-title.with-banner{margin-left:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:1.68;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(29,35,39,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;right:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #dcdcde;background:#f6f7f7}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:1.3;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #dcdcde;border-bottom-color:#fff;padding-top:8px;color:#2c3338}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-top:10px;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99932px}#section-holder .notice{margin:5px 0 15px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99932px;width:217px;border-right:1px solid #dcdcde;background:#f6f7f7;color:#646970}#plugin-information .fyi strong{color:#3c434a}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#dcdcde;float:right}#plugin-information .counter-bar{height:17px;background-color:#f0c33c;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:40px;border-top:1px solid #dcdcde;background:#f6f7f7}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #c3c4c7}#plugin-information blockquote{border-right:2px solid #dcdcde;color:#646970;font-style:italic;margin:1em 0;padding:0 1em 0 0}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #dcdcde}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-left:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:2;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #dcdcde;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fff}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:#fff url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:right;height:1px}.plugin-details-modal #TB_ajaxWindowTitle{display:none}.plugin-details-modal #TB_closeWindowButton{right:auto;left:-30px;color:#f0f0f1}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:focus::after,.plugin-details-modal #TB_closeWindowButton:hover::after{outline:2px solid;outline-offset:-4px;border-radius:4px}.plugin-details-modal .tb-close-icon{display:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator::before,.meta-box-sortables .postbox .order-higher-indicator::before,.meta-box-sortables .postbox .order-lower-indicator::before,.meta-box-sortables .postbox .toggle-indicator::before,.privacy-text-box .toggle-indicator::before,.sidebar-name .toggle-indicator::before{content:"\f142";display:inline-block;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator::before,.js .widgets-holder-wrap.closed .toggle-indicator::before,.meta-box-sortables .postbox.closed .handlediv .toggle-indicator::before,.privacy-text-box.closed .toggle-indicator::before{content:"\f140"}.postbox .handle-order-higher .order-higher-indicator::before{content:"\f343";color:inherit}.postbox .handle-order-lower .order-lower-indicator::before{content:"\f347";color:inherit}.postbox .handle-order-higher .order-higher-indicator::before,.postbox .handle-order-lower .order-lower-indicator::before{position:relative;top:.11rem;width:20px;height:20px}.postbox .handlediv .toggle-indicator::before{width:20px;border-radius:50%}.postbox .handlediv .toggle-indicator::before{position:relative;top:.05rem;text-indent:-1px}.rtl .postbox .handlediv .toggle-indicator::before{text-indent:1px}.bulk-action-notice .toggle-indicator::before{line-height:16px;vertical-align:top;color:#787c82}.postbox .handle-order-higher:focus,.postbox .handle-order-lower:focus,.postbox .handlediv:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}.postbox .handle-order-higher:focus .order-higher-indicator::before,.postbox .handle-order-lower:focus .order-lower-indicator::before,.postbox .handlediv:focus .toggle-indicator::before{box-shadow:none;outline:1px solid transparent}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f6f7f7;tab-size:4}#template .CodeMirror,#template textarea{width:100%;min-height:60vh;height:calc(100vh - 295px);border:1px solid #dcdcde;box-sizing:border-box}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{box-sizing:border-box;margin-top:0;overflow:auto;padding:0;min-height:60vh;height:calc(100vh - 295px);background-color:#f6f7f7;border:1px solid #dcdcde;border-right:none}#templateside ul ul{padding-right:12px}#templateside>ul>li>ul[role=group]{padding-right:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f141"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 12px 3px 3px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#f0f0f1}.tree-folder{margin:0;position:relative}[role=treeitem] li{position:relative}.tree-folder .tree-folder::after{content:"";display:block;position:absolute;right:2px;border-right:1px solid #c3c4c7;top:-13px;bottom:10px}.tree-folder>li::before{content:"";position:absolute;display:block;border-right:1px solid #c3c4c7;right:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #c3c4c7}.tree-folder>li::after{content:"";position:absolute;display:block;border-right:1px solid #c3c4c7;right:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{right:4px;height:15px;width:0;border-right:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;right:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#documentation label,#theme-plugin-editor-label,#theme-plugin-editor-selector{font-weight:600}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em}#docs-list,#template textarea{direction:ltr}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:left}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:left;width:16em;word-wrap:break-word}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 0;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#646970;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:1.8;vertical-align:baseline}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.widget-top .widget-action .toggle-indicator:before{padding:1px 0 1px 2px;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#787c82}.widget-action{color:#50575e}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#1d2327;outline:1px solid transparent}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before,.widget.widget-in-question .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! +#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.button .screen-reader-text{height:auto}.screen-reader-text+.dashicons-external{margin-top:-1px;margin-right:2px}.screen-reader-shortcut{position:absolute;top:-1000em;right:6px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f0f0f1;color:#2271b1;z-index:100000;line-height:normal}.screen-reader-shortcut:focus{top:-25px;color:#2271b1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:2px solid transparent;outline-offset:-2px}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f0f0f1;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#135e96}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img,a:focus .plugin-icon{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}#adminmenu a:focus{box-shadow:none;outline:1px solid transparent;outline-offset:-1px}.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}.wp-die-message,p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{color:#1d2327;font-size:2em;margin:.67em 0}h2,h3{color:#1d2327;font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:4em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#f0f0f1;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:right;color:#646970}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#50575e;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #c3c4c7}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #c3c4c7;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.js-update-details-toggle .dashicons{text-decoration:none}.js-update-details-toggle[aria-expanded=true] .dashicons::before{content:"\f142"}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}.wrap h1.wp-heading-inline{display:inline-block;margin-left:5px}.wp-header-end{visibility:hidden;margin:-2px 0 0}.subtitle{margin:0;padding-right:25px;color:#50575e;font-size:14px;font-weight:400;line-height:1}.subtitle strong{word-break:break-all}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{display:inline-block;position:relative;box-sizing:border-box;cursor:pointer;white-space:nowrap;text-decoration:none;text-shadow:none;top:-3px;margin-right:4px;border:1px solid #2271b1;border-radius:3px;background:#f6f7f7;font-size:13px;font-weight:400;line-height:2.15384615;color:#2271b1;padding:0 10px;min-height:30px;-webkit-appearance:none}.wrap .wp-heading-inline+.page-title-action{margin-right:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.page-title-action:focus{color:#0a4b78}.form-table th label[for=WPLANG] .dashicons,.form-table th label[for=locale] .dashicons{margin-right:5px}.wrap .page-title-action:focus{border-color:#3582c4;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#8c8f94;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#c5d9ed}.ac_match,.subsubsub a.current{color:#000}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f6f7f7}.bar{background-color:#f0f0f1;border-left-color:#4f94d4}.highlight{background-color:#f0f6fc;color:#3c434a}.wp-ui-primary{color:#fff;background-color:#2c3338}.wp-ui-text-primary{color:#2c3338}.wp-ui-highlight{color:#fff;background-color:#2271b1}.wp-ui-text-highlight{color:#2271b1}.wp-ui-notification{color:#fff;background-color:#d63638}.wp-ui-text-notification{color:#d63638}.wp-ui-text-icon{color:#8c8f94}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#f6f7f7;color:#1d2327}.stuffbox .hndle{border-bottom:1px solid #c3c4c7}.quicktags{background-color:#c3c4c7;color:#000;font-size:12px}.icon32{display:none}#bulk-titles .ntdelbutton:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#787c82;content:"\f153";display:block;font:normal 16px/20px dashicons;speak:never;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-right:2px;border-radius:50%;color:#2271b1;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles .ntdelbutton:focus:before,#bulk-titles .ntdelbutton:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#d63638}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#646970;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #dcdcde;border-bottom:1px solid #f6f7f7}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.privacy_requests .remove-personal-data .remove-personal-data-handle,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,a#remove-post-thumbnail{color:#b32d2e}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.privacy_requests .remove-personal-data .remove-personal-data-handle:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,a#remove-post-thumbnail:hover,abbr.required,span.required{color:#b32d2e;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #dcdcde;background:#f6f7f7}#delete-action{float:right;line-height:2.30769231}#delete-link{line-height:2.30769231;vertical-align:middle;text-align:right;margin-right:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:left;float:left;line-height:1.9}#publishing-action .spinner{float:none;margin-top:5px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}.misc-pub-filename,.word-wrap-break-word{word-wrap:break-word}#minor-publishing-actions{padding:10px 10px 0;text-align:left}#save-post{float:right}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}#misc-publishing-actions .notice{margin-right:10px;margin-left:10px}.wp-filter{display:inline-block;position:relative;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #c3c4c7;background:#fff;color:#50575e;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#646970;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-items{float:right}.filter-links{display:inline-block;margin:0}.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#646970;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #646970;color:#1d2327}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#135e96}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{width:280px;max-width:100%}.wp-filter .search-form select{margin:0}.plugin-install-php .wp-filter{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.wp-filter .search-form.search-plugins{margin-top:0}.no-js .wp-filter .search-form.search-plugins .button,.wp-filter .search-form.search-plugins .wp-filter-search,.wp-filter .search-form.search-plugins select{display:inline-block;margin-top:10px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 6px 0 10px;border-color:transparent;background-color:transparent;color:#646970;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 0 0 5px;color:#646970;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#135e96}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#4f94d4}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -20px 0 -10px;padding:20px;border-top:1px solid #f0f0f1;background:#f6f7f7;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#646970;color:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2271b1}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;background:#fff;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:1.4}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 23px 14px 0}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:2.2}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #f0f0f1}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border:1px solid #c3c4c7;border-right-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.04);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#1d2327;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#d63638}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.notice-success,div.updated{border-right-color:#00a32a}.notice-success.notice-alt{background-color:#edfaef}.notice-warning{border-right-color:#dba617}.notice-warning.notice-alt{background-color:#fcf9e8}.notice-error,div.error{border-right-color:#d63638}.notice-error.notice-alt{background-color:#fcf0f1}.notice-info{border-right-color:#72aee6}.notice-info.notice-alt{background-color:#f0f6fc}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-right:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#d63638;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:rotation 2s infinite linear}@media (prefers-reduced-motion:reduce){.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:none}}.theme-overlay .theme-autoupdate .dashicons-update.spin{margin-left:3px}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#68de7c;content:"\f147"}.update-message.notice-error p:before{color:#d63638;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px}.import-php .updating-message:before{vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:1.4;padding:11px 15px;font-size:14px;margin:25px 2px 0 20px}ul#dismissed-updates{display:none}#dismissed-updates li>p{margin-top:0}#dismiss,#undismiss{margin-right:.5em}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}h2.wp-current-version{margin-bottom:.3em}p.update-last-checked{margin-top:0}p.auto-update-status{margin-top:2em;line-height:1.8}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#9ec2e6}.button.updated-message{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:never}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0}#screen-meta-links{float:left;margin:0 0 0 20px}#screen-meta{display:none;margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #c3c4c7;border-top:none;box-shadow:0 0 0 transparent}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;margin:0 6px 0 0}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:1px solid #c3c4c7;border-top:none;height:auto;margin-bottom:0;padding:3px 16px 3px 6px;background:#fff;border-radius:0 0 4px 4px;color:#646970;line-height:1.7;box-shadow:0 0 0 transparent;transition:box-shadow .1s linear}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#2c3338}#screen-meta-links .show-settings:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}#screen-meta-links .show-settings:active{transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:normal 20px/1 dashicons;speak:never;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:2.35}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px;padding-left:0}.metabox-prefs .screen-options label{line-height:2.2;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #c3c4c7;border-top:none;border-bottom:none;background:#f0f6fc}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:1.4;text-decoration:none;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#2c3338}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #72aee6;background:#f0f6fc;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#c3c4c7;color:#2c3338}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box;-ms-overflow-style:scrollbar}.widefat td,.widefat th{color:#50575e}.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th{color:#2c3338}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#2c3338}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:initial;margin-right:2em}.postbox-container{float:right}.postbox-container .meta-box-sortables{box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .meta-box-sortables{min-height:1px;position:relative}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{outline:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.js .postbox .hndle.is-non-sortable,.js .widget .widget-top.is-non-sortable{cursor:auto}.hndle a{font-size:12px;font-weight:400}.postbox-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c3c4c7}.postbox-header .hndle{flex-grow:1;display:flex;justify-content:space-between;align-items:center}.postbox-header .handle-actions{flex-shrink:0}.postbox .handle-order-higher,.postbox .handle-order-lower,.postbox .handlediv{width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.postbox .handle-order-higher,.postbox .handle-order-lower{color:#787c82;width:1.62rem}.edit-post-meta-boxes-area .postbox .handle-order-higher,.edit-post-meta-boxes-area .postbox .handle-order-lower{width:44px;height:44px;color:#1d2327}.postbox .handle-order-higher[aria-disabled=true],.postbox .handle-order-lower[aria-disabled=true]{cursor:default;color:#a7aaad}.sortable-placeholder{border:1px dashed #c3c4c7;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox.closed{border-bottom:0}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;user-select:none}.postbox .inside{padding:0 12px 12px;line-height:1.4;font-size:13px}.stuffbox .inside{padding:0;line-height:1.4;font-size:13px;margin-top:0}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #c3c4c7}.columns-prefs label{padding:0 0 0 10px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#comment-status-display,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#50575e}#wpfooter p{font-size:13px;margin:0;line-height:1.55}#footer-thankyou{font-style:italic}.nav-tab{float:right;border:1px solid #c3c4c7;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:1.33}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#3c434a}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#3c434a}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f0f0f1;background:#f0f0f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;float:left;vertical-align:middle;opacity:.7;width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-left:16em}#template .notice{margin-top:1em;margin-left:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:1.5}#templateside ul li a{text-decoration:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:#d63638;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #dcdcde;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.4}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.importer-action,.importer-desc,.importer-title{display:block}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:1.55;color:#50575e;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{color:#1d2327;border-bottom:1px solid #f0f0f1}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:100%}#namediv p{margin:10px 0}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:.15}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom right}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top right;height:17px;float:right}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in;text-align:center;color:#dba617}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{transform:rotateY(-180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f6f7f7;font-size:22px;font-weight:600;line-height:2.4;position:relative;height:56px}#plugin-information-title.with-banner{margin-left:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:1.68;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(29,35,39,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;right:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #dcdcde;background:#f6f7f7}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:1.3;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #dcdcde;border-bottom-color:#fff;padding-top:8px;color:#2c3338}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-top:10px;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99932px}#section-holder .notice{margin:5px 0 15px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99932px;width:217px;border-right:1px solid #dcdcde;background:#f6f7f7;color:#646970}#plugin-information .fyi strong{color:#3c434a}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#dcdcde;float:right}#plugin-information .counter-bar{height:17px;background-color:#f0c33c;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:40px;border-top:1px solid #dcdcde;background:#f6f7f7}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #c3c4c7}#plugin-information blockquote{border-right:2px solid #dcdcde;color:#646970;font-style:italic;margin:1em 0;padding:0 1em 0 0}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #dcdcde}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-left:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:2;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #dcdcde;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fff}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:#fff url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:right;height:1px}.plugin-details-modal #TB_ajaxWindowTitle{display:none}.plugin-details-modal #TB_closeWindowButton{right:auto;left:-30px;color:#f0f0f1}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:focus::after,.plugin-details-modal #TB_closeWindowButton:hover::after{outline:2px solid;outline-offset:-4px;border-radius:4px}.plugin-details-modal .tb-close-icon{display:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator::before,.meta-box-sortables .postbox .order-higher-indicator::before,.meta-box-sortables .postbox .order-lower-indicator::before,.meta-box-sortables .postbox .toggle-indicator::before,.privacy-text-box .toggle-indicator::before,.sidebar-name .toggle-indicator::before{content:"\f142";display:inline-block;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator::before,.js .widgets-holder-wrap.closed .toggle-indicator::before,.meta-box-sortables .postbox.closed .handlediv .toggle-indicator::before,.privacy-text-box.closed .toggle-indicator::before{content:"\f140"}.postbox .handle-order-higher .order-higher-indicator::before{content:"\f343";color:inherit}.postbox .handle-order-lower .order-lower-indicator::before{content:"\f347";color:inherit}.postbox .handle-order-higher .order-higher-indicator::before,.postbox .handle-order-lower .order-lower-indicator::before{position:relative;top:.11rem;width:20px;height:20px}.postbox .handlediv .toggle-indicator::before{width:20px;border-radius:50%}.postbox .handlediv .toggle-indicator::before{position:relative;top:.05rem;text-indent:-1px}.rtl .postbox .handlediv .toggle-indicator::before{text-indent:1px}.bulk-action-notice .toggle-indicator::before{line-height:16px;vertical-align:top;color:#787c82}.postbox .handle-order-higher:focus,.postbox .handle-order-lower:focus,.postbox .handlediv:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}.postbox .handle-order-higher:focus .order-higher-indicator::before,.postbox .handle-order-lower:focus .order-lower-indicator::before,.postbox .handlediv:focus .toggle-indicator::before{box-shadow:none;outline:1px solid transparent}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f6f7f7;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%;min-height:60vh;height:calc(100vh - 295px);border:1px solid #dcdcde;box-sizing:border-box}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{box-sizing:border-box;margin-top:0;overflow:auto;padding:0;min-height:60vh;height:calc(100vh - 295px);background-color:#f6f7f7;border:1px solid #dcdcde;border-right:none}#templateside ul ul{padding-right:12px}#templateside>ul>li>ul[role=group]{padding-right:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f141"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 12px 3px 3px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#f0f0f1}.tree-folder{margin:0;position:relative}[role=treeitem] li{position:relative}.tree-folder .tree-folder::after{content:"";display:block;position:absolute;right:2px;border-right:1px solid #c3c4c7;top:-13px;bottom:10px}.tree-folder>li::before{content:"";position:absolute;display:block;border-right:1px solid #c3c4c7;right:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #c3c4c7}.tree-folder>li::after{content:"";position:absolute;display:block;border-right:1px solid #c3c4c7;right:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{right:4px;height:15px;width:0;border-right:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;right:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#documentation label,#theme-plugin-editor-label,#theme-plugin-editor-selector{font-weight:600}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em}#docs-list,#template textarea{direction:ltr}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:left}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:left;width:16em;word-wrap:break-word}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 0;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#646970;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:1.8;vertical-align:baseline}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.widget-top .widget-action .toggle-indicator:before{padding:1px 0 1px 2px;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#787c82}.widget-action{color:#50575e}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#1d2327;outline:1px solid transparent}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before,.widget.widget-in-question .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! * jQuery UI Draggable/Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #dcdcde;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dcdcde}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #dcdcde;border-left:1px solid #dcdcde;-webkit-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:1px solid transparent}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a7aaad transparent;outline:1px solid transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:1.55;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#1d2327;background:#f6f7f7}.control-section.open .accordion-section-title{border-bottom:1px solid #dcdcde}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#c3c4c7}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(odd){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f6f7f7}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f6f7f7}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f6f7f7}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f6f7f7}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f6f7f7}}.my-sites li a{text-decoration:none}@media print,(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom right;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}.screen-reader-shortcut:focus{top:-39px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{clear:both;margin-left:12px;margin-right:0}#col-left,#col-right{float:none;width:auto}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-16em}code{word-wrap:break-word;word-wrap:anywhere;word-break:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#template .CodeMirror,#template textarea{box-sizing:border-box}#templateside{float:none;width:auto}#templateside>ul{border-right:1px solid #dcdcde}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{width:100%}#templateside ul ul{padding-right:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{right:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{right:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;right:-8px}.wrap #templateside span.notice{margin-right:-5px;width:100%}.fileedit-sub .alignright{float:right;margin-top:15px;width:100%;text-align:right}.fileedit-sub .alignright label{display:block}.fileedit-sub #plugin,.fileedit-sub #theme{margin-right:0;max-width:70%}.fileedit-sub input[type=submit]{margin-bottom:0}#documentation label[for=docs-list]{display:block}#documentation select[name=docs-list]{margin-right:0;max-width:60%}#documentation input[type=button]{margin-bottom:0}#wpfooter{display:none}#comments-form .checkforspam{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:2.1}.filter-drawer .filter-group-feature label{margin-right:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:2;height:28px}#screen-meta #contextual-help-wrap{overflow:visible}#screen-meta #contextual-help-back,#screen-meta .contextual-help-sidebar{display:none}#screen-meta .contextual-help-tabs{clear:both;width:100%;float:none}#screen-meta .contextual-help-tabs ul{margin:0 0 1em;padding:1em 0 0}#screen-meta .contextual-help-tabs .active{margin:0}#screen-meta .contextual-help-tabs-wrap{clear:both;max-width:100%;float:none}#screen-meta,#screen-meta-links{margin-left:10px}#screen-meta-links{margin-bottom:20px}.wp-filter .search-form input[type=search]{width:100%;font-size:1rem}.wp-filter .search-form.search-plugins{min-width:100%}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}.screen-reader-shortcut:focus{top:7px}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab,nav .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #c3c4c7}.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #c3c4c7}}@media screen and (max-width:480px){.metabox-prefs-container{display:grid}.metabox-prefs-container>*{display:inline-block;padding:2px}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #dcdcde;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dcdcde}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #dcdcde;border-left:1px solid #dcdcde;-webkit-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:1px solid transparent}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a7aaad transparent;outline:1px solid transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:1.55;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#1d2327;background:#f6f7f7}.control-section.open .accordion-section-title{border-bottom:1px solid #dcdcde}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#c3c4c7}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(odd){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f6f7f7}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f6f7f7}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f6f7f7}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f6f7f7}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f6f7f7}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom right;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}.screen-reader-shortcut:focus{top:-39px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{clear:both;margin-left:12px;margin-right:0}#col-left,#col-right{float:none;width:auto}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-16em}code{word-wrap:break-word;word-wrap:anywhere;word-break:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#template .CodeMirror,#template textarea{box-sizing:border-box}#templateside{float:none;width:auto}#templateside>ul{border-right:1px solid #dcdcde}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{width:100%}#templateside ul ul{padding-right:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{right:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{right:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;right:-8px}.wrap #templateside span.notice{margin-right:-5px;width:100%}.fileedit-sub .alignright{float:right;margin-top:15px;width:100%;text-align:right}.fileedit-sub .alignright label{display:block}.fileedit-sub #plugin,.fileedit-sub #theme{margin-right:0;max-width:70%}.fileedit-sub input[type=submit]{margin-bottom:0}#documentation label[for=docs-list]{display:block}#documentation select[name=docs-list]{margin-right:0;max-width:60%}#documentation input[type=button]{margin-bottom:0}#wpfooter{display:none}#comments-form .checkforspam{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:2.1}.filter-drawer .filter-group-feature label{margin-right:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:2;height:28px}#screen-meta #contextual-help-wrap{overflow:visible}#screen-meta #contextual-help-back,#screen-meta .contextual-help-sidebar{display:none}#screen-meta .contextual-help-tabs{clear:both;width:100%;float:none}#screen-meta .contextual-help-tabs ul{margin:0 0 1em;padding:1em 0 0}#screen-meta .contextual-help-tabs .active{margin:0}#screen-meta .contextual-help-tabs-wrap{clear:both;max-width:100%;float:none}#screen-meta,#screen-meta-links{margin-left:10px}#screen-meta-links{margin-bottom:20px}.wp-filter .search-form input[type=search]{width:100%;font-size:1rem}.wp-filter .search-form.search-plugins{min-width:100%}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}.screen-reader-shortcut:focus{top:7px}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab,nav .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #c3c4c7}.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #c3c4c7}}@media screen and (max-width:480px){.metabox-prefs-container{display:grid}.metabox-prefs-container>*{display:inline-block;padding:2px}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.css index c86481e741..2e6e605ce2 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.css @@ -3021,6 +3021,7 @@ div.action-links { } @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #TB_window.plugin-details-modal.thickbox-loading:before { @@ -3175,6 +3176,7 @@ img { font-family: Consolas, Monaco, monospace; font-size: 13px; background: #f6f7f7; + -o-tab-size: 4; tab-size: 4; } @@ -3763,6 +3765,7 @@ img { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { /* Back-compat for pre-3.8 */ div.star-holder, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.min.css index 4e3d3bfe14..4edd41e17e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/common.min.css @@ -1,9 +1,9 @@ /*! This file is auto-generated */ -#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.button .screen-reader-text{height:auto}.screen-reader-text+.dashicons-external{margin-top:-1px;margin-left:2px}.screen-reader-shortcut{position:absolute;top:-1000em;left:6px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f0f0f1;color:#2271b1;z-index:100000;line-height:normal}.screen-reader-shortcut:focus{top:-25px;color:#2271b1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:2px solid transparent;outline-offset:-2px}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f0f0f1;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#135e96}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img,a:focus .plugin-icon{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}#adminmenu a:focus{box-shadow:none;outline:1px solid transparent;outline-offset:-1px}.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}.wp-die-message,p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{color:#1d2327;font-size:2em;margin:.67em 0}h2,h3{color:#1d2327;font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:4em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#f0f0f1;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:left;color:#646970}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#50575e;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #c3c4c7}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #c3c4c7;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.js-update-details-toggle .dashicons{text-decoration:none}.js-update-details-toggle[aria-expanded=true] .dashicons::before{content:"\f142"}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}.wrap h1.wp-heading-inline{display:inline-block;margin-right:5px}.wp-header-end{visibility:hidden;margin:-2px 0 0}.subtitle{margin:0;padding-left:25px;color:#50575e;font-size:14px;font-weight:400;line-height:1}.subtitle strong{word-break:break-all}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{display:inline-block;position:relative;box-sizing:border-box;cursor:pointer;white-space:nowrap;text-decoration:none;text-shadow:none;top:-3px;margin-left:4px;border:1px solid #2271b1;border-radius:3px;background:#f6f7f7;font-size:13px;font-weight:400;line-height:2.15384615;color:#2271b1;padding:0 10px;min-height:30px;-webkit-appearance:none}.wrap .wp-heading-inline+.page-title-action{margin-left:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.page-title-action:focus{color:#0a4b78}.form-table th label[for=WPLANG] .dashicons,.form-table th label[for=locale] .dashicons{margin-left:5px}.wrap .page-title-action:focus{border-color:#3582c4;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#8c8f94;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#c5d9ed}.ac_match,.subsubsub a.current{color:#000}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f6f7f7}.bar{background-color:#f0f0f1;border-right-color:#4f94d4}.highlight{background-color:#f0f6fc;color:#3c434a}.wp-ui-primary{color:#fff;background-color:#2c3338}.wp-ui-text-primary{color:#2c3338}.wp-ui-highlight{color:#fff;background-color:#2271b1}.wp-ui-text-highlight{color:#2271b1}.wp-ui-notification{color:#fff;background-color:#d63638}.wp-ui-text-notification{color:#d63638}.wp-ui-text-icon{color:#8c8f94}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#f6f7f7;color:#1d2327}.stuffbox .hndle{border-bottom:1px solid #c3c4c7}.quicktags{background-color:#c3c4c7;color:#000;font-size:12px}.icon32{display:none}#bulk-titles .ntdelbutton:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#787c82;content:"\f153";display:block;font:normal 16px/20px dashicons;speak:never;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-left:2px;border-radius:50%;color:#2271b1;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles .ntdelbutton:focus:before,#bulk-titles .ntdelbutton:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#d63638}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#646970;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #dcdcde;border-bottom:1px solid #f6f7f7}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.privacy_requests .remove-personal-data .remove-personal-data-handle,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,a#remove-post-thumbnail{color:#b32d2e}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.privacy_requests .remove-personal-data .remove-personal-data-handle:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,a#remove-post-thumbnail:hover,abbr.required,span.required{color:#b32d2e;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #dcdcde;background:#f6f7f7}#delete-action{float:left;line-height:2.30769231}#delete-link{line-height:2.30769231;vertical-align:middle;text-align:left;margin-left:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:right;float:right;line-height:1.9}#publishing-action .spinner{float:none;margin-top:5px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}.misc-pub-filename,.word-wrap-break-word{word-wrap:break-word}#minor-publishing-actions{padding:10px 10px 0;text-align:right}#save-post{float:left}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}#misc-publishing-actions .notice{margin-left:10px;margin-right:10px}.wp-filter{display:inline-block;position:relative;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #c3c4c7;background:#fff;color:#50575e;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#646970;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-items{float:left}.filter-links{display:inline-block;margin:0}.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#646970;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #646970;color:#1d2327}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#135e96}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{width:280px;max-width:100%}.wp-filter .search-form select{margin:0}.plugin-install-php .wp-filter{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.wp-filter .search-form.search-plugins{margin-top:0}.no-js .wp-filter .search-form.search-plugins .button,.wp-filter .search-form.search-plugins .wp-filter-search,.wp-filter .search-form.search-plugins select{display:inline-block;margin-top:10px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 10px 0 6px;border-color:transparent;background-color:transparent;color:#646970;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 5px 0 0;color:#646970;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#135e96}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#4f94d4}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -10px 0 -20px;padding:20px;border-top:1px solid #f0f0f1;background:#f6f7f7;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#646970;color:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2271b1}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;background:#fff;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:1.4}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 0 14px 23px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:2.2}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #f0f0f1}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.04);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#1d2327;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#d63638}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.notice-success,div.updated{border-left-color:#00a32a}.notice-success.notice-alt{background-color:#edfaef}.notice-warning{border-left-color:#dba617}.notice-warning.notice-alt{background-color:#fcf9e8}.notice-error,div.error{border-left-color:#d63638}.notice-error.notice-alt{background-color:#fcf0f1}.notice-info{border-left-color:#72aee6}.notice-info.notice-alt{background-color:#f0f6fc}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-left:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#d63638;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:rotation 2s infinite linear}@media (prefers-reduced-motion:reduce){.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:none}}.theme-overlay .theme-autoupdate .dashicons-update.spin{margin-right:3px}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#68de7c;content:"\f147"}.update-message.notice-error p:before{color:#d63638;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px}.import-php .updating-message:before{vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:1.4;padding:11px 15px;font-size:14px;margin:25px 20px 0 2px}ul#dismissed-updates{display:none}#dismissed-updates li>p{margin-top:0}#dismiss,#undismiss{margin-left:.5em}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}h2.wp-current-version{margin-bottom:.3em}p.update-last-checked{margin-top:0}p.auto-update-status{margin-top:2em;line-height:1.8}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#9ec2e6}.button.updated-message{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:never}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0}#screen-meta-links{float:right;margin:0 20px 0 0}#screen-meta{display:none;margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #c3c4c7;border-top:none;box-shadow:0 0 0 transparent}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;margin:0 0 0 6px}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:1px solid #c3c4c7;border-top:none;height:auto;margin-bottom:0;padding:3px 6px 3px 16px;background:#fff;border-radius:0 0 4px 4px;color:#646970;line-height:1.7;box-shadow:0 0 0 transparent;transition:box-shadow .1s linear}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#2c3338}#screen-meta-links .show-settings:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}#screen-meta-links .show-settings:active{transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:normal 20px/1 dashicons;speak:never;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:2.35}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px;padding-right:0}.metabox-prefs .screen-options label{line-height:2.2;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #c3c4c7;border-top:none;border-bottom:none;background:#f0f6fc}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:1.4;text-decoration:none;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#2c3338}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #72aee6;background:#f0f6fc;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#c3c4c7;color:#2c3338}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box;-ms-overflow-style:scrollbar}.widefat td,.widefat th{color:#50575e}.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th{color:#2c3338}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#2c3338}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:initial;margin-left:2em}.postbox-container{float:left}.postbox-container .meta-box-sortables{box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .meta-box-sortables{min-height:1px;position:relative}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{outline:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.js .postbox .hndle.is-non-sortable,.js .widget .widget-top.is-non-sortable{cursor:auto}.hndle a{font-size:12px;font-weight:400}.postbox-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c3c4c7}.postbox-header .hndle{flex-grow:1;display:flex;justify-content:space-between;align-items:center}.postbox-header .handle-actions{flex-shrink:0}.postbox .handle-order-higher,.postbox .handle-order-lower,.postbox .handlediv{width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.postbox .handle-order-higher,.postbox .handle-order-lower{color:#787c82;width:1.62rem}.edit-post-meta-boxes-area .postbox .handle-order-higher,.edit-post-meta-boxes-area .postbox .handle-order-lower{width:44px;height:44px;color:#1d2327}.postbox .handle-order-higher[aria-disabled=true],.postbox .handle-order-lower[aria-disabled=true]{cursor:default;color:#a7aaad}.sortable-placeholder{border:1px dashed #c3c4c7;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox.closed{border-bottom:0}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;user-select:none}.postbox .inside{padding:0 12px 12px;line-height:1.4;font-size:13px}.stuffbox .inside{padding:0;line-height:1.4;font-size:13px;margin-top:0}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #c3c4c7}.columns-prefs label{padding:0 10px 0 0}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#comment-status-display,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#50575e}#wpfooter p{font-size:13px;margin:0;line-height:1.55}#footer-thankyou{font-style:italic}.nav-tab{float:left;border:1px solid #c3c4c7;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:1.33}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#3c434a}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#3c434a}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f0f0f1;background:#f0f0f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;float:right;vertical-align:middle;opacity:.7;width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-right:16em}#template .notice{margin-top:1em;margin-right:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:1.5}#templateside ul li a{text-decoration:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:#d63638;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #dcdcde;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.4}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.importer-action,.importer-desc,.importer-title{display:block}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:1.55;color:#50575e;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{color:#1d2327;border-bottom:1px solid #f0f0f1}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:100%}#namediv p{margin:10px 0}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:.15}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom left}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top left;height:17px;float:left}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in;text-align:center;color:#dba617}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f6f7f7;font-size:22px;font-weight:600;line-height:2.4;position:relative;height:56px}#plugin-information-title.with-banner{margin-right:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:1.68;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(29,35,39,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;left:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #dcdcde;background:#f6f7f7}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:1.3;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #dcdcde;border-bottom-color:#fff;padding-top:8px;color:#2c3338}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-top:10px;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99932px}#section-holder .notice{margin:5px 0 15px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99932px;width:217px;border-left:1px solid #dcdcde;background:#f6f7f7;color:#646970}#plugin-information .fyi strong{color:#3c434a}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#dcdcde;float:left}#plugin-information .counter-bar{height:17px;background-color:#f0c33c;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:40px;border-top:1px solid #dcdcde;background:#f6f7f7}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #c3c4c7}#plugin-information blockquote{border-left:2px solid #dcdcde;color:#646970;font-style:italic;margin:1em 0;padding:0 0 0 1em}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #dcdcde}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-right:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:2;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #dcdcde;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fff}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:#fff url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:left;height:1px}.plugin-details-modal #TB_ajaxWindowTitle{display:none}.plugin-details-modal #TB_closeWindowButton{left:auto;right:-30px;color:#f0f0f1}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:focus::after,.plugin-details-modal #TB_closeWindowButton:hover::after{outline:2px solid;outline-offset:-4px;border-radius:4px}.plugin-details-modal .tb-close-icon{display:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator::before,.meta-box-sortables .postbox .order-higher-indicator::before,.meta-box-sortables .postbox .order-lower-indicator::before,.meta-box-sortables .postbox .toggle-indicator::before,.privacy-text-box .toggle-indicator::before,.sidebar-name .toggle-indicator::before{content:"\f142";display:inline-block;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator::before,.js .widgets-holder-wrap.closed .toggle-indicator::before,.meta-box-sortables .postbox.closed .handlediv .toggle-indicator::before,.privacy-text-box.closed .toggle-indicator::before{content:"\f140"}.postbox .handle-order-higher .order-higher-indicator::before{content:"\f343";color:inherit}.postbox .handle-order-lower .order-lower-indicator::before{content:"\f347";color:inherit}.postbox .handle-order-higher .order-higher-indicator::before,.postbox .handle-order-lower .order-lower-indicator::before{position:relative;top:.11rem;width:20px;height:20px}.postbox .handlediv .toggle-indicator::before{width:20px;border-radius:50%}.postbox .handlediv .toggle-indicator::before{position:relative;top:.05rem;text-indent:-1px}.rtl .postbox .handlediv .toggle-indicator::before{text-indent:1px}.bulk-action-notice .toggle-indicator::before{line-height:16px;vertical-align:top;color:#787c82}.postbox .handle-order-higher:focus,.postbox .handle-order-lower:focus,.postbox .handlediv:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}.postbox .handle-order-higher:focus .order-higher-indicator::before,.postbox .handle-order-lower:focus .order-lower-indicator::before,.postbox .handlediv:focus .toggle-indicator::before{box-shadow:none;outline:1px solid transparent}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f6f7f7;tab-size:4}#template .CodeMirror,#template textarea{width:100%;min-height:60vh;height:calc(100vh - 295px);border:1px solid #dcdcde;box-sizing:border-box}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{box-sizing:border-box;margin-top:0;overflow:auto;padding:0;min-height:60vh;height:calc(100vh - 295px);background-color:#f6f7f7;border:1px solid #dcdcde;border-left:none}#templateside ul ul{padding-left:12px}#templateside>ul>li>ul[role=group]{padding-left:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f139"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 3px 3px 12px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#f0f0f1}.tree-folder{margin:0;position:relative}[role=treeitem] li{position:relative}.tree-folder .tree-folder::after{content:"";display:block;position:absolute;left:2px;border-left:1px solid #c3c4c7;top:-13px;bottom:10px}.tree-folder>li::before{content:"";position:absolute;display:block;border-left:1px solid #c3c4c7;left:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #c3c4c7}.tree-folder>li::after{content:"";position:absolute;display:block;border-left:1px solid #c3c4c7;left:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{left:4px;height:15px;width:0;border-left:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;left:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#documentation label,#theme-plugin-editor-label,#theme-plugin-editor-selector{font-weight:600}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em}#docs-list,#template textarea{direction:ltr}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:right}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:right;width:16em;word-wrap:break-word}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 0 3px 12px;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#646970;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:1.8;vertical-align:baseline}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.widget-top .widget-action .toggle-indicator:before{padding:1px 2px 1px 0;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#787c82}.widget-action{color:#50575e}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#1d2327;outline:1px solid transparent}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before,.widget.widget-in-question .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! +#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.button .screen-reader-text{height:auto}.screen-reader-text+.dashicons-external{margin-top:-1px;margin-left:2px}.screen-reader-shortcut{position:absolute;top:-1000em;left:6px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f0f0f1;color:#2271b1;z-index:100000;line-height:normal}.screen-reader-shortcut:focus{top:-25px;color:#2271b1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:2px solid transparent;outline-offset:-2px}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f0f0f1;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#2271b1;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#135e96}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img,a:focus .plugin-icon{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}#adminmenu a:focus{box-shadow:none;outline:1px solid transparent;outline-offset:-1px}.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}.wp-die-message,p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{color:#1d2327;font-size:2em;margin:.67em 0}h2,h3{color:#1d2327;font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:4em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#f0f0f1;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:left;color:#646970}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#50575e;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #c3c4c7}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #c3c4c7;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.js-update-details-toggle .dashicons{text-decoration:none}.js-update-details-toggle[aria-expanded=true] .dashicons::before{content:"\f142"}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}.wrap h1.wp-heading-inline{display:inline-block;margin-right:5px}.wp-header-end{visibility:hidden;margin:-2px 0 0}.subtitle{margin:0;padding-left:25px;color:#50575e;font-size:14px;font-weight:400;line-height:1}.subtitle strong{word-break:break-all}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{display:inline-block;position:relative;box-sizing:border-box;cursor:pointer;white-space:nowrap;text-decoration:none;text-shadow:none;top:-3px;margin-left:4px;border:1px solid #2271b1;border-radius:3px;background:#f6f7f7;font-size:13px;font-weight:400;line-height:2.15384615;color:#2271b1;padding:0 10px;min-height:30px;-webkit-appearance:none}.wrap .wp-heading-inline+.page-title-action{margin-left:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.page-title-action:focus{color:#0a4b78}.form-table th label[for=WPLANG] .dashicons,.form-table th label[for=locale] .dashicons{margin-left:5px}.wrap .page-title-action:focus{border-color:#3582c4;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#8c8f94;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#c5d9ed}.ac_match,.subsubsub a.current{color:#000}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f6f7f7}.bar{background-color:#f0f0f1;border-right-color:#4f94d4}.highlight{background-color:#f0f6fc;color:#3c434a}.wp-ui-primary{color:#fff;background-color:#2c3338}.wp-ui-text-primary{color:#2c3338}.wp-ui-highlight{color:#fff;background-color:#2271b1}.wp-ui-text-highlight{color:#2271b1}.wp-ui-notification{color:#fff;background-color:#d63638}.wp-ui-text-notification{color:#d63638}.wp-ui-text-icon{color:#8c8f94}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#f6f7f7;color:#1d2327}.stuffbox .hndle{border-bottom:1px solid #c3c4c7}.quicktags{background-color:#c3c4c7;color:#000;font-size:12px}.icon32{display:none}#bulk-titles .ntdelbutton:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#787c82;content:"\f153";display:block;font:normal 16px/20px dashicons;speak:never;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-left:2px;border-radius:50%;color:#2271b1;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles .ntdelbutton:focus:before,#bulk-titles .ntdelbutton:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#d63638}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#646970;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #dcdcde;border-bottom:1px solid #f6f7f7}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.privacy_requests .remove-personal-data .remove-personal-data-handle,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,a#remove-post-thumbnail{color:#b32d2e}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.privacy_requests .remove-personal-data .remove-personal-data-handle:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,a#remove-post-thumbnail:hover,abbr.required,span.required{color:#b32d2e;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #dcdcde;background:#f6f7f7}#delete-action{float:left;line-height:2.30769231}#delete-link{line-height:2.30769231;vertical-align:middle;text-align:left;margin-left:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:right;float:right;line-height:1.9}#publishing-action .spinner{float:none;margin-top:5px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}.misc-pub-filename,.word-wrap-break-word{word-wrap:break-word}#minor-publishing-actions{padding:10px 10px 0;text-align:right}#save-post{float:left}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}#misc-publishing-actions .notice{margin-left:10px;margin-right:10px}.wp-filter{display:inline-block;position:relative;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #c3c4c7;background:#fff;color:#50575e;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#646970;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-items{float:left}.filter-links{display:inline-block;margin:0}.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#646970;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #646970;color:#1d2327}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#135e96}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{width:280px;max-width:100%}.wp-filter .search-form select{margin:0}.plugin-install-php .wp-filter{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.wp-filter .search-form.search-plugins{margin-top:0}.no-js .wp-filter .search-form.search-plugins .button,.wp-filter .search-form.search-plugins .wp-filter-search,.wp-filter .search-form.search-plugins select{display:inline-block;margin-top:10px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 10px 0 6px;border-color:transparent;background-color:transparent;color:#646970;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 5px 0 0;color:#646970;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#135e96}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#4f94d4}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -10px 0 -20px;padding:20px;border-top:1px solid #f0f0f1;background:#f6f7f7;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#646970;color:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2271b1}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;background:#fff;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:1.4}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 0 14px 23px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:2.2}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #dcdcde;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #f0f0f1}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.04);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#1d2327;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#d63638}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.notice-success,div.updated{border-left-color:#00a32a}.notice-success.notice-alt{background-color:#edfaef}.notice-warning{border-left-color:#dba617}.notice-warning.notice-alt{background-color:#fcf9e8}.notice-error,div.error{border-left-color:#d63638}.notice-error.notice-alt{background-color:#fcf0f1}.notice-info{border-left-color:#72aee6}.notice-info.notice-alt{background-color:#f0f6fc}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-left:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#d63638;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:rotation 2s infinite linear}@media (prefers-reduced-motion:reduce){.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.plugins .column-auto-updates .dashicons-update.spin,.theme-overlay .theme-autoupdate .dashicons-update.spin,.updating-message p:before{animation:none}}.theme-overlay .theme-autoupdate .dashicons-update.spin{margin-right:3px}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#68de7c;content:"\f147"}.update-message.notice-error p:before{color:#d63638;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px}.import-php .updating-message:before{vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:1.4;padding:11px 15px;font-size:14px;margin:25px 20px 0 2px}ul#dismissed-updates{display:none}#dismissed-updates li>p{margin-top:0}#dismiss,#undismiss{margin-left:.5em}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}h2.wp-current-version{margin-bottom:.3em}p.update-last-checked{margin-top:0}p.auto-update-status{margin-top:2em;line-height:1.8}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#9ec2e6}.button.updated-message{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:never}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0}#screen-meta-links{float:right;margin:0 20px 0 0}#screen-meta{display:none;margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #c3c4c7;border-top:none;box-shadow:0 0 0 transparent}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;margin:0 0 0 6px}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:1px solid #c3c4c7;border-top:none;height:auto;margin-bottom:0;padding:3px 6px 3px 16px;background:#fff;border-radius:0 0 4px 4px;color:#646970;line-height:1.7;box-shadow:0 0 0 transparent;transition:box-shadow .1s linear}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#2c3338}#screen-meta-links .show-settings:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}#screen-meta-links .show-settings:active{transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:normal 20px/1 dashicons;speak:never;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:2.35}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px;padding-right:0}.metabox-prefs .screen-options label{line-height:2.2;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #c3c4c7;border-top:none;border-bottom:none;background:#f0f6fc}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:1.4;text-decoration:none;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#2c3338}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #72aee6;background:#f0f6fc;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#c3c4c7;color:#2c3338}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box;-ms-overflow-style:scrollbar}.widefat td,.widefat th{color:#50575e}.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th{color:#2c3338}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#2c3338}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:initial;margin-left:2em}.postbox-container{float:left}.postbox-container .meta-box-sortables{box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .meta-box-sortables{min-height:1px;position:relative}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{outline:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.js .postbox .hndle.is-non-sortable,.js .widget .widget-top.is-non-sortable{cursor:auto}.hndle a{font-size:12px;font-weight:400}.postbox-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c3c4c7}.postbox-header .hndle{flex-grow:1;display:flex;justify-content:space-between;align-items:center}.postbox-header .handle-actions{flex-shrink:0}.postbox .handle-order-higher,.postbox .handle-order-lower,.postbox .handlediv{width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.postbox .handle-order-higher,.postbox .handle-order-lower{color:#787c82;width:1.62rem}.edit-post-meta-boxes-area .postbox .handle-order-higher,.edit-post-meta-boxes-area .postbox .handle-order-lower{width:44px;height:44px;color:#1d2327}.postbox .handle-order-higher[aria-disabled=true],.postbox .handle-order-lower[aria-disabled=true]{cursor:default;color:#a7aaad}.sortable-placeholder{border:1px dashed #c3c4c7;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox.closed{border-bottom:0}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;user-select:none}.postbox .inside{padding:0 12px 12px;line-height:1.4;font-size:13px}.stuffbox .inside{padding:0;line-height:1.4;font-size:13px;margin-top:0}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #c3c4c7}.columns-prefs label{padding:0 10px 0 0}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#comment-status-display,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#50575e}#wpfooter p{font-size:13px;margin:0;line-height:1.55}#footer-thankyou{font-style:italic}.nav-tab{float:left;border:1px solid #c3c4c7;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:1.33}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#3c434a}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#3c434a}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f0f0f1;background:#f0f0f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;float:right;vertical-align:middle;opacity:.7;width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-right:16em}#template .notice{margin-top:1em;margin-right:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:1.5}#templateside ul li a{text-decoration:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:#d63638;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #dcdcde;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.4}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.importer-action,.importer-desc,.importer-title{display:block}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:1.55;color:#50575e;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{color:#1d2327;border-bottom:1px solid #f0f0f1}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:100%}#namediv p{margin:10px 0}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:.15}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom left}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top left;height:17px;float:left}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in;text-align:center;color:#dba617}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f6f7f7;font-size:22px;font-weight:600;line-height:2.4;position:relative;height:56px}#plugin-information-title.with-banner{margin-right:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:1.68;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(29,35,39,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;left:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #dcdcde;background:#f6f7f7}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:1.3;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #dcdcde;border-bottom-color:#fff;padding-top:8px;color:#2c3338}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-top:10px;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99932px}#section-holder .notice{margin:5px 0 15px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99932px;width:217px;border-left:1px solid #dcdcde;background:#f6f7f7;color:#646970}#plugin-information .fyi strong{color:#3c434a}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#dcdcde;float:left}#plugin-information .counter-bar{height:17px;background-color:#f0c33c;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:40px;border-top:1px solid #dcdcde;background:#f6f7f7}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #c3c4c7}#plugin-information blockquote{border-left:2px solid #dcdcde;color:#646970;font-style:italic;margin:1em 0;padding:0 0 0 1em}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #dcdcde}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-right:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:2;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #dcdcde;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fff}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:#fff url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:left;height:1px}.plugin-details-modal #TB_ajaxWindowTitle{display:none}.plugin-details-modal #TB_closeWindowButton{left:auto;right:-30px;color:#f0f0f1}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:focus::after,.plugin-details-modal #TB_closeWindowButton:hover::after{outline:2px solid;outline-offset:-4px;border-radius:4px}.plugin-details-modal .tb-close-icon{display:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator::before,.meta-box-sortables .postbox .order-higher-indicator::before,.meta-box-sortables .postbox .order-lower-indicator::before,.meta-box-sortables .postbox .toggle-indicator::before,.privacy-text-box .toggle-indicator::before,.sidebar-name .toggle-indicator::before{content:"\f142";display:inline-block;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator::before,.js .widgets-holder-wrap.closed .toggle-indicator::before,.meta-box-sortables .postbox.closed .handlediv .toggle-indicator::before,.privacy-text-box.closed .toggle-indicator::before{content:"\f140"}.postbox .handle-order-higher .order-higher-indicator::before{content:"\f343";color:inherit}.postbox .handle-order-lower .order-lower-indicator::before{content:"\f347";color:inherit}.postbox .handle-order-higher .order-higher-indicator::before,.postbox .handle-order-lower .order-lower-indicator::before{position:relative;top:.11rem;width:20px;height:20px}.postbox .handlediv .toggle-indicator::before{width:20px;border-radius:50%}.postbox .handlediv .toggle-indicator::before{position:relative;top:.05rem;text-indent:-1px}.rtl .postbox .handlediv .toggle-indicator::before{text-indent:1px}.bulk-action-notice .toggle-indicator::before{line-height:16px;vertical-align:top;color:#787c82}.postbox .handle-order-higher:focus,.postbox .handle-order-lower:focus,.postbox .handlediv:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid transparent}.postbox .handle-order-higher:focus .order-higher-indicator::before,.postbox .handle-order-lower:focus .order-lower-indicator::before,.postbox .handlediv:focus .toggle-indicator::before{box-shadow:none;outline:1px solid transparent}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f6f7f7;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%;min-height:60vh;height:calc(100vh - 295px);border:1px solid #dcdcde;box-sizing:border-box}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{box-sizing:border-box;margin-top:0;overflow:auto;padding:0;min-height:60vh;height:calc(100vh - 295px);background-color:#f6f7f7;border:1px solid #dcdcde;border-left:none}#templateside ul ul{padding-left:12px}#templateside>ul>li>ul[role=group]{padding-left:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f139"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 3px 3px 12px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#f0f0f1}.tree-folder{margin:0;position:relative}[role=treeitem] li{position:relative}.tree-folder .tree-folder::after{content:"";display:block;position:absolute;left:2px;border-left:1px solid #c3c4c7;top:-13px;bottom:10px}.tree-folder>li::before{content:"";position:absolute;display:block;border-left:1px solid #c3c4c7;left:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #c3c4c7}.tree-folder>li::after{content:"";position:absolute;display:block;border-left:1px solid #c3c4c7;left:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{left:4px;height:15px;width:0;border-left:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;left:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#documentation label,#theme-plugin-editor-label,#theme-plugin-editor-selector{font-weight:600}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em}#docs-list,#template textarea{direction:ltr}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:right}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:right;width:16em;word-wrap:break-word}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 0 3px 12px;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#646970;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:1.8;vertical-align:baseline}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}.widget-top .widget-action .toggle-indicator:before{padding:1px 2px 1px 0;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#787c82}.widget-action{color:#50575e}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#1d2327;outline:1px solid transparent}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before,.widget.widget-in-question .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! * jQuery UI Draggable/Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #dcdcde;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dcdcde}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #dcdcde;border-right:1px solid #dcdcde;-webkit-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:1px solid transparent}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a7aaad transparent;outline:1px solid transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:1.55;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#1d2327;background:#f6f7f7}.control-section.open .accordion-section-title{border-bottom:1px solid #dcdcde}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#c3c4c7}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(odd){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f6f7f7}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f6f7f7}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f6f7f7}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f6f7f7}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f6f7f7}}.my-sites li a{text-decoration:none}@media print,(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom left;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}.screen-reader-shortcut:focus{top:-39px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{clear:both;margin-right:12px;margin-left:0}#col-left,#col-right{float:none;width:auto}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-16em}code{word-wrap:break-word;word-wrap:anywhere;word-break:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#template .CodeMirror,#template textarea{box-sizing:border-box}#templateside{float:none;width:auto}#templateside>ul{border-left:1px solid #dcdcde}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{width:100%}#templateside ul ul{padding-left:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{left:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{left:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;left:-8px}.wrap #templateside span.notice{margin-left:-5px;width:100%}.fileedit-sub .alignright{float:left;margin-top:15px;width:100%;text-align:left}.fileedit-sub .alignright label{display:block}.fileedit-sub #plugin,.fileedit-sub #theme{margin-left:0;max-width:70%}.fileedit-sub input[type=submit]{margin-bottom:0}#documentation label[for=docs-list]{display:block}#documentation select[name=docs-list]{margin-left:0;max-width:60%}#documentation input[type=button]{margin-bottom:0}#wpfooter{display:none}#comments-form .checkforspam{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:2.1}.filter-drawer .filter-group-feature label{margin-left:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:2;height:28px}#screen-meta #contextual-help-wrap{overflow:visible}#screen-meta #contextual-help-back,#screen-meta .contextual-help-sidebar{display:none}#screen-meta .contextual-help-tabs{clear:both;width:100%;float:none}#screen-meta .contextual-help-tabs ul{margin:0 0 1em;padding:1em 0 0}#screen-meta .contextual-help-tabs .active{margin:0}#screen-meta .contextual-help-tabs-wrap{clear:both;max-width:100%;float:none}#screen-meta,#screen-meta-links{margin-right:10px}#screen-meta-links{margin-bottom:20px}.wp-filter .search-form input[type=search]{width:100%;font-size:1rem}.wp-filter .search-form.search-plugins{min-width:100%}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}.screen-reader-shortcut:focus{top:7px}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab,nav .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #c3c4c7}.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #c3c4c7}}@media screen and (max-width:480px){.metabox-prefs-container{display:grid}.metabox-prefs-container>*{display:inline-block;padding:2px}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #dcdcde;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dcdcde}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #dcdcde;border-right:1px solid #dcdcde;-webkit-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:1px solid transparent}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a7aaad transparent;outline:1px solid transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:1.55;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#1d2327;background:#f6f7f7}.control-section.open .accordion-section-title{border-bottom:1px solid #dcdcde}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#c3c4c7}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(odd){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f6f7f7}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f6f7f7}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f6f7f7}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f6f7f7}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f6f7f7}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom left;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}.screen-reader-shortcut:focus{top:-39px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{clear:both;margin-right:12px;margin-left:0}#col-left,#col-right{float:none;width:auto}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-16em}code{word-wrap:break-word;word-wrap:anywhere;word-break:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#template .CodeMirror,#template textarea{box-sizing:border-box}#templateside{float:none;width:auto}#templateside>ul{border-left:1px solid #dcdcde}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{width:100%}#templateside ul ul{padding-left:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{left:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{left:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;left:-8px}.wrap #templateside span.notice{margin-left:-5px;width:100%}.fileedit-sub .alignright{float:left;margin-top:15px;width:100%;text-align:left}.fileedit-sub .alignright label{display:block}.fileedit-sub #plugin,.fileedit-sub #theme{margin-left:0;max-width:70%}.fileedit-sub input[type=submit]{margin-bottom:0}#documentation label[for=docs-list]{display:block}#documentation select[name=docs-list]{margin-left:0;max-width:60%}#documentation input[type=button]{margin-bottom:0}#wpfooter{display:none}#comments-form .checkforspam{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:2.1}.filter-drawer .filter-group-feature label{margin-left:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:2;height:28px}#screen-meta #contextual-help-wrap{overflow:visible}#screen-meta #contextual-help-back,#screen-meta .contextual-help-sidebar{display:none}#screen-meta .contextual-help-tabs{clear:both;width:100%;float:none}#screen-meta .contextual-help-tabs ul{margin:0 0 1em;padding:1em 0 0}#screen-meta .contextual-help-tabs .active{margin:0}#screen-meta .contextual-help-tabs-wrap{clear:both;max-width:100%;float:none}#screen-meta,#screen-meta-links{margin-right:10px}#screen-meta-links{margin-bottom:20px}.wp-filter .search-form input[type=search]{width:100%;font-size:1rem}.wp-filter .search-form.search-plugins{min-width:100%}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}.screen-reader-shortcut:focus{top:7px}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab,nav .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #c3c4c7}.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #c3c4c7}}@media screen and (max-width:480px){.metabox-prefs-container{display:grid}.metabox-prefs-container>*{display:inline-block;padding:2px}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.css index abbd355fe3..ed6cef464a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.css @@ -1605,6 +1605,7 @@ p.customize-section-description { font-family: Consolas, Monaco, monospace; font-size: 12px; padding: 6px 8px; + -o-tab-size: 2; tab-size: 2; } .customize-control-code_editor textarea, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.min.css index b176b6bf4c..85a0713c5f 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked{background-color:rgba(0,0,0,.7);padding:25px}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .customize-changeset-locked-message{margin-right:auto;margin-left:auto;max-width:366px;min-height:64px;width:auto;padding:25px 109px 25px 25px;position:relative;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;overflow-y:auto;text-align:right;top:calc(50% - 100px)}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .currently-editing{margin-top:0}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .action-buttons{margin-bottom:0}.customize-changeset-locked-avatar{width:64px;position:absolute;right:25px;top:25px}.wp-core-ui.wp-customizer .customize-changeset-locked-message a.button{margin-left:10px;margin-top:0}#customize-controls .description{color:#50575e}#customize-save-button-wrapper{float:left;margin-top:9px}body:not(.ready) #customize-save-button-wrapper .save{visibility:hidden}#customize-save-button-wrapper .save{float:right;border-radius:3px;box-shadow:none;margin-top:0}#customize-save-button-wrapper .save:focus,#publish-settings:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}#customize-save-button-wrapper .save.has-next-sibling{border-radius:0 3px 3px 0}#customize-sidebar-outer-content{position:absolute;top:0;bottom:0;right:0;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:100%;margin:0;z-index:-1;background:#f0f0f1;transition:right .18s;border-left:1px solid #dcdcde;border-right:1px solid #dcdcde;height:100%}@media (prefers-reduced-motion:reduce){#customize-sidebar-outer-content{transition:none}}#customize-theme-controls .control-section-outer{display:none!important}#customize-outer-theme-controls .accordion-section-content{padding:12px}#customize-outer-theme-controls .accordion-section-content.open{display:block}.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{visibility:visible;right:100%;transition:right .18s}@media (prefers-reduced-motion:reduce){.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{transition:none}}.customize-outer-pane-parent{margin:0}.outer-section-open .wp-full-overlay.expanded .wp-full-overlay-main{right:300px;opacity:.4}.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-menu-items .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main{right:64%}#customize-outer-theme-controls li.notice{padding-top:8px;padding-bottom:8px;margin-right:0;margin-bottom:10px}#publish-settings{text-indent:0;border-radius:3px 0 0 3px;padding-right:0;padding-left:0;box-shadow:none;font-size:14px;width:30px;float:right;transform:none;margin-top:0;line-height:2}body.trashing #customize-save-button-wrapper .save,body.trashing #publish-settings,body:not(.ready) #publish-settings{display:none}#customize-header-actions .spinner{margin-top:13px;margin-left:4px}.saving #customize-header-actions .spinner,.trashing #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #dcdcde}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}.outer-section-open #customize-controls .wp-full-overlay-sidebar-content{background:#f0f0f1}#customize-controls .customize-info{border:none;border-bottom:1px solid #dcdcde;margin-bottom:15px}#customize-control-changeset_preview_link input,#customize-control-changeset_status .customize-inside-control-row{background-color:#fff;border-bottom:1px solid #dcdcde;box-sizing:content-box;width:100%;margin-right:-12px;padding-right:12px;padding-left:12px}#customize-control-trash_changeset{margin-top:20px}#customize-control-trash_changeset .button-link{position:relative;padding-right:24px;display:inline-block}#customize-control-trash_changeset .button-link:before{content:"\f182";font:normal 22px dashicons;text-decoration:none;position:absolute;right:0;top:-2px}#customize-controls .date-input:invalid{border-color:#d63638}#customize-control-changeset_status .customize-inside-control-row{padding-top:10px;padding-bottom:10px;font-weight:500}#customize-control-changeset_status .customize-inside-control-row:first-of-type{border-top:1px solid #dcdcde}#customize-control-changeset_status .customize-control-title{margin-bottom:6px}#customize-control-changeset_status input{margin-right:0}#customize-control-changeset_preview_link{position:relative;display:block}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{margin:0;position:absolute;bottom:9px;left:0}.preview-link-wrapper{position:relative}.customize-copy-preview-link:after,.customize-copy-preview-link:before{content:"";height:28px;position:absolute;background:#fff;top:-1px}.customize-copy-preview-link:before{right:-10px;width:9px;opacity:.75}.customize-copy-preview-link:after{right:-5px;width:4px;opacity:.8}#customize-control-changeset_preview_link input{line-height:2.85714286;border-top:1px solid #dcdcde;border-right:none;border-left:none;text-indent:-999px;color:#fff;min-height:40px}#customize-control-changeset_preview_link label{position:relative;display:block}#customize-control-changeset_preview_link a{display:inline-block;position:absolute;white-space:nowrap;overflow:hidden;width:90%;bottom:14px;font-size:14px;text-decoration:none}#customize-control-changeset_preview_link a.disabled,#customize-control-changeset_preview_link a.disabled:active,#customize-control-changeset_preview_link a.disabled:focus,#customize-control-changeset_preview_link a.disabled:visited{color:#000;opacity:.4;cursor:default;outline:0;box-shadow:none}#sub-accordion-section-publish_settings .customize-section-description-container{display:none}#customize-controls .customize-info.section-meta{margin-bottom:15px}.customize-control-date_time .customize-control-description+.date-time-fields.includes-time{margin-top:10px}.customize-control.customize-control-date_time .date-time-fields .date-input.day{margin-left:0}.date-time-fields .date-input.month{width:auto;margin:0}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:46px}.date-time-fields .date-input.year{width:65px}.date-time-fields .date-input.meridian{width:auto;margin:0}.date-time-fields .time-row{margin-top:12px}#customize-control-changeset_preview_link{margin-top:6px}#customize-control-changeset_status{margin-bottom:0;padding-bottom:0}#customize-control-changeset_scheduled_date{box-sizing:content-box;width:100%;margin-right:-12px;padding:12px;background:#fff;border-bottom:1px solid #dcdcde;margin-bottom:0}#customize-control-changeset_scheduled_date .customize-control-description{font-style:normal}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#50575e;border-right:none;border-left:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#2c3338}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:1.9}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title,#customize-outer-theme-controls .customize-pane-child .customize-section-title h3,#customize-outer-theme-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;left:1px;padding:20px 10px 10px 20px;width:20px;height:20px;cursor:pointer;box-shadow:none;background:0 0;color:#50575e;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;right:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#2271b1}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice,#customize-outer-theme-controls .customize-info .customize-section-description{color:#50575e;display:none;background:#fff;padding:12px 15px;border-top:1px solid #dcdcde}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}.no-widget-areas-rendered-notice{font-style:italic}.no-widget-areas-rendered-notice p:first-child{margin-top:0}.no-widget-areas-rendered-notice p:last-child{margin-bottom:0}#customize-controls .customize-info .customize-section-description{margin-bottom:15px}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-left:30px}#customize-outer-theme-controls .control-section,#customize-theme-controls .control-section{border:none}#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{color:#50575e;background-color:#fff;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}@media (prefers-reduced-motion:reduce){#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{transition:none}}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#50575e;background-color:#fff;border-right:4px solid #fff}#customize-outer-theme-controls .accordion-section-title:after,#customize-theme-controls .accordion-section-title:after{content:"\f341";color:#a7aaad}#customize-outer-theme-controls .accordion-section-content,#customize-theme-controls .accordion-section-content{color:#50575e;background:0 0}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1}#accordion-section-themes+.control-section{border-top:1px solid #dcdcde}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f6f7f7}#customize-outer-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#2271b1}#customize-theme-controls .control-section.open{border-bottom:1px solid #f0f0f1}#customize-outer-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#f0f0f1!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#dcdcde}#customize-theme-controls .control-panel-content:not(.control-panel-nav_menus) .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title{border-top:1px solid #dcdcde}#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu+.control-section-nav_menu{border-top:none}#customize-theme-controls>ul{margin:0}#customize-theme-controls .accordion-section-content{position:absolute;top:0;right:100%;width:100%;margin:0;padding:12px;box-sizing:border-box}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{overflow:visible;width:100%;margin:0;padding:0;box-sizing:border-box;transition:.18s transform cubic-bezier(.645, .045, .355, 1)}@media (prefers-reduced-motion:reduce){#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{transition:none}}#customize-theme-controls .customize-pane-child.skip-transition{transition:none}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;right:0;visibility:hidden;height:0;max-height:none;overflow:hidden;transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open{transform:none}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;transform:translateX(100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.control-section-nav_menu .customize-section-description-container,.control-section-new_menu .customize-section-description-container,.customize-section-description-container{margin-bottom:15px}.control-section-nav_menu .customize-control,.control-section-new_menu .customize-control{margin-bottom:0}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #dcdcde;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description{margin-top:0}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #dcdcde;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 14px 12px 10px;margin:0;line-height:21px;color:#50575e}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;right:0;width:45px;height:41px;padding:0 0 0 2px;background:#f0f0f1;border:none;border-top:4px solid #f0f0f1;border-left:1px solid #dcdcde;color:#3c434a;text-align:right;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:right;width:48px;height:71px;padding:0 0 0 24px;margin:0;background:#fff;border:none;border-left:1px solid #dcdcde;border-right:4px solid #fff;box-shadow:none;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-right:48px;border-right:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#50575e;border-right-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#2271b1;border-top-color:#2271b1;box-shadow:none;outline:1px solid transparent}#customize-theme-controls .accordion-section-title:focus .customize-action{outline:1px solid transparent;outline-offset:1px}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.customize-controls-close:before{font:normal 22px/45px dashicons;content:"\f335";position:relative;top:-3px;right:13px}.customize-panel-back:before,.customize-section-back:before{font:normal 20px/72px dashicons;content:"\f345";position:relative;right:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#f0f0f1;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-right:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-section-description ul{margin-right:1em}.customize-section-description ul>li{list-style:disc}.section-description-buttons{text-align:left}.customize-control{width:100%;float:right;clear:both;margin-bottom:12px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=range],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:100%;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:1.75;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:1.4;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f504";top:3px;position:relative;padding-right:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control .customize-inside-control-row{line-height:1.6;display:block;margin-right:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:4px;margin-right:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:1.6}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-checkbox label,.customize-control-radio label{vertical-align:top}.customize-control .attachment-thumb.type-icon{float:right;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image,.customize-control .wp-media-wrapper.wp-video,.customize-control-header .current{line-height:0}.customize-control-site_icon .favicon-preview .browser-preview{vertical-align:top}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:right}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#f0f0f1;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;padding:5px 1px 5px 0;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 6px 2px 0;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid #d63638}.customize-control-dropdown-pages .add-new-toggle{margin-right:1px;font-weight:600;line-height:2.2}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#f0f0f1;border-left:1px solid #dcdcde}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{box-shadow:inset 0 0 0 2px #d63638;transition:.15s box-shadow linear}#customize-controls .customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:9px 14px;overflow:hidden}#customize-controls .customize-control-notifications-container .notice.is-dismissible{padding-left:38px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container{margin-top:8px}.customize-control-text.has-error input{outline:2px solid #d63638}#customize-controls #customize-notifications-area{position:absolute;top:46px;width:100%;border-bottom:1px solid #dcdcde;display:block;padding:0;margin:0}.wp-full-overlay.collapsed #customize-controls #customize-notifications-area{display:none!important}#customize-controls #customize-notifications-area:not(.has-overlay-notifications),#customize-controls .customize-section-title>.customize-control-notifications-container:not(.has-overlay-notifications),#customize-controls .panel-meta>.customize-control-notifications-container:not(.has-overlay-notifications){max-height:210px;overflow-x:hidden;overflow-y:auto}#customize-controls #customize-notifications-area .notice,#customize-controls #customize-notifications-area>ul,#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container .notice{margin:0}#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container{border-top:1px solid #dcdcde}#customize-controls #customize-notifications-area .notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice{padding:9px 14px}#customize-controls #customize-notifications-area .notice.is-dismissible,#customize-controls .customize-section-title>.customize-control-notifications-container .notice.is-dismissible,#customize-controls .panel-meta>.customize-control-notifications-container .notice.is-dismissible{padding-left:38px}#customize-controls #customize-notifications-area .notice+.notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice+.notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice+.notice{margin-top:1px}@keyframes customize-fade-in{0%{opacity:0}100%{opacity:1}}#customize-controls #customize-notifications-area .notice.notification-overlay,#customize-controls .notice.notification-overlay{margin:0;border-right:0}#customize-controls .customize-control-notifications-container.has-overlay-notifications{animation:customize-fade-in .5s;z-index:30}#customize-controls #customize-notifications-area .notice.notification-overlay .notification-message{clear:both;color:#1d2327;font-size:18px;font-style:normal;margin:0;padding:2em 0;text-align:center;width:100%;display:block;top:50%;position:relative}#customize-control-show_on_front.has-error{margin-bottom:0}#customize-control-show_on_front.has-error .customize-control-notifications-container{margin-top:12px}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #f0f0f1;-webkit-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#f0f0f1}.customize-control .dropdown-arrow:after{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#2c3338}.customize-control .dropdown-status{color:#2c3338;background:#f0f0f1;display:none;max-width:112px}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#50575e;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control .actions .button{margin-top:12px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control-header button img{display:block}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{width:auto;height:auto;white-space:normal}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .button-add-media,.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #c3c4c7;box-sizing:border-box;padding:9px 0;line-height:1.6}.customize-control .attachment-media-view .button-add-media{cursor:pointer;background-color:#f0f0f1;color:#2c3338}.customize-control .attachment-media-view .button-add-media:hover{background-color:#fff}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fff;border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#50575e;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:12px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:"";position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #72aee6;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#50575e;background:rgba(0,0,0,.5);position:absolute;top:10px;right:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{right:auto;left:10px}.customize-control-header .header-view .close:focus{outline:1px solid #4f94d4}.customize-control-header .random.placeholder{cursor:pointer;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{animation:dice-color-change 3s infinite}.button-see-me{animation:bounce .7s 1;transform-origin:center bottom}@keyframes bounce{20%,53%,80%,from,to{animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-12px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-6px,0)}90%{transform:translate3d(0,-1px,0)}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 3px 1px rgba(79,148,212,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{margin-left:8px}.customize-control-background_position .background-position-control .button-group{display:block}.customize-control-code_editor textarea{width:100%;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;tab-size:2}.customize-control-code_editor .CodeMirror,.customize-control-code_editor textarea{height:14em}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;height:500px}.customize-section-description-container+#customize-control-custom_css .customize-control-title{margin-right:12px}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-left:0;border-right:0;height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:-12px;width:299px;width:calc(100% + 24px);margin-bottom:-12px}.customize-section-description-container+#customize-control-custom_css:last-child .CodeMirror{height:calc(100vh - 185px)}.CodeMirror-hints,.CodeMirror-lint-tooltip{z-index:500000!important}.customize-section-description-container+#customize-control-custom_css:last-child .customize-control-notifications-container{margin-right:12px;margin-left:12px}.theme-browser .theme.active .theme-actions,.wp-customizer .theme-browser .theme .theme-actions{padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:0}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:calc(100vh - 140px)}}#customize-theme-controls .control-panel-themes{border-bottom:none}#customize-theme-controls .control-panel-themes>.accordion-section-title,#customize-theme-controls .control-panel-themes>.accordion-section-title:hover{cursor:default;background:#fff;color:#50575e;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;border-right:none;border-left:none;margin:0 0 15px;padding-left:100px}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-left:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action,.control-panel-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-theme-controls .control-panel-themes .accordion-section-title .change-theme{position:absolute;left:10px;top:50%;margin-top:-14px;font-weight:400}#customize-notifications-area .notification-message button.switch-to-editor{display:block;margin-top:6px;font-weight:400}#customize-theme-controls .control-panel-themes>.accordion-section-title:after{display:none}.control-panel-themes .customize-themes-full-container{position:fixed;top:0;right:0;transition:.18s right ease-in-out;margin:0 300px 0 0;padding:71px 0 25px;overflow-y:scroll;width:calc(100% - 300px);height:calc(100% - 96px);background:#f0f0f1;z-index:20}@media (prefers-reduced-motion:reduce){.control-panel-themes .customize-themes-full-container{transition:none}}@media screen and (min-width:1670px){.control-panel-themes .customize-themes-full-container{width:82%;left:0;right:initial}}.modal-open .control-panel-themes .customize-themes-full-container{overflow-y:visible}#customize-header-actions .customize-controls-preview-toggle,#customize-header-actions .spinner,#customize-save-button-wrapper{transition:.18s margin ease-in-out}#customize-footer-actions,#customize-footer-actions .collapse-sidebar{bottom:0;transition:.18s bottom ease-in-out}.in-themes-panel:not(.animating) #customize-footer-actions,.in-themes-panel:not(.animating) #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel:not(.animating) #customize-header-actions .spinner,.in-themes-panel:not(.animating) #customize-preview{visibility:hidden}.wp-full-overlay.in-themes-panel{background:#f0f0f1}.in-themes-panel #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel #customize-header-actions .spinner,.in-themes-panel #customize-save-button-wrapper{margin-top:-46px}.in-themes-panel #customize-footer-actions,.in-themes-panel #customize-footer-actions .collapse-sidebar{bottom:-45px}.in-themes-panel.animating .control-panel-themes .filter-themes-count{display:none}.in-themes-panel.wp-full-overlay .wp-full-overlay-sidebar-content{bottom:0}.themes-filter-bar .feature-filter-toggle{float:left;margin:3px 25px 3px 0}.themes-filter-bar .feature-filter-toggle:before{content:"\f111";margin:0 0 0 5px;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .feature-filter-toggle.open{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.themes-filter-bar .feature-filter-toggle .filter-count-filters{display:none}.filter-drawer{box-sizing:border-box;width:100%;position:absolute;top:46px;right:0;padding:25px 25px 25px 0;border-top:0;margin:0;background:#f0f0f1;border-bottom:1px solid #dcdcde}.filter-drawer .filter-group{margin:0 0 0 25px;width:calc((100% - 75px)/ 3);min-width:200px;max-width:320px}@keyframes themes-fade-in{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.control-panel-themes .customize-themes-full-container.animate{animation:.6s themes-fade-in 1}.in-themes-panel:not(.animating) .control-panel-themes .filter-themes-count{animation:.6s themes-fade-in 1}.control-panel-themes .filter-themes-count{position:relative;float:left;line-height:2.6}.control-panel-themes .filter-themes-count .themes-displayed{font-weight:600;color:#50575e}.customize-themes-notifications{margin:0}.control-panel-themes .customize-themes-notifications .notice{margin:0 0 25px}.customize-themes-full-container .customize-themes-section{display:none!important;overflow:hidden}.customize-themes-full-container .customize-themes-section.current-section{display:list-item!important}.control-section .customize-section-text-before{padding:0 15px 8px 0;margin:15px 0 0;line-height:16px;border-bottom:1px solid #dcdcde;color:#50575e}.control-panel-themes .customize-themes-section-title{width:100%;background:#fff;box-shadow:none;outline:0;border-top:none;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;border-left:none;cursor:pointer;padding:10px 15px;position:relative;text-align:right;font-size:14px;font-weight:600;color:#50575e;text-shadow:none}.control-panel-themes #accordion-section-installed_themes{border-top:1px solid #dcdcde}.control-panel-themes .theme-section{margin:0;position:relative}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-right-color:#2271b1;color:#2271b1;background:#f6f7f7}.customize-themes-section-title:not(.selected):after{content:"";display:block;position:absolute;top:9px;left:15px;width:18px;height:18px;border-radius:100%;border:1px solid #c3c4c7;background:#fff}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{content:"\f147";font:16px/1 dashicons;box-sizing:border-box;width:20px;height:20px;padding:3px 1px 1px 3px;border-radius:100%;position:absolute;top:9px;left:15px;background:#2271b1;color:#fff}.control-panel-themes .customize-themes-section-title.selected{color:#2271b1}#customize-theme-controls .themes.accordion-section-content{position:relative;right:0;padding:0;width:100%}.loading .customize-themes-section .spinner{display:block;visibility:visible;position:relative;clear:both;width:20px;height:20px;right:calc(50% - 10px);float:none;margin-top:50px}.customize-themes-section .no-themes,.customize-themes-section .no-themes-local{display:none}.themes-section-installed_themes .theme .notice-success:not(.updated-message){display:none}.customize-control-theme .theme{width:100%;margin:0;border:1px solid #dcdcde;background:#fff}.customize-control-theme .theme .theme-actions,.customize-control-theme .theme .theme-name{background:#fff;border:none}.customize-control.customize-control-theme{box-sizing:border-box;width:25%;max-width:600px;margin:0 0 25px 25px;padding:0;clear:none}@media screen and (min-width:2101px){.customize-control.customize-control-theme{width:calc((100% - 125px)/ 5 - 1px)}}@media screen and (min-width:1601px) and (max-width:2100px){.customize-control.customize-control-theme{width:calc((100% - 100px)/ 4 - 1px)}}@media screen and (min-width:1201px) and (max-width:1600px){.customize-control.customize-control-theme{width:calc((100% - 75px)/ 3 - 1px)}}@media screen and (min-width:851px) and (max-width:1200px){.customize-control.customize-control-theme{width:calc((100% - 50px)/ 2 - 1px)}}@media screen and (max-width:850px){.customize-control.customize-control-theme{width:100%}}.wp-customizer .theme-browser .themes{padding:0 25px 25px 0;transition:.18s margin-top linear}.wp-customizer .theme-browser .theme .theme-actions{opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.customize-preview-header.themes-filter-bar{position:fixed;top:0;right:300px;width:calc(100% - 300px);height:46px;background:#f0f0f1;z-index:10;padding:6px 25px;box-sizing:border-box;border-bottom:1px solid #dcdcde}@media screen and (min-width:1670px){.customize-preview-header.themes-filter-bar{width:82%;left:0;right:initial}}.themes-filter-bar .themes-filter-container{margin:0;padding:0}.themes-filter-bar .wp-filter-search{line-height:1.8;padding:6px 30px 6px 10px;max-width:100%;width:40%;min-width:300px;position:absolute;top:6px;right:25px;height:32px;margin:1px 0}@media screen and (max-height:540px),screen and (max-width:1018px){.customize-preview-header.themes-filter-bar{position:relative;right:0;width:100%;margin:0 0 25px}.filter-drawer{top:46px}.wp-customizer .theme-browser .themes{padding:0 25px 25px 0;overflow:hidden}.control-panel-themes .customize-themes-full-container{margin-top:0;padding:0;height:100%;width:calc(100% - 300px)}}@media screen and (max-width:1018px){.filter-drawer .filter-group{width:calc((100% - 50px)/ 2)}}@media screen and (max-width:900px){.customize-preview-header.themes-filter-bar{height:86px;padding-top:46px}.themes-filter-bar .wp-filter-search{width:calc(100% - 50px);margin:0;min-width:200px}.filter-drawer{top:86px}.control-panel-themes .filter-themes-count{float:right}}@media screen and (max-width:792px){.filter-drawer .filter-group{width:calc(100% - 25px)}}.control-panel-themes .customize-themes-mobile-back{display:none}@media screen and (max-width:600px){.filter-drawer{top:132px}.wp-full-overlay.showing-themes .control-panel-themes .filter-themes-count .filter-themes{display:block;float:left}.control-panel-themes .customize-themes-full-container{width:100%;margin:0;padding-top:46px;height:calc(100% - 46px);z-index:1;display:none}.showing-themes .control-panel-themes .customize-themes-full-container{display:block}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back{display:block;position:fixed;top:0;right:0;background:#f0f0f1;color:#3c434a;border-radius:0;box-shadow:none;border:none;height:46px;width:100%;z-index:10;text-align:right;text-shadow:none;border-bottom:1px solid #dcdcde;border-right:4px solid transparent;margin:0;padding:0;font-size:0;overflow:hidden}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:before{right:0;top:0;height:46px;width:26px;display:block;line-height:2.3;padding:0 8px;border-left:1px solid #dcdcde}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:focus,.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:hover{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.showing-themes #customize-header-actions{display:none}#customize-controls{width:100%}}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;right:0;top:0;left:0;bottom:0;z-index:109}.wp-customizer.modal-open #customize-header-actions,.wp-customizer.modal-open .control-panel-themes .customize-themes-section-title.selected:after,.wp-customizer.modal-open .control-panel-themes .filter-themes-count{z-index:-1}.wp-full-overlay.in-themes-panel.themes-panel-expanded #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(240,240,241,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .star-rating{float:right;margin-left:8px}.wp-customizer .theme-rating .num-ratings{line-height:20px}.wp-customizer .theme-overlay .theme-wrap{right:90px;left:90px;top:45px;bottom:45px;z-index:120}.wp-customizer .theme-overlay .theme-actions{text-align:left;padding:10px 25px 5px;background:#f0f0f1;border-top:1px solid #dcdcde}.wp-customizer .theme-overlay .theme-actions .theme-install.preview{margin-right:8px}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-header{background:#f0f0f1}.wp-customizer .theme-overlay .theme-header .close:before,.wp-customizer .theme-overlay .theme-header button{color:#3c434a}.wp-customizer .theme-overlay .theme-header .close:focus,.wp-customizer .theme-overlay .theme-header .close:hover,.wp-customizer .theme-overlay .theme-header .left:focus,.wp-customizer .theme-overlay .theme-header .left:hover,.wp-customizer .theme-overlay .theme-header .right:focus,.wp-customizer .theme-overlay .theme-header .right:hover{background:#fff;border-bottom:4px solid #2271b1;color:#2271b1}.wp-customizer .theme-overlay .theme-header .close:focus:before,.wp-customizer .theme-overlay .theme-header .close:hover:before{color:#2271b1}.wp-customizer .theme-overlay .theme-header button.disabled,.wp-customizer .theme-overlay .theme-header button.disabled:focus,.wp-customizer .theme-overlay .theme-header button.disabled:hover{border-bottom:none;background:0 0;color:#c3c4c7}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{right:0;left:0;top:0;bottom:0}.wp-customizer .theme-browser .themes{padding-left:25px}}body.cheatin{font-size:medium;height:auto;background:#fff;border:1px solid #c3c4c7;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;box-shadow:0 1px 1px rgba(0,0,0,.04)}body.cheatin h1{border-bottom:1px solid #dcdcde;clear:both;color:#50575e;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin:0 10px 0 0;transition:all .2s;-webkit-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:0;font:normal 20px/1 dashicons;vertical-align:middle;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#8c8f94;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:normal 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#1d2327;background:#f0f0f1}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#dcdcde;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{left:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#f0f0f1;border-color:#8c8f94;color:#2c3338;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{transform:rotate(-45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;right:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#f0f0f1;transition:right .18s;border-left:1px solid #dcdcde}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #dcdcde}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#f0f0f1}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;min-height:32px;margin:1px 0;padding:0 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;right:16px;width:30px;height:30px;line-height:2.1;text-align:center;color:#646970}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;left:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#d63638;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#d63638}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after,.themes-filter-bar .search-icon:after{content:"\f179";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .search-icon{position:absolute;top:7px;right:26px;z-index:1;color:#646970;height:30px;width:30px;line-height:2;text-align:center}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:15px 60px 15px 15px;background:#fff;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-header button.random .dice{margin-top:0}.customize-control-checkbox .customize-inside-control-row,.customize-control-nav_menu_auto_add .customize-inside-control-row,.customize-control-radio .customize-inside-control-row{margin-right:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:-32px}.customize-control input[type=checkbox]+label+br,.customize-control input[type=radio]+label+br{line-height:2.5}.customize-control .date-time-fields select{height:39px}.date-time-fields .date-input.month{width:79px}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:55px}.date-time-fields .date-input.year{width:80px}#customize-control-changeset_preview_link a{bottom:16px}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{bottom:10px}.media-widget-control .media-widget-buttons .button.change-media,.media-widget-control .media-widget-buttons .button.edit-media,.media-widget-control .media-widget-buttons .button.select-media{margin-top:12px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:3px 25px 3px 0}}@media screen and (max-width:1200px){.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main{right:67%}}@media screen and (max-width:640px){.wp-full-overlay.collapsed #customize-controls{margin-right:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;right:48px;line-height:2.6;font-size:14px;padding:0 12px 4px;margin:0;height:45px;background:#f0f0f1;border:0;border-left:1px solid #dcdcde;border-top:4px solid #f0f0f1;color:#50575e;cursor:pointer;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.preview-only #customize-save-button-wrapper{margin-top:-46px}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:normal 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-left:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}.wp-core-ui.wp-customizer .button{min-height:30px;padding:0 14px;line-height:2;font-size:14px;vertical-align:middle}#customize-control-changeset_status .customize-inside-control-row{padding-top:15px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 14px 12px 10px;margin:0;line-height:24px;color:#50575e;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}.reorder,.reordering .reorder-done{padding:8px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:0}}@media screen and (max-width:600px){.wp-full-overlay.expanded{margin-right:0}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{top:46px;z-index:10}body.wp-customizer .wp-full-overlay.expanded #customize-sidebar-outer-content{right:-100%}body.wp-customizer.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{right:0}} \ No newline at end of file +body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked{background-color:rgba(0,0,0,.7);padding:25px}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .customize-changeset-locked-message{margin-right:auto;margin-left:auto;max-width:366px;min-height:64px;width:auto;padding:25px 109px 25px 25px;position:relative;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;overflow-y:auto;text-align:right;top:calc(50% - 100px)}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .currently-editing{margin-top:0}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .action-buttons{margin-bottom:0}.customize-changeset-locked-avatar{width:64px;position:absolute;right:25px;top:25px}.wp-core-ui.wp-customizer .customize-changeset-locked-message a.button{margin-left:10px;margin-top:0}#customize-controls .description{color:#50575e}#customize-save-button-wrapper{float:left;margin-top:9px}body:not(.ready) #customize-save-button-wrapper .save{visibility:hidden}#customize-save-button-wrapper .save{float:right;border-radius:3px;box-shadow:none;margin-top:0}#customize-save-button-wrapper .save:focus,#publish-settings:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}#customize-save-button-wrapper .save.has-next-sibling{border-radius:0 3px 3px 0}#customize-sidebar-outer-content{position:absolute;top:0;bottom:0;right:0;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:100%;margin:0;z-index:-1;background:#f0f0f1;transition:right .18s;border-left:1px solid #dcdcde;border-right:1px solid #dcdcde;height:100%}@media (prefers-reduced-motion:reduce){#customize-sidebar-outer-content{transition:none}}#customize-theme-controls .control-section-outer{display:none!important}#customize-outer-theme-controls .accordion-section-content{padding:12px}#customize-outer-theme-controls .accordion-section-content.open{display:block}.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{visibility:visible;right:100%;transition:right .18s}@media (prefers-reduced-motion:reduce){.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{transition:none}}.customize-outer-pane-parent{margin:0}.outer-section-open .wp-full-overlay.expanded .wp-full-overlay-main{right:300px;opacity:.4}.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-menu-items .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main{right:64%}#customize-outer-theme-controls li.notice{padding-top:8px;padding-bottom:8px;margin-right:0;margin-bottom:10px}#publish-settings{text-indent:0;border-radius:3px 0 0 3px;padding-right:0;padding-left:0;box-shadow:none;font-size:14px;width:30px;float:right;transform:none;margin-top:0;line-height:2}body.trashing #customize-save-button-wrapper .save,body.trashing #publish-settings,body:not(.ready) #publish-settings{display:none}#customize-header-actions .spinner{margin-top:13px;margin-left:4px}.saving #customize-header-actions .spinner,.trashing #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #dcdcde}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}.outer-section-open #customize-controls .wp-full-overlay-sidebar-content{background:#f0f0f1}#customize-controls .customize-info{border:none;border-bottom:1px solid #dcdcde;margin-bottom:15px}#customize-control-changeset_preview_link input,#customize-control-changeset_status .customize-inside-control-row{background-color:#fff;border-bottom:1px solid #dcdcde;box-sizing:content-box;width:100%;margin-right:-12px;padding-right:12px;padding-left:12px}#customize-control-trash_changeset{margin-top:20px}#customize-control-trash_changeset .button-link{position:relative;padding-right:24px;display:inline-block}#customize-control-trash_changeset .button-link:before{content:"\f182";font:normal 22px dashicons;text-decoration:none;position:absolute;right:0;top:-2px}#customize-controls .date-input:invalid{border-color:#d63638}#customize-control-changeset_status .customize-inside-control-row{padding-top:10px;padding-bottom:10px;font-weight:500}#customize-control-changeset_status .customize-inside-control-row:first-of-type{border-top:1px solid #dcdcde}#customize-control-changeset_status .customize-control-title{margin-bottom:6px}#customize-control-changeset_status input{margin-right:0}#customize-control-changeset_preview_link{position:relative;display:block}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{margin:0;position:absolute;bottom:9px;left:0}.preview-link-wrapper{position:relative}.customize-copy-preview-link:after,.customize-copy-preview-link:before{content:"";height:28px;position:absolute;background:#fff;top:-1px}.customize-copy-preview-link:before{right:-10px;width:9px;opacity:.75}.customize-copy-preview-link:after{right:-5px;width:4px;opacity:.8}#customize-control-changeset_preview_link input{line-height:2.85714286;border-top:1px solid #dcdcde;border-right:none;border-left:none;text-indent:-999px;color:#fff;min-height:40px}#customize-control-changeset_preview_link label{position:relative;display:block}#customize-control-changeset_preview_link a{display:inline-block;position:absolute;white-space:nowrap;overflow:hidden;width:90%;bottom:14px;font-size:14px;text-decoration:none}#customize-control-changeset_preview_link a.disabled,#customize-control-changeset_preview_link a.disabled:active,#customize-control-changeset_preview_link a.disabled:focus,#customize-control-changeset_preview_link a.disabled:visited{color:#000;opacity:.4;cursor:default;outline:0;box-shadow:none}#sub-accordion-section-publish_settings .customize-section-description-container{display:none}#customize-controls .customize-info.section-meta{margin-bottom:15px}.customize-control-date_time .customize-control-description+.date-time-fields.includes-time{margin-top:10px}.customize-control.customize-control-date_time .date-time-fields .date-input.day{margin-left:0}.date-time-fields .date-input.month{width:auto;margin:0}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:46px}.date-time-fields .date-input.year{width:65px}.date-time-fields .date-input.meridian{width:auto;margin:0}.date-time-fields .time-row{margin-top:12px}#customize-control-changeset_preview_link{margin-top:6px}#customize-control-changeset_status{margin-bottom:0;padding-bottom:0}#customize-control-changeset_scheduled_date{box-sizing:content-box;width:100%;margin-right:-12px;padding:12px;background:#fff;border-bottom:1px solid #dcdcde;margin-bottom:0}#customize-control-changeset_scheduled_date .customize-control-description{font-style:normal}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#50575e;border-right:none;border-left:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#2c3338}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:1.9}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title,#customize-outer-theme-controls .customize-pane-child .customize-section-title h3,#customize-outer-theme-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;left:1px;padding:20px 10px 10px 20px;width:20px;height:20px;cursor:pointer;box-shadow:none;background:0 0;color:#50575e;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;right:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#2271b1}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice,#customize-outer-theme-controls .customize-info .customize-section-description{color:#50575e;display:none;background:#fff;padding:12px 15px;border-top:1px solid #dcdcde}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}.no-widget-areas-rendered-notice{font-style:italic}.no-widget-areas-rendered-notice p:first-child{margin-top:0}.no-widget-areas-rendered-notice p:last-child{margin-bottom:0}#customize-controls .customize-info .customize-section-description{margin-bottom:15px}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-left:30px}#customize-outer-theme-controls .control-section,#customize-theme-controls .control-section{border:none}#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{color:#50575e;background-color:#fff;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}@media (prefers-reduced-motion:reduce){#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{transition:none}}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#50575e;background-color:#fff;border-right:4px solid #fff}#customize-outer-theme-controls .accordion-section-title:after,#customize-theme-controls .accordion-section-title:after{content:"\f341";color:#a7aaad}#customize-outer-theme-controls .accordion-section-content,#customize-theme-controls .accordion-section-content{color:#50575e;background:0 0}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1}#accordion-section-themes+.control-section{border-top:1px solid #dcdcde}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f6f7f7}#customize-outer-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#2271b1}#customize-theme-controls .control-section.open{border-bottom:1px solid #f0f0f1}#customize-outer-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#f0f0f1!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#dcdcde}#customize-theme-controls .control-panel-content:not(.control-panel-nav_menus) .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title{border-top:1px solid #dcdcde}#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu+.control-section-nav_menu{border-top:none}#customize-theme-controls>ul{margin:0}#customize-theme-controls .accordion-section-content{position:absolute;top:0;right:100%;width:100%;margin:0;padding:12px;box-sizing:border-box}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{overflow:visible;width:100%;margin:0;padding:0;box-sizing:border-box;transition:.18s transform cubic-bezier(.645, .045, .355, 1)}@media (prefers-reduced-motion:reduce){#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{transition:none}}#customize-theme-controls .customize-pane-child.skip-transition{transition:none}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;right:0;visibility:hidden;height:0;max-height:none;overflow:hidden;transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open{transform:none}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;transform:translateX(100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.control-section-nav_menu .customize-section-description-container,.control-section-new_menu .customize-section-description-container,.customize-section-description-container{margin-bottom:15px}.control-section-nav_menu .customize-control,.control-section-new_menu .customize-control{margin-bottom:0}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #dcdcde;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description{margin-top:0}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #dcdcde;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 14px 12px 10px;margin:0;line-height:21px;color:#50575e}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;right:0;width:45px;height:41px;padding:0 0 0 2px;background:#f0f0f1;border:none;border-top:4px solid #f0f0f1;border-left:1px solid #dcdcde;color:#3c434a;text-align:right;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:right;width:48px;height:71px;padding:0 0 0 24px;margin:0;background:#fff;border:none;border-left:1px solid #dcdcde;border-right:4px solid #fff;box-shadow:none;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-right:48px;border-right:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#50575e;border-right-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#2271b1;border-top-color:#2271b1;box-shadow:none;outline:1px solid transparent}#customize-theme-controls .accordion-section-title:focus .customize-action{outline:1px solid transparent;outline-offset:1px}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.customize-controls-close:before{font:normal 22px/45px dashicons;content:"\f335";position:relative;top:-3px;right:13px}.customize-panel-back:before,.customize-section-back:before{font:normal 20px/72px dashicons;content:"\f345";position:relative;right:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#f0f0f1;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-right:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-section-description ul{margin-right:1em}.customize-section-description ul>li{list-style:disc}.section-description-buttons{text-align:left}.customize-control{width:100%;float:right;clear:both;margin-bottom:12px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=range],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:100%;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:1.75;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:1.4;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f504";top:3px;position:relative;padding-right:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control .customize-inside-control-row{line-height:1.6;display:block;margin-right:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:4px;margin-right:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:1.6}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-checkbox label,.customize-control-radio label{vertical-align:top}.customize-control .attachment-thumb.type-icon{float:right;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image,.customize-control .wp-media-wrapper.wp-video,.customize-control-header .current{line-height:0}.customize-control-site_icon .favicon-preview .browser-preview{vertical-align:top}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:right}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#f0f0f1;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;padding:5px 1px 5px 0;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 6px 2px 0;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid #d63638}.customize-control-dropdown-pages .add-new-toggle{margin-right:1px;font-weight:600;line-height:2.2}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#f0f0f1;border-left:1px solid #dcdcde}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{box-shadow:inset 0 0 0 2px #d63638;transition:.15s box-shadow linear}#customize-controls .customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:9px 14px;overflow:hidden}#customize-controls .customize-control-notifications-container .notice.is-dismissible{padding-left:38px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container{margin-top:8px}.customize-control-text.has-error input{outline:2px solid #d63638}#customize-controls #customize-notifications-area{position:absolute;top:46px;width:100%;border-bottom:1px solid #dcdcde;display:block;padding:0;margin:0}.wp-full-overlay.collapsed #customize-controls #customize-notifications-area{display:none!important}#customize-controls #customize-notifications-area:not(.has-overlay-notifications),#customize-controls .customize-section-title>.customize-control-notifications-container:not(.has-overlay-notifications),#customize-controls .panel-meta>.customize-control-notifications-container:not(.has-overlay-notifications){max-height:210px;overflow-x:hidden;overflow-y:auto}#customize-controls #customize-notifications-area .notice,#customize-controls #customize-notifications-area>ul,#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container .notice{margin:0}#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container{border-top:1px solid #dcdcde}#customize-controls #customize-notifications-area .notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice{padding:9px 14px}#customize-controls #customize-notifications-area .notice.is-dismissible,#customize-controls .customize-section-title>.customize-control-notifications-container .notice.is-dismissible,#customize-controls .panel-meta>.customize-control-notifications-container .notice.is-dismissible{padding-left:38px}#customize-controls #customize-notifications-area .notice+.notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice+.notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice+.notice{margin-top:1px}@keyframes customize-fade-in{0%{opacity:0}100%{opacity:1}}#customize-controls #customize-notifications-area .notice.notification-overlay,#customize-controls .notice.notification-overlay{margin:0;border-right:0}#customize-controls .customize-control-notifications-container.has-overlay-notifications{animation:customize-fade-in .5s;z-index:30}#customize-controls #customize-notifications-area .notice.notification-overlay .notification-message{clear:both;color:#1d2327;font-size:18px;font-style:normal;margin:0;padding:2em 0;text-align:center;width:100%;display:block;top:50%;position:relative}#customize-control-show_on_front.has-error{margin-bottom:0}#customize-control-show_on_front.has-error .customize-control-notifications-container{margin-top:12px}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #f0f0f1;-webkit-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#f0f0f1}.customize-control .dropdown-arrow:after{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#2c3338}.customize-control .dropdown-status{color:#2c3338;background:#f0f0f1;display:none;max-width:112px}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#50575e;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control .actions .button{margin-top:12px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control-header button img{display:block}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{width:auto;height:auto;white-space:normal}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .button-add-media,.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #c3c4c7;box-sizing:border-box;padding:9px 0;line-height:1.6}.customize-control .attachment-media-view .button-add-media{cursor:pointer;background-color:#f0f0f1;color:#2c3338}.customize-control .attachment-media-view .button-add-media:hover{background-color:#fff}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fff;border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#50575e;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:12px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:"";position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #72aee6;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#50575e;background:rgba(0,0,0,.5);position:absolute;top:10px;right:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{right:auto;left:10px}.customize-control-header .header-view .close:focus{outline:1px solid #4f94d4}.customize-control-header .random.placeholder{cursor:pointer;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{animation:dice-color-change 3s infinite}.button-see-me{animation:bounce .7s 1;transform-origin:center bottom}@keyframes bounce{20%,53%,80%,from,to{animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-12px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-6px,0)}90%{transform:translate3d(0,-1px,0)}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 3px 1px rgba(79,148,212,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{margin-left:8px}.customize-control-background_position .background-position-control .button-group{display:block}.customize-control-code_editor textarea{width:100%;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;-o-tab-size:2;tab-size:2}.customize-control-code_editor .CodeMirror,.customize-control-code_editor textarea{height:14em}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;height:500px}.customize-section-description-container+#customize-control-custom_css .customize-control-title{margin-right:12px}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-left:0;border-right:0;height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:-12px;width:299px;width:calc(100% + 24px);margin-bottom:-12px}.customize-section-description-container+#customize-control-custom_css:last-child .CodeMirror{height:calc(100vh - 185px)}.CodeMirror-hints,.CodeMirror-lint-tooltip{z-index:500000!important}.customize-section-description-container+#customize-control-custom_css:last-child .customize-control-notifications-container{margin-right:12px;margin-left:12px}.theme-browser .theme.active .theme-actions,.wp-customizer .theme-browser .theme .theme-actions{padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:0}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:calc(100vh - 140px)}}#customize-theme-controls .control-panel-themes{border-bottom:none}#customize-theme-controls .control-panel-themes>.accordion-section-title,#customize-theme-controls .control-panel-themes>.accordion-section-title:hover{cursor:default;background:#fff;color:#50575e;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;border-right:none;border-left:none;margin:0 0 15px;padding-left:100px}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-left:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action,.control-panel-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-theme-controls .control-panel-themes .accordion-section-title .change-theme{position:absolute;left:10px;top:50%;margin-top:-14px;font-weight:400}#customize-notifications-area .notification-message button.switch-to-editor{display:block;margin-top:6px;font-weight:400}#customize-theme-controls .control-panel-themes>.accordion-section-title:after{display:none}.control-panel-themes .customize-themes-full-container{position:fixed;top:0;right:0;transition:.18s right ease-in-out;margin:0 300px 0 0;padding:71px 0 25px;overflow-y:scroll;width:calc(100% - 300px);height:calc(100% - 96px);background:#f0f0f1;z-index:20}@media (prefers-reduced-motion:reduce){.control-panel-themes .customize-themes-full-container{transition:none}}@media screen and (min-width:1670px){.control-panel-themes .customize-themes-full-container{width:82%;left:0;right:initial}}.modal-open .control-panel-themes .customize-themes-full-container{overflow-y:visible}#customize-header-actions .customize-controls-preview-toggle,#customize-header-actions .spinner,#customize-save-button-wrapper{transition:.18s margin ease-in-out}#customize-footer-actions,#customize-footer-actions .collapse-sidebar{bottom:0;transition:.18s bottom ease-in-out}.in-themes-panel:not(.animating) #customize-footer-actions,.in-themes-panel:not(.animating) #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel:not(.animating) #customize-header-actions .spinner,.in-themes-panel:not(.animating) #customize-preview{visibility:hidden}.wp-full-overlay.in-themes-panel{background:#f0f0f1}.in-themes-panel #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel #customize-header-actions .spinner,.in-themes-panel #customize-save-button-wrapper{margin-top:-46px}.in-themes-panel #customize-footer-actions,.in-themes-panel #customize-footer-actions .collapse-sidebar{bottom:-45px}.in-themes-panel.animating .control-panel-themes .filter-themes-count{display:none}.in-themes-panel.wp-full-overlay .wp-full-overlay-sidebar-content{bottom:0}.themes-filter-bar .feature-filter-toggle{float:left;margin:3px 25px 3px 0}.themes-filter-bar .feature-filter-toggle:before{content:"\f111";margin:0 0 0 5px;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .feature-filter-toggle.open{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.themes-filter-bar .feature-filter-toggle .filter-count-filters{display:none}.filter-drawer{box-sizing:border-box;width:100%;position:absolute;top:46px;right:0;padding:25px 25px 25px 0;border-top:0;margin:0;background:#f0f0f1;border-bottom:1px solid #dcdcde}.filter-drawer .filter-group{margin:0 0 0 25px;width:calc((100% - 75px)/ 3);min-width:200px;max-width:320px}@keyframes themes-fade-in{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.control-panel-themes .customize-themes-full-container.animate{animation:.6s themes-fade-in 1}.in-themes-panel:not(.animating) .control-panel-themes .filter-themes-count{animation:.6s themes-fade-in 1}.control-panel-themes .filter-themes-count{position:relative;float:left;line-height:2.6}.control-panel-themes .filter-themes-count .themes-displayed{font-weight:600;color:#50575e}.customize-themes-notifications{margin:0}.control-panel-themes .customize-themes-notifications .notice{margin:0 0 25px}.customize-themes-full-container .customize-themes-section{display:none!important;overflow:hidden}.customize-themes-full-container .customize-themes-section.current-section{display:list-item!important}.control-section .customize-section-text-before{padding:0 15px 8px 0;margin:15px 0 0;line-height:16px;border-bottom:1px solid #dcdcde;color:#50575e}.control-panel-themes .customize-themes-section-title{width:100%;background:#fff;box-shadow:none;outline:0;border-top:none;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;border-left:none;cursor:pointer;padding:10px 15px;position:relative;text-align:right;font-size:14px;font-weight:600;color:#50575e;text-shadow:none}.control-panel-themes #accordion-section-installed_themes{border-top:1px solid #dcdcde}.control-panel-themes .theme-section{margin:0;position:relative}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-right-color:#2271b1;color:#2271b1;background:#f6f7f7}.customize-themes-section-title:not(.selected):after{content:"";display:block;position:absolute;top:9px;left:15px;width:18px;height:18px;border-radius:100%;border:1px solid #c3c4c7;background:#fff}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{content:"\f147";font:16px/1 dashicons;box-sizing:border-box;width:20px;height:20px;padding:3px 1px 1px 3px;border-radius:100%;position:absolute;top:9px;left:15px;background:#2271b1;color:#fff}.control-panel-themes .customize-themes-section-title.selected{color:#2271b1}#customize-theme-controls .themes.accordion-section-content{position:relative;right:0;padding:0;width:100%}.loading .customize-themes-section .spinner{display:block;visibility:visible;position:relative;clear:both;width:20px;height:20px;right:calc(50% - 10px);float:none;margin-top:50px}.customize-themes-section .no-themes,.customize-themes-section .no-themes-local{display:none}.themes-section-installed_themes .theme .notice-success:not(.updated-message){display:none}.customize-control-theme .theme{width:100%;margin:0;border:1px solid #dcdcde;background:#fff}.customize-control-theme .theme .theme-actions,.customize-control-theme .theme .theme-name{background:#fff;border:none}.customize-control.customize-control-theme{box-sizing:border-box;width:25%;max-width:600px;margin:0 0 25px 25px;padding:0;clear:none}@media screen and (min-width:2101px){.customize-control.customize-control-theme{width:calc((100% - 125px)/ 5 - 1px)}}@media screen and (min-width:1601px) and (max-width:2100px){.customize-control.customize-control-theme{width:calc((100% - 100px)/ 4 - 1px)}}@media screen and (min-width:1201px) and (max-width:1600px){.customize-control.customize-control-theme{width:calc((100% - 75px)/ 3 - 1px)}}@media screen and (min-width:851px) and (max-width:1200px){.customize-control.customize-control-theme{width:calc((100% - 50px)/ 2 - 1px)}}@media screen and (max-width:850px){.customize-control.customize-control-theme{width:100%}}.wp-customizer .theme-browser .themes{padding:0 25px 25px 0;transition:.18s margin-top linear}.wp-customizer .theme-browser .theme .theme-actions{opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.customize-preview-header.themes-filter-bar{position:fixed;top:0;right:300px;width:calc(100% - 300px);height:46px;background:#f0f0f1;z-index:10;padding:6px 25px;box-sizing:border-box;border-bottom:1px solid #dcdcde}@media screen and (min-width:1670px){.customize-preview-header.themes-filter-bar{width:82%;left:0;right:initial}}.themes-filter-bar .themes-filter-container{margin:0;padding:0}.themes-filter-bar .wp-filter-search{line-height:1.8;padding:6px 30px 6px 10px;max-width:100%;width:40%;min-width:300px;position:absolute;top:6px;right:25px;height:32px;margin:1px 0}@media screen and (max-height:540px),screen and (max-width:1018px){.customize-preview-header.themes-filter-bar{position:relative;right:0;width:100%;margin:0 0 25px}.filter-drawer{top:46px}.wp-customizer .theme-browser .themes{padding:0 25px 25px 0;overflow:hidden}.control-panel-themes .customize-themes-full-container{margin-top:0;padding:0;height:100%;width:calc(100% - 300px)}}@media screen and (max-width:1018px){.filter-drawer .filter-group{width:calc((100% - 50px)/ 2)}}@media screen and (max-width:900px){.customize-preview-header.themes-filter-bar{height:86px;padding-top:46px}.themes-filter-bar .wp-filter-search{width:calc(100% - 50px);margin:0;min-width:200px}.filter-drawer{top:86px}.control-panel-themes .filter-themes-count{float:right}}@media screen and (max-width:792px){.filter-drawer .filter-group{width:calc(100% - 25px)}}.control-panel-themes .customize-themes-mobile-back{display:none}@media screen and (max-width:600px){.filter-drawer{top:132px}.wp-full-overlay.showing-themes .control-panel-themes .filter-themes-count .filter-themes{display:block;float:left}.control-panel-themes .customize-themes-full-container{width:100%;margin:0;padding-top:46px;height:calc(100% - 46px);z-index:1;display:none}.showing-themes .control-panel-themes .customize-themes-full-container{display:block}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back{display:block;position:fixed;top:0;right:0;background:#f0f0f1;color:#3c434a;border-radius:0;box-shadow:none;border:none;height:46px;width:100%;z-index:10;text-align:right;text-shadow:none;border-bottom:1px solid #dcdcde;border-right:4px solid transparent;margin:0;padding:0;font-size:0;overflow:hidden}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:before{right:0;top:0;height:46px;width:26px;display:block;line-height:2.3;padding:0 8px;border-left:1px solid #dcdcde}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:focus,.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:hover{color:#2271b1;background:#f6f7f7;border-right-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.showing-themes #customize-header-actions{display:none}#customize-controls{width:100%}}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;right:0;top:0;left:0;bottom:0;z-index:109}.wp-customizer.modal-open #customize-header-actions,.wp-customizer.modal-open .control-panel-themes .customize-themes-section-title.selected:after,.wp-customizer.modal-open .control-panel-themes .filter-themes-count{z-index:-1}.wp-full-overlay.in-themes-panel.themes-panel-expanded #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(240,240,241,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .star-rating{float:right;margin-left:8px}.wp-customizer .theme-rating .num-ratings{line-height:20px}.wp-customizer .theme-overlay .theme-wrap{right:90px;left:90px;top:45px;bottom:45px;z-index:120}.wp-customizer .theme-overlay .theme-actions{text-align:left;padding:10px 25px 5px;background:#f0f0f1;border-top:1px solid #dcdcde}.wp-customizer .theme-overlay .theme-actions .theme-install.preview{margin-right:8px}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-header{background:#f0f0f1}.wp-customizer .theme-overlay .theme-header .close:before,.wp-customizer .theme-overlay .theme-header button{color:#3c434a}.wp-customizer .theme-overlay .theme-header .close:focus,.wp-customizer .theme-overlay .theme-header .close:hover,.wp-customizer .theme-overlay .theme-header .left:focus,.wp-customizer .theme-overlay .theme-header .left:hover,.wp-customizer .theme-overlay .theme-header .right:focus,.wp-customizer .theme-overlay .theme-header .right:hover{background:#fff;border-bottom:4px solid #2271b1;color:#2271b1}.wp-customizer .theme-overlay .theme-header .close:focus:before,.wp-customizer .theme-overlay .theme-header .close:hover:before{color:#2271b1}.wp-customizer .theme-overlay .theme-header button.disabled,.wp-customizer .theme-overlay .theme-header button.disabled:focus,.wp-customizer .theme-overlay .theme-header button.disabled:hover{border-bottom:none;background:0 0;color:#c3c4c7}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{right:0;left:0;top:0;bottom:0}.wp-customizer .theme-browser .themes{padding-left:25px}}body.cheatin{font-size:medium;height:auto;background:#fff;border:1px solid #c3c4c7;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;box-shadow:0 1px 1px rgba(0,0,0,.04)}body.cheatin h1{border-bottom:1px solid #dcdcde;clear:both;color:#50575e;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin:0 10px 0 0;transition:all .2s;-webkit-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:0;font:normal 20px/1 dashicons;vertical-align:middle;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#8c8f94;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:normal 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#1d2327;background:#f0f0f1}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#dcdcde;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{left:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#f0f0f1;border-color:#8c8f94;color:#2c3338;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{transform:rotate(-45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;right:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#f0f0f1;transition:right .18s;border-left:1px solid #dcdcde}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #dcdcde}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#f0f0f1}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;min-height:32px;margin:1px 0;padding:0 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;right:16px;width:30px;height:30px;line-height:2.1;text-align:center;color:#646970}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;left:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#d63638;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#d63638}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after,.themes-filter-bar .search-icon:after{content:"\f179";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .search-icon{position:absolute;top:7px;right:26px;z-index:1;color:#646970;height:30px;width:30px;line-height:2;text-align:center}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:15px 60px 15px 15px;background:#fff;border-bottom:1px solid #dcdcde;border-right:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-header button.random .dice{margin-top:0}.customize-control-checkbox .customize-inside-control-row,.customize-control-nav_menu_auto_add .customize-inside-control-row,.customize-control-radio .customize-inside-control-row{margin-right:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:-32px}.customize-control input[type=checkbox]+label+br,.customize-control input[type=radio]+label+br{line-height:2.5}.customize-control .date-time-fields select{height:39px}.date-time-fields .date-input.month{width:79px}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:55px}.date-time-fields .date-input.year{width:80px}#customize-control-changeset_preview_link a{bottom:16px}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{bottom:10px}.media-widget-control .media-widget-buttons .button.change-media,.media-widget-control .media-widget-buttons .button.edit-media,.media-widget-control .media-widget-buttons .button.select-media{margin-top:12px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:3px 25px 3px 0}}@media screen and (max-width:1200px){.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main{right:67%}}@media screen and (max-width:640px){.wp-full-overlay.collapsed #customize-controls{margin-right:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;right:48px;line-height:2.6;font-size:14px;padding:0 12px 4px;margin:0;height:45px;background:#f0f0f1;border:0;border-left:1px solid #dcdcde;border-top:4px solid #f0f0f1;color:#50575e;cursor:pointer;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.preview-only #customize-save-button-wrapper{margin-top:-46px}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:normal 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-left:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}.wp-core-ui.wp-customizer .button{min-height:30px;padding:0 14px;line-height:2;font-size:14px;vertical-align:middle}#customize-control-changeset_status .customize-inside-control-row{padding-top:15px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 14px 12px 10px;margin:0;line-height:24px;color:#50575e;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}.reorder,.reordering .reorder-done{padding:8px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:0}}@media screen and (max-width:600px){.wp-full-overlay.expanded{margin-right:0}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{top:46px;z-index:10}body.wp-customizer .wp-full-overlay.expanded #customize-sidebar-outer-content{right:-100%}body.wp-customizer.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{right:0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.css index 3548f12e9c..9422d0cc8c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.css @@ -1604,6 +1604,7 @@ p.customize-section-description { font-family: Consolas, Monaco, monospace; font-size: 12px; padding: 6px 8px; + -o-tab-size: 2; tab-size: 2; } .customize-control-code_editor textarea, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.min.css index 4efdfa39ef..bd213e14ff 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/customize-controls.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked{background-color:rgba(0,0,0,.7);padding:25px}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .customize-changeset-locked-message{margin-left:auto;margin-right:auto;max-width:366px;min-height:64px;width:auto;padding:25px 25px 25px 109px;position:relative;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;overflow-y:auto;text-align:left;top:calc(50% - 100px)}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .currently-editing{margin-top:0}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .action-buttons{margin-bottom:0}.customize-changeset-locked-avatar{width:64px;position:absolute;left:25px;top:25px}.wp-core-ui.wp-customizer .customize-changeset-locked-message a.button{margin-right:10px;margin-top:0}#customize-controls .description{color:#50575e}#customize-save-button-wrapper{float:right;margin-top:9px}body:not(.ready) #customize-save-button-wrapper .save{visibility:hidden}#customize-save-button-wrapper .save{float:left;border-radius:3px;box-shadow:none;margin-top:0}#customize-save-button-wrapper .save:focus,#publish-settings:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}#customize-save-button-wrapper .save.has-next-sibling{border-radius:3px 0 0 3px}#customize-sidebar-outer-content{position:absolute;top:0;bottom:0;left:0;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:100%;margin:0;z-index:-1;background:#f0f0f1;transition:left .18s;border-right:1px solid #dcdcde;border-left:1px solid #dcdcde;height:100%}@media (prefers-reduced-motion:reduce){#customize-sidebar-outer-content{transition:none}}#customize-theme-controls .control-section-outer{display:none!important}#customize-outer-theme-controls .accordion-section-content{padding:12px}#customize-outer-theme-controls .accordion-section-content.open{display:block}.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{visibility:visible;left:100%;transition:left .18s}@media (prefers-reduced-motion:reduce){.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{transition:none}}.customize-outer-pane-parent{margin:0}.outer-section-open .wp-full-overlay.expanded .wp-full-overlay-main{left:300px;opacity:.4}.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-menu-items .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main{left:64%}#customize-outer-theme-controls li.notice{padding-top:8px;padding-bottom:8px;margin-left:0;margin-bottom:10px}#publish-settings{text-indent:0;border-radius:0 3px 3px 0;padding-left:0;padding-right:0;box-shadow:none;font-size:14px;width:30px;float:left;transform:none;margin-top:0;line-height:2}body.trashing #customize-save-button-wrapper .save,body.trashing #publish-settings,body:not(.ready) #publish-settings{display:none}#customize-header-actions .spinner{margin-top:13px;margin-right:4px}.saving #customize-header-actions .spinner,.trashing #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #dcdcde}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}.outer-section-open #customize-controls .wp-full-overlay-sidebar-content{background:#f0f0f1}#customize-controls .customize-info{border:none;border-bottom:1px solid #dcdcde;margin-bottom:15px}#customize-control-changeset_preview_link input,#customize-control-changeset_status .customize-inside-control-row{background-color:#fff;border-bottom:1px solid #dcdcde;box-sizing:content-box;width:100%;margin-left:-12px;padding-left:12px;padding-right:12px}#customize-control-trash_changeset{margin-top:20px}#customize-control-trash_changeset .button-link{position:relative;padding-left:24px;display:inline-block}#customize-control-trash_changeset .button-link:before{content:"\f182";font:normal 22px dashicons;text-decoration:none;position:absolute;left:0;top:-2px}#customize-controls .date-input:invalid{border-color:#d63638}#customize-control-changeset_status .customize-inside-control-row{padding-top:10px;padding-bottom:10px;font-weight:500}#customize-control-changeset_status .customize-inside-control-row:first-of-type{border-top:1px solid #dcdcde}#customize-control-changeset_status .customize-control-title{margin-bottom:6px}#customize-control-changeset_status input{margin-left:0}#customize-control-changeset_preview_link{position:relative;display:block}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{margin:0;position:absolute;bottom:9px;right:0}.preview-link-wrapper{position:relative}.customize-copy-preview-link:after,.customize-copy-preview-link:before{content:"";height:28px;position:absolute;background:#fff;top:-1px}.customize-copy-preview-link:before{left:-10px;width:9px;opacity:.75}.customize-copy-preview-link:after{left:-5px;width:4px;opacity:.8}#customize-control-changeset_preview_link input{line-height:2.85714286;border-top:1px solid #dcdcde;border-left:none;border-right:none;text-indent:-999px;color:#fff;min-height:40px}#customize-control-changeset_preview_link label{position:relative;display:block}#customize-control-changeset_preview_link a{display:inline-block;position:absolute;white-space:nowrap;overflow:hidden;width:90%;bottom:14px;font-size:14px;text-decoration:none}#customize-control-changeset_preview_link a.disabled,#customize-control-changeset_preview_link a.disabled:active,#customize-control-changeset_preview_link a.disabled:focus,#customize-control-changeset_preview_link a.disabled:visited{color:#000;opacity:.4;cursor:default;outline:0;box-shadow:none}#sub-accordion-section-publish_settings .customize-section-description-container{display:none}#customize-controls .customize-info.section-meta{margin-bottom:15px}.customize-control-date_time .customize-control-description+.date-time-fields.includes-time{margin-top:10px}.customize-control.customize-control-date_time .date-time-fields .date-input.day{margin-right:0}.date-time-fields .date-input.month{width:auto;margin:0}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:46px}.date-time-fields .date-input.year{width:65px}.date-time-fields .date-input.meridian{width:auto;margin:0}.date-time-fields .time-row{margin-top:12px}#customize-control-changeset_preview_link{margin-top:6px}#customize-control-changeset_status{margin-bottom:0;padding-bottom:0}#customize-control-changeset_scheduled_date{box-sizing:content-box;width:100%;margin-left:-12px;padding:12px;background:#fff;border-bottom:1px solid #dcdcde;margin-bottom:0}#customize-control-changeset_scheduled_date .customize-control-description{font-style:normal}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#50575e;border-left:none;border-right:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#2c3338}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:1.9}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title,#customize-outer-theme-controls .customize-pane-child .customize-section-title h3,#customize-outer-theme-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;right:1px;padding:20px 20px 10px 10px;width:20px;height:20px;cursor:pointer;box-shadow:none;background:0 0;color:#50575e;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;left:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#2271b1}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice,#customize-outer-theme-controls .customize-info .customize-section-description{color:#50575e;display:none;background:#fff;padding:12px 15px;border-top:1px solid #dcdcde}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}.no-widget-areas-rendered-notice{font-style:italic}.no-widget-areas-rendered-notice p:first-child{margin-top:0}.no-widget-areas-rendered-notice p:last-child{margin-bottom:0}#customize-controls .customize-info .customize-section-description{margin-bottom:15px}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-right:30px}#customize-outer-theme-controls .control-section,#customize-theme-controls .control-section{border:none}#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{color:#50575e;background-color:#fff;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}@media (prefers-reduced-motion:reduce){#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{transition:none}}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#50575e;background-color:#fff;border-left:4px solid #fff}#customize-outer-theme-controls .accordion-section-title:after,#customize-theme-controls .accordion-section-title:after{content:"\f345";color:#a7aaad}#customize-outer-theme-controls .accordion-section-content,#customize-theme-controls .accordion-section-content{color:#50575e;background:0 0}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1}#accordion-section-themes+.control-section{border-top:1px solid #dcdcde}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f6f7f7}#customize-outer-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#2271b1}#customize-theme-controls .control-section.open{border-bottom:1px solid #f0f0f1}#customize-outer-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#f0f0f1!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#dcdcde}#customize-theme-controls .control-panel-content:not(.control-panel-nav_menus) .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title{border-top:1px solid #dcdcde}#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu+.control-section-nav_menu{border-top:none}#customize-theme-controls>ul{margin:0}#customize-theme-controls .accordion-section-content{position:absolute;top:0;left:100%;width:100%;margin:0;padding:12px;box-sizing:border-box}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{overflow:visible;width:100%;margin:0;padding:0;box-sizing:border-box;transition:.18s transform cubic-bezier(.645, .045, .355, 1)}@media (prefers-reduced-motion:reduce){#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{transition:none}}#customize-theme-controls .customize-pane-child.skip-transition{transition:none}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;left:0;visibility:hidden;height:0;max-height:none;overflow:hidden;transform:translateX(100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open{transform:none}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.control-section-nav_menu .customize-section-description-container,.control-section-new_menu .customize-section-description-container,.customize-section-description-container{margin-bottom:15px}.control-section-nav_menu .customize-control,.control-section-new_menu .customize-control{margin-bottom:0}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #dcdcde;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description{margin-top:0}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #dcdcde;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 10px 12px 14px;margin:0;line-height:21px;color:#50575e}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;left:0;width:45px;height:41px;padding:0 2px 0 0;background:#f0f0f1;border:none;border-top:4px solid #f0f0f1;border-right:1px solid #dcdcde;color:#3c434a;text-align:left;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:left;width:48px;height:71px;padding:0 24px 0 0;margin:0;background:#fff;border:none;border-right:1px solid #dcdcde;border-left:4px solid #fff;box-shadow:none;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-left:48px;border-left:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#50575e;border-left-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#2271b1;border-top-color:#2271b1;box-shadow:none;outline:1px solid transparent}#customize-theme-controls .accordion-section-title:focus .customize-action{outline:1px solid transparent;outline-offset:1px}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.customize-controls-close:before{font:normal 22px/45px dashicons;content:"\f335";position:relative;top:-3px;left:13px}.customize-panel-back:before,.customize-section-back:before{font:normal 20px/72px dashicons;content:"\f341";position:relative;left:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#f0f0f1;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-left:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-section-description ul{margin-left:1em}.customize-section-description ul>li{list-style:disc}.section-description-buttons{text-align:right}.customize-control{width:100%;float:left;clear:both;margin-bottom:12px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=range],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:100%;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:1.75;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:1.4;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f504";top:3px;position:relative;padding-left:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control .customize-inside-control-row{line-height:1.6;display:block;margin-left:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:4px;margin-left:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:1.6}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-checkbox label,.customize-control-radio label{vertical-align:top}.customize-control .attachment-thumb.type-icon{float:left;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image,.customize-control .wp-media-wrapper.wp-video,.customize-control-header .current{line-height:0}.customize-control-site_icon .favicon-preview .browser-preview{vertical-align:top}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:left}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#f0f0f1;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;padding:5px 0 5px 1px;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 0 2px 6px;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid #d63638}.customize-control-dropdown-pages .add-new-toggle{margin-left:1px;font-weight:600;line-height:2.2}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#f0f0f1;border-right:1px solid #dcdcde}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{box-shadow:inset 0 0 0 2px #d63638;transition:.15s box-shadow linear}#customize-controls .customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:9px 14px;overflow:hidden}#customize-controls .customize-control-notifications-container .notice.is-dismissible{padding-right:38px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container{margin-top:8px}.customize-control-text.has-error input{outline:2px solid #d63638}#customize-controls #customize-notifications-area{position:absolute;top:46px;width:100%;border-bottom:1px solid #dcdcde;display:block;padding:0;margin:0}.wp-full-overlay.collapsed #customize-controls #customize-notifications-area{display:none!important}#customize-controls #customize-notifications-area:not(.has-overlay-notifications),#customize-controls .customize-section-title>.customize-control-notifications-container:not(.has-overlay-notifications),#customize-controls .panel-meta>.customize-control-notifications-container:not(.has-overlay-notifications){max-height:210px;overflow-x:hidden;overflow-y:auto}#customize-controls #customize-notifications-area .notice,#customize-controls #customize-notifications-area>ul,#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container .notice{margin:0}#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container{border-top:1px solid #dcdcde}#customize-controls #customize-notifications-area .notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice{padding:9px 14px}#customize-controls #customize-notifications-area .notice.is-dismissible,#customize-controls .customize-section-title>.customize-control-notifications-container .notice.is-dismissible,#customize-controls .panel-meta>.customize-control-notifications-container .notice.is-dismissible{padding-right:38px}#customize-controls #customize-notifications-area .notice+.notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice+.notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice+.notice{margin-top:1px}@keyframes customize-fade-in{0%{opacity:0}100%{opacity:1}}#customize-controls #customize-notifications-area .notice.notification-overlay,#customize-controls .notice.notification-overlay{margin:0;border-left:0}#customize-controls .customize-control-notifications-container.has-overlay-notifications{animation:customize-fade-in .5s;z-index:30}#customize-controls #customize-notifications-area .notice.notification-overlay .notification-message{clear:both;color:#1d2327;font-size:18px;font-style:normal;margin:0;padding:2em 0;text-align:center;width:100%;display:block;top:50%;position:relative}#customize-control-show_on_front.has-error{margin-bottom:0}#customize-control-show_on_front.has-error .customize-control-notifications-container{margin-top:12px}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #f0f0f1;-webkit-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#f0f0f1}.customize-control .dropdown-arrow:after{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#2c3338}.customize-control .dropdown-status{color:#2c3338;background:#f0f0f1;display:none;max-width:112px}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#50575e;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control .actions .button{margin-top:12px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control-header button img{display:block}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{width:auto;height:auto;white-space:normal}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .button-add-media,.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #c3c4c7;box-sizing:border-box;padding:9px 0;line-height:1.6}.customize-control .attachment-media-view .button-add-media{cursor:pointer;background-color:#f0f0f1;color:#2c3338}.customize-control .attachment-media-view .button-add-media:hover{background-color:#fff}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fff;border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#50575e;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:12px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:"";position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #72aee6;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#50575e;background:rgba(0,0,0,.5);position:absolute;top:10px;left:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{left:auto;right:10px}.customize-control-header .header-view .close:focus{outline:1px solid #4f94d4}.customize-control-header .random.placeholder{cursor:pointer;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{animation:dice-color-change 3s infinite}.button-see-me{animation:bounce .7s 1;transform-origin:center bottom}@keyframes bounce{20%,53%,80%,from,to{animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-12px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-6px,0)}90%{transform:translate3d(0,-1px,0)}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 3px 1px rgba(79,148,212,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{margin-right:8px}.customize-control-background_position .background-position-control .button-group{display:block}.customize-control-code_editor textarea{width:100%;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;tab-size:2}.customize-control-code_editor .CodeMirror,.customize-control-code_editor textarea{height:14em}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;height:500px}.customize-section-description-container+#customize-control-custom_css .customize-control-title{margin-left:12px}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-right:0;border-left:0;height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:-12px;width:299px;width:calc(100% + 24px);margin-bottom:-12px}.customize-section-description-container+#customize-control-custom_css:last-child .CodeMirror{height:calc(100vh - 185px)}.CodeMirror-hints,.CodeMirror-lint-tooltip{z-index:500000!important}.customize-section-description-container+#customize-control-custom_css:last-child .customize-control-notifications-container{margin-left:12px;margin-right:12px}.theme-browser .theme.active .theme-actions,.wp-customizer .theme-browser .theme .theme-actions{padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:0}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:calc(100vh - 140px)}}#customize-theme-controls .control-panel-themes{border-bottom:none}#customize-theme-controls .control-panel-themes>.accordion-section-title,#customize-theme-controls .control-panel-themes>.accordion-section-title:hover{cursor:default;background:#fff;color:#50575e;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;border-left:none;border-right:none;margin:0 0 15px;padding-right:100px}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-right:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action,.control-panel-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-theme-controls .control-panel-themes .accordion-section-title .change-theme{position:absolute;right:10px;top:50%;margin-top:-14px;font-weight:400}#customize-notifications-area .notification-message button.switch-to-editor{display:block;margin-top:6px;font-weight:400}#customize-theme-controls .control-panel-themes>.accordion-section-title:after{display:none}.control-panel-themes .customize-themes-full-container{position:fixed;top:0;left:0;transition:.18s left ease-in-out;margin:0 0 0 300px;padding:71px 0 25px;overflow-y:scroll;width:calc(100% - 300px);height:calc(100% - 96px);background:#f0f0f1;z-index:20}@media (prefers-reduced-motion:reduce){.control-panel-themes .customize-themes-full-container{transition:none}}@media screen and (min-width:1670px){.control-panel-themes .customize-themes-full-container{width:82%;right:0;left:initial}}.modal-open .control-panel-themes .customize-themes-full-container{overflow-y:visible}#customize-header-actions .customize-controls-preview-toggle,#customize-header-actions .spinner,#customize-save-button-wrapper{transition:.18s margin ease-in-out}#customize-footer-actions,#customize-footer-actions .collapse-sidebar{bottom:0;transition:.18s bottom ease-in-out}.in-themes-panel:not(.animating) #customize-footer-actions,.in-themes-panel:not(.animating) #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel:not(.animating) #customize-header-actions .spinner,.in-themes-panel:not(.animating) #customize-preview{visibility:hidden}.wp-full-overlay.in-themes-panel{background:#f0f0f1}.in-themes-panel #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel #customize-header-actions .spinner,.in-themes-panel #customize-save-button-wrapper{margin-top:-46px}.in-themes-panel #customize-footer-actions,.in-themes-panel #customize-footer-actions .collapse-sidebar{bottom:-45px}.in-themes-panel.animating .control-panel-themes .filter-themes-count{display:none}.in-themes-panel.wp-full-overlay .wp-full-overlay-sidebar-content{bottom:0}.themes-filter-bar .feature-filter-toggle{float:right;margin:3px 0 3px 25px}.themes-filter-bar .feature-filter-toggle:before{content:"\f111";margin:0 5px 0 0;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .feature-filter-toggle.open{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.themes-filter-bar .feature-filter-toggle .filter-count-filters{display:none}.filter-drawer{box-sizing:border-box;width:100%;position:absolute;top:46px;left:0;padding:25px 0 25px 25px;border-top:0;margin:0;background:#f0f0f1;border-bottom:1px solid #dcdcde}.filter-drawer .filter-group{margin:0 25px 0 0;width:calc((100% - 75px)/ 3);min-width:200px;max-width:320px}@keyframes themes-fade-in{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.control-panel-themes .customize-themes-full-container.animate{animation:.6s themes-fade-in 1}.in-themes-panel:not(.animating) .control-panel-themes .filter-themes-count{animation:.6s themes-fade-in 1}.control-panel-themes .filter-themes-count{position:relative;float:right;line-height:2.6}.control-panel-themes .filter-themes-count .themes-displayed{font-weight:600;color:#50575e}.customize-themes-notifications{margin:0}.control-panel-themes .customize-themes-notifications .notice{margin:0 0 25px}.customize-themes-full-container .customize-themes-section{display:none!important;overflow:hidden}.customize-themes-full-container .customize-themes-section.current-section{display:list-item!important}.control-section .customize-section-text-before{padding:0 0 8px 15px;margin:15px 0 0;line-height:16px;border-bottom:1px solid #dcdcde;color:#50575e}.control-panel-themes .customize-themes-section-title{width:100%;background:#fff;box-shadow:none;outline:0;border-top:none;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;border-right:none;cursor:pointer;padding:10px 15px;position:relative;text-align:left;font-size:14px;font-weight:600;color:#50575e;text-shadow:none}.control-panel-themes #accordion-section-installed_themes{border-top:1px solid #dcdcde}.control-panel-themes .theme-section{margin:0;position:relative}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#2271b1;color:#2271b1;background:#f6f7f7}.customize-themes-section-title:not(.selected):after{content:"";display:block;position:absolute;top:9px;right:15px;width:18px;height:18px;border-radius:100%;border:1px solid #c3c4c7;background:#fff}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{content:"\f147";font:16px/1 dashicons;box-sizing:border-box;width:20px;height:20px;padding:3px 3px 1px 1px;border-radius:100%;position:absolute;top:9px;right:15px;background:#2271b1;color:#fff}.control-panel-themes .customize-themes-section-title.selected{color:#2271b1}#customize-theme-controls .themes.accordion-section-content{position:relative;left:0;padding:0;width:100%}.loading .customize-themes-section .spinner{display:block;visibility:visible;position:relative;clear:both;width:20px;height:20px;left:calc(50% - 10px);float:none;margin-top:50px}.customize-themes-section .no-themes,.customize-themes-section .no-themes-local{display:none}.themes-section-installed_themes .theme .notice-success:not(.updated-message){display:none}.customize-control-theme .theme{width:100%;margin:0;border:1px solid #dcdcde;background:#fff}.customize-control-theme .theme .theme-actions,.customize-control-theme .theme .theme-name{background:#fff;border:none}.customize-control.customize-control-theme{box-sizing:border-box;width:25%;max-width:600px;margin:0 25px 25px 0;padding:0;clear:none}@media screen and (min-width:2101px){.customize-control.customize-control-theme{width:calc((100% - 125px)/ 5 - 1px)}}@media screen and (min-width:1601px) and (max-width:2100px){.customize-control.customize-control-theme{width:calc((100% - 100px)/ 4 - 1px)}}@media screen and (min-width:1201px) and (max-width:1600px){.customize-control.customize-control-theme{width:calc((100% - 75px)/ 3 - 1px)}}@media screen and (min-width:851px) and (max-width:1200px){.customize-control.customize-control-theme{width:calc((100% - 50px)/ 2 - 1px)}}@media screen and (max-width:850px){.customize-control.customize-control-theme{width:100%}}.wp-customizer .theme-browser .themes{padding:0 0 25px 25px;transition:.18s margin-top linear}.wp-customizer .theme-browser .theme .theme-actions{opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.customize-preview-header.themes-filter-bar{position:fixed;top:0;left:300px;width:calc(100% - 300px);height:46px;background:#f0f0f1;z-index:10;padding:6px 25px;box-sizing:border-box;border-bottom:1px solid #dcdcde}@media screen and (min-width:1670px){.customize-preview-header.themes-filter-bar{width:82%;right:0;left:initial}}.themes-filter-bar .themes-filter-container{margin:0;padding:0}.themes-filter-bar .wp-filter-search{line-height:1.8;padding:6px 10px 6px 30px;max-width:100%;width:40%;min-width:300px;position:absolute;top:6px;left:25px;height:32px;margin:1px 0}@media screen and (max-height:540px),screen and (max-width:1018px){.customize-preview-header.themes-filter-bar{position:relative;left:0;width:100%;margin:0 0 25px}.filter-drawer{top:46px}.wp-customizer .theme-browser .themes{padding:0 0 25px 25px;overflow:hidden}.control-panel-themes .customize-themes-full-container{margin-top:0;padding:0;height:100%;width:calc(100% - 300px)}}@media screen and (max-width:1018px){.filter-drawer .filter-group{width:calc((100% - 50px)/ 2)}}@media screen and (max-width:900px){.customize-preview-header.themes-filter-bar{height:86px;padding-top:46px}.themes-filter-bar .wp-filter-search{width:calc(100% - 50px);margin:0;min-width:200px}.filter-drawer{top:86px}.control-panel-themes .filter-themes-count{float:left}}@media screen and (max-width:792px){.filter-drawer .filter-group{width:calc(100% - 25px)}}.control-panel-themes .customize-themes-mobile-back{display:none}@media screen and (max-width:600px){.filter-drawer{top:132px}.wp-full-overlay.showing-themes .control-panel-themes .filter-themes-count .filter-themes{display:block;float:right}.control-panel-themes .customize-themes-full-container{width:100%;margin:0;padding-top:46px;height:calc(100% - 46px);z-index:1;display:none}.showing-themes .control-panel-themes .customize-themes-full-container{display:block}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back{display:block;position:fixed;top:0;left:0;background:#f0f0f1;color:#3c434a;border-radius:0;box-shadow:none;border:none;height:46px;width:100%;z-index:10;text-align:left;text-shadow:none;border-bottom:1px solid #dcdcde;border-left:4px solid transparent;margin:0;padding:0;font-size:0;overflow:hidden}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:before{left:0;top:0;height:46px;width:26px;display:block;line-height:2.3;padding:0 8px;border-right:1px solid #dcdcde}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:focus,.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:hover{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.showing-themes #customize-header-actions{display:none}#customize-controls{width:100%}}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;left:0;top:0;right:0;bottom:0;z-index:109}.wp-customizer.modal-open #customize-header-actions,.wp-customizer.modal-open .control-panel-themes .customize-themes-section-title.selected:after,.wp-customizer.modal-open .control-panel-themes .filter-themes-count{z-index:-1}.wp-full-overlay.in-themes-panel.themes-panel-expanded #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(240,240,241,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .star-rating{float:left;margin-right:8px}.wp-customizer .theme-rating .num-ratings{line-height:20px}.wp-customizer .theme-overlay .theme-wrap{left:90px;right:90px;top:45px;bottom:45px;z-index:120}.wp-customizer .theme-overlay .theme-actions{text-align:right;padding:10px 25px 5px;background:#f0f0f1;border-top:1px solid #dcdcde}.wp-customizer .theme-overlay .theme-actions .theme-install.preview{margin-left:8px}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-header{background:#f0f0f1}.wp-customizer .theme-overlay .theme-header .close:before,.wp-customizer .theme-overlay .theme-header button{color:#3c434a}.wp-customizer .theme-overlay .theme-header .close:focus,.wp-customizer .theme-overlay .theme-header .close:hover,.wp-customizer .theme-overlay .theme-header .left:focus,.wp-customizer .theme-overlay .theme-header .left:hover,.wp-customizer .theme-overlay .theme-header .right:focus,.wp-customizer .theme-overlay .theme-header .right:hover{background:#fff;border-bottom:4px solid #2271b1;color:#2271b1}.wp-customizer .theme-overlay .theme-header .close:focus:before,.wp-customizer .theme-overlay .theme-header .close:hover:before{color:#2271b1}.wp-customizer .theme-overlay .theme-header button.disabled,.wp-customizer .theme-overlay .theme-header button.disabled:focus,.wp-customizer .theme-overlay .theme-header button.disabled:hover{border-bottom:none;background:0 0;color:#c3c4c7}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{left:0;right:0;top:0;bottom:0}.wp-customizer .theme-browser .themes{padding-right:25px}}body.cheatin{font-size:medium;height:auto;background:#fff;border:1px solid #c3c4c7;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;box-shadow:0 1px 1px rgba(0,0,0,.04)}body.cheatin h1{border-bottom:1px solid #dcdcde;clear:both;color:#50575e;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin:0 0 0 10px;transition:all .2s;-webkit-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:0;font:normal 20px/1 dashicons;vertical-align:middle;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#8c8f94;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#1d2327;background:#f0f0f1}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#dcdcde;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{right:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#f0f0f1;border-color:#8c8f94;color:#2c3338;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{transform:rotate(45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;left:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#f0f0f1;transition:left .18s;border-right:1px solid #dcdcde}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #dcdcde}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#f0f0f1}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;min-height:32px;margin:1px 0;padding:0 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;left:16px;width:30px;height:30px;line-height:2.1;text-align:center;color:#646970}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;right:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#d63638;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#d63638}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after,.themes-filter-bar .search-icon:after{content:"\f179";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .search-icon{position:absolute;top:7px;left:26px;z-index:1;color:#646970;height:30px;width:30px;line-height:2;text-align:center}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:15px 15px 15px 60px;background:#fff;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-header button.random .dice{margin-top:0}.customize-control-checkbox .customize-inside-control-row,.customize-control-nav_menu_auto_add .customize-inside-control-row,.customize-control-radio .customize-inside-control-row{margin-left:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:-32px}.customize-control input[type=checkbox]+label+br,.customize-control input[type=radio]+label+br{line-height:2.5}.customize-control .date-time-fields select{height:39px}.date-time-fields .date-input.month{width:79px}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:55px}.date-time-fields .date-input.year{width:80px}#customize-control-changeset_preview_link a{bottom:16px}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{bottom:10px}.media-widget-control .media-widget-buttons .button.change-media,.media-widget-control .media-widget-buttons .button.edit-media,.media-widget-control .media-widget-buttons .button.select-media{margin-top:12px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:3px 0 3px 25px}}@media screen and (max-width:1200px){.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main{left:67%}}@media screen and (max-width:640px){.wp-full-overlay.collapsed #customize-controls{margin-left:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;left:48px;line-height:2.6;font-size:14px;padding:0 12px 4px;margin:0;height:45px;background:#f0f0f1;border:0;border-right:1px solid #dcdcde;border-top:4px solid #f0f0f1;color:#50575e;cursor:pointer;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.preview-only #customize-save-button-wrapper{margin-top:-46px}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:normal 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-right:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}.wp-core-ui.wp-customizer .button{min-height:30px;padding:0 14px;line-height:2;font-size:14px;vertical-align:middle}#customize-control-changeset_status .customize-inside-control-row{padding-top:15px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 10px 12px 14px;margin:0;line-height:24px;color:#50575e;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}.reorder,.reordering .reorder-done{padding:8px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:0}}@media screen and (max-width:600px){.wp-full-overlay.expanded{margin-left:0}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{top:46px;z-index:10}body.wp-customizer .wp-full-overlay.expanded #customize-sidebar-outer-content{left:-100%}body.wp-customizer.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{left:0}} \ No newline at end of file +body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked{background-color:rgba(0,0,0,.7);padding:25px}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .customize-changeset-locked-message{margin-left:auto;margin-right:auto;max-width:366px;min-height:64px;width:auto;padding:25px 25px 25px 109px;position:relative;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;overflow-y:auto;text-align:left;top:calc(50% - 100px)}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .currently-editing{margin-top:0}#customize-controls #customize-notifications-area .notice.notification-overlay.notification-changeset-locked .action-buttons{margin-bottom:0}.customize-changeset-locked-avatar{width:64px;position:absolute;left:25px;top:25px}.wp-core-ui.wp-customizer .customize-changeset-locked-message a.button{margin-right:10px;margin-top:0}#customize-controls .description{color:#50575e}#customize-save-button-wrapper{float:right;margin-top:9px}body:not(.ready) #customize-save-button-wrapper .save{visibility:hidden}#customize-save-button-wrapper .save{float:left;border-radius:3px;box-shadow:none;margin-top:0}#customize-save-button-wrapper .save:focus,#publish-settings:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}#customize-save-button-wrapper .save.has-next-sibling{border-radius:3px 0 0 3px}#customize-sidebar-outer-content{position:absolute;top:0;bottom:0;left:0;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:100%;margin:0;z-index:-1;background:#f0f0f1;transition:left .18s;border-right:1px solid #dcdcde;border-left:1px solid #dcdcde;height:100%}@media (prefers-reduced-motion:reduce){#customize-sidebar-outer-content{transition:none}}#customize-theme-controls .control-section-outer{display:none!important}#customize-outer-theme-controls .accordion-section-content{padding:12px}#customize-outer-theme-controls .accordion-section-content.open{display:block}.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{visibility:visible;left:100%;transition:left .18s}@media (prefers-reduced-motion:reduce){.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{transition:none}}.customize-outer-pane-parent{margin:0}.outer-section-open .wp-full-overlay.expanded .wp-full-overlay-main{left:300px;opacity:.4}.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-menu-items .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-tablet .wp-full-overlay-main{left:64%}#customize-outer-theme-controls li.notice{padding-top:8px;padding-bottom:8px;margin-left:0;margin-bottom:10px}#publish-settings{text-indent:0;border-radius:0 3px 3px 0;padding-left:0;padding-right:0;box-shadow:none;font-size:14px;width:30px;float:left;transform:none;margin-top:0;line-height:2}body.trashing #customize-save-button-wrapper .save,body.trashing #publish-settings,body:not(.ready) #publish-settings{display:none}#customize-header-actions .spinner{margin-top:13px;margin-right:4px}.saving #customize-header-actions .spinner,.trashing #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #dcdcde}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}.outer-section-open #customize-controls .wp-full-overlay-sidebar-content{background:#f0f0f1}#customize-controls .customize-info{border:none;border-bottom:1px solid #dcdcde;margin-bottom:15px}#customize-control-changeset_preview_link input,#customize-control-changeset_status .customize-inside-control-row{background-color:#fff;border-bottom:1px solid #dcdcde;box-sizing:content-box;width:100%;margin-left:-12px;padding-left:12px;padding-right:12px}#customize-control-trash_changeset{margin-top:20px}#customize-control-trash_changeset .button-link{position:relative;padding-left:24px;display:inline-block}#customize-control-trash_changeset .button-link:before{content:"\f182";font:normal 22px dashicons;text-decoration:none;position:absolute;left:0;top:-2px}#customize-controls .date-input:invalid{border-color:#d63638}#customize-control-changeset_status .customize-inside-control-row{padding-top:10px;padding-bottom:10px;font-weight:500}#customize-control-changeset_status .customize-inside-control-row:first-of-type{border-top:1px solid #dcdcde}#customize-control-changeset_status .customize-control-title{margin-bottom:6px}#customize-control-changeset_status input{margin-left:0}#customize-control-changeset_preview_link{position:relative;display:block}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{margin:0;position:absolute;bottom:9px;right:0}.preview-link-wrapper{position:relative}.customize-copy-preview-link:after,.customize-copy-preview-link:before{content:"";height:28px;position:absolute;background:#fff;top:-1px}.customize-copy-preview-link:before{left:-10px;width:9px;opacity:.75}.customize-copy-preview-link:after{left:-5px;width:4px;opacity:.8}#customize-control-changeset_preview_link input{line-height:2.85714286;border-top:1px solid #dcdcde;border-left:none;border-right:none;text-indent:-999px;color:#fff;min-height:40px}#customize-control-changeset_preview_link label{position:relative;display:block}#customize-control-changeset_preview_link a{display:inline-block;position:absolute;white-space:nowrap;overflow:hidden;width:90%;bottom:14px;font-size:14px;text-decoration:none}#customize-control-changeset_preview_link a.disabled,#customize-control-changeset_preview_link a.disabled:active,#customize-control-changeset_preview_link a.disabled:focus,#customize-control-changeset_preview_link a.disabled:visited{color:#000;opacity:.4;cursor:default;outline:0;box-shadow:none}#sub-accordion-section-publish_settings .customize-section-description-container{display:none}#customize-controls .customize-info.section-meta{margin-bottom:15px}.customize-control-date_time .customize-control-description+.date-time-fields.includes-time{margin-top:10px}.customize-control.customize-control-date_time .date-time-fields .date-input.day{margin-right:0}.date-time-fields .date-input.month{width:auto;margin:0}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:46px}.date-time-fields .date-input.year{width:65px}.date-time-fields .date-input.meridian{width:auto;margin:0}.date-time-fields .time-row{margin-top:12px}#customize-control-changeset_preview_link{margin-top:6px}#customize-control-changeset_status{margin-bottom:0;padding-bottom:0}#customize-control-changeset_scheduled_date{box-sizing:content-box;width:100%;margin-left:-12px;padding:12px;background:#fff;border-bottom:1px solid #dcdcde;margin-bottom:0}#customize-control-changeset_scheduled_date .customize-control-description{font-style:normal}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#50575e;border-left:none;border-right:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#2c3338}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:1.9}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title,#customize-outer-theme-controls .customize-pane-child .customize-section-title h3,#customize-outer-theme-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;right:1px;padding:20px 20px 10px 10px;width:20px;height:20px;cursor:pointer;box-shadow:none;background:0 0;color:#50575e;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;left:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#2271b1}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice,#customize-outer-theme-controls .customize-info .customize-section-description{color:#50575e;display:none;background:#fff;padding:12px 15px;border-top:1px solid #dcdcde}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}.no-widget-areas-rendered-notice{font-style:italic}.no-widget-areas-rendered-notice p:first-child{margin-top:0}.no-widget-areas-rendered-notice p:last-child{margin-bottom:0}#customize-controls .customize-info .customize-section-description{margin-bottom:15px}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-right:30px}#customize-outer-theme-controls .control-section,#customize-theme-controls .control-section{border:none}#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{color:#50575e;background-color:#fff;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}@media (prefers-reduced-motion:reduce){#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{transition:none}}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#50575e;background-color:#fff;border-left:4px solid #fff}#customize-outer-theme-controls .accordion-section-title:after,#customize-theme-controls .accordion-section-title:after{content:"\f345";color:#a7aaad}#customize-outer-theme-controls .accordion-section-content,#customize-theme-controls .accordion-section-content{color:#50575e;background:0 0}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1}#accordion-section-themes+.control-section{border-top:1px solid #dcdcde}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f6f7f7}#customize-outer-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#2271b1}#customize-theme-controls .control-section.open{border-bottom:1px solid #f0f0f1}#customize-outer-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#f0f0f1!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#dcdcde}#customize-theme-controls .control-panel-content:not(.control-panel-nav_menus) .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu,#customize-theme-controls .control-section-nav_menu_locations .accordion-section-title{border-top:1px solid #dcdcde}#customize-theme-controls .control-panel-nav_menus .control-section-nav_menu+.control-section-nav_menu{border-top:none}#customize-theme-controls>ul{margin:0}#customize-theme-controls .accordion-section-content{position:absolute;top:0;left:100%;width:100%;margin:0;padding:12px;box-sizing:border-box}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{overflow:visible;width:100%;margin:0;padding:0;box-sizing:border-box;transition:.18s transform cubic-bezier(.645, .045, .355, 1)}@media (prefers-reduced-motion:reduce){#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{transition:none}}#customize-theme-controls .customize-pane-child.skip-transition{transition:none}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;left:0;visibility:hidden;height:0;max-height:none;overflow:hidden;transform:translateX(100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open{transform:none}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.control-section-nav_menu .customize-section-description-container,.control-section-new_menu .customize-section-description-container,.customize-section-description-container{margin-bottom:15px}.control-section-nav_menu .customize-control,.control-section-new_menu .customize-control{margin-bottom:0}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #dcdcde;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description{margin-top:0}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #dcdcde;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 10px 12px 14px;margin:0;line-height:21px;color:#50575e}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;left:0;width:45px;height:41px;padding:0 2px 0 0;background:#f0f0f1;border:none;border-top:4px solid #f0f0f1;border-right:1px solid #dcdcde;color:#3c434a;text-align:left;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:left;width:48px;height:71px;padding:0 24px 0 0;margin:0;background:#fff;border:none;border-right:1px solid #dcdcde;border-left:4px solid #fff;box-shadow:none;cursor:pointer;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-left:48px;border-left:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#50575e;border-left-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#2271b1;border-top-color:#2271b1;box-shadow:none;outline:1px solid transparent}#customize-theme-controls .accordion-section-title:focus .customize-action{outline:1px solid transparent;outline-offset:1px}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.customize-controls-close:before{font:normal 22px/45px dashicons;content:"\f335";position:relative;top:-3px;left:13px}.customize-panel-back:before,.customize-section-back:before{font:normal 20px/72px dashicons;content:"\f341";position:relative;left:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#f0f0f1;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-left:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-section-description ul{margin-left:1em}.customize-section-description ul>li{list-style:disc}.section-description-buttons{text-align:right}.customize-control{width:100%;float:left;clear:both;margin-bottom:12px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=range],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:100%;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:1.75;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:1.4;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f504";top:3px;position:relative;padding-left:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control .customize-inside-control-row{line-height:1.6;display:block;margin-left:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:4px;margin-left:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:1.6}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-checkbox label,.customize-control-radio label{vertical-align:top}.customize-control .attachment-thumb.type-icon{float:left;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image,.customize-control .wp-media-wrapper.wp-video,.customize-control-header .current{line-height:0}.customize-control-site_icon .favicon-preview .browser-preview{vertical-align:top}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:left}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#f0f0f1;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;padding:5px 0 5px 1px;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 0 2px 6px;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid #d63638}.customize-control-dropdown-pages .add-new-toggle{margin-left:1px;font-weight:600;line-height:2.2}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#f0f0f1;border-right:1px solid #dcdcde}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{box-shadow:inset 0 0 0 2px #d63638;transition:.15s box-shadow linear}#customize-controls .customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:9px 14px;overflow:hidden}#customize-controls .customize-control-notifications-container .notice.is-dismissible{padding-right:38px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container{margin-top:8px}.customize-control-text.has-error input{outline:2px solid #d63638}#customize-controls #customize-notifications-area{position:absolute;top:46px;width:100%;border-bottom:1px solid #dcdcde;display:block;padding:0;margin:0}.wp-full-overlay.collapsed #customize-controls #customize-notifications-area{display:none!important}#customize-controls #customize-notifications-area:not(.has-overlay-notifications),#customize-controls .customize-section-title>.customize-control-notifications-container:not(.has-overlay-notifications),#customize-controls .panel-meta>.customize-control-notifications-container:not(.has-overlay-notifications){max-height:210px;overflow-x:hidden;overflow-y:auto}#customize-controls #customize-notifications-area .notice,#customize-controls #customize-notifications-area>ul,#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container .notice{margin:0}#customize-controls .customize-section-title>.customize-control-notifications-container,#customize-controls .panel-meta>.customize-control-notifications-container{border-top:1px solid #dcdcde}#customize-controls #customize-notifications-area .notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice{padding:9px 14px}#customize-controls #customize-notifications-area .notice.is-dismissible,#customize-controls .customize-section-title>.customize-control-notifications-container .notice.is-dismissible,#customize-controls .panel-meta>.customize-control-notifications-container .notice.is-dismissible{padding-right:38px}#customize-controls #customize-notifications-area .notice+.notice,#customize-controls .customize-section-title>.customize-control-notifications-container .notice+.notice,#customize-controls .panel-meta>.customize-control-notifications-container .notice+.notice{margin-top:1px}@keyframes customize-fade-in{0%{opacity:0}100%{opacity:1}}#customize-controls #customize-notifications-area .notice.notification-overlay,#customize-controls .notice.notification-overlay{margin:0;border-left:0}#customize-controls .customize-control-notifications-container.has-overlay-notifications{animation:customize-fade-in .5s;z-index:30}#customize-controls #customize-notifications-area .notice.notification-overlay .notification-message{clear:both;color:#1d2327;font-size:18px;font-style:normal;margin:0;padding:2em 0;text-align:center;width:100%;display:block;top:50%;position:relative}#customize-control-show_on_front.has-error{margin-bottom:0}#customize-control-show_on_front.has-error .customize-control-notifications-container{margin-top:12px}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #f0f0f1;-webkit-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#f0f0f1}.customize-control .dropdown-arrow:after{content:"\f140";font:normal 20px/1 dashicons;speak:never;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#2c3338}.customize-control .dropdown-status{color:#2c3338;background:#f0f0f1;display:none;max-width:112px}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#50575e;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control .actions .button{margin-top:12px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control-header button img{display:block}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{width:auto;height:auto;white-space:normal}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .button-add-media,.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #c3c4c7;box-sizing:border-box;padding:9px 0;line-height:1.6}.customize-control .attachment-media-view .button-add-media{cursor:pointer;background-color:#f0f0f1;color:#2c3338}.customize-control .attachment-media-view .button-add-media:hover{background-color:#fff}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fff;border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#50575e;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:12px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:"";position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #72aee6;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#50575e;background:rgba(0,0,0,.5);position:absolute;top:10px;left:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{left:auto;right:10px}.customize-control-header .header-view .close:focus{outline:1px solid #4f94d4}.customize-control-header .random.placeholder{cursor:pointer;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{animation:dice-color-change 3s infinite}.button-see-me{animation:bounce .7s 1;transform-origin:center bottom}@keyframes bounce{20%,53%,80%,from,to{animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-12px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transform:translate3d(0,-6px,0)}90%{transform:translate3d(0,-1px,0)}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 3px 1px rgba(79,148,212,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{margin-right:8px}.customize-control-background_position .background-position-control .button-group{display:block}.customize-control-code_editor textarea{width:100%;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;-o-tab-size:2;tab-size:2}.customize-control-code_editor .CodeMirror,.customize-control-code_editor textarea{height:14em}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;height:500px}.customize-section-description-container+#customize-control-custom_css .customize-control-title{margin-left:12px}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-right:0;border-left:0;height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:-12px;width:299px;width:calc(100% + 24px);margin-bottom:-12px}.customize-section-description-container+#customize-control-custom_css:last-child .CodeMirror{height:calc(100vh - 185px)}.CodeMirror-hints,.CodeMirror-lint-tooltip{z-index:500000!important}.customize-section-description-container+#customize-control-custom_css:last-child .customize-control-notifications-container{margin-left:12px;margin-right:12px}.theme-browser .theme.active .theme-actions,.wp-customizer .theme-browser .theme .theme-actions{padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:0}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:calc(100vh - 140px)}}#customize-theme-controls .control-panel-themes{border-bottom:none}#customize-theme-controls .control-panel-themes>.accordion-section-title,#customize-theme-controls .control-panel-themes>.accordion-section-title:hover{cursor:default;background:#fff;color:#50575e;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;border-left:none;border-right:none;margin:0 0 15px;padding-right:100px}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-right:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action,.control-panel-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-theme-controls .control-panel-themes .accordion-section-title .change-theme{position:absolute;right:10px;top:50%;margin-top:-14px;font-weight:400}#customize-notifications-area .notification-message button.switch-to-editor{display:block;margin-top:6px;font-weight:400}#customize-theme-controls .control-panel-themes>.accordion-section-title:after{display:none}.control-panel-themes .customize-themes-full-container{position:fixed;top:0;left:0;transition:.18s left ease-in-out;margin:0 0 0 300px;padding:71px 0 25px;overflow-y:scroll;width:calc(100% - 300px);height:calc(100% - 96px);background:#f0f0f1;z-index:20}@media (prefers-reduced-motion:reduce){.control-panel-themes .customize-themes-full-container{transition:none}}@media screen and (min-width:1670px){.control-panel-themes .customize-themes-full-container{width:82%;right:0;left:initial}}.modal-open .control-panel-themes .customize-themes-full-container{overflow-y:visible}#customize-header-actions .customize-controls-preview-toggle,#customize-header-actions .spinner,#customize-save-button-wrapper{transition:.18s margin ease-in-out}#customize-footer-actions,#customize-footer-actions .collapse-sidebar{bottom:0;transition:.18s bottom ease-in-out}.in-themes-panel:not(.animating) #customize-footer-actions,.in-themes-panel:not(.animating) #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel:not(.animating) #customize-header-actions .spinner,.in-themes-panel:not(.animating) #customize-preview{visibility:hidden}.wp-full-overlay.in-themes-panel{background:#f0f0f1}.in-themes-panel #customize-header-actions .customize-controls-preview-toggle,.in-themes-panel #customize-header-actions .spinner,.in-themes-panel #customize-save-button-wrapper{margin-top:-46px}.in-themes-panel #customize-footer-actions,.in-themes-panel #customize-footer-actions .collapse-sidebar{bottom:-45px}.in-themes-panel.animating .control-panel-themes .filter-themes-count{display:none}.in-themes-panel.wp-full-overlay .wp-full-overlay-sidebar-content{bottom:0}.themes-filter-bar .feature-filter-toggle{float:right;margin:3px 0 3px 25px}.themes-filter-bar .feature-filter-toggle:before{content:"\f111";margin:0 5px 0 0;font:normal 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .feature-filter-toggle.open{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.themes-filter-bar .feature-filter-toggle .filter-count-filters{display:none}.filter-drawer{box-sizing:border-box;width:100%;position:absolute;top:46px;left:0;padding:25px 0 25px 25px;border-top:0;margin:0;background:#f0f0f1;border-bottom:1px solid #dcdcde}.filter-drawer .filter-group{margin:0 25px 0 0;width:calc((100% - 75px)/ 3);min-width:200px;max-width:320px}@keyframes themes-fade-in{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.control-panel-themes .customize-themes-full-container.animate{animation:.6s themes-fade-in 1}.in-themes-panel:not(.animating) .control-panel-themes .filter-themes-count{animation:.6s themes-fade-in 1}.control-panel-themes .filter-themes-count{position:relative;float:right;line-height:2.6}.control-panel-themes .filter-themes-count .themes-displayed{font-weight:600;color:#50575e}.customize-themes-notifications{margin:0}.control-panel-themes .customize-themes-notifications .notice{margin:0 0 25px}.customize-themes-full-container .customize-themes-section{display:none!important;overflow:hidden}.customize-themes-full-container .customize-themes-section.current-section{display:list-item!important}.control-section .customize-section-text-before{padding:0 0 8px 15px;margin:15px 0 0;line-height:16px;border-bottom:1px solid #dcdcde;color:#50575e}.control-panel-themes .customize-themes-section-title{width:100%;background:#fff;box-shadow:none;outline:0;border-top:none;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;border-right:none;cursor:pointer;padding:10px 15px;position:relative;text-align:left;font-size:14px;font-weight:600;color:#50575e;text-shadow:none}.control-panel-themes #accordion-section-installed_themes{border-top:1px solid #dcdcde}.control-panel-themes .theme-section{margin:0;position:relative}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#2271b1;color:#2271b1;background:#f6f7f7}.customize-themes-section-title:not(.selected):after{content:"";display:block;position:absolute;top:9px;right:15px;width:18px;height:18px;border-radius:100%;border:1px solid #c3c4c7;background:#fff}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{content:"\f147";font:16px/1 dashicons;box-sizing:border-box;width:20px;height:20px;padding:3px 3px 1px 1px;border-radius:100%;position:absolute;top:9px;right:15px;background:#2271b1;color:#fff}.control-panel-themes .customize-themes-section-title.selected{color:#2271b1}#customize-theme-controls .themes.accordion-section-content{position:relative;left:0;padding:0;width:100%}.loading .customize-themes-section .spinner{display:block;visibility:visible;position:relative;clear:both;width:20px;height:20px;left:calc(50% - 10px);float:none;margin-top:50px}.customize-themes-section .no-themes,.customize-themes-section .no-themes-local{display:none}.themes-section-installed_themes .theme .notice-success:not(.updated-message){display:none}.customize-control-theme .theme{width:100%;margin:0;border:1px solid #dcdcde;background:#fff}.customize-control-theme .theme .theme-actions,.customize-control-theme .theme .theme-name{background:#fff;border:none}.customize-control.customize-control-theme{box-sizing:border-box;width:25%;max-width:600px;margin:0 25px 25px 0;padding:0;clear:none}@media screen and (min-width:2101px){.customize-control.customize-control-theme{width:calc((100% - 125px)/ 5 - 1px)}}@media screen and (min-width:1601px) and (max-width:2100px){.customize-control.customize-control-theme{width:calc((100% - 100px)/ 4 - 1px)}}@media screen and (min-width:1201px) and (max-width:1600px){.customize-control.customize-control-theme{width:calc((100% - 75px)/ 3 - 1px)}}@media screen and (min-width:851px) and (max-width:1200px){.customize-control.customize-control-theme{width:calc((100% - 50px)/ 2 - 1px)}}@media screen and (max-width:850px){.customize-control.customize-control-theme{width:100%}}.wp-customizer .theme-browser .themes{padding:0 0 25px 25px;transition:.18s margin-top linear}.wp-customizer .theme-browser .theme .theme-actions{opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.customize-preview-header.themes-filter-bar{position:fixed;top:0;left:300px;width:calc(100% - 300px);height:46px;background:#f0f0f1;z-index:10;padding:6px 25px;box-sizing:border-box;border-bottom:1px solid #dcdcde}@media screen and (min-width:1670px){.customize-preview-header.themes-filter-bar{width:82%;right:0;left:initial}}.themes-filter-bar .themes-filter-container{margin:0;padding:0}.themes-filter-bar .wp-filter-search{line-height:1.8;padding:6px 10px 6px 30px;max-width:100%;width:40%;min-width:300px;position:absolute;top:6px;left:25px;height:32px;margin:1px 0}@media screen and (max-height:540px),screen and (max-width:1018px){.customize-preview-header.themes-filter-bar{position:relative;left:0;width:100%;margin:0 0 25px}.filter-drawer{top:46px}.wp-customizer .theme-browser .themes{padding:0 0 25px 25px;overflow:hidden}.control-panel-themes .customize-themes-full-container{margin-top:0;padding:0;height:100%;width:calc(100% - 300px)}}@media screen and (max-width:1018px){.filter-drawer .filter-group{width:calc((100% - 50px)/ 2)}}@media screen and (max-width:900px){.customize-preview-header.themes-filter-bar{height:86px;padding-top:46px}.themes-filter-bar .wp-filter-search{width:calc(100% - 50px);margin:0;min-width:200px}.filter-drawer{top:86px}.control-panel-themes .filter-themes-count{float:left}}@media screen and (max-width:792px){.filter-drawer .filter-group{width:calc(100% - 25px)}}.control-panel-themes .customize-themes-mobile-back{display:none}@media screen and (max-width:600px){.filter-drawer{top:132px}.wp-full-overlay.showing-themes .control-panel-themes .filter-themes-count .filter-themes{display:block;float:right}.control-panel-themes .customize-themes-full-container{width:100%;margin:0;padding-top:46px;height:calc(100% - 46px);z-index:1;display:none}.showing-themes .control-panel-themes .customize-themes-full-container{display:block}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back{display:block;position:fixed;top:0;left:0;background:#f0f0f1;color:#3c434a;border-radius:0;box-shadow:none;border:none;height:46px;width:100%;z-index:10;text-align:left;text-shadow:none;border-bottom:1px solid #dcdcde;border-left:4px solid transparent;margin:0;padding:0;font-size:0;overflow:hidden}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:before{left:0;top:0;height:46px;width:26px;display:block;line-height:2.3;padding:0 8px;border-right:1px solid #dcdcde}.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:focus,.wp-customizer .showing-themes .control-panel-themes .customize-themes-mobile-back:hover{color:#2271b1;background:#f6f7f7;border-left-color:#2271b1;box-shadow:none;outline:2px solid transparent;outline-offset:-2px}.showing-themes #customize-header-actions{display:none}#customize-controls{width:100%}}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;left:0;top:0;right:0;bottom:0;z-index:109}.wp-customizer.modal-open #customize-header-actions,.wp-customizer.modal-open .control-panel-themes .customize-themes-section-title.selected:after,.wp-customizer.modal-open .control-panel-themes .filter-themes-count{z-index:-1}.wp-full-overlay.in-themes-panel.themes-panel-expanded #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(240,240,241,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .star-rating{float:left;margin-right:8px}.wp-customizer .theme-rating .num-ratings{line-height:20px}.wp-customizer .theme-overlay .theme-wrap{left:90px;right:90px;top:45px;bottom:45px;z-index:120}.wp-customizer .theme-overlay .theme-actions{text-align:right;padding:10px 25px 5px;background:#f0f0f1;border-top:1px solid #dcdcde}.wp-customizer .theme-overlay .theme-actions .theme-install.preview{margin-left:8px}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.wp-customizer .theme-header{background:#f0f0f1}.wp-customizer .theme-overlay .theme-header .close:before,.wp-customizer .theme-overlay .theme-header button{color:#3c434a}.wp-customizer .theme-overlay .theme-header .close:focus,.wp-customizer .theme-overlay .theme-header .close:hover,.wp-customizer .theme-overlay .theme-header .left:focus,.wp-customizer .theme-overlay .theme-header .left:hover,.wp-customizer .theme-overlay .theme-header .right:focus,.wp-customizer .theme-overlay .theme-header .right:hover{background:#fff;border-bottom:4px solid #2271b1;color:#2271b1}.wp-customizer .theme-overlay .theme-header .close:focus:before,.wp-customizer .theme-overlay .theme-header .close:hover:before{color:#2271b1}.wp-customizer .theme-overlay .theme-header button.disabled,.wp-customizer .theme-overlay .theme-header button.disabled:focus,.wp-customizer .theme-overlay .theme-header button.disabled:hover{border-bottom:none;background:0 0;color:#c3c4c7}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{left:0;right:0;top:0;bottom:0}.wp-customizer .theme-browser .themes{padding-right:25px}}body.cheatin{font-size:medium;height:auto;background:#fff;border:1px solid #c3c4c7;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;box-shadow:0 1px 1px rgba(0,0,0,.04)}body.cheatin h1{border-bottom:1px solid #dcdcde;clear:both;color:#50575e;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin:0 0 0 10px;transition:all .2s;-webkit-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:0;font:normal 20px/1 dashicons;vertical-align:middle;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#8c8f94;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#1d2327;background:#f0f0f1}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#dcdcde;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{right:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#f0f0f1;border-color:#8c8f94;color:#2c3338;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{transform:rotate(45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;left:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#f0f0f1;transition:left .18s;border-right:1px solid #dcdcde}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #dcdcde}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#f0f0f1}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;min-height:32px;margin:1px 0;padding:0 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;left:16px;width:30px;height:30px;line-height:2.1;text-align:center;color:#646970}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;right:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#d63638;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#d63638}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after,.themes-filter-bar .search-icon:after{content:"\f179";font:normal 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.themes-filter-bar .search-icon{position:absolute;top:7px;left:26px;z-index:1;color:#646970;height:30px;width:30px;line-height:2;text-align:center}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:15px 15px 15px 60px;background:#fff;border-bottom:1px solid #dcdcde;border-left:4px solid #fff;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-header button.random .dice{margin-top:0}.customize-control-checkbox .customize-inside-control-row,.customize-control-nav_menu_auto_add .customize-inside-control-row,.customize-control-radio .customize-inside-control-row{margin-left:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:-32px}.customize-control input[type=checkbox]+label+br,.customize-control input[type=radio]+label+br{line-height:2.5}.customize-control .date-time-fields select{height:39px}.date-time-fields .date-input.month{width:79px}.date-time-fields .date-input.day,.date-time-fields .date-input.hour,.date-time-fields .date-input.minute{width:55px}.date-time-fields .date-input.year{width:80px}#customize-control-changeset_preview_link a{bottom:16px}.preview-link-wrapper .customize-copy-preview-link.preview-control-element.button{bottom:10px}.media-widget-control .media-widget-buttons .button.change-media,.media-widget-control .media-widget-buttons .button.edit-media,.media-widget-control .media-widget-buttons .button.select-media{margin-top:12px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:3px 0 3px 25px}}@media screen and (max-width:1200px){.adding-menu-items .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.adding-widget .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main,.outer-section-open .wp-full-overlay.expanded.preview-mobile .wp-full-overlay-main{left:67%}}@media screen and (max-width:640px){.wp-full-overlay.collapsed #customize-controls{margin-left:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;left:48px;line-height:2.6;font-size:14px;padding:0 12px 4px;margin:0;height:45px;background:#f0f0f1;border:0;border-right:1px solid #dcdcde;border-top:4px solid #f0f0f1;color:#50575e;cursor:pointer;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.preview-only #customize-save-button-wrapper{margin-top:-46px}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:normal 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-right:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}.wp-core-ui.wp-customizer .button{min-height:30px;padding:0 14px;line-height:2;font-size:14px;vertical-align:middle}#customize-control-changeset_status .customize-inside-control-row{padding-top:15px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 10px 12px 14px;margin:0;line-height:24px;color:#50575e;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}.reorder,.reordering .reorder-done{padding:8px}.wp-core-ui .themes-filter-bar .feature-filter-toggle{margin:0}}@media screen and (max-width:600px){.wp-full-overlay.expanded{margin-left:0}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets,body.outer-section-open div#customize-sidebar-outer-content{top:46px;z-index:10}body.wp-customizer .wp-full-overlay.expanded #customize-sidebar-outer-content{left:-100%}body.wp-customizer.outer-section-open .wp-full-overlay.expanded #customize-sidebar-outer-content{left:0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.css index d8a5f42126..3211e7db4c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.css @@ -405,6 +405,7 @@ table.not-image tr.image-only { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .image-align-none-label { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.min.css index 41868b25e9..d08a18838b 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:600;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7}#sidemenu{overflow:hidden;float:none;position:relative;right:0;bottom:-1px;margin:0 5px;padding-right:10px;list-style:none;font-size:12px;font-weight:400}#sidemenu a{padding:0 7px;display:block;float:right;line-height:28px;border-top:1px solid #f6f7f7;border-bottom:1px solid #dcdcde;background-color:#f6f7f7;text-decoration:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-right:6px;padding-left:6px;border:1px solid #dcdcde;border-bottom-color:#f0f0f1;background-color:#f0f0f1;color:#000}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dcdcde}#media-upload input[type=radio]{padding:0}.media-upload-form label.form-help,td.help{color:#646970}form{margin:1em}#search-filter{text-align:left}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center right}.image-align-left-label{background:url(../images/align-left.png) no-repeat center right}.image-align-center-label{background:url(../images/align-center.png) no-repeat center right}.image-align-right-label{background:url(../images/align-right.png) no-repeat center right}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required,span.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#media-upload .tablenav-pages .current,#media-upload .tablenav-pages a{display:inline-block;padding:4px 5px 6px;font-size:16px;line-height:1;text-align:center;text-decoration:none}#media-upload .tablenav-pages a{min-width:17px;border:1px solid #c3c4c7;background:#f6f7f7}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:left;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #dcdcde;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #a7aaad;opacity:.6}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dcdcde}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dcdcde;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#50575e}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:right}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#3c434a;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#gallery-settings p.ml-submit{border-top:1px solid #dcdcde}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 0 -8px 25px;text-align:left;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-right:5px}#sort-buttons span{margin-left:25px}p.media-types{margin:0;padding:1em}p.media-types-required-info{padding-top:0}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);background-size:22px 15px}} \ No newline at end of file +div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:600;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7}#sidemenu{overflow:hidden;float:none;position:relative;right:0;bottom:-1px;margin:0 5px;padding-right:10px;list-style:none;font-size:12px;font-weight:400}#sidemenu a{padding:0 7px;display:block;float:right;line-height:28px;border-top:1px solid #f6f7f7;border-bottom:1px solid #dcdcde;background-color:#f6f7f7;text-decoration:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-right:6px;padding-left:6px;border:1px solid #dcdcde;border-bottom-color:#f0f0f1;background-color:#f0f0f1;color:#000}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dcdcde}#media-upload input[type=radio]{padding:0}.media-upload-form label.form-help,td.help{color:#646970}form{margin:1em}#search-filter{text-align:left}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center right}.image-align-left-label{background:url(../images/align-left.png) no-repeat center right}.image-align-center-label{background:url(../images/align-center.png) no-repeat center right}.image-align-right-label{background:url(../images/align-right.png) no-repeat center right}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required,span.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#media-upload .tablenav-pages .current,#media-upload .tablenav-pages a{display:inline-block;padding:4px 5px 6px;font-size:16px;line-height:1;text-align:center;text-decoration:none}#media-upload .tablenav-pages a{min-width:17px;border:1px solid #c3c4c7;background:#f6f7f7}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:left;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #dcdcde;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #a7aaad;opacity:.6}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dcdcde}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dcdcde;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#50575e}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:right}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#3c434a;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#gallery-settings p.ml-submit{border-top:1px solid #dcdcde}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 0 -8px 25px;text-align:left;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-right:5px}#sort-buttons span{margin-left:25px}p.media-types{margin:0;padding:1em}p.media-types-required-info{padding-top:0}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);background-size:22px 15px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.css index 36fafeb65f..359fc59e3c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.css @@ -404,6 +404,7 @@ table.not-image tr.image-only { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .image-align-none-label { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.min.css index d22b85de7f..77543f742d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/deprecated-media.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:600;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7}#sidemenu{overflow:hidden;float:none;position:relative;left:0;bottom:-1px;margin:0 5px;padding-left:10px;list-style:none;font-size:12px;font-weight:400}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top:1px solid #f6f7f7;border-bottom:1px solid #dcdcde;background-color:#f6f7f7;text-decoration:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-left:6px;padding-right:6px;border:1px solid #dcdcde;border-bottom-color:#f0f0f1;background-color:#f0f0f1;color:#000}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dcdcde}#media-upload input[type=radio]{padding:0}.media-upload-form label.form-help,td.help{color:#646970}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required,span.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#media-upload .tablenav-pages .current,#media-upload .tablenav-pages a{display:inline-block;padding:4px 5px 6px;font-size:16px;line-height:1;text-align:center;text-decoration:none}#media-upload .tablenav-pages a{min-width:17px;border:1px solid #c3c4c7;background:#f6f7f7}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #dcdcde;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #a7aaad;opacity:.6}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dcdcde}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dcdcde;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#50575e}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#3c434a;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dcdcde}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:0;padding:1em}p.media-types-required-info{padding-top:0}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);background-size:22px 15px}} \ No newline at end of file +div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:600;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7}#sidemenu{overflow:hidden;float:none;position:relative;left:0;bottom:-1px;margin:0 5px;padding-left:10px;list-style:none;font-size:12px;font-weight:400}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top:1px solid #f6f7f7;border-bottom:1px solid #dcdcde;background-color:#f6f7f7;text-decoration:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-left:6px;padding-right:6px;border:1px solid #dcdcde;border-bottom-color:#f0f0f1;background-color:#f0f0f1;color:#000}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dcdcde}#media-upload input[type=radio]{padding:0}.media-upload-form label.form-help,td.help{color:#646970}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required,span.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#media-upload .tablenav-pages .current,#media-upload .tablenav-pages a{display:inline-block;padding:4px 5px 6px;font-size:16px;line-height:1;text-align:center;text-decoration:none}#media-upload .tablenav-pages a{min-width:17px;border:1px solid #c3c4c7;background:#f6f7f7}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #dcdcde;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #a7aaad;opacity:.6}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dcdcde}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dcdcde;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#50575e}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#3c434a;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dcdcde}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:0;padding:1em}p.media-types-required-info{padding-top:0}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);background-size:22px 15px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.css index ade37f93e9..104fd065e7 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.css @@ -1689,6 +1689,7 @@ table.links-table { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #content-resize-handle, #post-body .wp_themeSkin .mceStatusbar a.mceResize { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.min.css index bfec5b99db..c4ffec5f00 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#646970;position:absolute;font-size:1.7em;padding:10px;pointer-events:none}input#link_description,input#link_url{width:100%}#pending{background:100% none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:1.84615384;min-height:25px;margin-top:5px;padding:0 10px;color:#646970}#sample-permalink{display:inline-block;max-width:100%;word-wrap:break-word}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name-full{display:none}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:right}body.post-new-php .submitbox .submitdelete{display:none}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}body.post-type-wp_navigation .inline-edit-status,body.post-type-wp_navigation div#minor-publishing{display:none}.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables{outline:3px dashed #646970;display:flow-root;min-height:60px;margin-bottom:20px}.postbox{position:relative;min-width:255px;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#2c3338}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dcdcde;border-bottom-color:#fff;background-color:#fff}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}form#tags-filter{position:relative}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #c3c4c7;border-top:none;background-color:#f6f7f7;box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll left bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{padding:2px 10px}#wp-content-editor-container{position:relative}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #c3c4c7}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px}.wp-editor-expand #wp-content-editor-container{border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #c3c4c7}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw{display:none}.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f0f0f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{vertical-align:top;font-size:12px;line-height:2.33333333}#aa,#hh,#jj,#mn{padding:6px 1px;font-size:12px;line-height:1.16666666}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{color:#8c8f94}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-uploadedby:before{content:"\f110";position:relative;top:-1px}#post-body .misc-pub-uploadedto:before{content:"\f318";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#post-body .misc-pub-response-to:before{content:"\f101"}#timestampdiv{padding-top:5px;line-height:1.76923076}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{text-align:center}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist>li{float:right;margin-left:25px;font-size:13px;line-height:1.8;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .stuffbox h2{padding:8px 10px}#poststuff .stuffbox>h2{border-bottom:1px solid #f0f0f1}#poststuff .inside{margin:6px 0 0}.link-add-php #poststuff .inside,.link-php #poststuff .inside{margin-top:12px}#poststuff .stuffbox .inside{margin:0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#comment-status-radio,#post-visibility-select{line-height:1.5;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp_attachment_details .attachment-content-description{margin-top:.5385em;display:inline-block;min-height:1.6923em}.privacy-settings #wpcontent,.privacy-settings.auto-fold #wpcontent,.site-health #wpcontent,.site-health.auto-fold #wpcontent{padding-right:0}.privacy-settings .notice,.site-health .notice{margin:25px 22px 15px 20px}.privacy-settings .notice~.notice,.site-health .notice~.notice{margin-top:5px}.health-check-header h1,.privacy-settings-header h1{display:inline-block;font-weight:600;margin:0 .8rem 1rem;font-size:23px;padding:9px 0 4px;line-height:1.3}.health-check-header,.privacy-settings-header{text-align:center;margin:0 0 1rem;background:#fff;border-bottom:1px solid #dcdcde}.health-check-title-section,.privacy-settings-title-section{display:flex;align-items:center;justify-content:center;clear:both;padding-top:8px}.privacy-settings-tabs-wrapper{display:-ms-inline-grid;-ms-grid-columns:1fr 1fr;vertical-align:top;display:inline-grid;grid-template-columns:1fr 1fr}.privacy-settings-tab{display:block;text-decoration:none;color:inherit;padding:.5rem 1rem 1rem;margin:0 1rem;transition:box-shadow .5s ease-in-out}.health-check-tab:first-child,.privacy-settings-tab:first-child{-ms-grid-column:1}.health-check-tab:nth-child(2),.privacy-settings-tab:nth-child(2){-ms-grid-column:2}.health-check-tab:focus,.privacy-settings-tab:focus{color:#1d2327;outline:1px solid #787c82;box-shadow:none}.health-check-tab.active,.privacy-settings-tab.active{box-shadow:inset 0 -3px #3582c4;font-weight:600}.health-check-body,.privacy-settings-body{max-width:800px;margin:0 auto}.tools-privacy-policy-page th{min-width:230px}.hr-separator{margin-top:20px;margin-bottom:15px}.health-check-accordion,.privacy-settings-accordion{border:1px solid #c3c4c7}.health-check-accordion-heading,.privacy-settings-accordion-heading{margin:0;border-top:1px solid #c3c4c7;font-size:inherit;line-height:inherit;font-weight:600;color:inherit}.health-check-accordion-heading:first-child,.privacy-settings-accordion-heading:first-child{border-top:none}.health-check-accordion-trigger,.privacy-settings-accordion-trigger{background:#fff;border:0;color:#2c3338;cursor:pointer;display:flex;font-weight:400;margin:0;padding:1em 1.5em 1em 3.5em;min-height:46px;position:relative;text-align:right;width:100%;align-items:center;justify-content:space-between;-webkit-user-select:auto;user-select:auto}.health-check-accordion-trigger:active,.health-check-accordion-trigger:hover,.privacy-settings-accordion-trigger:active,.privacy-settings-accordion-trigger:hover{background:#f6f7f7}.health-check-accordion-trigger:focus,.privacy-settings-accordion-trigger:focus{color:#1d2327;border:none;box-shadow:none;outline-offset:-1px;outline:2px solid #2271b1;background-color:#f6f7f7}.health-check-accordion-trigger .title,.privacy-settings-accordion-trigger .title{pointer-events:none;font-weight:600;flex-grow:1}.health-check-accordion-trigger .icon,.privacy-settings-accordion-trigger .icon,.privacy-settings-view-read .icon,.site-health-view-passed .icon{border:solid #50575e;border-width:0 0 2px 2px;height:.5rem;pointer-events:none;position:absolute;left:1.5em;top:50%;transform:translateY(-70%) rotate(-45deg);width:.5rem}.health-check-accordion-trigger .badge,.privacy-settings-accordion-trigger .badge{padding:.1rem .5rem .15rem;color:#2c3338;font-weight:600}.privacy-settings-accordion-trigger .badge{margin-right:.5rem}.health-check-accordion-trigger .badge.blue,.privacy-settings-accordion-trigger .badge.blue{border:1px solid #72aee6}.health-check-accordion-trigger .badge.orange,.privacy-settings-accordion-trigger .badge.orange{border:1px solid #dba617}.health-check-accordion-trigger .badge.red,.privacy-settings-accordion-trigger .badge.red{border:1px solid #e65054}.health-check-accordion-trigger .badge.green,.privacy-settings-accordion-trigger .badge.green{border:1px solid #00ba37}.health-check-accordion-trigger .badge.purple,.privacy-settings-accordion-trigger .badge.purple{border:1px solid #2271b1}.health-check-accordion-trigger .badge.gray,.privacy-settings-accordion-trigger .badge.gray{border:1px solid #c3c4c7}.health-check-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-view-passed[aria-expanded=true] .icon,.site-health-view-passed[aria-expanded=true] .icon{transform:translateY(-30%) rotate(135deg)}.health-check-accordion-panel,.privacy-settings-accordion-panel{margin:0;padding:1em 1.5em;background:#fff}.health-check-accordion-panel[hidden],.privacy-settings-accordion-panel[hidden]{display:none}.health-check-accordion-panel a .dashicons,.privacy-settings-accordion-panel a .dashicons{text-decoration:none}.privacy-settings-accordion-actions{text-align:left;display:block}.privacy-settings-accordion-actions .success{display:none;color:#007017;padding-left:1em;padding-top:6px}.privacy-settings-accordion-actions .success.visible{display:inline-block}.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-policy-tutorial,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-text-copy,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .wp-policy-help{display:none}.privacy-settings-accordion-panel strong.privacy-policy-tutorial,.privacy-settings-accordion-panel strong.wp-policy-help{display:block;margin:0 0 1em}.privacy-text-copy span{pointer-events:none}.privacy-settings-accordion-panel .wp-suggested-text div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel .wp-suggested-text>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p){margin:0;padding:1em;border-right:2px solid #787c82}@media screen and (max-width:782px){.health-check-body,.privacy-settings-body{margin:0 12px;width:auto}.privacy-settings .notice,.site-health .notice{margin:5px 10px 15px}.privacy-settings .update-nag,.site-health .update-nag{margin-left:10px;margin-right:10px}input#create-page{margin-top:10px}.wp-core-ui button.privacy-text-copy{white-space:normal;line-height:1.8}}@media only screen and (max-width:1004px){.health-check-body,.privacy-settings-body{margin:0 22px;width:auto}}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f0f0f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#postcustom #postcustomstuff .add-custom-field{padding:12px 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dcdcde;border-spacing:0;background-color:#f6f7f7}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmeta-button,#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-format-icon::before{display:inline-block;vertical-align:middle;height:20px;width:20px;margin-top:-4px;margin-left:7px;color:#dcdcde;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a.post-format-icon:hover:before{color:#135e96}#post-formats-select{line-height:2}#post-formats-select .post-format-icon::before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon.post-format-standard::before{content:"\f109"}.post-format-icon.post-format-image::before{content:"\f128"}.post-format-icon.post-format-gallery::before{content:"\f161"}.post-format-icon.post-format-audio::before{content:"\f127"}.post-format-icon.post-format-video::before{content:"\f126"}.post-format-icon.post-format-chat::before{content:"\f125"}.post-format-icon.post-format-status::before{content:"\f130"}.post-format-icon.post-format-aside::before{content:"\f123"}.post-format-icon.post-format-quote::before{content:"\f122"}.post-format-icon.post-format-link::before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dcdcde;background-color:#fff}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}div.tabs-panel-active:focus{box-shadow:inset 0 0 0 1px #4f94d4,inset 0 0 2px 1px rgba(79,148,212,.8);outline:0 none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:1.69230769;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-field p,.form-field select{max-width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#646970}.form-wrap p,p.description,p.help,span.description{font-size:13px}p.description code{font-style:normal}.form-wrap .form-field{margin:1em 0;padding:0}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .ajaxtag{margin-top:1em}#poststuff .tagsdiv .howto{margin:1em 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #dcdcde;line-height:1.2;word-spacing:3px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #4f94d4;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#2271b1;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#addtag .spinner{float:none;vertical-align:top}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:initial;margin-right:2em}.comment-ays .comment-content a[href]:after{content:"(" attr(href) ")";display:inline-block;padding:0 4px;color:#646970;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:"";padding:0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:1.23076923}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none;margin-top:0}#namediv.stuffbox .editcomment input{width:100%}#namediv.stuffbox .editcomment.form-table td{padding:10px}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw{display:none}.wp-editor-expand #qt_content_dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:transform;transition-timing-function:ease-in-out}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{transform:translateX(0);transition-duration:.2s;transition-property:transform;transition-timing-function:ease-in-out}@media print,(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll left bottom;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:1200px){.post-type-attachment #poststuff{min-width:0}.post-type-attachment #wpbody-content #poststuff #post-body{margin:0}.post-type-attachment #wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}.post-type-attachment #poststuff #postbox-container-1 #side-sortables:empty,.post-type-attachment #poststuff #postbox-container-1 .empty-container{outline:0;height:0;min-height:0}.post-type-attachment #poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes.post-type-attachment #post-body .meta-box-sortables{outline:0;min-height:0;margin-bottom:0}.post-type-attachment .columns-prefs,.post-type-attachment .screen-layout{display:none}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes #poststuff #post-body.columns-2 #side-sortables,.is-dragging-metaboxes #poststuff #post-body.columns-2 .meta-box-sortables,.is-dragging-metaboxes #poststuff #postbox-container-1 #side-sortables:empty,.is-dragging-metaboxes #poststuff #postbox-container-1 .empty-container{height:auto;min-height:60px}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox .inside{padding:0 0 4px 2px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}#namediv.stuffbox .editcomment.form-table td{padding:5px 10px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}#delete-action,#publishing-action{line-height:3.61538461}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.edit-term-notes{display:none}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%;display:flex;flex-direction:column}.privacy-text-section .return-to-top{margin:2em 0 0}} \ No newline at end of file +#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#646970;position:absolute;font-size:1.7em;padding:10px;pointer-events:none}input#link_description,input#link_url{width:100%}#pending{background:100% none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:1.84615384;min-height:25px;margin-top:5px;padding:0 10px;color:#646970}#sample-permalink{display:inline-block;max-width:100%;word-wrap:break-word}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name-full{display:none}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:right}body.post-new-php .submitbox .submitdelete{display:none}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}body.post-type-wp_navigation .inline-edit-status,body.post-type-wp_navigation div#minor-publishing{display:none}.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables{outline:3px dashed #646970;display:flow-root;min-height:60px;margin-bottom:20px}.postbox{position:relative;min-width:255px;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#2c3338}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dcdcde;border-bottom-color:#fff;background-color:#fff}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}form#tags-filter{position:relative}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #c3c4c7;border-top:none;background-color:#f6f7f7;box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll left bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{padding:2px 10px}#wp-content-editor-container{position:relative}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #c3c4c7}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px}.wp-editor-expand #wp-content-editor-container{border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #c3c4c7}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw{display:none}.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f0f0f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{vertical-align:top;font-size:12px;line-height:2.33333333}#aa,#hh,#jj,#mn{padding:6px 1px;font-size:12px;line-height:1.16666666}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{color:#8c8f94}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-uploadedby:before{content:"\f110";position:relative;top:-1px}#post-body .misc-pub-uploadedto:before{content:"\f318";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#post-body .misc-pub-response-to:before{content:"\f101"}#timestampdiv{padding-top:5px;line-height:1.76923076}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{text-align:center}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist>li{float:right;margin-left:25px;font-size:13px;line-height:1.8;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .stuffbox h2{padding:8px 10px}#poststuff .stuffbox>h2{border-bottom:1px solid #f0f0f1}#poststuff .inside{margin:6px 0 0}.link-add-php #poststuff .inside,.link-php #poststuff .inside{margin-top:12px}#poststuff .stuffbox .inside{margin:0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#comment-status-radio,#post-visibility-select{line-height:1.5;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp_attachment_details .attachment-content-description{margin-top:.5385em;display:inline-block;min-height:1.6923em}.privacy-settings #wpcontent,.privacy-settings.auto-fold #wpcontent,.site-health #wpcontent,.site-health.auto-fold #wpcontent{padding-right:0}.privacy-settings .notice,.site-health .notice{margin:25px 22px 15px 20px}.privacy-settings .notice~.notice,.site-health .notice~.notice{margin-top:5px}.health-check-header h1,.privacy-settings-header h1{display:inline-block;font-weight:600;margin:0 .8rem 1rem;font-size:23px;padding:9px 0 4px;line-height:1.3}.health-check-header,.privacy-settings-header{text-align:center;margin:0 0 1rem;background:#fff;border-bottom:1px solid #dcdcde}.health-check-title-section,.privacy-settings-title-section{display:flex;align-items:center;justify-content:center;clear:both;padding-top:8px}.privacy-settings-tabs-wrapper{display:-ms-inline-grid;-ms-grid-columns:1fr 1fr;vertical-align:top;display:inline-grid;grid-template-columns:1fr 1fr}.privacy-settings-tab{display:block;text-decoration:none;color:inherit;padding:.5rem 1rem 1rem;margin:0 1rem;transition:box-shadow .5s ease-in-out}.health-check-tab:first-child,.privacy-settings-tab:first-child{-ms-grid-column:1}.health-check-tab:nth-child(2),.privacy-settings-tab:nth-child(2){-ms-grid-column:2}.health-check-tab:focus,.privacy-settings-tab:focus{color:#1d2327;outline:1px solid #787c82;box-shadow:none}.health-check-tab.active,.privacy-settings-tab.active{box-shadow:inset 0 -3px #3582c4;font-weight:600}.health-check-body,.privacy-settings-body{max-width:800px;margin:0 auto}.tools-privacy-policy-page th{min-width:230px}.hr-separator{margin-top:20px;margin-bottom:15px}.health-check-accordion,.privacy-settings-accordion{border:1px solid #c3c4c7}.health-check-accordion-heading,.privacy-settings-accordion-heading{margin:0;border-top:1px solid #c3c4c7;font-size:inherit;line-height:inherit;font-weight:600;color:inherit}.health-check-accordion-heading:first-child,.privacy-settings-accordion-heading:first-child{border-top:none}.health-check-accordion-trigger,.privacy-settings-accordion-trigger{background:#fff;border:0;color:#2c3338;cursor:pointer;display:flex;font-weight:400;margin:0;padding:1em 1.5em 1em 3.5em;min-height:46px;position:relative;text-align:right;width:100%;align-items:center;justify-content:space-between;-webkit-user-select:auto;user-select:auto}.health-check-accordion-trigger:active,.health-check-accordion-trigger:hover,.privacy-settings-accordion-trigger:active,.privacy-settings-accordion-trigger:hover{background:#f6f7f7}.health-check-accordion-trigger:focus,.privacy-settings-accordion-trigger:focus{color:#1d2327;border:none;box-shadow:none;outline-offset:-1px;outline:2px solid #2271b1;background-color:#f6f7f7}.health-check-accordion-trigger .title,.privacy-settings-accordion-trigger .title{pointer-events:none;font-weight:600;flex-grow:1}.health-check-accordion-trigger .icon,.privacy-settings-accordion-trigger .icon,.privacy-settings-view-read .icon,.site-health-view-passed .icon{border:solid #50575e;border-width:0 0 2px 2px;height:.5rem;pointer-events:none;position:absolute;left:1.5em;top:50%;transform:translateY(-70%) rotate(-45deg);width:.5rem}.health-check-accordion-trigger .badge,.privacy-settings-accordion-trigger .badge{padding:.1rem .5rem .15rem;color:#2c3338;font-weight:600}.privacy-settings-accordion-trigger .badge{margin-right:.5rem}.health-check-accordion-trigger .badge.blue,.privacy-settings-accordion-trigger .badge.blue{border:1px solid #72aee6}.health-check-accordion-trigger .badge.orange,.privacy-settings-accordion-trigger .badge.orange{border:1px solid #dba617}.health-check-accordion-trigger .badge.red,.privacy-settings-accordion-trigger .badge.red{border:1px solid #e65054}.health-check-accordion-trigger .badge.green,.privacy-settings-accordion-trigger .badge.green{border:1px solid #00ba37}.health-check-accordion-trigger .badge.purple,.privacy-settings-accordion-trigger .badge.purple{border:1px solid #2271b1}.health-check-accordion-trigger .badge.gray,.privacy-settings-accordion-trigger .badge.gray{border:1px solid #c3c4c7}.health-check-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-view-passed[aria-expanded=true] .icon,.site-health-view-passed[aria-expanded=true] .icon{transform:translateY(-30%) rotate(135deg)}.health-check-accordion-panel,.privacy-settings-accordion-panel{margin:0;padding:1em 1.5em;background:#fff}.health-check-accordion-panel[hidden],.privacy-settings-accordion-panel[hidden]{display:none}.health-check-accordion-panel a .dashicons,.privacy-settings-accordion-panel a .dashicons{text-decoration:none}.privacy-settings-accordion-actions{text-align:left;display:block}.privacy-settings-accordion-actions .success{display:none;color:#007017;padding-left:1em;padding-top:6px}.privacy-settings-accordion-actions .success.visible{display:inline-block}.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-policy-tutorial,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-text-copy,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .wp-policy-help{display:none}.privacy-settings-accordion-panel strong.privacy-policy-tutorial,.privacy-settings-accordion-panel strong.wp-policy-help{display:block;margin:0 0 1em}.privacy-text-copy span{pointer-events:none}.privacy-settings-accordion-panel .wp-suggested-text div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel .wp-suggested-text>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p){margin:0;padding:1em;border-right:2px solid #787c82}@media screen and (max-width:782px){.health-check-body,.privacy-settings-body{margin:0 12px;width:auto}.privacy-settings .notice,.site-health .notice{margin:5px 10px 15px}.privacy-settings .update-nag,.site-health .update-nag{margin-left:10px;margin-right:10px}input#create-page{margin-top:10px}.wp-core-ui button.privacy-text-copy{white-space:normal;line-height:1.8}}@media only screen and (max-width:1004px){.health-check-body,.privacy-settings-body{margin:0 22px;width:auto}}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f0f0f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#postcustom #postcustomstuff .add-custom-field{padding:12px 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dcdcde;border-spacing:0;background-color:#f6f7f7}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmeta-button,#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-format-icon::before{display:inline-block;vertical-align:middle;height:20px;width:20px;margin-top:-4px;margin-left:7px;color:#dcdcde;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a.post-format-icon:hover:before{color:#135e96}#post-formats-select{line-height:2}#post-formats-select .post-format-icon::before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon.post-format-standard::before{content:"\f109"}.post-format-icon.post-format-image::before{content:"\f128"}.post-format-icon.post-format-gallery::before{content:"\f161"}.post-format-icon.post-format-audio::before{content:"\f127"}.post-format-icon.post-format-video::before{content:"\f126"}.post-format-icon.post-format-chat::before{content:"\f125"}.post-format-icon.post-format-status::before{content:"\f130"}.post-format-icon.post-format-aside::before{content:"\f123"}.post-format-icon.post-format-quote::before{content:"\f122"}.post-format-icon.post-format-link::before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dcdcde;background-color:#fff}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}div.tabs-panel-active:focus{box-shadow:inset 0 0 0 1px #4f94d4,inset 0 0 2px 1px rgba(79,148,212,.8);outline:0 none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:1.69230769;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-field p,.form-field select{max-width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#646970}.form-wrap p,p.description,p.help,span.description{font-size:13px}p.description code{font-style:normal}.form-wrap .form-field{margin:1em 0;padding:0}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .ajaxtag{margin-top:1em}#poststuff .tagsdiv .howto{margin:1em 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #dcdcde;line-height:1.2;word-spacing:3px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #4f94d4;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#2271b1;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#addtag .spinner{float:none;vertical-align:top}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:initial;margin-right:2em}.comment-ays .comment-content a[href]:after{content:"(" attr(href) ")";display:inline-block;padding:0 4px;color:#646970;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:"";padding:0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:1.23076923}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none;margin-top:0}#namediv.stuffbox .editcomment input{width:100%}#namediv.stuffbox .editcomment.form-table td{padding:10px}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw{display:none}.wp-editor-expand #qt_content_dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:transform;transition-timing-function:ease-in-out}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{transform:translateX(0);transition-duration:.2s;transition-property:transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll left bottom;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:1200px){.post-type-attachment #poststuff{min-width:0}.post-type-attachment #wpbody-content #poststuff #post-body{margin:0}.post-type-attachment #wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}.post-type-attachment #poststuff #postbox-container-1 #side-sortables:empty,.post-type-attachment #poststuff #postbox-container-1 .empty-container{outline:0;height:0;min-height:0}.post-type-attachment #poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes.post-type-attachment #post-body .meta-box-sortables{outline:0;min-height:0;margin-bottom:0}.post-type-attachment .columns-prefs,.post-type-attachment .screen-layout{display:none}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes #poststuff #post-body.columns-2 #side-sortables,.is-dragging-metaboxes #poststuff #post-body.columns-2 .meta-box-sortables,.is-dragging-metaboxes #poststuff #postbox-container-1 #side-sortables:empty,.is-dragging-metaboxes #poststuff #postbox-container-1 .empty-container{height:auto;min-height:60px}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox .inside{padding:0 0 4px 2px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}#namediv.stuffbox .editcomment.form-table td{padding:5px 10px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}#delete-action,#publishing-action{line-height:3.61538461}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.edit-term-notes{display:none}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%;display:flex;flex-direction:column}.privacy-text-section .return-to-top{margin:2em 0 0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.css index 8f2032b189..7973154666 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.css @@ -1688,6 +1688,7 @@ table.links-table { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #content-resize-handle, #post-body .wp_themeSkin .mceStatusbar a.mceResize { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.min.css index aa8a1b036f..c616900b75 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/edit.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#646970;position:absolute;font-size:1.7em;padding:10px;pointer-events:none}input#link_description,input#link_url{width:100%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:1.84615384;min-height:25px;margin-top:5px;padding:0 10px;color:#646970}#sample-permalink{display:inline-block;max-width:100%;word-wrap:break-word}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name-full{display:none}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:left}body.post-new-php .submitbox .submitdelete{display:none}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}body.post-type-wp_navigation .inline-edit-status,body.post-type-wp_navigation div#minor-publishing{display:none}.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables{outline:3px dashed #646970;display:flow-root;min-height:60px;margin-bottom:20px}.postbox{position:relative;min-width:255px;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#2c3338}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dcdcde;border-bottom-color:#fff;background-color:#fff}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}form#tags-filter{position:relative}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #c3c4c7;border-top:none;background-color:#f6f7f7;box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll right bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{padding:2px 10px}#wp-content-editor-container{position:relative}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #c3c4c7}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px}.wp-editor-expand #wp-content-editor-container{border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #c3c4c7}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw{display:none}.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f0f0f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{vertical-align:top;font-size:12px;line-height:2.33333333}#aa,#hh,#jj,#mn{padding:6px 1px;font-size:12px;line-height:1.16666666}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{color:#8c8f94}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-uploadedby:before{content:"\f110";position:relative;top:-1px}#post-body .misc-pub-uploadedto:before{content:"\f318";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#post-body .misc-pub-response-to:before{content:"\f101"}#timestampdiv{padding-top:5px;line-height:1.76923076}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{text-align:center}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist>li{float:left;margin-right:25px;font-size:13px;line-height:1.8;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .stuffbox h2{padding:8px 10px}#poststuff .stuffbox>h2{border-bottom:1px solid #f0f0f1}#poststuff .inside{margin:6px 0 0}.link-add-php #poststuff .inside,.link-php #poststuff .inside{margin-top:12px}#poststuff .stuffbox .inside{margin:0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#comment-status-radio,#post-visibility-select{line-height:1.5;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp_attachment_details .attachment-content-description{margin-top:.5385em;display:inline-block;min-height:1.6923em}.privacy-settings #wpcontent,.privacy-settings.auto-fold #wpcontent,.site-health #wpcontent,.site-health.auto-fold #wpcontent{padding-left:0}.privacy-settings .notice,.site-health .notice{margin:25px 20px 15px 22px}.privacy-settings .notice~.notice,.site-health .notice~.notice{margin-top:5px}.health-check-header h1,.privacy-settings-header h1{display:inline-block;font-weight:600;margin:0 .8rem 1rem;font-size:23px;padding:9px 0 4px;line-height:1.3}.health-check-header,.privacy-settings-header{text-align:center;margin:0 0 1rem;background:#fff;border-bottom:1px solid #dcdcde}.health-check-title-section,.privacy-settings-title-section{display:flex;align-items:center;justify-content:center;clear:both;padding-top:8px}.privacy-settings-tabs-wrapper{display:-ms-inline-grid;-ms-grid-columns:1fr 1fr;vertical-align:top;display:inline-grid;grid-template-columns:1fr 1fr}.privacy-settings-tab{display:block;text-decoration:none;color:inherit;padding:.5rem 1rem 1rem;margin:0 1rem;transition:box-shadow .5s ease-in-out}.health-check-tab:first-child,.privacy-settings-tab:first-child{-ms-grid-column:1}.health-check-tab:nth-child(2),.privacy-settings-tab:nth-child(2){-ms-grid-column:2}.health-check-tab:focus,.privacy-settings-tab:focus{color:#1d2327;outline:1px solid #787c82;box-shadow:none}.health-check-tab.active,.privacy-settings-tab.active{box-shadow:inset 0 -3px #3582c4;font-weight:600}.health-check-body,.privacy-settings-body{max-width:800px;margin:0 auto}.tools-privacy-policy-page th{min-width:230px}.hr-separator{margin-top:20px;margin-bottom:15px}.health-check-accordion,.privacy-settings-accordion{border:1px solid #c3c4c7}.health-check-accordion-heading,.privacy-settings-accordion-heading{margin:0;border-top:1px solid #c3c4c7;font-size:inherit;line-height:inherit;font-weight:600;color:inherit}.health-check-accordion-heading:first-child,.privacy-settings-accordion-heading:first-child{border-top:none}.health-check-accordion-trigger,.privacy-settings-accordion-trigger{background:#fff;border:0;color:#2c3338;cursor:pointer;display:flex;font-weight:400;margin:0;padding:1em 3.5em 1em 1.5em;min-height:46px;position:relative;text-align:left;width:100%;align-items:center;justify-content:space-between;-webkit-user-select:auto;user-select:auto}.health-check-accordion-trigger:active,.health-check-accordion-trigger:hover,.privacy-settings-accordion-trigger:active,.privacy-settings-accordion-trigger:hover{background:#f6f7f7}.health-check-accordion-trigger:focus,.privacy-settings-accordion-trigger:focus{color:#1d2327;border:none;box-shadow:none;outline-offset:-1px;outline:2px solid #2271b1;background-color:#f6f7f7}.health-check-accordion-trigger .title,.privacy-settings-accordion-trigger .title{pointer-events:none;font-weight:600;flex-grow:1}.health-check-accordion-trigger .icon,.privacy-settings-accordion-trigger .icon,.privacy-settings-view-read .icon,.site-health-view-passed .icon{border:solid #50575e;border-width:0 2px 2px 0;height:.5rem;pointer-events:none;position:absolute;right:1.5em;top:50%;transform:translateY(-70%) rotate(45deg);width:.5rem}.health-check-accordion-trigger .badge,.privacy-settings-accordion-trigger .badge{padding:.1rem .5rem .15rem;color:#2c3338;font-weight:600}.privacy-settings-accordion-trigger .badge{margin-left:.5rem}.health-check-accordion-trigger .badge.blue,.privacy-settings-accordion-trigger .badge.blue{border:1px solid #72aee6}.health-check-accordion-trigger .badge.orange,.privacy-settings-accordion-trigger .badge.orange{border:1px solid #dba617}.health-check-accordion-trigger .badge.red,.privacy-settings-accordion-trigger .badge.red{border:1px solid #e65054}.health-check-accordion-trigger .badge.green,.privacy-settings-accordion-trigger .badge.green{border:1px solid #00ba37}.health-check-accordion-trigger .badge.purple,.privacy-settings-accordion-trigger .badge.purple{border:1px solid #2271b1}.health-check-accordion-trigger .badge.gray,.privacy-settings-accordion-trigger .badge.gray{border:1px solid #c3c4c7}.health-check-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-view-passed[aria-expanded=true] .icon,.site-health-view-passed[aria-expanded=true] .icon{transform:translateY(-30%) rotate(-135deg)}.health-check-accordion-panel,.privacy-settings-accordion-panel{margin:0;padding:1em 1.5em;background:#fff}.health-check-accordion-panel[hidden],.privacy-settings-accordion-panel[hidden]{display:none}.health-check-accordion-panel a .dashicons,.privacy-settings-accordion-panel a .dashicons{text-decoration:none}.privacy-settings-accordion-actions{text-align:right;display:block}.privacy-settings-accordion-actions .success{display:none;color:#007017;padding-right:1em;padding-top:6px}.privacy-settings-accordion-actions .success.visible{display:inline-block}.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-policy-tutorial,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-text-copy,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .wp-policy-help{display:none}.privacy-settings-accordion-panel strong.privacy-policy-tutorial,.privacy-settings-accordion-panel strong.wp-policy-help{display:block;margin:0 0 1em}.privacy-text-copy span{pointer-events:none}.privacy-settings-accordion-panel .wp-suggested-text div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel .wp-suggested-text>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p){margin:0;padding:1em;border-left:2px solid #787c82}@media screen and (max-width:782px){.health-check-body,.privacy-settings-body{margin:0 12px;width:auto}.privacy-settings .notice,.site-health .notice{margin:5px 10px 15px}.privacy-settings .update-nag,.site-health .update-nag{margin-right:10px;margin-left:10px}input#create-page{margin-top:10px}.wp-core-ui button.privacy-text-copy{white-space:normal;line-height:1.8}}@media only screen and (max-width:1004px){.health-check-body,.privacy-settings-body{margin:0 22px;width:auto}}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f0f0f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#postcustom #postcustomstuff .add-custom-field{padding:12px 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dcdcde;border-spacing:0;background-color:#f6f7f7}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmeta-button,#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-format-icon::before{display:inline-block;vertical-align:middle;height:20px;width:20px;margin-top:-4px;margin-right:7px;color:#dcdcde;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a.post-format-icon:hover:before{color:#135e96}#post-formats-select{line-height:2}#post-formats-select .post-format-icon::before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon.post-format-standard::before{content:"\f109"}.post-format-icon.post-format-image::before{content:"\f128"}.post-format-icon.post-format-gallery::before{content:"\f161"}.post-format-icon.post-format-audio::before{content:"\f127"}.post-format-icon.post-format-video::before{content:"\f126"}.post-format-icon.post-format-chat::before{content:"\f125"}.post-format-icon.post-format-status::before{content:"\f130"}.post-format-icon.post-format-aside::before{content:"\f123"}.post-format-icon.post-format-quote::before{content:"\f122"}.post-format-icon.post-format-link::before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dcdcde;background-color:#fff}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}div.tabs-panel-active:focus{box-shadow:inset 0 0 0 1px #4f94d4,inset 0 0 2px 1px rgba(79,148,212,.8);outline:0 none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:1.69230769;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-field p,.form-field select{max-width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#646970}.form-wrap p,p.description,p.help,span.description{font-size:13px}p.description code{font-style:normal}.form-wrap .form-field{margin:1em 0;padding:0}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .ajaxtag{margin-top:1em}#poststuff .tagsdiv .howto{margin:1em 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #dcdcde;line-height:1.2;word-spacing:3px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #4f94d4;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#2271b1;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#addtag .spinner{float:none;vertical-align:top}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:initial;margin-left:2em}.comment-ays .comment-content a[href]:after{content:"(" attr(href) ")";display:inline-block;padding:0 4px;color:#646970;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:"";padding:0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:1.23076923}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none;margin-top:0}#namediv.stuffbox .editcomment input{width:100%}#namediv.stuffbox .editcomment.form-table td{padding:10px}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw{display:none}.wp-editor-expand #qt_content_dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:transform;transition-timing-function:ease-in-out}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{transform:translateX(0);transition-duration:.2s;transition-property:transform;transition-timing-function:ease-in-out}@media print,(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll right bottom;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:1200px){.post-type-attachment #poststuff{min-width:0}.post-type-attachment #wpbody-content #poststuff #post-body{margin:0}.post-type-attachment #wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}.post-type-attachment #poststuff #postbox-container-1 #side-sortables:empty,.post-type-attachment #poststuff #postbox-container-1 .empty-container{outline:0;height:0;min-height:0}.post-type-attachment #poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes.post-type-attachment #post-body .meta-box-sortables{outline:0;min-height:0;margin-bottom:0}.post-type-attachment .columns-prefs,.post-type-attachment .screen-layout{display:none}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes #poststuff #post-body.columns-2 #side-sortables,.is-dragging-metaboxes #poststuff #post-body.columns-2 .meta-box-sortables,.is-dragging-metaboxes #poststuff #postbox-container-1 #side-sortables:empty,.is-dragging-metaboxes #poststuff #postbox-container-1 .empty-container{height:auto;min-height:60px}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox .inside{padding:0 2px 4px 0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}#namediv.stuffbox .editcomment.form-table td{padding:5px 10px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}#delete-action,#publishing-action{line-height:3.61538461}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.edit-term-notes{display:none}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%;display:flex;flex-direction:column}.privacy-text-section .return-to-top{margin:2em 0 0}} \ No newline at end of file +#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#646970;position:absolute;font-size:1.7em;padding:10px;pointer-events:none}input#link_description,input#link_url{width:100%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:1.84615384;min-height:25px;margin-top:5px;padding:0 10px;color:#646970}#sample-permalink{display:inline-block;max-width:100%;word-wrap:break-word}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name-full{display:none}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:left}body.post-new-php .submitbox .submitdelete{display:none}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}body.post-type-wp_navigation .inline-edit-status,body.post-type-wp_navigation div#minor-publishing{display:none}.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables{outline:3px dashed #646970;display:flow-root;min-height:60px;margin-bottom:20px}.postbox{position:relative;min-width:255px;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#2c3338}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dcdcde;border-bottom-color:#fff;background-color:#fff}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}form#tags-filter{position:relative}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #c3c4c7;border-top:none;background-color:#f6f7f7;box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll right bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{padding:2px 10px}#wp-content-editor-container{position:relative}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #c3c4c7}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px}.wp-editor-expand #wp-content-editor-container{border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #c3c4c7}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw{display:none}.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f0f0f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{vertical-align:top;font-size:12px;line-height:2.33333333}#aa,#hh,#jj,#mn{padding:6px 1px;font-size:12px;line-height:1.16666666}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{color:#8c8f94}#post-body #visibility:before,#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-response-to:before,#post-body .misc-pub-revisions:before,#post-body .misc-pub-uploadedby:before,#post-body .misc-pub-uploadedto:before,.curtime #timestamp:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-comment-status:before,#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-uploadedby:before{content:"\f110";position:relative;top:-1px}#post-body .misc-pub-uploadedto:before{content:"\f318";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#post-body .misc-pub-response-to:before{content:"\f101"}#timestampdiv{padding-top:5px;line-height:1.76923076}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{text-align:center}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist>li{float:left;margin-right:25px;font-size:13px;line-height:1.8;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .stuffbox h2{padding:8px 10px}#poststuff .stuffbox>h2{border-bottom:1px solid #f0f0f1}#poststuff .inside{margin:6px 0 0}.link-add-php #poststuff .inside,.link-php #poststuff .inside{margin-top:12px}#poststuff .stuffbox .inside{margin:0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#comment-status-radio,#post-visibility-select{line-height:1.5;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp_attachment_details .attachment-content-description{margin-top:.5385em;display:inline-block;min-height:1.6923em}.privacy-settings #wpcontent,.privacy-settings.auto-fold #wpcontent,.site-health #wpcontent,.site-health.auto-fold #wpcontent{padding-left:0}.privacy-settings .notice,.site-health .notice{margin:25px 20px 15px 22px}.privacy-settings .notice~.notice,.site-health .notice~.notice{margin-top:5px}.health-check-header h1,.privacy-settings-header h1{display:inline-block;font-weight:600;margin:0 .8rem 1rem;font-size:23px;padding:9px 0 4px;line-height:1.3}.health-check-header,.privacy-settings-header{text-align:center;margin:0 0 1rem;background:#fff;border-bottom:1px solid #dcdcde}.health-check-title-section,.privacy-settings-title-section{display:flex;align-items:center;justify-content:center;clear:both;padding-top:8px}.privacy-settings-tabs-wrapper{display:-ms-inline-grid;-ms-grid-columns:1fr 1fr;vertical-align:top;display:inline-grid;grid-template-columns:1fr 1fr}.privacy-settings-tab{display:block;text-decoration:none;color:inherit;padding:.5rem 1rem 1rem;margin:0 1rem;transition:box-shadow .5s ease-in-out}.health-check-tab:first-child,.privacy-settings-tab:first-child{-ms-grid-column:1}.health-check-tab:nth-child(2),.privacy-settings-tab:nth-child(2){-ms-grid-column:2}.health-check-tab:focus,.privacy-settings-tab:focus{color:#1d2327;outline:1px solid #787c82;box-shadow:none}.health-check-tab.active,.privacy-settings-tab.active{box-shadow:inset 0 -3px #3582c4;font-weight:600}.health-check-body,.privacy-settings-body{max-width:800px;margin:0 auto}.tools-privacy-policy-page th{min-width:230px}.hr-separator{margin-top:20px;margin-bottom:15px}.health-check-accordion,.privacy-settings-accordion{border:1px solid #c3c4c7}.health-check-accordion-heading,.privacy-settings-accordion-heading{margin:0;border-top:1px solid #c3c4c7;font-size:inherit;line-height:inherit;font-weight:600;color:inherit}.health-check-accordion-heading:first-child,.privacy-settings-accordion-heading:first-child{border-top:none}.health-check-accordion-trigger,.privacy-settings-accordion-trigger{background:#fff;border:0;color:#2c3338;cursor:pointer;display:flex;font-weight:400;margin:0;padding:1em 3.5em 1em 1.5em;min-height:46px;position:relative;text-align:left;width:100%;align-items:center;justify-content:space-between;-webkit-user-select:auto;user-select:auto}.health-check-accordion-trigger:active,.health-check-accordion-trigger:hover,.privacy-settings-accordion-trigger:active,.privacy-settings-accordion-trigger:hover{background:#f6f7f7}.health-check-accordion-trigger:focus,.privacy-settings-accordion-trigger:focus{color:#1d2327;border:none;box-shadow:none;outline-offset:-1px;outline:2px solid #2271b1;background-color:#f6f7f7}.health-check-accordion-trigger .title,.privacy-settings-accordion-trigger .title{pointer-events:none;font-weight:600;flex-grow:1}.health-check-accordion-trigger .icon,.privacy-settings-accordion-trigger .icon,.privacy-settings-view-read .icon,.site-health-view-passed .icon{border:solid #50575e;border-width:0 2px 2px 0;height:.5rem;pointer-events:none;position:absolute;right:1.5em;top:50%;transform:translateY(-70%) rotate(45deg);width:.5rem}.health-check-accordion-trigger .badge,.privacy-settings-accordion-trigger .badge{padding:.1rem .5rem .15rem;color:#2c3338;font-weight:600}.privacy-settings-accordion-trigger .badge{margin-left:.5rem}.health-check-accordion-trigger .badge.blue,.privacy-settings-accordion-trigger .badge.blue{border:1px solid #72aee6}.health-check-accordion-trigger .badge.orange,.privacy-settings-accordion-trigger .badge.orange{border:1px solid #dba617}.health-check-accordion-trigger .badge.red,.privacy-settings-accordion-trigger .badge.red{border:1px solid #e65054}.health-check-accordion-trigger .badge.green,.privacy-settings-accordion-trigger .badge.green{border:1px solid #00ba37}.health-check-accordion-trigger .badge.purple,.privacy-settings-accordion-trigger .badge.purple{border:1px solid #2271b1}.health-check-accordion-trigger .badge.gray,.privacy-settings-accordion-trigger .badge.gray{border:1px solid #c3c4c7}.health-check-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-accordion-trigger[aria-expanded=true] .icon,.privacy-settings-view-passed[aria-expanded=true] .icon,.site-health-view-passed[aria-expanded=true] .icon{transform:translateY(-30%) rotate(-135deg)}.health-check-accordion-panel,.privacy-settings-accordion-panel{margin:0;padding:1em 1.5em;background:#fff}.health-check-accordion-panel[hidden],.privacy-settings-accordion-panel[hidden]{display:none}.health-check-accordion-panel a .dashicons,.privacy-settings-accordion-panel a .dashicons{text-decoration:none}.privacy-settings-accordion-actions{text-align:right;display:block}.privacy-settings-accordion-actions .success{display:none;color:#007017;padding-right:1em;padding-top:6px}.privacy-settings-accordion-actions .success.visible{display:inline-block}.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-policy-tutorial,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .privacy-text-copy,.privacy-settings-accordion-panel.hide-privacy-policy-tutorial .wp-policy-help{display:none}.privacy-settings-accordion-panel strong.privacy-policy-tutorial,.privacy-settings-accordion-panel strong.wp-policy-help{display:block;margin:0 0 1em}.privacy-text-copy span{pointer-events:none}.privacy-settings-accordion-panel .wp-suggested-text div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel .wp-suggested-text>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel div>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p),.privacy-settings-accordion-panel>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(div):not(.privacy-policy-tutorial):not(.wp-policy-help):not(.privacy-text-copy):not(span.success):not(.notice p){margin:0;padding:1em;border-left:2px solid #787c82}@media screen and (max-width:782px){.health-check-body,.privacy-settings-body{margin:0 12px;width:auto}.privacy-settings .notice,.site-health .notice{margin:5px 10px 15px}.privacy-settings .update-nag,.site-health .update-nag{margin-right:10px;margin-left:10px}input#create-page{margin-top:10px}.wp-core-ui button.privacy-text-copy{white-space:normal;line-height:1.8}}@media only screen and (max-width:1004px){.health-check-body,.privacy-settings-body{margin:0 22px;width:auto}}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f0f0f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#postcustom #postcustomstuff .add-custom-field{padding:12px 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dcdcde;border-spacing:0;background-color:#f6f7f7}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmeta-button,#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-format-icon::before{display:inline-block;vertical-align:middle;height:20px;width:20px;margin-top:-4px;margin-right:7px;color:#dcdcde;font:normal 20px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a.post-format-icon:hover:before{color:#135e96}#post-formats-select{line-height:2}#post-formats-select .post-format-icon::before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon.post-format-standard::before{content:"\f109"}.post-format-icon.post-format-image::before{content:"\f128"}.post-format-icon.post-format-gallery::before{content:"\f161"}.post-format-icon.post-format-audio::before{content:"\f127"}.post-format-icon.post-format-video::before{content:"\f126"}.post-format-icon.post-format-chat::before{content:"\f125"}.post-format-icon.post-format-status::before{content:"\f130"}.post-format-icon.post-format-aside::before{content:"\f123"}.post-format-icon.post-format-quote::before{content:"\f122"}.post-format-icon.post-format-link::before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dcdcde;background-color:#fff}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}div.tabs-panel-active:focus{box-shadow:inset 0 0 0 1px #4f94d4,inset 0 0 2px 1px rgba(79,148,212,.8);outline:0 none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:1.69230769;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-field p,.form-field select{max-width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#646970}.form-wrap p,p.description,p.help,span.description{font-size:13px}p.description code{font-style:normal}.form-wrap .form-field{margin:1em 0;padding:0}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .ajaxtag{margin-top:1em}#poststuff .tagsdiv .howto{margin:1em 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #dcdcde;line-height:1.2;word-spacing:3px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #4f94d4;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#2271b1;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#addtag .spinner{float:none;vertical-align:top}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:initial;margin-left:2em}.comment-ays .comment-content a[href]:after{content:"(" attr(href) ")";display:inline-block;padding:0 4px;color:#646970;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:"";padding:0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:1.23076923}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none;margin-top:0}#namediv.stuffbox .editcomment input{width:100%}#namediv.stuffbox .editcomment.form-table td{padding:10px}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw{display:none}.wp-editor-expand #qt_content_dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:transform;transition-timing-function:ease-in-out}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{transform:translateX(0);transition-duration:.2s;transition-property:transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll right bottom;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:1200px){.post-type-attachment #poststuff{min-width:0}.post-type-attachment #wpbody-content #poststuff #post-body{margin:0}.post-type-attachment #wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}.post-type-attachment #poststuff #postbox-container-1 #side-sortables:empty,.post-type-attachment #poststuff #postbox-container-1 .empty-container{outline:0;height:0;min-height:0}.post-type-attachment #poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes.post-type-attachment #post-body .meta-box-sortables{outline:0;min-height:0;margin-bottom:0}.post-type-attachment .columns-prefs,.post-type-attachment .screen-layout{display:none}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.is-dragging-metaboxes #poststuff #post-body.columns-2 #side-sortables,.is-dragging-metaboxes #poststuff #post-body.columns-2 .meta-box-sortables,.is-dragging-metaboxes #poststuff #postbox-container-1 #side-sortables:empty,.is-dragging-metaboxes #poststuff #postbox-container-1 .empty-container{height:auto;min-height:60px}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox .inside{padding:0 2px 4px 0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}#namediv.stuffbox .editcomment.form-table td{padding:5px 10px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}#delete-action,#publishing-action{line-height:3.61538461}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.edit-term-notes{display:none}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%;display:flex;flex-direction:column}.privacy-text-section .return-to-top{margin:2em 0 0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.css index 2d5112d923..01fd770d4c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.css @@ -392,6 +392,7 @@ body.language-chooser { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .spinner { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.min.css index b125320aad..10197e3477 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -html{background:#f0f0f1;margin:0 20px}body{background:#fff;border:1px solid #c3c4c7;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;box-shadow:0 1px 1px rgba(0,0,0,.04)}a{color:#2271b1}a:active,a:hover{color:#135e96}a:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}h1,h2{border-bottom:1px solid #dcdcde;clear:both;color:#646970;font-size:24px;padding:0 0 7px;font-weight:400}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 22px 5px 5px}a img{border:0}abbr{border:0;font-variant:normal}fieldset{border:0;padding:0;margin:0}label{cursor:pointer}#logo{margin:-130px auto 25px;padding:0 0 25px;width:84px;height:84px;overflow:hidden;background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#3c434a;font-size:20px;font-weight:400;line-height:1.3em;text-decoration:none;text-align:center;text-indent:-9999px;outline:0}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.language-chooser.wp-core-ui .step .button.button-large{font-size:14px}textarea{border:1px solid #dcdcde;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:100%;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 0 10px 20px;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:right;padding:10px 0 10px 20px;width:115px;vertical-align:top}.form-table code{line-height:1.28571428;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table .setup-description{margin:4px 0 0;line-height:1.6}.form-table input{line-height:1.33333333;font-size:15px;padding:3px 5px}.wp-pwd{margin-top:0}.form-table .wp-pwd{display:flex;column-gap:4px}.form-table .password-input-wrapper{width:100%}input,submit{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}#pass-strength-result,.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:100%}.form-table th p{font-weight:400}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 0 16px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:1.28571428;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.message{border-right:4px solid #d63638;padding:.7em .6em;background-color:#fcf0f1}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}#pwd{padding-left:2.5rem}.wp-pwd #pass1{padding-left:50px}.wp-pwd .button.wp-hide-pw{left:0}#pass-strength-result{width:100%}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #dcdcde;background:#fff;color:#2c3338;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser select:focus{color:#2c3338}.language-chooser select option:focus,.language-chooser select option:hover{color:#0a4b78}.language-chooser .step{text-align:left}.screen-reader-input,.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;visibility:hidden;opacity:.7;width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-left:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}} \ No newline at end of file +html{background:#f0f0f1;margin:0 20px}body{background:#fff;border:1px solid #c3c4c7;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;box-shadow:0 1px 1px rgba(0,0,0,.04)}a{color:#2271b1}a:active,a:hover{color:#135e96}a:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}h1,h2{border-bottom:1px solid #dcdcde;clear:both;color:#646970;font-size:24px;padding:0 0 7px;font-weight:400}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 22px 5px 5px}a img{border:0}abbr{border:0;font-variant:normal}fieldset{border:0;padding:0;margin:0}label{cursor:pointer}#logo{margin:-130px auto 25px;padding:0 0 25px;width:84px;height:84px;overflow:hidden;background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#3c434a;font-size:20px;font-weight:400;line-height:1.3em;text-decoration:none;text-align:center;text-indent:-9999px;outline:0}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.language-chooser.wp-core-ui .step .button.button-large{font-size:14px}textarea{border:1px solid #dcdcde;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:100%;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 0 10px 20px;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:right;padding:10px 0 10px 20px;width:115px;vertical-align:top}.form-table code{line-height:1.28571428;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table .setup-description{margin:4px 0 0;line-height:1.6}.form-table input{line-height:1.33333333;font-size:15px;padding:3px 5px}.wp-pwd{margin-top:0}.form-table .wp-pwd{display:flex;column-gap:4px}.form-table .password-input-wrapper{width:100%}input,submit{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}#pass-strength-result,.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:100%}.form-table th p{font-weight:400}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 0 16px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:1.28571428;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.message{border-right:4px solid #d63638;padding:.7em .6em;background-color:#fcf0f1}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}#pwd{padding-left:2.5rem}.wp-pwd #pass1{padding-left:50px}.wp-pwd .button.wp-hide-pw{left:0}#pass-strength-result{width:100%}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #dcdcde;background:#fff;color:#2c3338;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser select:focus{color:#2c3338}.language-chooser select option:focus,.language-chooser select option:hover{color:#0a4b78}.language-chooser .step{text-align:left}.screen-reader-input,.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;visibility:hidden;opacity:.7;width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-left:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.css index f42791dec8..144f99c978 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.css @@ -391,6 +391,7 @@ body.language-chooser { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .spinner { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.min.css index 3073a3955a..c3f54725f3 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/install.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -html{background:#f0f0f1;margin:0 20px}body{background:#fff;border:1px solid #c3c4c7;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;box-shadow:0 1px 1px rgba(0,0,0,.04)}a{color:#2271b1}a:active,a:hover{color:#135e96}a:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}h1,h2{border-bottom:1px solid #dcdcde;clear:both;color:#646970;font-size:24px;padding:0 0 7px;font-weight:400}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}fieldset{border:0;padding:0;margin:0}label{cursor:pointer}#logo{margin:-130px auto 25px;padding:0 0 25px;width:84px;height:84px;overflow:hidden;background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#3c434a;font-size:20px;font-weight:400;line-height:1.3em;text-decoration:none;text-align:center;text-indent:-9999px;outline:0}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.language-chooser.wp-core-ui .step .button.button-large{font-size:14px}textarea{border:1px solid #dcdcde;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:100%;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:10px 20px 10px 0;width:115px;vertical-align:top}.form-table code{line-height:1.28571428;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table .setup-description{margin:4px 0 0;line-height:1.6}.form-table input{line-height:1.33333333;font-size:15px;padding:3px 5px}.wp-pwd{margin-top:0}.form-table .wp-pwd{display:flex;column-gap:4px}.form-table .password-input-wrapper{width:100%}input,submit{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}#pass-strength-result,.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:100%}.form-table th p{font-weight:400}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 20px 16px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:1.28571428;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.message{border-left:4px solid #d63638;padding:.7em .6em;background-color:#fcf0f1}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}#pwd{padding-right:2.5rem}.wp-pwd #pass1{padding-right:50px}.wp-pwd .button.wp-hide-pw{right:0}#pass-strength-result{width:100%}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #dcdcde;background:#fff;color:#2c3338;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser select:focus{color:#2c3338}.language-chooser select option:focus,.language-chooser select option:hover{color:#0a4b78}.language-chooser .step{text-align:right}.screen-reader-input,.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;visibility:hidden;opacity:.7;width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-right:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}} \ No newline at end of file +html{background:#f0f0f1;margin:0 20px}body{background:#fff;border:1px solid #c3c4c7;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;box-shadow:0 1px 1px rgba(0,0,0,.04)}a{color:#2271b1}a:active,a:hover{color:#135e96}a:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}h1,h2{border-bottom:1px solid #dcdcde;clear:both;color:#646970;font-size:24px;padding:0 0 7px;font-weight:400}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}fieldset{border:0;padding:0;margin:0}label{cursor:pointer}#logo{margin:-130px auto 25px;padding:0 0 25px;width:84px;height:84px;overflow:hidden;background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#3c434a;font-size:20px;font-weight:400;line-height:1.3em;text-decoration:none;text-align:center;text-indent:-9999px;outline:0}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.language-chooser.wp-core-ui .step .button.button-large{font-size:14px}textarea{border:1px solid #dcdcde;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:100%;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:10px 20px 10px 0;width:115px;vertical-align:top}.form-table code{line-height:1.28571428;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table .setup-description{margin:4px 0 0;line-height:1.6}.form-table input{line-height:1.33333333;font-size:15px;padding:3px 5px}.wp-pwd{margin-top:0}.form-table .wp-pwd{display:flex;column-gap:4px}.form-table .password-input-wrapper{width:100%}input,submit{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}#pass-strength-result,.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:100%}.form-table th p{font-weight:400}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 20px 16px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:1.28571428;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.message{border-left:4px solid #d63638;padding:.7em .6em;background-color:#fcf0f1}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}#pwd{padding-right:2.5rem}.wp-pwd #pass1{padding-right:50px}.wp-pwd .button.wp-hide-pw{right:0}#pass-strength-result{width:100%}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #dcdcde;background:#fff;color:#2c3338;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser select:focus{color:#2c3338}.language-chooser select option:focus,.language-chooser select option:hover{color:#0a4b78}.language-chooser .step{text-align:right}.screen-reader-input,.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;visibility:hidden;opacity:.7;width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-right:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.css index 886028afe7..7f2a6d8dfe 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.css @@ -1273,6 +1273,7 @@ audio, video { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .imgedit-wait:before { background-image: url(../images/spinner-2x.gif); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.min.css index 6cf1266de1..52d32b8ab0 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dcdcde;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}.media-list-subtitle{display:block}.media-list-title{display:block}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on{display:block;line-height:2.76923076;float:left;margin-left:10px}.media-item-wrapper{display:grid;grid-template-columns:1fr 1fr}.media-item .attachment-tools{display:flex;justify-content:flex-end;align-items:center}.media-item .edit-attachment{padding:14px 0;display:block;margin-left:10px}.media-item .edit-attachment.copy-to-clipboard-container{display:flex;margin-top:0}.media-item-copy-container .success{line-height:0}.media-item button .copy-attachment-url{margin-top:14px}.media-item .copy-to-clipboard-container{margin-top:7px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:70px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{box-shadow:0 1px 0 #dcdcde}#media-items:empty{border:0 none}.media-item .filename{padding:14px 0;overflow:hidden;margin-right:6px}.media-item .pinkynail{float:right;margin:0 0 0 10px;max-height:70px;max-width:70px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;min-height:34px}.media-item .progress{float:left;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;border-radius:22px;background:#dcdcde;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;border-radius:22px;background-color:#2271b1;box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}#html-upload-ui #async-upload{font-size:1em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 14px 10px 0;min-height:50px}.media-item .error-div button.dismiss{float:left;margin:0 15px 0 10px}.find-box{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fff;border-bottom:1px solid #dcdcde;height:36px;font-size:18px;font-weight:600;line-height:2;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;left:0;cursor:pointer;text-align:center;background:0 0;color:#646970}#find-posts-close:focus,#find-posts-close:hover{color:#135e96}#find-posts-close:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#find-posts-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;z-index:100100}.drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:200px}.drag-drop .drag-drop-inside{margin:60px auto 0;width:250px}.drag-drop-inside p{font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#9ec2e6}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser.has-load-more .attachments-wrapper,.media-frame.mode-grid .attachments-browser:not(.has-load-more) .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-top:12px;padding:0 16px;border-right:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;padding-top:0;margin-top:20px;border:4px dashed #c3c4c7}.media-frame.mode-select .attachments-browser.fixed:not(.has-load-more) .attachments,.media-frame.mode-select .attachments-browser.has-load-more.fixed .attachments-wrapper{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #f0f0f1,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.media-frame.mode-grid .selected.attachment{box-shadow:inset 0 0 0 5px #f0f0f1,inset 0 0 0 7px #c3c4c7}.media-frame.mode-grid .attachment.details{box-shadow:inset 0 0 0 3px #f0f0f1,inset 0 0 0 7px #4f94d4}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 0 0 10px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 0 0 8px;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 0 0 10px}.media-frame.mode-grid .search{margin-top:0}.media-frame-content .media-search-input-label{margin:0 0 0 .2em;vertical-align:baseline}.media-frame.mode-grid .media-search-input-label{position:static;margin:0 0 0 .5em}.attachments-browser .media-toolbar-secondary>.media-button{margin-left:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;right:auto;left:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#787c82;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-right:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;left:0}.edit-attachment-frame .edit-media-header .left{left:102px}.edit-attachment-frame .edit-media-header .right{left:51px}.edit-attachment-frame .media-frame-title{right:0;left:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .right:focus,.upload-php .media-modal-close:focus{outline:2px solid transparent;outline-offset:-2px}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before{content:"\f345"}.edit-attachment-frame .edit-media-header .right:before{content:"\f341"}.edit-attachment-frame .edit-media-header [disabled],.edit-attachment-frame .edit-media-header [disabled]:hover{color:#c3c4c7;background:inherit;cursor:default}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{right:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:right;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:calc(100% - 42px);background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.edit-attachment-frame .attachment-media-view .details-image.icon{background:0 0}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:4px 8px;line-height:1.42857143}.edit-attachment-frame .attachment-info{overflow:auto;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-right:1px solid #dcdcde;background:#f6f7f7}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #dcdcde}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#646970}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.copy-to-clipboard-container{display:flex;align-items:center;margin-top:8px;clear:both}.copy-to-clipboard-container .copy-attachment-url{white-space:normal}.copy-to-clipboard-container .success{color:#007017;margin-right:8px}.wp_attachment_details .attachment-alt-text{margin-bottom:5px}.wp_attachment_details #attachment_alt{max-width:500px;height:3.28571428em}.wp_attachment_details .attachment-alt-text-description{margin-top:5px}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.image-editor fieldset,.image-editor p{margin:8px 0}.image-editor legend{margin-bottom:5px}.describe .imgedit-wrap .image-editor{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.imgedit-panel-content{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.imgedit-settings{max-width:400px}.imgedit-group-controls>*{display:none}.imgedit-panel-active .imgedit-group-controls>*{display:block}.wp_attachment_holder .imgedit-wrap .image-editor{float:left;width:250px}.image-editor input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;opacity:.7;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:transparent url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}.no-float{float:none}.image-editor .disabled,.media-disabled{color:#a7aaad}.A1B1{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:right}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:right}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{display:inline-block;width:auto;min-height:28px;font-size:13px;line-height:2;padding:0 10px}.imgedit-menu .button:after,.imgedit-menu .button:before{font:normal 16px/1 dashicons;margin-left:8px;speak:never;vertical-align:middle;position:relative;top:-2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.imgedit-menu .imgedit-rotate.button:after{content:'\f140';margin-right:2px;margin-left:0}.imgedit-menu .imgedit-rotate.button[aria-expanded=true]:after{content:'\f142'}.imgedit-menu .button.disabled{color:#a7aaad;border-color:#dcdcde;background:#f6f7f7;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default;transform:none}.imgedit-crop:before{content:"\f165"}.imgedit-scale:before{content:"\f211"}.imgedit-rotate:before{content:"\f167"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop-wrap img{background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.imgedit-crop-wrap{padding:20px;background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.imgedit-crop{margin:0 0 0 8px}.imgedit-rotate{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-thumbnail-preview-group{display:flex;flex-wrap:wrap;column-gap:10px}.imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}#poststuff .imgedit-group-top .button-link{text-decoration:none;color:#1d2327}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help,.imgedit-popup-menu{display:none;padding-bottom:8px}.imgedit-panel-tools>.imgedit-menu{display:flex;column-gap:4px;align-items:start;flex-wrap:wrap}.imgedit-popup-menu{width:calc(100% - 20px);position:absolute;background:#fff;padding:10px;box-shadow:0 3px 6px rgba(0,0,0,.3)}.image-editor .imgedit-menu .imgedit-popup-menu button{display:block;margin:2px 0;width:100%;white-space:break-spaces;line-height:1.5;padding-top:3px;padding-bottom:2px}.imgedit-rotate-menu-container{position:relative}.imgedit-help.imgedit-restore{padding-bottom:0}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px -1px 0 0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.form-table td.imgedit-response{padding:0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{display:flex;align-items:center;margin:4px;gap:4px;color:#b32d2e;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-save-target legend{font-weight:600}.imgedit-group{margin-bottom:20px}.image-editor .imgedit-original-dimensions{display:inline-block}.image-editor .imgedit-crop-ratio input[type=number],.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=number],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale-controls input[type=number],.image-editor .imgedit-scale-controls input[type=text]{width:80px;font-size:14px;padding:0 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;font-size:13px;color:#3c434a}.image-editor .imgedit-scale-button-wrapper{margin-top:.3077em;display:block}.image-editor .imgedit-scale-controls .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.wp-core-ui .mejs-container{width:100%;max-width:100%}.wp-core-ui .mejs-container *{box-sizing:border-box}.wp-core-ui .mejs-time{box-sizing:content-box}@media print,(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.edit-attachment-frame input,.edit-attachment-frame textarea{line-height:1.5}.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5}.wp_attachment_details textarea{line-height:1.5}.wp_attachment_details #attachment_alt{height:3.375em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 12px 10px 0}.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale input[type=text]{font-size:16px;padding:6px 10px}.wp_attachment_holder .imgedit-wrap .image-editor,.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{float:none;width:auto;max-width:none;padding-bottom:16px}.copy-to-clipboard-container .success{font-size:14px}.imgedit-crop-wrap img{width:100%}.media-modal .imgedit-wrap .image-editor,.media-modal .imgedit-wrap .imgedit-panel-content{position:initial!important}.media-modal .imgedit-wrap .image-editor{box-sizing:border-box;width:100%!important}.image-editor .imgedit-scale-button-wrapper{display:inline-block}}@media only screen and (max-width:600px){.media-item-wrapper{grid-template-columns:1fr}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:1000px){.wp-filter p.search-box{float:none;width:100%;margin-bottom:20px;display:flex}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;left:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{left:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{left:82px}.edit-attachment-frame .edit-media-header .right{left:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}} \ No newline at end of file +.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dcdcde;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}.media-list-subtitle{display:block}.media-list-title{display:block}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on{display:block;line-height:2.76923076;float:left;margin-left:10px}.media-item-wrapper{display:grid;grid-template-columns:1fr 1fr}.media-item .attachment-tools{display:flex;justify-content:flex-end;align-items:center}.media-item .edit-attachment{padding:14px 0;display:block;margin-left:10px}.media-item .edit-attachment.copy-to-clipboard-container{display:flex;margin-top:0}.media-item-copy-container .success{line-height:0}.media-item button .copy-attachment-url{margin-top:14px}.media-item .copy-to-clipboard-container{margin-top:7px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:70px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{box-shadow:0 1px 0 #dcdcde}#media-items:empty{border:0 none}.media-item .filename{padding:14px 0;overflow:hidden;margin-right:6px}.media-item .pinkynail{float:right;margin:0 0 0 10px;max-height:70px;max-width:70px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;min-height:34px}.media-item .progress{float:left;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;border-radius:22px;background:#dcdcde;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;border-radius:22px;background-color:#2271b1;box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}#html-upload-ui #async-upload{font-size:1em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 14px 10px 0;min-height:50px}.media-item .error-div button.dismiss{float:left;margin:0 15px 0 10px}.find-box{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fff;border-bottom:1px solid #dcdcde;height:36px;font-size:18px;font-weight:600;line-height:2;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;left:0;cursor:pointer;text-align:center;background:0 0;color:#646970}#find-posts-close:focus,#find-posts-close:hover{color:#135e96}#find-posts-close:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#find-posts-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;z-index:100100}.drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:200px}.drag-drop .drag-drop-inside{margin:60px auto 0;width:250px}.drag-drop-inside p{font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#9ec2e6}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser.has-load-more .attachments-wrapper,.media-frame.mode-grid .attachments-browser:not(.has-load-more) .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-top:12px;padding:0 16px;border-right:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;padding-top:0;margin-top:20px;border:4px dashed #c3c4c7}.media-frame.mode-select .attachments-browser.fixed:not(.has-load-more) .attachments,.media-frame.mode-select .attachments-browser.has-load-more.fixed .attachments-wrapper{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #f0f0f1,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.media-frame.mode-grid .selected.attachment{box-shadow:inset 0 0 0 5px #f0f0f1,inset 0 0 0 7px #c3c4c7}.media-frame.mode-grid .attachment.details{box-shadow:inset 0 0 0 3px #f0f0f1,inset 0 0 0 7px #4f94d4}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 0 0 10px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 0 0 8px;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 0 0 10px}.media-frame.mode-grid .search{margin-top:0}.media-frame-content .media-search-input-label{margin:0 0 0 .2em;vertical-align:baseline}.media-frame.mode-grid .media-search-input-label{position:static;margin:0 0 0 .5em}.attachments-browser .media-toolbar-secondary>.media-button{margin-left:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;right:auto;left:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#787c82;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-right:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;left:0}.edit-attachment-frame .edit-media-header .left{left:102px}.edit-attachment-frame .edit-media-header .right{left:51px}.edit-attachment-frame .media-frame-title{right:0;left:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .right:focus,.upload-php .media-modal-close:focus{outline:2px solid transparent;outline-offset:-2px}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before{content:"\f345"}.edit-attachment-frame .edit-media-header .right:before{content:"\f341"}.edit-attachment-frame .edit-media-header [disabled],.edit-attachment-frame .edit-media-header [disabled]:hover{color:#c3c4c7;background:inherit;cursor:default}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{right:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:right;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:calc(100% - 42px);background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.edit-attachment-frame .attachment-media-view .details-image.icon{background:0 0}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:4px 8px;line-height:1.42857143}.edit-attachment-frame .attachment-info{overflow:auto;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-right:1px solid #dcdcde;background:#f6f7f7}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #dcdcde}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#646970}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.copy-to-clipboard-container{display:flex;align-items:center;margin-top:8px;clear:both}.copy-to-clipboard-container .copy-attachment-url{white-space:normal}.copy-to-clipboard-container .success{color:#007017;margin-right:8px}.wp_attachment_details .attachment-alt-text{margin-bottom:5px}.wp_attachment_details #attachment_alt{max-width:500px;height:3.28571428em}.wp_attachment_details .attachment-alt-text-description{margin-top:5px}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.image-editor fieldset,.image-editor p{margin:8px 0}.image-editor legend{margin-bottom:5px}.describe .imgedit-wrap .image-editor{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.imgedit-panel-content{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.imgedit-settings{max-width:400px}.imgedit-group-controls>*{display:none}.imgedit-panel-active .imgedit-group-controls>*{display:block}.wp_attachment_holder .imgedit-wrap .image-editor{float:left;width:250px}.image-editor input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;opacity:.7;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:transparent url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}.no-float{float:none}.image-editor .disabled,.media-disabled{color:#a7aaad}.A1B1{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:right}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:right}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{display:inline-block;width:auto;min-height:28px;font-size:13px;line-height:2;padding:0 10px}.imgedit-menu .button:after,.imgedit-menu .button:before{font:normal 16px/1 dashicons;margin-left:8px;speak:never;vertical-align:middle;position:relative;top:-2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.imgedit-menu .imgedit-rotate.button:after{content:'\f140';margin-right:2px;margin-left:0}.imgedit-menu .imgedit-rotate.button[aria-expanded=true]:after{content:'\f142'}.imgedit-menu .button.disabled{color:#a7aaad;border-color:#dcdcde;background:#f6f7f7;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default;transform:none}.imgedit-crop:before{content:"\f165"}.imgedit-scale:before{content:"\f211"}.imgedit-rotate:before{content:"\f167"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop-wrap img{background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.imgedit-crop-wrap{padding:20px;background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:100% 0,10px 10px;background-size:20px 20px}.imgedit-crop{margin:0 0 0 8px}.imgedit-rotate{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-thumbnail-preview-group{display:flex;flex-wrap:wrap;column-gap:10px}.imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}#poststuff .imgedit-group-top .button-link{text-decoration:none;color:#1d2327}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help,.imgedit-popup-menu{display:none;padding-bottom:8px}.imgedit-panel-tools>.imgedit-menu{display:flex;column-gap:4px;align-items:start;flex-wrap:wrap}.imgedit-popup-menu{width:calc(100% - 20px);position:absolute;background:#fff;padding:10px;box-shadow:0 3px 6px rgba(0,0,0,.3)}.image-editor .imgedit-menu .imgedit-popup-menu button{display:block;margin:2px 0;width:100%;white-space:break-spaces;line-height:1.5;padding-top:3px;padding-bottom:2px}.imgedit-rotate-menu-container{position:relative}.imgedit-help.imgedit-restore{padding-bottom:0}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px -1px 0 0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.form-table td.imgedit-response{padding:0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{display:flex;align-items:center;margin:4px;gap:4px;color:#b32d2e;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-save-target legend{font-weight:600}.imgedit-group{margin-bottom:20px}.image-editor .imgedit-original-dimensions{display:inline-block}.image-editor .imgedit-crop-ratio input[type=number],.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=number],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale-controls input[type=number],.image-editor .imgedit-scale-controls input[type=text]{width:80px;font-size:14px;padding:0 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;font-size:13px;color:#3c434a}.image-editor .imgedit-scale-button-wrapper{margin-top:.3077em;display:block}.image-editor .imgedit-scale-controls .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.wp-core-ui .mejs-container{width:100%;max-width:100%}.wp-core-ui .mejs-container *{box-sizing:border-box}.wp-core-ui .mejs-time{box-sizing:content-box}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.edit-attachment-frame input,.edit-attachment-frame textarea{line-height:1.5}.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5}.wp_attachment_details textarea{line-height:1.5}.wp_attachment_details #attachment_alt{height:3.375em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 12px 10px 0}.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale input[type=text]{font-size:16px;padding:6px 10px}.wp_attachment_holder .imgedit-wrap .image-editor,.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{float:none;width:auto;max-width:none;padding-bottom:16px}.copy-to-clipboard-container .success{font-size:14px}.imgedit-crop-wrap img{width:100%}.media-modal .imgedit-wrap .image-editor,.media-modal .imgedit-wrap .imgedit-panel-content{position:initial!important}.media-modal .imgedit-wrap .image-editor{box-sizing:border-box;width:100%!important}.image-editor .imgedit-scale-button-wrapper{display:inline-block}}@media only screen and (max-width:600px){.media-item-wrapper{grid-template-columns:1fr}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:1000px){.wp-filter p.search-box{float:none;width:100%;margin-bottom:20px;display:flex}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;left:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{left:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{left:82px}.edit-attachment-frame .edit-media-header .right{left:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.css index 834292901f..623f808887 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.css @@ -1272,6 +1272,7 @@ audio, video { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .imgedit-wait:before { background-image: url(../images/spinner-2x.gif); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.min.css index b639e32db1..c57364eff9 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/media.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dcdcde;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}.media-list-subtitle{display:block}.media-list-title{display:block}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on{display:block;line-height:2.76923076;float:right;margin-right:10px}.media-item-wrapper{display:grid;grid-template-columns:1fr 1fr}.media-item .attachment-tools{display:flex;justify-content:flex-end;align-items:center}.media-item .edit-attachment{padding:14px 0;display:block;margin-right:10px}.media-item .edit-attachment.copy-to-clipboard-container{display:flex;margin-top:0}.media-item-copy-container .success{line-height:0}.media-item button .copy-attachment-url{margin-top:14px}.media-item .copy-to-clipboard-container{margin-top:7px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:70px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{box-shadow:0 1px 0 #dcdcde}#media-items:empty{border:0 none}.media-item .filename{padding:14px 0;overflow:hidden;margin-left:6px}.media-item .pinkynail{float:left;margin:0 10px 0 0;max-height:70px;max-width:70px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;min-height:34px}.media-item .progress{float:right;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;border-radius:22px;background:#dcdcde;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;border-radius:22px;background-color:#2271b1;box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}#html-upload-ui #async-upload{font-size:1em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 0 10px 14px;min-height:50px}.media-item .error-div button.dismiss{float:right;margin:0 10px 0 15px}.find-box{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fff;border-bottom:1px solid #dcdcde;height:36px;font-size:18px;font-weight:600;line-height:2;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;right:0;cursor:pointer;text-align:center;background:0 0;color:#646970}#find-posts-close:focus,#find-posts-close:hover{color:#135e96}#find-posts-close:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#find-posts-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;z-index:100100}.drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:200px}.drag-drop .drag-drop-inside{margin:60px auto 0;width:250px}.drag-drop-inside p{font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#9ec2e6}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser.has-load-more .attachments-wrapper,.media-frame.mode-grid .attachments-browser:not(.has-load-more) .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-top:12px;padding:0 16px;border-left:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;right:auto;left:auto;bottom:auto;padding-top:0;margin-top:20px;border:4px dashed #c3c4c7}.media-frame.mode-select .attachments-browser.fixed:not(.has-load-more) .attachments,.media-frame.mode-select .attachments-browser.has-load-more.fixed .attachments-wrapper{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #f0f0f1,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.media-frame.mode-grid .selected.attachment{box-shadow:inset 0 0 0 5px #f0f0f1,inset 0 0 0 7px #c3c4c7}.media-frame.mode-grid .attachment.details{box-shadow:inset 0 0 0 3px #f0f0f1,inset 0 0 0 7px #4f94d4}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 10px 0 0}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 8px 0 0;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 10px 0 0}.media-frame.mode-grid .search{margin-top:0}.media-frame-content .media-search-input-label{margin:0 .2em 0 0;vertical-align:baseline}.media-frame.mode-grid .media-search-input-label{position:static;margin:0 .5em 0 0}.attachments-browser .media-toolbar-secondary>.media-button{margin-right:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;left:auto;right:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#787c82;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-left:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;right:0}.edit-attachment-frame .edit-media-header .left{right:102px}.edit-attachment-frame .edit-media-header .right{right:51px}.edit-attachment-frame .media-frame-title{left:0;right:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .right:focus,.upload-php .media-modal-close:focus{outline:2px solid transparent;outline-offset:-2px}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before{content:"\f341"}.edit-attachment-frame .edit-media-header .right:before{content:"\f345"}.edit-attachment-frame .edit-media-header [disabled],.edit-attachment-frame .edit-media-header [disabled]:hover{color:#c3c4c7;background:inherit;cursor:default}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{left:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;right:0;left:0;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:left;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:calc(100% - 42px);background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.edit-attachment-frame .attachment-media-view .details-image.icon{background:0 0}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:4px 8px;line-height:1.42857143}.edit-attachment-frame .attachment-info{overflow:auto;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-left:1px solid #dcdcde;background:#f6f7f7}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #dcdcde}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#646970}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.copy-to-clipboard-container{display:flex;align-items:center;margin-top:8px;clear:both}.copy-to-clipboard-container .copy-attachment-url{white-space:normal}.copy-to-clipboard-container .success{color:#007017;margin-left:8px}.wp_attachment_details .attachment-alt-text{margin-bottom:5px}.wp_attachment_details #attachment_alt{max-width:500px;height:3.28571428em}.wp_attachment_details .attachment-alt-text-description{margin-top:5px}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.image-editor fieldset,.image-editor p{margin:8px 0}.image-editor legend{margin-bottom:5px}.describe .imgedit-wrap .image-editor{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.imgedit-panel-content{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.imgedit-settings{max-width:400px}.imgedit-group-controls>*{display:none}.imgedit-panel-active .imgedit-group-controls>*{display:block}.wp_attachment_holder .imgedit-wrap .image-editor{float:right;width:250px}.image-editor input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;opacity:.7;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:transparent url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}.no-float{float:none}.image-editor .disabled,.media-disabled{color:#a7aaad}.A1B1{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:left}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:left}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{display:inline-block;width:auto;min-height:28px;font-size:13px;line-height:2;padding:0 10px}.imgedit-menu .button:after,.imgedit-menu .button:before{font:normal 16px/1 dashicons;margin-right:8px;speak:never;vertical-align:middle;position:relative;top:-2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.imgedit-menu .imgedit-rotate.button:after{content:'\f140';margin-left:2px;margin-right:0}.imgedit-menu .imgedit-rotate.button[aria-expanded=true]:after{content:'\f142'}.imgedit-menu .button.disabled{color:#a7aaad;border-color:#dcdcde;background:#f6f7f7;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default;transform:none}.imgedit-crop:before{content:"\f165"}.imgedit-scale:before{content:"\f211"}.imgedit-rotate:before{content:"\f167"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop-wrap img{background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.imgedit-crop-wrap{padding:20px;background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.imgedit-crop{margin:0 8px 0 0}.imgedit-rotate{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-thumbnail-preview-group{display:flex;flex-wrap:wrap;column-gap:10px}.imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}#poststuff .imgedit-group-top .button-link{text-decoration:none;color:#1d2327}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help,.imgedit-popup-menu{display:none;padding-bottom:8px}.imgedit-panel-tools>.imgedit-menu{display:flex;column-gap:4px;align-items:start;flex-wrap:wrap}.imgedit-popup-menu{width:calc(100% - 20px);position:absolute;background:#fff;padding:10px;box-shadow:0 3px 6px rgba(0,0,0,.3)}.image-editor .imgedit-menu .imgedit-popup-menu button{display:block;margin:2px 0;width:100%;white-space:break-spaces;line-height:1.5;padding-top:3px;padding-bottom:2px}.imgedit-rotate-menu-container{position:relative}.imgedit-help.imgedit-restore{padding-bottom:0}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px 0 0 -1px;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.form-table td.imgedit-response{padding:0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{display:flex;align-items:center;margin:4px;gap:4px;color:#b32d2e;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-save-target legend{font-weight:600}.imgedit-group{margin-bottom:20px}.image-editor .imgedit-original-dimensions{display:inline-block}.image-editor .imgedit-crop-ratio input[type=number],.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=number],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale-controls input[type=number],.image-editor .imgedit-scale-controls input[type=text]{width:80px;font-size:14px;padding:0 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;font-size:13px;color:#3c434a}.image-editor .imgedit-scale-button-wrapper{margin-top:.3077em;display:block}.image-editor .imgedit-scale-controls .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.wp-core-ui .mejs-container{width:100%;max-width:100%}.wp-core-ui .mejs-container *{box-sizing:border-box}.wp-core-ui .mejs-time{box-sizing:content-box}@media print,(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.edit-attachment-frame input,.edit-attachment-frame textarea{line-height:1.5}.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5}.wp_attachment_details textarea{line-height:1.5}.wp_attachment_details #attachment_alt{height:3.375em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 0 10px 12px}.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale input[type=text]{font-size:16px;padding:6px 10px}.wp_attachment_holder .imgedit-wrap .image-editor,.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{float:none;width:auto;max-width:none;padding-bottom:16px}.copy-to-clipboard-container .success{font-size:14px}.imgedit-crop-wrap img{width:100%}.media-modal .imgedit-wrap .image-editor,.media-modal .imgedit-wrap .imgedit-panel-content{position:initial!important}.media-modal .imgedit-wrap .image-editor{box-sizing:border-box;width:100%!important}.image-editor .imgedit-scale-button-wrapper{display:inline-block}}@media only screen and (max-width:600px){.media-item-wrapper{grid-template-columns:1fr}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:1000px){.wp-filter p.search-box{float:none;width:100%;margin-bottom:20px;display:flex}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;right:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{right:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{right:82px}.edit-attachment-frame .edit-media-header .right{right:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}} \ No newline at end of file +.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dcdcde;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}.media-list-subtitle{display:block}.media-list-title{display:block}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on{display:block;line-height:2.76923076;float:right;margin-right:10px}.media-item-wrapper{display:grid;grid-template-columns:1fr 1fr}.media-item .attachment-tools{display:flex;justify-content:flex-end;align-items:center}.media-item .edit-attachment{padding:14px 0;display:block;margin-right:10px}.media-item .edit-attachment.copy-to-clipboard-container{display:flex;margin-top:0}.media-item-copy-container .success{line-height:0}.media-item button .copy-attachment-url{margin-top:14px}.media-item .copy-to-clipboard-container{margin-top:7px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:70px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{box-shadow:0 1px 0 #dcdcde}#media-items:empty{border:0 none}.media-item .filename{padding:14px 0;overflow:hidden;margin-left:6px}.media-item .pinkynail{float:left;margin:0 10px 0 0;max-height:70px;max-width:70px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;min-height:34px}.media-item .progress{float:right;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;border-radius:22px;background:#dcdcde;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;border-radius:22px;background-color:#2271b1;box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}#html-upload-ui #async-upload{font-size:1em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 0 10px 14px;min-height:50px}.media-item .error-div button.dismiss{float:right;margin:0 10px 0 15px}.find-box{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fff;border-bottom:1px solid #dcdcde;height:36px;font-size:18px;font-weight:600;line-height:2;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;right:0;cursor:pointer;text-align:center;background:0 0;color:#646970}#find-posts-close:focus,#find-posts-close:hover{color:#135e96}#find-posts-close:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#find-posts-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;z-index:100100}.drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:200px}.drag-drop .drag-drop-inside{margin:60px auto 0;width:250px}.drag-drop-inside p{font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#9ec2e6}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser.has-load-more .attachments-wrapper,.media-frame.mode-grid .attachments-browser:not(.has-load-more) .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-top:12px;padding:0 16px;border-left:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;right:auto;left:auto;bottom:auto;padding-top:0;margin-top:20px;border:4px dashed #c3c4c7}.media-frame.mode-select .attachments-browser.fixed:not(.has-load-more) .attachments,.media-frame.mode-select .attachments-browser.has-load-more.fixed .attachments-wrapper{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #f0f0f1,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.media-frame.mode-grid .selected.attachment{box-shadow:inset 0 0 0 5px #f0f0f1,inset 0 0 0 7px #c3c4c7}.media-frame.mode-grid .attachment.details{box-shadow:inset 0 0 0 3px #f0f0f1,inset 0 0 0 7px #4f94d4}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 10px 0 0}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 8px 0 0;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 10px 0 0}.media-frame.mode-grid .search{margin-top:0}.media-frame-content .media-search-input-label{margin:0 .2em 0 0;vertical-align:baseline}.media-frame.mode-grid .media-search-input-label{position:static;margin:0 .5em 0 0}.attachments-browser .media-toolbar-secondary>.media-button{margin-right:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;left:auto;right:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#787c82;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-left:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;right:0}.edit-attachment-frame .edit-media-header .left{right:102px}.edit-attachment-frame .edit-media-header .right{right:51px}.edit-attachment-frame .media-frame-title{left:0;right:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .right:focus,.upload-php .media-modal-close:focus{outline:2px solid transparent;outline-offset:-2px}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before{content:"\f341"}.edit-attachment-frame .edit-media-header .right:before{content:"\f345"}.edit-attachment-frame .edit-media-header [disabled],.edit-attachment-frame .edit-media-header [disabled]:hover{color:#c3c4c7;background:inherit;cursor:default}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{left:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;right:0;left:0;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:left;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:calc(100% - 42px);background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.edit-attachment-frame .attachment-media-view .details-image.icon{background:0 0}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:4px 8px;line-height:1.42857143}.edit-attachment-frame .attachment-info{overflow:auto;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-left:1px solid #dcdcde;background:#f6f7f7}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #dcdcde}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#646970}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.copy-to-clipboard-container{display:flex;align-items:center;margin-top:8px;clear:both}.copy-to-clipboard-container .copy-attachment-url{white-space:normal}.copy-to-clipboard-container .success{color:#007017;margin-left:8px}.wp_attachment_details .attachment-alt-text{margin-bottom:5px}.wp_attachment_details #attachment_alt{max-width:500px;height:3.28571428em}.wp_attachment_details .attachment-alt-text-description{margin-top:5px}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.image-editor fieldset,.image-editor p{margin:8px 0}.image-editor legend{margin-bottom:5px}.describe .imgedit-wrap .image-editor{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.imgedit-panel-content{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.imgedit-settings{max-width:400px}.imgedit-group-controls>*{display:none}.imgedit-panel-active .imgedit-group-controls>*{display:block}.wp_attachment_holder .imgedit-wrap .image-editor{float:right;width:250px}.image-editor input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;opacity:.7;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:transparent url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}.no-float{float:none}.image-editor .disabled,.media-disabled{color:#a7aaad}.A1B1{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:left}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:left}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{display:inline-block;width:auto;min-height:28px;font-size:13px;line-height:2;padding:0 10px}.imgedit-menu .button:after,.imgedit-menu .button:before{font:normal 16px/1 dashicons;margin-right:8px;speak:never;vertical-align:middle;position:relative;top:-2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.imgedit-menu .imgedit-rotate.button:after{content:'\f140';margin-left:2px;margin-right:0}.imgedit-menu .imgedit-rotate.button[aria-expanded=true]:after{content:'\f142'}.imgedit-menu .button.disabled{color:#a7aaad;border-color:#dcdcde;background:#f6f7f7;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default;transform:none}.imgedit-crop:before{content:"\f165"}.imgedit-scale:before{content:"\f211"}.imgedit-rotate:before{content:"\f167"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop-wrap img{background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.imgedit-crop-wrap{padding:20px;background-image:linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7),linear-gradient(45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7 75%,#c3c4c7);background-position:0 0,10px 10px;background-size:20px 20px}.imgedit-crop{margin:0 8px 0 0}.imgedit-rotate{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-thumbnail-preview-group{display:flex;flex-wrap:wrap;column-gap:10px}.imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}#poststuff .imgedit-group-top .button-link{text-decoration:none;color:#1d2327}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help,.imgedit-popup-menu{display:none;padding-bottom:8px}.imgedit-panel-tools>.imgedit-menu{display:flex;column-gap:4px;align-items:start;flex-wrap:wrap}.imgedit-popup-menu{width:calc(100% - 20px);position:absolute;background:#fff;padding:10px;box-shadow:0 3px 6px rgba(0,0,0,.3)}.image-editor .imgedit-menu .imgedit-popup-menu button{display:block;margin:2px 0;width:100%;white-space:break-spaces;line-height:1.5;padding-top:3px;padding-bottom:2px}.imgedit-rotate-menu-container{position:relative}.imgedit-help.imgedit-restore{padding-bottom:0}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px 0 0 -1px;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.form-table td.imgedit-response{padding:0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{display:flex;align-items:center;margin:4px;gap:4px;color:#b32d2e;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-save-target legend{font-weight:600}.imgedit-group{margin-bottom:20px}.image-editor .imgedit-original-dimensions{display:inline-block}.image-editor .imgedit-crop-ratio input[type=number],.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=number],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale-controls input[type=number],.image-editor .imgedit-scale-controls input[type=text]{width:80px;font-size:14px;padding:0 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;font-size:13px;color:#3c434a}.image-editor .imgedit-scale-button-wrapper{margin-top:.3077em;display:block}.image-editor .imgedit-scale-controls .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.wp-core-ui .mejs-container{width:100%;max-width:100%}.wp-core-ui .mejs-container *{box-sizing:border-box}.wp-core-ui .mejs-time{box-sizing:content-box}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.edit-attachment-frame input,.edit-attachment-frame textarea{line-height:1.5}.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5}.wp_attachment_details textarea{line-height:1.5}.wp_attachment_details #attachment_alt{height:3.375em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 0 10px 12px}.image-editor .imgedit-crop-ratio input[type=text],.image-editor .imgedit-crop-sel input[type=text],.image-editor .imgedit-scale input[type=text]{font-size:16px;padding:6px 10px}.wp_attachment_holder .imgedit-wrap .image-editor,.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{float:none;width:auto;max-width:none;padding-bottom:16px}.copy-to-clipboard-container .success{font-size:14px}.imgedit-crop-wrap img{width:100%}.media-modal .imgedit-wrap .image-editor,.media-modal .imgedit-wrap .imgedit-panel-content{position:initial!important}.media-modal .imgedit-wrap .image-editor{box-sizing:border-box;width:100%!important}.image-editor .imgedit-scale-button-wrapper{display:inline-block}}@media only screen and (max-width:600px){.media-item-wrapper{grid-template-columns:1fr}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:1000px){.wp-filter p.search-box{float:none;width:100%;margin-bottom:20px;display:flex}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;right:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{right:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{right:82px}.edit-attachment-frame .edit-media-header .right{right:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.css index 52b90897e7..8edb7dc537 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.css @@ -559,6 +559,7 @@ div.revisions-controls > .wp-slider > .ui-slider-handle { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .revision-tick.completed-false { background-image: url(../images/spinner-2x.gif); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.min.css index 408476fb35..4185712774 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-diff-frame{top:10px}.revisions-controls{padding-top:40px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-right:1px solid #a7aaad;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:calc(100% - 30px);top:50%;top:calc(50% - 10px);transition:opacity .5s}body.folded .revisions .loading-indicator{margin-right:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1}.revisions .diff{transition:opacity .5s}.revisions.loading .diff{opacity:.5}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden}.revisions.pinned .revisions-meta{box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;left:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#646970}.revisions-controls .author-card.autosave{color:#d63638}.revisions-controls .author-card .author-name{font-weight:600}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:right}.revisions-next{float:left}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.57142857;padding:.5em 2em .5em .5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{position:relative;background-color:#fcf0f1}table.diff .diff-deletedline del{background-color:#ffabaf}table.diff .diff-addedline{position:relative;background-color:#edfaef}table.diff .diff-addedline .dashicons,table.diff .diff-deletedline .dashicons{position:absolute;top:.85714286em;right:.5em;width:1em;height:1em;font-size:1em;line-height:1}table.diff .diff-addedline .dashicons{top:.92857143em}table.diff .diff-addedline ins{background-color:#68de7c}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:2.46153846;min-width:60px;text-align:left;float:right;margin-left:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:1.33333333}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:right;margin-right:6px;margin-left:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:left;margin-right:6px;margin-left:6px;margin-top:2px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-left:0;margin-right:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;display:none;opacity:0}.revisions-tooltip.flipped{margin-right:0;margin-left:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;right:0;margin-right:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-right:0;margin-left:35px;right:auto;left:0}.revisions-tooltip-arrow>span{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;transform:rotate(-45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:auto;left:20px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #dcdcde;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;right:0;margin-right:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{right:20%}.arrow:after{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;transform:rotate(-45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #dcdcde;text-align:right;cursor:pointer}.wp-slider .ui-slider-handle{border-radius:50%;height:18px;margin-top:-5px;outline:0;padding:2px;position:absolute;width:18px;z-index:2;touch-action:none}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus{background:#f6f7f7;border:1px solid #c3c4c7;box-shadow:0 1px 0 #c3c4c7}.wp-slider .ui-slider-handle.ui-state-hover,.wp-slider .ui-slider-handle:hover{background:#f6f7f7;border-color:#8c8f94}.wp-slider .ui-slider-handle.ui-state-active,.wp-slider .ui-slider-handle:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:2px;right:2px;color:#50575e;content:"\f229";font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.ui-state-hover:before,.wp-slider .ui-slider-handle:hover:before{color:#1d2327}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px -1px 0 0}.wp-slider .ui-slider-handle.from-handle:before{content:"\f141"}.wp-slider .ui-slider-handle.to-handle:before{content:"\f139"}.rtl .wp-slider .ui-slider-handle.from-handle:before{content:"\f139"}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:"\f141";left:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-right:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{right:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{left:0}@media print,(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}.revisions-buttons{overflow:hidden;margin-bottom:15px}.comparing-two-revisions .revisions-controls,.revisions-controls{height:170px}.revisions-tooltip{bottom:130px;z-index:2}.diff-meta{overflow:hidden}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}.diff-meta input.restore-revision{margin-top:0}} \ No newline at end of file +.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-diff-frame{top:10px}.revisions-controls{padding-top:40px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-right:1px solid #a7aaad;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:calc(100% - 30px);top:50%;top:calc(50% - 10px);transition:opacity .5s}body.folded .revisions .loading-indicator{margin-right:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1}.revisions .diff{transition:opacity .5s}.revisions.loading .diff{opacity:.5}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden}.revisions.pinned .revisions-meta{box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;left:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#646970}.revisions-controls .author-card.autosave{color:#d63638}.revisions-controls .author-card .author-name{font-weight:600}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:right}.revisions-next{float:left}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.57142857;padding:.5em 2em .5em .5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{position:relative;background-color:#fcf0f1}table.diff .diff-deletedline del{background-color:#ffabaf}table.diff .diff-addedline{position:relative;background-color:#edfaef}table.diff .diff-addedline .dashicons,table.diff .diff-deletedline .dashicons{position:absolute;top:.85714286em;right:.5em;width:1em;height:1em;font-size:1em;line-height:1}table.diff .diff-addedline .dashicons{top:.92857143em}table.diff .diff-addedline ins{background-color:#68de7c}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:2.46153846;min-width:60px;text-align:left;float:right;margin-left:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:1.33333333}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:right;margin-right:6px;margin-left:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:left;margin-right:6px;margin-left:6px;margin-top:2px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-left:0;margin-right:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;display:none;opacity:0}.revisions-tooltip.flipped{margin-right:0;margin-left:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;right:0;margin-right:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-right:0;margin-left:35px;right:auto;left:0}.revisions-tooltip-arrow>span{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;transform:rotate(-45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:auto;left:20px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #dcdcde;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;right:0;margin-right:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{right:20%}.arrow:after{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;transform:rotate(-45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #dcdcde;text-align:right;cursor:pointer}.wp-slider .ui-slider-handle{border-radius:50%;height:18px;margin-top:-5px;outline:0;padding:2px;position:absolute;width:18px;z-index:2;touch-action:none}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus{background:#f6f7f7;border:1px solid #c3c4c7;box-shadow:0 1px 0 #c3c4c7}.wp-slider .ui-slider-handle.ui-state-hover,.wp-slider .ui-slider-handle:hover{background:#f6f7f7;border-color:#8c8f94}.wp-slider .ui-slider-handle.ui-state-active,.wp-slider .ui-slider-handle:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:2px;right:2px;color:#50575e;content:"\f229";font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.ui-state-hover:before,.wp-slider .ui-slider-handle:hover:before{color:#1d2327}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px -1px 0 0}.wp-slider .ui-slider-handle.from-handle:before{content:"\f141"}.wp-slider .ui-slider-handle.to-handle:before{content:"\f139"}.rtl .wp-slider .ui-slider-handle.from-handle:before{content:"\f139"}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:"\f141";left:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-right:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{right:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{left:0}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}.revisions-buttons{overflow:hidden;margin-bottom:15px}.comparing-two-revisions .revisions-controls,.revisions-controls{height:170px}.revisions-tooltip{bottom:130px;z-index:2}.diff-meta{overflow:hidden}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}.diff-meta input.restore-revision{margin-top:0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.css index 46cf263b5e..e523ee431c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.css @@ -558,6 +558,7 @@ div.revisions-controls > .wp-slider > .ui-slider-handle { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .revision-tick.completed-false { background-image: url(../images/spinner-2x.gif); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.min.css index 355e6d866a..07cdf1db01 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/revisions.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-diff-frame{top:10px}.revisions-controls{padding-top:40px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-left:1px solid #a7aaad;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:calc(100% - 30px);top:50%;top:calc(50% - 10px);transition:opacity .5s}body.folded .revisions .loading-indicator{margin-left:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1}.revisions .diff{transition:opacity .5s}.revisions.loading .diff{opacity:.5}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden}.revisions.pinned .revisions-meta{box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;right:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#646970}.revisions-controls .author-card.autosave{color:#d63638}.revisions-controls .author-card .author-name{font-weight:600}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:left}.revisions-next{float:right}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.57142857;padding:.5em .5em .5em 2em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{position:relative;background-color:#fcf0f1}table.diff .diff-deletedline del{background-color:#ffabaf}table.diff .diff-addedline{position:relative;background-color:#edfaef}table.diff .diff-addedline .dashicons,table.diff .diff-deletedline .dashicons{position:absolute;top:.85714286em;left:.5em;width:1em;height:1em;font-size:1em;line-height:1}table.diff .diff-addedline .dashicons{top:.92857143em}table.diff .diff-addedline ins{background-color:#68de7c}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:2.46153846;min-width:60px;text-align:right;float:left;margin-right:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:1.33333333}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:left;margin-left:6px;margin-right:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:right;margin-left:6px;margin-right:6px;margin-top:2px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-right:0;margin-left:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;display:none;opacity:0}.revisions-tooltip.flipped{margin-left:0;margin-right:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;left:0;margin-left:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-left:0;margin-right:35px;left:auto;right:0}.revisions-tooltip-arrow>span{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:auto;right:20px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #dcdcde;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;left:0;margin-left:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{left:20%}.arrow:after{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #dcdcde;text-align:left;cursor:pointer}.wp-slider .ui-slider-handle{border-radius:50%;height:18px;margin-top:-5px;outline:0;padding:2px;position:absolute;width:18px;z-index:2;touch-action:none}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus{background:#f6f7f7;border:1px solid #c3c4c7;box-shadow:0 1px 0 #c3c4c7}.wp-slider .ui-slider-handle.ui-state-hover,.wp-slider .ui-slider-handle:hover{background:#f6f7f7;border-color:#8c8f94}.wp-slider .ui-slider-handle.ui-state-active,.wp-slider .ui-slider-handle:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:2px;left:2px;color:#50575e;content:"\f229";font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.ui-state-hover:before,.wp-slider .ui-slider-handle:hover:before{color:#1d2327}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px 0 0 -1px}.wp-slider .ui-slider-handle.from-handle:before{content:"\f139"}.wp-slider .ui-slider-handle.to-handle:before{content:"\f141"}.rtl .wp-slider .ui-slider-handle.from-handle:before{content:"\f141"}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:"\f139";right:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-left:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{left:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{right:0}@media print,(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}.revisions-buttons{overflow:hidden;margin-bottom:15px}.comparing-two-revisions .revisions-controls,.revisions-controls{height:170px}.revisions-tooltip{bottom:130px;z-index:2}.diff-meta{overflow:hidden}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}.diff-meta input.restore-revision{margin-top:0}} \ No newline at end of file +.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-diff-frame{top:10px}.revisions-controls{padding-top:40px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-left:1px solid #a7aaad;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:calc(100% - 30px);top:50%;top:calc(50% - 10px);transition:opacity .5s}body.folded .revisions .loading-indicator{margin-left:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1}.revisions .diff{transition:opacity .5s}.revisions.loading .diff{opacity:.5}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden}.revisions.pinned .revisions-meta{box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;right:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#646970}.revisions-controls .author-card.autosave{color:#d63638}.revisions-controls .author-card .author-name{font-weight:600}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:left}.revisions-next{float:right}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.57142857;padding:.5em .5em .5em 2em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{position:relative;background-color:#fcf0f1}table.diff .diff-deletedline del{background-color:#ffabaf}table.diff .diff-addedline{position:relative;background-color:#edfaef}table.diff .diff-addedline .dashicons,table.diff .diff-deletedline .dashicons{position:absolute;top:.85714286em;left:.5em;width:1em;height:1em;font-size:1em;line-height:1}table.diff .diff-addedline .dashicons{top:.92857143em}table.diff .diff-addedline ins{background-color:#68de7c}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:2.46153846;min-width:60px;text-align:right;float:left;margin-right:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:1.33333333}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:left;margin-left:6px;margin-right:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:right;margin-left:6px;margin-right:6px;margin-top:2px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-right:0;margin-left:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;display:none;opacity:0}.revisions-tooltip.flipped{margin-left:0;margin-right:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;left:0;margin-left:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-left:0;margin-right:35px;left:auto;right:0}.revisions-tooltip-arrow>span{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:auto;right:20px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #dcdcde;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;left:0;margin-left:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{left:20%}.arrow:after{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #dcdcde;text-align:left;cursor:pointer}.wp-slider .ui-slider-handle{border-radius:50%;height:18px;margin-top:-5px;outline:0;padding:2px;position:absolute;width:18px;z-index:2;touch-action:none}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus{background:#f6f7f7;border:1px solid #c3c4c7;box-shadow:0 1px 0 #c3c4c7}.wp-slider .ui-slider-handle.ui-state-hover,.wp-slider .ui-slider-handle:hover{background:#f6f7f7;border-color:#8c8f94}.wp-slider .ui-slider-handle.ui-state-active,.wp-slider .ui-slider-handle:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:2px;left:2px;color:#50575e;content:"\f229";font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.ui-state-hover:before,.wp-slider .ui-slider-handle:hover:before{color:#1d2327}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px 0 0 -1px}.wp-slider .ui-slider-handle.from-handle:before{content:"\f139"}.wp-slider .ui-slider-handle.to-handle:before{content:"\f141"}.rtl .wp-slider .ui-slider-handle.from-handle:before{content:"\f141"}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:"\f139";right:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-left:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{left:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{right:0}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}.revisions-buttons{overflow:hidden;margin-bottom:15px}.comparing-two-revisions .revisions-controls,.revisions-controls{height:170px}.revisions-tooltip{bottom:130px;z-index:2}.diff-meta{overflow:hidden}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}.diff-meta input.restore-revision{margin-top:0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.css index f9653445c1..54556ea25a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.css @@ -1939,6 +1939,7 @@ body.full-overlay-active { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-full-overlay .collapse-sidebar-arrow { background-image: url(../images/arrows-2x.png); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.min.css index d25871c1f5..5edf4be957 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.themes-php{overflow-y:scroll}body.js .theme-browser.search-loading{display:none}.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-right:20px}.themes-php .search-form{display:inline}.themes-php .wp-filter-search{position:relative;top:-2px;right:20px;margin:0;width:280px}.theme .notice,.theme .notice.is-dismissible{right:0;margin:0;position:absolute;left:0;top:0}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #dcdcde;box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme.focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{opacity:0;transition:opacity .1s ease-in-out;height:auto;background:rgba(246,247,247,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:hover .theme-actions{opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;transition:opacity .2s ease-in-out}.theme-browser .theme.focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{opacity:0;position:absolute;top:35%;left:20%;right:20%;width:60%;background:#1d2327;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;border-radius:3px;border:none;transition:opacity .1s ease-in-out;cursor:pointer}.theme-browser .theme .more-details:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.theme-browser .theme.focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.theme-browser .theme.focus .more-details{opacity:1}.theme-browser .theme.active.focus .theme-actions{display:block}.theme-browser.rendered .theme.focus .more-details,.theme-browser.rendered .theme:hover .more-details{opacity:1}.theme-browser .theme.active .theme-name{background:#1d2327;color:#fff;padding-left:110px;font-weight:300;box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-left:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(44,51,56,.7);border-right:none;opacity:1}.theme-id-container{position:relative}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{position:absolute;top:50%;transform:translateY(-50%);left:0;padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#1d2327;color:#f0f0f1;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit}.theme-browser .theme.add-new-theme{border:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;right:0;left:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #dcdcde;border:5px dashed rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#dcdcde;background:rgba(140,143,148,.1);border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:normal 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#8c8f94;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#2271b1}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#2271b1;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f0f0f1;background:rgba(240,240,241,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #dcdcde}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:left;border:0;border-right:1px solid #dcdcde;background-color:transparent;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:normal 22px/50px dashicons!important;color:#787c82;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#787c82;background-color:transparent;height:48px;width:54px;float:right;text-align:center;border:0;border-left:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#dcdcde;border-color:#c3c4c7;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#c3c4c7;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:"\f345"}.theme-overlay .theme-header .right:before{content:"\f341"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f6f7f7;z-index:30;box-sizing:border-box;border-top:1px solid #f0f0f1;display:flex;justify-content:center;gap:5px}.theme-overlay .theme-actions .button{margin-bottom:5px}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"]{display:none}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#b32d2e;text-decoration:none;border-color:transparent;box-shadow:none;background:0 0}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#b32d2e;color:#fff;border-color:#b32d2e;box-shadow:0 0 0 1px #b32d2e}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:1200px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#c3c4c7;border:1px solid #f0f0f1;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;height:auto;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #72aee6}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#2c3338;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;user-select:none}.theme-overlay .theme-name{color:#1d2327;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#646970;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#646970;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .toggle-auto-update{display:inline-flex;align-items:center;min-height:20px;vertical-align:top}.theme-overlay .theme-autoupdate .toggle-auto-update{text-decoration:none}.theme-overlay .theme-autoupdate .toggle-auto-update .label{text-decoration:underline}.theme-overlay .theme-description{color:#50575e;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #f0f0f1;color:#646970;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#3c434a;font-weight:600;margin-left:5px}.theme-overlay .parent-theme{background:#fff;border:1px solid #f0f0f1;border-right:4px solid #72aee6;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:600}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(2n){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:960px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:782px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme.focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}.theme-overlay .theme-about{bottom:105px}.theme-overlay .theme-actions{padding-right:4%;padding-left:4%}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;right:0;left:0;margin:-5px 0 20px;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:normal 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.update-php .wrap{max-width:40rem}.theme-browser .theme .theme-installed{background:#2271b1}.theme-browser .theme .notice-success p:before{color:#68de7c;content:"\f147";display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:""}.theme-install-php .wp-filter{padding-right:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px;text-align:center}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#f6f7f7;border:1px solid #c3c4c7;padding:30px;margin:30px auto;display:inline-flex;justify-content:space-between;align-items:center}.upload-plugin .wp-upload-form input[type=file],.upload-theme .wp-upload-form input[type=file]{margin-left:10px}.upload-plugin .install-help,.upload-theme .install-help{color:#50575e;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes,p.no-themes-local{clear:both;color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0}}.theme-details .theme-rating{line-height:1.9}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#646970}.theme-details .no-rating{display:block;line-height:1.9}.update-from-upload-comparison{border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;text-align:right;margin:1rem 0 1.4rem;border-collapse:collapse;width:100%}.update-from-upload-comparison tr:last-child td{height:1.4rem;vertical-align:top}.update-from-upload-comparison tr:first-child th{font-weight:700;height:1.4rem;vertical-align:bottom}.update-from-upload-comparison td.name-label{text-align:left}.update-from-upload-comparison td,.update-from-upload-comparison th{padding:.4rem 1.4rem}.update-from-upload-comparison td.warning{color:#d63638}.update-from-upload-actions{margin-top:1.4rem}.appearance_page_custom-header #headimg{border:1px solid #dcdcde;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dcdcde}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#4f94d4;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(34,113,177,.8);color:#1d2327}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;transition:background-color .1s ease-in}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#50575e;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#1d2327}.background-position-control .button-group{display:block}.background-position-control .button-group .button{border-radius:0;box-shadow:none;height:40px!important;line-height:2.9!important;margin:0 0 0 -1px!important;padding:0 10px 1px!important;position:relative}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{box-shadow:0 1px 0 #c3c4c7}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:first-child>label:last-child .button{border-radius:3px 0 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:last-child>label:first-child .button{border-radius:0 0 3px 0}.background-position-control .button-group:last-child>label:first-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:last-child>label:last-child .button{border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%;min-width:0}.wp-full-overlay-sidebar{box-sizing:border-box;position:fixed;min-width:300px;max-width:600px;width:18%;height:100%;top:0;bottom:0;right:0;padding:0;margin:0;z-index:10;background:#f0f0f1;border-left:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px}@media screen and (min-width:1667px){.wp-full-overlay.expanded{margin-right:18%}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-18%}}@media screen and (min-width:3333px){.wp-full-overlay.expanded{margin-right:600px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-600px}}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0;left:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:3.2;z-index:10;margin:0;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:right;width:45px;height:45px;background:#f0f0f1;border-left:1px solid #dcdcde;color:#3c434a;cursor:pointer;text-decoration:none;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:normal 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.theme-install-overlay .previous-theme:before{font:normal 20px/1 dashicons;content:"\f345";position:relative;top:6px;right:14px}.theme-install-overlay .next-theme:before{font:normal 20px/1 dashicons;content:"\f341";position:relative;top:6px;right:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#c3c4c7;background:#f0f0f1;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-right:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;right:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;right:0;padding:9px 10px 9px 0;height:45px;color:#646970;outline:0;line-height:1;background-color:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#2271b1}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:1.6}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.wp-full-overlay .collapse-sidebar-label{margin-right:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#f0f0f1;font:normal 20px/1 dashicons;speak:never;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{transition-property:right,left,top,bottom,width,margin;transition-duration:.2s}.wp-full-overlay{background:#1d2327}.wp-full-overlay-main{background-color:#f0f0f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;right:0;min-width:299px;max-width:599px;width:18%;width:calc(18% - 1px);height:45px;border-top:1px solid #dcdcde;background:#f0f0f1}.wp-full-overlay-footer .devices-wrapper{float:left}.wp-full-overlay-footer .devices{position:relative;background:#f0f0f1;box-shadow:20px 0 10px -5px #f0f0f1}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 -4px 0 0;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:normal 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#646970}.wp-full-overlay-footer .devices button.active{border-bottom-color:#1d2327}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#2271b1}.wp-full-overlay-footer .devices button.active:before{color:#1d2327}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#2271b1}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto -160px auto 0;width:320px;height:480px;max-height:100%;max-width:100%;right:50%}.preview-tablet .wp-full-overlay-main{margin:auto -360px auto 0;width:720px;height:1080px;max-height:100%;max-width:100%;right:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container,#customize-controls .notice.notification-overlay{background:#f0f0f1;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}#customize-container{display:none}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:1.5;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #c3c4c7;position:relative;overflow:hidden}.install-theme-info .theme-screenshot>img{width:100%;height:auto;position:absolute;right:0;top:0}.install-theme-info .theme-screenshot:after{content:"";display:block;padding-top:66.66666666%}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:right;color:#646970;line-height:1.6;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:left;margin:8px 0 0 10px}.theme-install-overlay .wp-full-overlay-sidebar{background:#f0f0f1;border-left:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f0f0f1}.customize-loading #customize-container{background-color:#f0f0f1}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;transform:translateZ(0);background:transparent url(../images/spinner.gif) no-repeat center center;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);background-size:15px 123px}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .button{font-size:13px;line-height:2.15384615;min-height:30px}.theme-browser .theme .theme-actions .button{margin-bottom:0}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{padding-top:4px;padding-bottom:4px}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{display:block}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:never}} \ No newline at end of file +.themes-php{overflow-y:scroll}body.js .theme-browser.search-loading{display:none}.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-right:20px}.themes-php .search-form{display:inline}.themes-php .wp-filter-search{position:relative;top:-2px;right:20px;margin:0;width:280px}.theme .notice,.theme .notice.is-dismissible{right:0;margin:0;position:absolute;left:0;top:0}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #dcdcde;box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme.focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{opacity:0;transition:opacity .1s ease-in-out;height:auto;background:rgba(246,247,247,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:hover .theme-actions{opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;transition:opacity .2s ease-in-out}.theme-browser .theme.focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{opacity:0;position:absolute;top:35%;left:20%;right:20%;width:60%;background:#1d2327;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;border-radius:3px;border:none;transition:opacity .1s ease-in-out;cursor:pointer}.theme-browser .theme .more-details:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.theme-browser .theme.focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.theme-browser .theme.focus .more-details{opacity:1}.theme-browser .theme.active.focus .theme-actions{display:block}.theme-browser.rendered .theme.focus .more-details,.theme-browser.rendered .theme:hover .more-details{opacity:1}.theme-browser .theme.active .theme-name{background:#1d2327;color:#fff;padding-left:110px;font-weight:300;box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-left:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(44,51,56,.7);border-right:none;opacity:1}.theme-id-container{position:relative}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{position:absolute;top:50%;transform:translateY(-50%);left:0;padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#1d2327;color:#f0f0f1;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit}.theme-browser .theme.add-new-theme{border:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;right:0;left:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #dcdcde;border:5px dashed rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#dcdcde;background:rgba(140,143,148,.1);border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:normal 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#8c8f94;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#2271b1}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#2271b1;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f0f0f1;background:rgba(240,240,241,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #dcdcde}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:left;border:0;border-right:1px solid #dcdcde;background-color:transparent;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:normal 22px/50px dashicons!important;color:#787c82;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#787c82;background-color:transparent;height:48px;width:54px;float:right;text-align:center;border:0;border-left:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#dcdcde;border-color:#c3c4c7;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#c3c4c7;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:"\f345"}.theme-overlay .theme-header .right:before{content:"\f341"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f6f7f7;z-index:30;box-sizing:border-box;border-top:1px solid #f0f0f1;display:flex;justify-content:center;gap:5px}.theme-overlay .theme-actions .button{margin-bottom:5px}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"]{display:none}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#b32d2e;text-decoration:none;border-color:transparent;box-shadow:none;background:0 0}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#b32d2e;color:#fff;border-color:#b32d2e;box-shadow:0 0 0 1px #b32d2e}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:1200px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#c3c4c7;border:1px solid #f0f0f1;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;height:auto;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #72aee6}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#2c3338;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;user-select:none}.theme-overlay .theme-name{color:#1d2327;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#646970;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#646970;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .toggle-auto-update{display:inline-flex;align-items:center;min-height:20px;vertical-align:top}.theme-overlay .theme-autoupdate .toggle-auto-update{text-decoration:none}.theme-overlay .theme-autoupdate .toggle-auto-update .label{text-decoration:underline}.theme-overlay .theme-description{color:#50575e;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #f0f0f1;color:#646970;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#3c434a;font-weight:600;margin-left:5px}.theme-overlay .parent-theme{background:#fff;border:1px solid #f0f0f1;border-right:4px solid #72aee6;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:600}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(2n){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:960px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:782px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme.focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}.theme-overlay .theme-about{bottom:105px}.theme-overlay .theme-actions{padding-right:4%;padding-left:4%}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;right:0;left:0;margin:-5px 0 20px;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:normal 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.update-php .wrap{max-width:40rem}.theme-browser .theme .theme-installed{background:#2271b1}.theme-browser .theme .notice-success p:before{color:#68de7c;content:"\f147";display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:""}.theme-install-php .wp-filter{padding-right:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px;text-align:center}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#f6f7f7;border:1px solid #c3c4c7;padding:30px;margin:30px auto;display:inline-flex;justify-content:space-between;align-items:center}.upload-plugin .wp-upload-form input[type=file],.upload-theme .wp-upload-form input[type=file]{margin-left:10px}.upload-plugin .install-help,.upload-theme .install-help{color:#50575e;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes,p.no-themes-local{clear:both;color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0}}.theme-details .theme-rating{line-height:1.9}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#646970}.theme-details .no-rating{display:block;line-height:1.9}.update-from-upload-comparison{border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;text-align:right;margin:1rem 0 1.4rem;border-collapse:collapse;width:100%}.update-from-upload-comparison tr:last-child td{height:1.4rem;vertical-align:top}.update-from-upload-comparison tr:first-child th{font-weight:700;height:1.4rem;vertical-align:bottom}.update-from-upload-comparison td.name-label{text-align:left}.update-from-upload-comparison td,.update-from-upload-comparison th{padding:.4rem 1.4rem}.update-from-upload-comparison td.warning{color:#d63638}.update-from-upload-actions{margin-top:1.4rem}.appearance_page_custom-header #headimg{border:1px solid #dcdcde;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dcdcde}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#4f94d4;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(34,113,177,.8);color:#1d2327}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;transition:background-color .1s ease-in}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#50575e;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#1d2327}.background-position-control .button-group{display:block}.background-position-control .button-group .button{border-radius:0;box-shadow:none;height:40px!important;line-height:2.9!important;margin:0 0 0 -1px!important;padding:0 10px 1px!important;position:relative}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{box-shadow:0 1px 0 #c3c4c7}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:first-child>label:last-child .button{border-radius:3px 0 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:last-child>label:first-child .button{border-radius:0 0 3px 0}.background-position-control .button-group:last-child>label:first-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:last-child>label:last-child .button{border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%;min-width:0}.wp-full-overlay-sidebar{box-sizing:border-box;position:fixed;min-width:300px;max-width:600px;width:18%;height:100%;top:0;bottom:0;right:0;padding:0;margin:0;z-index:10;background:#f0f0f1;border-left:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px}@media screen and (min-width:1667px){.wp-full-overlay.expanded{margin-right:18%}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-18%}}@media screen and (min-width:3333px){.wp-full-overlay.expanded{margin-right:600px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-600px}}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0;left:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:3.2;z-index:10;margin:0;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:right;width:45px;height:45px;background:#f0f0f1;border-left:1px solid #dcdcde;color:#3c434a;cursor:pointer;text-decoration:none;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:normal 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.theme-install-overlay .previous-theme:before{font:normal 20px/1 dashicons;content:"\f345";position:relative;top:6px;right:14px}.theme-install-overlay .next-theme:before{font:normal 20px/1 dashicons;content:"\f341";position:relative;top:6px;right:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#c3c4c7;background:#f0f0f1;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-right:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;right:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;right:0;padding:9px 10px 9px 0;height:45px;color:#646970;outline:0;line-height:1;background-color:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#2271b1}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:1.6}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.wp-full-overlay .collapse-sidebar-label{margin-right:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#f0f0f1;font:normal 20px/1 dashicons;speak:never;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{transition-property:right,left,top,bottom,width,margin;transition-duration:.2s}.wp-full-overlay{background:#1d2327}.wp-full-overlay-main{background-color:#f0f0f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;right:0;min-width:299px;max-width:599px;width:18%;width:calc(18% - 1px);height:45px;border-top:1px solid #dcdcde;background:#f0f0f1}.wp-full-overlay-footer .devices-wrapper{float:left}.wp-full-overlay-footer .devices{position:relative;background:#f0f0f1;box-shadow:20px 0 10px -5px #f0f0f1}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 -4px 0 0;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:normal 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#646970}.wp-full-overlay-footer .devices button.active{border-bottom-color:#1d2327}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#2271b1}.wp-full-overlay-footer .devices button.active:before{color:#1d2327}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#2271b1}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto -160px auto 0;width:320px;height:480px;max-height:100%;max-width:100%;right:50%}.preview-tablet .wp-full-overlay-main{margin:auto -360px auto 0;width:720px;height:1080px;max-height:100%;max-width:100%;right:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container,#customize-controls .notice.notification-overlay{background:#f0f0f1;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}#customize-container{display:none}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:1.5;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #c3c4c7;position:relative;overflow:hidden}.install-theme-info .theme-screenshot>img{width:100%;height:auto;position:absolute;right:0;top:0}.install-theme-info .theme-screenshot:after{content:"";display:block;padding-top:66.66666666%}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:right;color:#646970;line-height:1.6;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:left;margin:8px 0 0 10px}.theme-install-overlay .wp-full-overlay-sidebar{background:#f0f0f1;border-left:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f0f0f1}.customize-loading #customize-container{background-color:#f0f0f1}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;transform:translateZ(0);background:transparent url(../images/spinner.gif) no-repeat center center;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);background-size:15px 123px}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .button{font-size:13px;line-height:2.15384615;min-height:30px}.theme-browser .theme .theme-actions .button{margin-bottom:0}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{padding-top:4px;padding-bottom:4px}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{display:block}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:never}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.css index 268cc558f3..07f3356501 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.css @@ -1938,6 +1938,7 @@ body.full-overlay-active { * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-full-overlay .collapse-sidebar-arrow { background-image: url(../images/arrows-2x.png); diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.min.css b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.min.css index 2e9c3e9ce5..0f4a72f4b4 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-admin/css/themes.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.themes-php{overflow-y:scroll}body.js .theme-browser.search-loading{display:none}.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-left:20px}.themes-php .search-form{display:inline}.themes-php .wp-filter-search{position:relative;top:-2px;left:20px;margin:0;width:280px}.theme .notice,.theme .notice.is-dismissible{left:0;margin:0;position:absolute;right:0;top:0}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #dcdcde;box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme.focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{opacity:0;transition:opacity .1s ease-in-out;height:auto;background:rgba(246,247,247,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:hover .theme-actions{opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;transition:opacity .2s ease-in-out}.theme-browser .theme.focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{opacity:0;position:absolute;top:35%;right:20%;left:20%;width:60%;background:#1d2327;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;border-radius:3px;border:none;transition:opacity .1s ease-in-out;cursor:pointer}.theme-browser .theme .more-details:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.theme-browser .theme.focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.theme-browser .theme.focus .more-details{opacity:1}.theme-browser .theme.active.focus .theme-actions{display:block}.theme-browser.rendered .theme.focus .more-details,.theme-browser.rendered .theme:hover .more-details{opacity:1}.theme-browser .theme.active .theme-name{background:#1d2327;color:#fff;padding-right:110px;font-weight:300;box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-right:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(44,51,56,.7);border-left:none;opacity:1}.theme-id-container{position:relative}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{position:absolute;top:50%;transform:translateY(-50%);right:0;padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#1d2327;color:#f0f0f1;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit}.theme-browser .theme.add-new-theme{border:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;left:0;right:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #dcdcde;border:5px dashed rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#dcdcde;background:rgba(140,143,148,.1);border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:normal 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#8c8f94;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#2271b1}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#2271b1;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f0f0f1;background:rgba(240,240,241,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #dcdcde}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:right;border:0;border-left:1px solid #dcdcde;background-color:transparent;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:normal 22px/50px dashicons!important;color:#787c82;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#787c82;background-color:transparent;height:48px;width:54px;float:left;text-align:center;border:0;border-right:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#dcdcde;border-color:#c3c4c7;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#c3c4c7;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:"\f341"}.theme-overlay .theme-header .right:before{content:"\f345"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f6f7f7;z-index:30;box-sizing:border-box;border-top:1px solid #f0f0f1;display:flex;justify-content:center;gap:5px}.theme-overlay .theme-actions .button{margin-bottom:5px}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"]{display:none}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#b32d2e;text-decoration:none;border-color:transparent;box-shadow:none;background:0 0}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#b32d2e;color:#fff;border-color:#b32d2e;box-shadow:0 0 0 1px #b32d2e}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:1200px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#c3c4c7;border:1px solid #f0f0f1;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;height:auto;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #72aee6}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#2c3338;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;user-select:none}.theme-overlay .theme-name{color:#1d2327;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#646970;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#646970;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .toggle-auto-update{display:inline-flex;align-items:center;min-height:20px;vertical-align:top}.theme-overlay .theme-autoupdate .toggle-auto-update{text-decoration:none}.theme-overlay .theme-autoupdate .toggle-auto-update .label{text-decoration:underline}.theme-overlay .theme-description{color:#50575e;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #f0f0f1;color:#646970;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#3c434a;font-weight:600;margin-right:5px}.theme-overlay .parent-theme{background:#fff;border:1px solid #f0f0f1;border-left:4px solid #72aee6;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:600}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(2n){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:960px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:782px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme.focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}.theme-overlay .theme-about{bottom:105px}.theme-overlay .theme-actions{padding-left:4%;padding-right:4%}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;left:0;right:0;margin:-5px 0 20px;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:normal 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.update-php .wrap{max-width:40rem}.theme-browser .theme .theme-installed{background:#2271b1}.theme-browser .theme .notice-success p:before{color:#68de7c;content:"\f147";display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:""}.theme-install-php .wp-filter{padding-left:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px;text-align:center}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#f6f7f7;border:1px solid #c3c4c7;padding:30px;margin:30px auto;display:inline-flex;justify-content:space-between;align-items:center}.upload-plugin .wp-upload-form input[type=file],.upload-theme .wp-upload-form input[type=file]{margin-right:10px}.upload-plugin .install-help,.upload-theme .install-help{color:#50575e;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes,p.no-themes-local{clear:both;color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0}}.theme-details .theme-rating{line-height:1.9}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#646970}.theme-details .no-rating{display:block;line-height:1.9}.update-from-upload-comparison{border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;text-align:left;margin:1rem 0 1.4rem;border-collapse:collapse;width:100%}.update-from-upload-comparison tr:last-child td{height:1.4rem;vertical-align:top}.update-from-upload-comparison tr:first-child th{font-weight:700;height:1.4rem;vertical-align:bottom}.update-from-upload-comparison td.name-label{text-align:right}.update-from-upload-comparison td,.update-from-upload-comparison th{padding:.4rem 1.4rem}.update-from-upload-comparison td.warning{color:#d63638}.update-from-upload-actions{margin-top:1.4rem}.appearance_page_custom-header #headimg{border:1px solid #dcdcde;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dcdcde}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#4f94d4;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(34,113,177,.8);color:#1d2327}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;transition:background-color .1s ease-in}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#50575e;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#1d2327}.background-position-control .button-group{display:block}.background-position-control .button-group .button{border-radius:0;box-shadow:none;height:40px!important;line-height:2.9!important;margin:0 -1px 0 0!important;padding:0 10px 1px!important;position:relative}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{box-shadow:0 1px 0 #c3c4c7}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{border-radius:3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:first-child>label:last-child .button{border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:first-child .button{border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:first-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:last-child .button{border-radius:0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{box-sizing:border-box;position:fixed;min-width:300px;max-width:600px;width:18%;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;background:#f0f0f1;border-right:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}@media screen and (min-width:1667px){.wp-full-overlay.expanded{margin-left:18%}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-18%}}@media screen and (min-width:3333px){.wp-full-overlay.expanded{margin-left:600px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-600px}}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:3.2;z-index:10;margin:0;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:left;width:45px;height:45px;background:#f0f0f1;border-right:1px solid #dcdcde;color:#3c434a;cursor:pointer;text-decoration:none;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:normal 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.theme-install-overlay .previous-theme:before{font:normal 20px/1 dashicons;content:"\f341";position:relative;top:6px;left:14px}.theme-install-overlay .next-theme:before{font:normal 20px/1 dashicons;content:"\f345";position:relative;top:6px;left:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#c3c4c7;background:#f0f0f1;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-left:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;left:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;left:0;padding:9px 0 9px 10px;height:45px;color:#646970;outline:0;line-height:1;background-color:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#2271b1}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:1.6}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.wp-full-overlay .collapse-sidebar-label{margin-left:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#f0f0f1;font:normal 20px/1 dashicons;speak:never;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{transition-property:left,right,top,bottom,width,margin;transition-duration:.2s}.wp-full-overlay{background:#1d2327}.wp-full-overlay-main{background-color:#f0f0f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;left:0;min-width:299px;max-width:599px;width:18%;width:calc(18% - 1px);height:45px;border-top:1px solid #dcdcde;background:#f0f0f1}.wp-full-overlay-footer .devices-wrapper{float:right}.wp-full-overlay-footer .devices{position:relative;background:#f0f0f1;box-shadow:-20px 0 10px -5px #f0f0f1}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 0 0 -4px;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:normal 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#646970}.wp-full-overlay-footer .devices button.active{border-bottom-color:#1d2327}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#2271b1}.wp-full-overlay-footer .devices button.active:before{color:#1d2327}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#2271b1}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto 0 auto -160px;width:320px;height:480px;max-height:100%;max-width:100%;left:50%}.preview-tablet .wp-full-overlay-main{margin:auto 0 auto -360px;width:720px;height:1080px;max-height:100%;max-width:100%;left:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container,#customize-controls .notice.notification-overlay{background:#f0f0f1;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}#customize-container{display:none}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:1.5;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #c3c4c7;position:relative;overflow:hidden}.install-theme-info .theme-screenshot>img{width:100%;height:auto;position:absolute;left:0;top:0}.install-theme-info .theme-screenshot:after{content:"";display:block;padding-top:66.66666666%}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:left;color:#646970;line-height:1.6;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:right;margin:8px 10px 0 0}.theme-install-overlay .wp-full-overlay-sidebar{background:#f0f0f1;border-right:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f0f0f1}.customize-loading #customize-container{background-color:#f0f0f1}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;transform:translateZ(0);background:transparent url(../images/spinner.gif) no-repeat center center;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);background-size:15px 123px}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .button{font-size:13px;line-height:2.15384615;min-height:30px}.theme-browser .theme .theme-actions .button{margin-bottom:0}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{padding-top:4px;padding-bottom:4px}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{display:block}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:never}} \ No newline at end of file +.themes-php{overflow-y:scroll}body.js .theme-browser.search-loading{display:none}.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-left:20px}.themes-php .search-form{display:inline}.themes-php .wp-filter-search{position:relative;top:-2px;left:20px;margin:0;width:280px}.theme .notice,.theme .notice.is-dismissible{left:0;margin:0;position:absolute;right:0;top:0}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #dcdcde;box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme.focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{opacity:0;transition:opacity .1s ease-in-out;height:auto;background:rgba(246,247,247,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:hover .theme-actions{opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;transition:opacity .2s ease-in-out}.theme-browser .theme.focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{opacity:0;position:absolute;top:35%;right:20%;left:20%;width:60%;background:#1d2327;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;border-radius:3px;border:none;transition:opacity .1s ease-in-out;cursor:pointer}.theme-browser .theme .more-details:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.theme-browser .theme.focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.theme-browser .theme.focus .more-details{opacity:1}.theme-browser .theme.active.focus .theme-actions{display:block}.theme-browser.rendered .theme.focus .more-details,.theme-browser.rendered .theme:hover .more-details{opacity:1}.theme-browser .theme.active .theme-name{background:#1d2327;color:#fff;padding-right:110px;font-weight:300;box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-right:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(44,51,56,.7);border-left:none;opacity:1}.theme-id-container{position:relative}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{position:absolute;top:50%;transform:translateY(-50%);right:0;padding:9px 15px;box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#1d2327;color:#f0f0f1;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit}.theme-browser .theme.add-new-theme{border:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;left:0;right:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #dcdcde;border:5px dashed rgba(0,0,0,.1);box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#dcdcde;background:rgba(140,143,148,.1);border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:normal 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#8c8f94;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#2271b1}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#2271b1;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f0f0f1;background:rgba(240,240,241,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #dcdcde}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:right;border:0;border-left:1px solid #dcdcde;background-color:transparent;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:normal 22px/50px dashicons!important;color:#787c82;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#787c82;background-color:transparent;height:48px;width:54px;float:left;text-align:center;border:0;border-right:1px solid #dcdcde;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#dcdcde;border-color:#c3c4c7;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#c3c4c7;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:normal 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:"\f341"}.theme-overlay .theme-header .right:before{content:"\f345"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f6f7f7;z-index:30;box-sizing:border-box;border-top:1px solid #f0f0f1;display:flex;justify-content:center;gap:5px}.theme-overlay .theme-actions .button{margin-bottom:5px}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"]{display:none}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#b32d2e;text-decoration:none;border-color:transparent;box-shadow:none;background:0 0}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#b32d2e;color:#fff;border-color:#b32d2e;box-shadow:0 0 0 1px #b32d2e}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:1200px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#c3c4c7;border:1px solid #f0f0f1;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;height:auto;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #72aee6}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#2c3338;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;user-select:none}.theme-overlay .theme-name{color:#1d2327;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#646970;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#646970;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .toggle-auto-update{display:inline-flex;align-items:center;min-height:20px;vertical-align:top}.theme-overlay .theme-autoupdate .toggle-auto-update{text-decoration:none}.theme-overlay .theme-autoupdate .toggle-auto-update .label{text-decoration:underline}.theme-overlay .theme-description{color:#50575e;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #f0f0f1;color:#646970;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#3c434a;font-weight:600;margin-right:5px}.theme-overlay .parent-theme{background:#fff;border:1px solid #f0f0f1;border-left:4px solid #72aee6;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:600}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(2n){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:960px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:782px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme.focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme.focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}.theme-overlay .theme-about{bottom:105px}.theme-overlay .theme-actions{padding-left:4%;padding-right:4%}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;left:0;right:0;margin:-5px 0 20px;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:normal 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.update-php .wrap{max-width:40rem}.theme-browser .theme .theme-installed{background:#2271b1}.theme-browser .theme .notice-success p:before{color:#68de7c;content:"\f147";display:inline-block;font:normal 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:""}.theme-install-php .wp-filter{padding-left:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px;text-align:center}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#f6f7f7;border:1px solid #c3c4c7;padding:30px;margin:30px auto;display:inline-flex;justify-content:space-between;align-items:center}.upload-plugin .wp-upload-form input[type=file],.upload-theme .wp-upload-form input[type=file]{margin-right:10px}.upload-plugin .install-help,.upload-theme .install-help{color:#50575e;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes,p.no-themes-local{clear:both;color:#646970;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0}}.theme-details .theme-rating{line-height:1.9}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#646970}.theme-details .no-rating{display:block;line-height:1.9}.update-from-upload-comparison{border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde;text-align:left;margin:1rem 0 1.4rem;border-collapse:collapse;width:100%}.update-from-upload-comparison tr:last-child td{height:1.4rem;vertical-align:top}.update-from-upload-comparison tr:first-child th{font-weight:700;height:1.4rem;vertical-align:bottom}.update-from-upload-comparison td.name-label{text-align:right}.update-from-upload-comparison td,.update-from-upload-comparison th{padding:.4rem 1.4rem}.update-from-upload-comparison td.warning{color:#d63638}.update-from-upload-actions{margin-top:1.4rem}.appearance_page_custom-header #headimg{border:1px solid #dcdcde;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dcdcde}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#4f94d4;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(34,113,177,.8);color:#1d2327}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;transition:background-color .1s ease-in}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#50575e;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#1d2327}.background-position-control .button-group{display:block}.background-position-control .button-group .button{border-radius:0;box-shadow:none;height:40px!important;line-height:2.9!important;margin:0 -1px 0 0!important;padding:0 10px 1px!important;position:relative}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{box-shadow:0 1px 0 #c3c4c7}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{border-radius:3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group:first-child>label:last-child .button{border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:first-child .button{border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:first-child .dashicons{transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:last-child .button{border-radius:0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{transform:rotate(45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{box-sizing:border-box;position:fixed;min-width:300px;max-width:600px;width:18%;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;background:#f0f0f1;border-right:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}@media screen and (min-width:1667px){.wp-full-overlay.expanded{margin-left:18%}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-18%}}@media screen and (min-width:3333px){.wp-full-overlay.expanded{margin-left:600px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-600px}}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:3.2;z-index:10;margin:0;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:left;width:45px;height:45px;background:#f0f0f1;border-right:1px solid #dcdcde;color:#3c434a;cursor:pointer;text-decoration:none;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#dcdcde;border-color:#c3c4c7;color:#000;outline:0;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:normal 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.theme-install-overlay .previous-theme:before{font:normal 20px/1 dashicons;content:"\f341";position:relative;top:6px;left:14px}.theme-install-overlay .next-theme:before{font:normal 20px/1 dashicons;content:"\f345";position:relative;top:6px;left:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#c3c4c7;background:#f0f0f1;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-left:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;left:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;left:0;padding:9px 0 9px 10px;height:45px;color:#646970;outline:0;line-height:1;background-color:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#2271b1}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:1.6}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.wp-full-overlay .collapse-sidebar-label{margin-left:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#f0f0f1;font:normal 20px/1 dashicons;speak:never;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{transition-property:left,right,top,bottom,width,margin;transition-duration:.2s}.wp-full-overlay{background:#1d2327}.wp-full-overlay-main{background-color:#f0f0f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;left:0;min-width:299px;max-width:599px;width:18%;width:calc(18% - 1px);height:45px;border-top:1px solid #dcdcde;background:#f0f0f1}.wp-full-overlay-footer .devices-wrapper{float:right}.wp-full-overlay-footer .devices{position:relative;background:#f0f0f1;box-shadow:-20px 0 10px -5px #f0f0f1}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 0 0 -4px;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:normal 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#646970}.wp-full-overlay-footer .devices button.active{border-bottom-color:#1d2327}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#2271b1}.wp-full-overlay-footer .devices button.active:before{color:#1d2327}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#2271b1}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto 0 auto -160px;width:320px;height:480px;max-height:100%;max-width:100%;left:50%}.preview-tablet .wp-full-overlay-main{margin:auto 0 auto -360px;width:720px;height:1080px;max-height:100%;max-width:100%;left:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container,#customize-controls .notice.notification-overlay{background:#f0f0f1;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}#customize-container{display:none}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:1.5;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #c3c4c7;position:relative;overflow:hidden}.install-theme-info .theme-screenshot>img{width:100%;height:auto;position:absolute;left:0;top:0}.install-theme-info .theme-screenshot:after{content:"";display:block;padding-top:66.66666666%}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:left;color:#646970;line-height:1.6;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:right;margin:8px 10px 0 0}.theme-install-overlay .wp-full-overlay-sidebar{background:#f0f0f1;border-right:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #dcdcde;border-bottom:1px solid #dcdcde}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f0f0f1}.customize-loading #customize-container{background-color:#f0f0f1}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;transform:translateZ(0);background:transparent url(../images/spinner.gif) no-repeat center center;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);background-size:15px 123px}#customize-controls .notice.notification-overlay.notification-loading:before,#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .button{font-size:13px;line-height:2.15384615;min-height:30px}.theme-browser .theme .theme-actions .button{margin-bottom:0}.theme-browser .theme .theme-actions,.theme-browser .theme.active .theme-actions{padding-top:4px;padding-bottom:4px}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{display:block}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:never}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/bubble_bg-2x.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/bubble_bg-2x.gif index 21302a34dc..8e34e01dcd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/bubble_bg-2x.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/bubble_bg-2x.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/loading.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/loading.gif index 79d140e838..fdc589f809 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/loading.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/loading.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-music.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-music.gif index daa9101833..3bcda105c6 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-music.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-music.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-other.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-other.gif index 0a8920066c..cfe16a83df 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-other.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/media-button-other.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light-2x.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light-2x.gif index 978f585b98..08e47e8211 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light-2x.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light-2x.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light.gif index b9b7ae4875..fbf9be46c1 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/wpspin_light.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/xit.gif b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/xit.gif index 9e62856adb..b11c5d43e9 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-admin/images/xit.gif and b/packages/playground/wordpress/public/wp-nightly/wp-admin/images/xit.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard-thumbnail.jpg index cb6977e7b6..e8c84d3f4d 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard.jpg index aebf01b2d2..831961fff5 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/chessboard.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi-thumbnail.jpg index 699b5780e4..9fc963f59b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi.jpg index 83d7695c90..5b0fa3fb87 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/hanoi.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg index 6a6bf9a4d4..3790f96caa 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns.jpg index 96bea4c4ad..f71ce8f8cd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/lanterns.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone-thumbnail.jpg index c0b0e88ea3..248fe00a14 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg index a908fac799..e55ce97f1d 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore-thumbnail.jpg index 07e91f1a4e..5e5e740e9b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore.jpg index 972cb62511..71a8c54fed 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/shore.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley-thumbnail.jpg index ea70fe13b1..d2ee200088 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley.jpg index 67d63396de..110a764e5b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/trolley.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel-thumbnail.jpg index 2cf102fc98..d7fa971358 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel.jpg index 31e5e17d79..c5b98789a8 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/wheel.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow-thumbnail.jpg index 70f7fb2f02..240fff8a16 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow.jpg index d1829f6762..e867cc43df 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/headers/willow.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-flower.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-flower.jpg index 1dd4865a37..54bdcc593d 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-flower.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-flower.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-woman.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-woman.jpg index 4bf164c031..8af40f871a 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-woman.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyeleven/images/patterns/pattern-woman.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagull.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagull.jpg index b71d9d3807..fad56465bb 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagull.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagull.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagulls.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagulls.jpg index 6f318856fa..01d52f1dc8 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagulls.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-seagulls.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-sunset.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-sunset.jpg index f69dc562d2..75430630a0 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-sunset.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfifteen/assets/pier-sunset.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/bridge.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/bridge.jpg index a0bf15159f..d172bb2818 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/bridge.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/bridge.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/clouds.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/clouds.jpg index 1e550a14a1..f753465d6f 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/clouds.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/clouds.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/person.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/person.jpg index 83febdaad0..8dbad50819 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/person.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/person.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/street.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/street.jpg index 2111f1a750..71735a04b6 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/street.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/street.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/sunset.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/sunset.jpg index 892b195586..8c1b379fba 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/sunset.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyfourteen/images/sunset.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_01.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_01.jpg index e01b19df0e..b6bc3b4778 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_01.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_01.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_02.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_02.jpg index 56c7f70943..88d66f2f3a 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_02.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_02.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_03.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_03.jpg index bd69d37a29..0b323a8a02 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_03.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_03.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_04.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_04.jpg index b7419fe4f4..8e5a4936bd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_04.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/images/pattern_04.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/screenshot.png b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/screenshot.png index fa27e95463..7dc53c5f1d 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/screenshot.png and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentynineteen/screenshot.png differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/coffee.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/coffee.jpg index 145d1f7116..13847cde7c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/coffee.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/coffee.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/direct-light.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/direct-light.jpg index 8f3d814c57..a3255791e7 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/direct-light.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/direct-light.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/espresso.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/espresso.jpg index a3bd2c6dc0..7514c96bdf 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/espresso.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/espresso.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/header.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/header.jpg index ef2c07aff9..a3fd3e7122 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/header.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/header.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg index cf81066b2e..6baddbf053 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/stripes.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/stripes.jpg index 2e0920ff7e..26e3b6d10c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/stripes.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/stripes.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/white-border.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/white-border.jpg index 40773b14bd..a1b11d77cd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/white-border.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/assets/images/white-border.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/screenshot.png b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/screenshot.png index eb97de8400..088b7413e7 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/screenshot.png and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyseventeen/screenshot.png differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg index 3bd027a8d5..9588d31b70 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries.jpg index 3031a05913..b221abc4f6 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/berries.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg index 10241b8f17..c74744a862 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg index 56e9df0e25..c9fffea3ed 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg index 45eaf356a9..ed24a365cd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave.jpg index 9970de267b..0f29e4c550 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/concave.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg index 8aa0b30d57..1f78bd8a94 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern.jpg index a8122b641f..bbefc6516f 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/fern.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg index 0717d16e5a..2c9eb7e01f 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor.jpg index 453394882b..9cf3e60b91 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/forestfloor.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg index 6840a31bbc..3693f0a001 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell.jpg index 82b0b7d155..8bd9147122 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/inkwell.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg index e19f2acba5..c19bba8739 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path.jpg index d869497886..5ebc76a92b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/path.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg index dca830ee20..34e0730c54 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset.jpg index 66eddaa7fc..98cb24544c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/headers/sunset.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-barn.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-barn.jpg index 969b86712e..9a53476055 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-barn.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-barn.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-dock.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-dock.jpg index 2b56d7bfe5..58ae59ec80 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-dock.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-dock.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-lake.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-lake.jpg index bfedc3d5a3..c11cc8041c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-lake.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentyten/images/patterns/pattern-lake.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/bernal-cutaway.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/bernal-cutaway.jpg index d3ea097799..2fc35420c7 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/bernal-cutaway.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/bernal-cutaway.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/cylinder-interior.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/cylinder-interior.jpg index 59d52f4283..eb7356931b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/cylinder-interior.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/cylinder-interior.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/dark-red.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/dark-red.jpg index ff981599a4..cb36fee644 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/dark-red.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/dark-red.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/orange.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/orange.jpg index d6e28737c2..6bdd37fcf4 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/orange.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/orange.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/toroidal-colony.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/toroidal-colony.jpg index 9877341b9b..388d497a3e 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/toroidal-colony.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/toroidal-colony.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/torus-interior.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/torus-interior.jpg index 3d7aa46f2a..1c13bc2313 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/torus-interior.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentythirteen/images/block-patterns/torus-interior.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-1.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-1.jpg index 0f262c61ff..8ffc94ac4d 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-1.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-1.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-2.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-2.jpg index ba416669c2..6f36e990b7 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-2.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-2.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-3.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-3.jpg index 0d7eaf674e..1662838971 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-3.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-3.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-4.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-4.jpg index a17a185d74..6187e7afaa 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-4.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwelve/images/pattern-jumble-4.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/readme.txt b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/readme.txt index fcb6cdc9f9..c1837d4636 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/readme.txt +++ b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/readme.txt @@ -33,33 +33,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - -This theme bundles the following third-party resources: - -=== Fonts === - -Cardo Font -Copyright (c) 2002-2011, David J. Perry (hospes02@scholarsfonts.net) -License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 -Source: http://scholarsfonts.net - -Instrument Sans Font -Copyright 2022 The Instrument Sans Project Authors. -License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 -Source: https://github.com/Instrument/instrument-sans - -Inter Font -Copyright 2020 The Inter Project Authors. -License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 -Source: https://github.com/rsms/inter - -Jost Font -Copyright 2020 The Jost Project Authors. -License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 -Source: https://github.com/indestructible-type/Jost - === Images === - License: CC0 https://creativecommons.org/publicdomain/zero/1.0/ museum.webp - https://www.rawpixel.com/image/3297419/free-photo-image-interior-hallway-architecture diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/screenshot.png b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/screenshot.png index 74fa4c7a1e..40c5b99e9f 100644 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/screenshot.png and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/screenshot.png differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/theme.json b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/theme.json index 2586fcab0a..7988b1af5c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/theme.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyfour/theme.json @@ -247,7 +247,7 @@ { "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", "name": "System Serif", - "slug": "system-serif" + "slug": "system-Serif" } ], "fontSizes": [ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Daffodils.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Daffodils.jpg index 409522aeb1..bd062b93cc 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Daffodils.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Daffodils.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Reading.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Reading.jpg index 841e45ce50..cfa732a57a 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Reading.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/Reading.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/in-the-bois-de-boulogne.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/in-the-bois-de-boulogne.jpg index 0e03bde64c..cf74f5df04 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/in-the-bois-de-boulogne.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/in-the-bois-de-boulogne.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/playing-in-the-sand.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/playing-in-the-sand.jpg index 6a90421102..557ae0f7cd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/playing-in-the-sand.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/playing-in-the-sand.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/roses-tremieres-hollyhocks-1884.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/roses-tremieres-hollyhocks-1884.jpg index 0386999e24..ff534164dc 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/roses-tremieres-hollyhocks-1884.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/roses-tremieres-hollyhocks-1884.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/self-portrait-1885.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/self-portrait-1885.jpg index f6adaed8d1..623598b60c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/self-portrait-1885.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/self-portrait-1885.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/the-garden-at-bougival-1884.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/the-garden-at-bougival-1884.jpg index 4315638330..6594d3d1bd 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/the-garden-at-bougival-1884.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/the-garden-at-bougival-1884.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/villa-with-orange-trees-nice.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/villa-with-orange-trees-nice.jpg index 652a24702a..5b78d968d5 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/villa-with-orange-trees-nice.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/villa-with-orange-trees-nice.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/young-woman-in-mauve.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/young-woman-in-mauve.jpg index cedf9cb5da..df00d3147c 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/young-woman-in-mauve.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentyone/assets/images/young-woman-in-mauve.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentythree/screenshot.png b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentythree/screenshot.png index dee93e471f..d405921ea3 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentythree/screenshot.png and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentythree/screenshot.png differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg index 15194fe0ef..684affb490 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg index 7f9092608c..4fde7652c3 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg index 86f626508d..f1b5505478 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg index d854f6d061..727c70ea6b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg index ff8c3a2d3c..6c65eb4313 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg index f2b0c1ded8..b533d0f140 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg index 78df7e72f7..9314e9fa2f 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg index ffca8031b3..3797692068 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg index 2811480491..86731b9037 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg index 308cadc37b..dbfa90e40a 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/screenshot.png b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/screenshot.png index 0bba95b9b4..9e8710cde3 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/screenshot.png and b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/screenshot.png differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/theme.json b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/theme.json index ec9ff8644e..41ffb72d98 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/theme.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-content/themes/twentytwentytwo/theme.json @@ -1,5 +1,4 @@ { - "$schema": "https://schemas.wp.org/trunk/theme.json", "version": 2, "customTemplates": [ { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/audio/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/audio/block.json index 04df268a74..a4740e3044 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/audio/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/audio/block.json @@ -16,8 +16,8 @@ "__experimentalRole": "content" }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "figcaption", "__experimentalRole": "content" }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/avatar/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/avatar/block.json index fa86541b29..3b4ac7c84f 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/avatar/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/avatar/block.json @@ -30,11 +30,7 @@ "alignWide": false, "spacing": { "margin": true, - "padding": true, - "__experimentalDefaultControls": { - "margin": false, - "padding": false - } + "padding": true }, "__experimentalBorder": { "__experimentalSkipSerialization": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/block/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/block/block.json index b30c865e57..4cb5396072 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/block/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/block/block.json @@ -10,15 +10,11 @@ "attributes": { "ref": { "type": "number" - }, - "overrides": { - "type": "object" } }, "supports": { "customClassName": false, "html": false, - "inserter": false, - "renaming": false + "inserter": false } } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/block.json index f04d4642bb..eec327b4ca 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/block.json @@ -8,7 +8,6 @@ "description": "Prompt visitors to take action with a button-style link.", "keywords": [ "link" ], "textdomain": "default", - "usesContext": [ "pattern/overrides" ], "attributes": { "tagName": { "type": "string", @@ -37,8 +36,8 @@ "__experimentalRole": "content" }, "text": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "a,button", "__experimentalRole": "content" }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.css index 859cff5919..b44770c2bb 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.css @@ -21,6 +21,37 @@ opacity:.8; } +.wp-block-button__inline-link{ + color:#757575; + height:0; + max-width:290px; + overflow:hidden; +} +.wp-block-button__inline-link-input__suggestions{ + max-width:290px; +} +@media (min-width:782px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:260px; + } +} +@media (min-width:960px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:290px; + } +} +.is-selected .wp-block-button__inline-link{ + height:auto; + overflow:visible; +} + +.wp-button-label__width .components-button-group{ + display:block; +} +.wp-button-label__width .components-base-control__field{ + margin-bottom:12px; +} + div[data-type="core/button"]{ display:table; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.min.css index 7b9e26da36..70b3555441 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor-rtl.min.css @@ -1 +1 @@ -.wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium} \ No newline at end of file +.wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}.wp-block-button__inline-link{color:#757575;height:0;max-width:290px;overflow:hidden}.wp-block-button__inline-link-input__suggestions{max-width:290px}@media (min-width:782px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:260px}}@media (min-width:960px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:290px}}.is-selected .wp-block-button__inline-link{height:auto;overflow:visible}.wp-button-label__width .components-button-group{display:block}.wp-button-label__width .components-base-control__field{margin-bottom:12px}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.css index 2c5e6c9041..39d3b86a16 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.css @@ -21,6 +21,37 @@ opacity:.8; } +.wp-block-button__inline-link{ + color:#757575; + height:0; + max-width:290px; + overflow:hidden; +} +.wp-block-button__inline-link-input__suggestions{ + max-width:290px; +} +@media (min-width:782px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:260px; + } +} +@media (min-width:960px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:290px; + } +} +.is-selected .wp-block-button__inline-link{ + height:auto; + overflow:visible; +} + +.wp-button-label__width .components-button-group{ + display:block; +} +.wp-button-label__width .components-base-control__field{ + margin-bottom:12px; +} + div[data-type="core/button"]{ display:table; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.min.css index bafac8caa0..32721ecbdb 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/editor.min.css @@ -1,2 +1,2 @@ .wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{ - /*!rtl:ignore*/text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium} \ No newline at end of file + /*!rtl:ignore*/text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}.wp-block-button__inline-link{color:#757575;height:0;max-width:290px;overflow:hidden}.wp-block-button__inline-link-input__suggestions{max-width:290px}@media (min-width:782px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:260px}}@media (min-width:960px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:290px}}.is-selected .wp-block-button__inline-link{height:auto;overflow:visible}.wp-button-label__width .components-button-group{display:block}.wp-button-label__width .components-base-control__field{margin-bottom:12px}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.css index a2e973d5d8..5e0c72e537 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.css @@ -64,16 +64,16 @@ border-radius:0 !important; } -.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{ +.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{ border:2px solid; padding:.667em 1.333em; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){ color:currentColor; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){ background-color:transparent; background-image:none; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.min.css index 06026f9a30..307c048992 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style-rtl.min.css @@ -1 +1 @@ -.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium} \ No newline at end of file +.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.css index 48b973da4e..09a46edd8f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.css @@ -64,16 +64,16 @@ border-radius:0 !important; } -.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{ +.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{ border:2px solid; padding:.667em 1.333em; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){ color:currentColor; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){ background-color:transparent; background-image:none; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.min.css index f3a572f4d0..cd8f86bea5 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/button/style.min.css @@ -1 +1 @@ -.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium} \ No newline at end of file +.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/code/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/code/block.json index bd5db3c918..80df74b506 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/code/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/code/block.json @@ -8,8 +8,8 @@ "textdomain": "default", "attributes": { "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "code", "__unstablePreserveWhiteSpace": true } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/comments-title/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/comments-title/block.json index 4107f5d590..12b105afe9 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/comments-title/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/comments-title/block.json @@ -5,7 +5,7 @@ "title": "Comments Title", "category": "theme", "ancestor": [ "core/comments" ], - "description": "Displays a title with the number of comments.", + "description": "Displays a title with the number of comments", "textdomain": "default", "usesContext": [ "postId", "postType" ], "attributes": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/block.json index 80562da309..e88dd2d65a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/block.json @@ -19,6 +19,9 @@ }, "alt": { "type": "string", + "source": "attribute", + "selector": "img", + "attribute": "alt", "default": "" }, "hasParallax": { @@ -39,9 +42,6 @@ "customOverlayColor": { "type": "string" }, - "isUserOverlayColor": { - "type": "boolean" - }, "backgroundType": { "type": "string", "default": "image" @@ -114,9 +114,6 @@ "__experimentalSkipSerialization": [ "gradients" ], "enableContrastChecker": false }, - "dimensions": { - "aspectRatio": true - }, "typography": { "fontSize": true, "lineHeight": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.css index 15e85de7b6..2144332c3c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.css @@ -5,7 +5,8 @@ display:flex; justify-content:center; min-height:430px; - overflow-x:clip; + overflow:hidden; + overflow:clip; padding:1em; position:relative; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.min.css index b09cf59ccf..e7823ed376 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style-rtl.min.css @@ -1 +1 @@ -.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow-x:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000} \ No newline at end of file +.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.css index fefb3824b7..79c70aebfd 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.css @@ -5,7 +5,8 @@ display:flex; justify-content:center; min-height:430px; - overflow-x:clip; + overflow:hidden; + overflow:clip; padding:1em; position:relative; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.min.css index de679a210e..3f009336f6 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/cover/style.min.css @@ -1 +1 @@ -.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow-x:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000} \ No newline at end of file +.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/details/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/details/block.json index a71d3af2a5..d449d42e1e 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/details/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/details/block.json @@ -13,8 +13,8 @@ "default": false }, "summary": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "summary" } }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/embed/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/embed/block.json index 5aac8bbd6b..9ca54db871 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/embed/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/embed/block.json @@ -12,8 +12,8 @@ "__experimentalRole": "content" }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "figcaption", "__experimentalRole": "content" }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/file/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/file/block.json index fd5da67d28..0cc20b3f50 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/file/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/file/block.json @@ -21,8 +21,8 @@ "attribute": "id" }, "fileName": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "a:not([download])" }, "textLinkHref": { @@ -42,8 +42,8 @@ "default": true }, "downloadButtonText": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "a[download]" }, "displayPreview": { @@ -72,6 +72,7 @@ }, "interactivity": true }, + "viewScript": "file:./view.min.js", "editorStyle": "wp-block-file-editor", "style": "wp-block-file" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/footnotes/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/footnotes/block.json index 3192df7796..28b094f24f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/footnotes/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/footnotes/block.json @@ -4,7 +4,7 @@ "name": "core/footnotes", "title": "Footnotes", "category": "text", - "description": "Display footnotes added to the page.", + "description": "", "keywords": [ "references" ], "textdomain": "default", "usesContext": [ "postId", "postType" ], @@ -33,7 +33,6 @@ "html": false, "multiple": false, "reusable": false, - "inserter": false, "spacing": { "margin": true, "padding": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/block.json index a5425c5538..0867989af4 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/block.json @@ -46,8 +46,8 @@ "attribute": "data-id" }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": ".blocks-gallery-item__caption" } } @@ -72,18 +72,14 @@ "maximum": 8 }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": ".blocks-gallery-caption" }, "imageCrop": { "type": "boolean", "default": true }, - "randomOrder": { - "type": "boolean", - "default": false - }, "fixedHeight": { "type": "boolean", "default": true diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.css index 0cabbe4e48..bbfa0b0ed6 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.css @@ -145,36 +145,8 @@ figure.wp-block-gallery.has-nested-images{ padding:0 8px 8px; position:absolute; right:0; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-width:thin; text-align:center; width:100%; - will-change:transform; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{ - height:12px; - width:12px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{ - background-color:transparent; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{ - background-color:hsla(0,0%,100%,.8); -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; -} -@media (hover:none){ - .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; - } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{ display:inline; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.min.css index 03542a2b74..ec4c42e810 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style-rtl.min.css @@ -1 +1 @@ -.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;right:0;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;text-align:center;width:100%;will-change:transform}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} \ No newline at end of file +.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;right:0;text-align:center;width:100%}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.css index 159041499b..fb2a0736c8 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.css @@ -145,36 +145,8 @@ figure.wp-block-gallery.has-nested-images{ overflow:auto; padding:0 8px 8px; position:absolute; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-width:thin; text-align:center; width:100%; - will-change:transform; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{ - height:12px; - width:12px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{ - background-color:transparent; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{ - background-color:hsla(0,0%,100%,.8); -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; -} -@media (hover:none){ - .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; - } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{ display:inline; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.min.css index c84f056b6c..a5ab123e65 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/gallery/style.min.css @@ -1 +1 @@ -.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;left:0;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;text-align:center;width:100%;will-change:transform}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} \ No newline at end of file +.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;left:0;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;text-align:center;width:100%}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/group/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/group/block.json index 674b0645f5..4b89d86539 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/group/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/group/block.json @@ -24,16 +24,13 @@ "__experimentalOnEnter": true, "__experimentalOnMerge": true, "__experimentalSettings": true, + "__experimentalMetadata": true, "align": [ "wide", "full" ], "anchor": true, "ariaLabel": true, "html": false, "background": { - "backgroundImage": true, - "backgroundSize": true, - "__experimentalDefaultControls": { - "backgroundImage": true - } + "backgroundImage": true }, "color": { "gradients": true, @@ -55,7 +52,6 @@ } }, "dimensions": { - "aspectRatio": true, "minHeight": true }, "__experimentalBorder": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/heading/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/heading/block.json index a1eb3fce32..7c018f8472 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/heading/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/heading/block.json @@ -7,15 +7,15 @@ "description": "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", "keywords": [ "title", "subtitle" ], "textdomain": "default", - "usesContext": [ "pattern/overrides" ], "attributes": { "textAlign": { "type": "string" }, "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "h1,h2,h3,h4,h5,h6", + "default": "", "__experimentalRole": "content" }, "level": { @@ -57,7 +57,9 @@ "__experimentalTextDecoration": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true, + "textTransform": true } }, "__unstablePasteTextInline": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/block.json index d60bcadf0e..d665a8a8f7 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/block.json @@ -4,16 +4,14 @@ "name": "core/image", "title": "Image", "category": "media", - "usesContext": [ - "allowResize", - "imageCrop", - "fixedHeight", - "pattern/overrides" - ], + "usesContext": [ "allowResize", "imageCrop", "fixedHeight" ], "description": "Insert an image to make a visual statement.", "keywords": [ "img", "photo", "picture" ], "textdomain": "default", "attributes": { + "align": { + "type": "string" + }, "url": { "type": "string", "source": "attribute", @@ -30,8 +28,8 @@ "__experimentalRole": "content" }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "figcaption", "__experimentalRole": "content" }, @@ -97,8 +95,6 @@ } }, "supports": { - "interactivity": true, - "align": [ "left", "center", "right", "wide", "full" ], "anchor": true, "color": { "text": false, @@ -134,5 +130,6 @@ { "name": "rounded", "label": "Rounded" } ], "editorStyle": "wp-block-image-editor", - "style": "wp-block-image" + "style": "wp-block-image", + "viewScript": "file:./view.min.js" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.css index d74dec9c54..41c1e01d44 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.css @@ -12,12 +12,9 @@ .wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{ display:none; } -.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ +.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ opacity:0; } -.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{ - opacity:1; -} .wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{ transition:none; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.min.css index 430050a8a1..76b3aa4b69 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor-rtl.min.css @@ -1 +1 @@ -.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px} \ No newline at end of file +.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.css index e33ea734b1..ccdc0d0f29 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.css @@ -12,12 +12,9 @@ .wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{ display:none; } -.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ +.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ opacity:0; } -.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{ - opacity:1; -} .wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{ transition:none; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.min.css index 71e26a86f9..89b31b0753 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/editor.min.css @@ -1 +1 @@ -.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px} \ No newline at end of file +.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.css index 19268b2740..363e38a35f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.css @@ -150,7 +150,7 @@ right:0; top:0; visibility:hidden; - width:100%; + width:100vw; z-index:100000; } .wp-lightbox-overlay .close-button{ @@ -280,7 +280,7 @@ } @keyframes lightbox-zoom-in{ 0%{ - transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } to{ transform:translate(50%, -50%) scale(1); @@ -295,7 +295,7 @@ visibility:visible; } to{ - transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); visibility:hidden; } } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.min.css index 1e26b971fa..25bf896dac 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style-rtl.min.css @@ -1 +1 @@ -.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-right-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-right-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);min-height:40px;min-width:40px;padding:0;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} \ No newline at end of file +.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-right-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-right-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100vw;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);min-height:40px;min-width:40px;padding:0;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.css index 9d8770ed5b..d06a8687ae 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.css @@ -150,7 +150,7 @@ position:fixed; top:0; visibility:hidden; - width:100%; + width:100vw; z-index:100000; } .wp-lightbox-overlay .close-button{ @@ -280,7 +280,7 @@ } @keyframes lightbox-zoom-in{ 0%{ - transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } to{ transform:translate(-50%, -50%) scale(1); @@ -295,7 +295,7 @@ visibility:visible; } to{ - transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); visibility:hidden; } } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.min.css index 6f9acffb72..0ee2855c0c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/image/style.min.css @@ -1 +1 @@ -.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-left-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-left-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} \ No newline at end of file +.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-left-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-left-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100vw;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/legacy-widget/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/legacy-widget/block.json index a03eb09063..6b0c1e2a91 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/legacy-widget/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/legacy-widget/block.json @@ -1,5 +1,4 @@ { - "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/legacy-widget", "title": "Legacy Widget", diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/list-item/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/list-item/block.json index 06997c2ac2..41221f1c31 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/list-item/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/list-item/block.json @@ -12,23 +12,16 @@ "type": "string" }, "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "li", + "default": "", "__experimentalRole": "content" } }, "supports": { "className": false, "__experimentalSelector": "li", - "spacing": { - "margin": true, - "padding": true, - "__experimentalDefaultControls": { - "margin": false, - "padding": false - } - }, "typography": { "fontSize": true, "lineHeight": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/loginout/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/loginout/block.json index 59fceec596..3593961c09 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/loginout/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/loginout/block.json @@ -19,14 +19,6 @@ }, "supports": { "className": true, - "spacing": { - "margin": true, - "padding": true, - "__experimentalDefaultControls": { - "margin": false, - "padding": false - } - }, "typography": { "fontSize": true, "lineHeight": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/missing/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/missing/block.json index 242a1d2c6b..0bc512bbbf 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/missing/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/missing/block.json @@ -15,7 +15,7 @@ }, "originalContent": { "type": "string", - "source": "raw" + "source": "html" } }, "supports": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation-link/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation-link/block.json index d8f2fe31ae..b2cbeaed63 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation-link/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation-link/block.json @@ -71,8 +71,7 @@ "__experimentalDefaultControls": { "fontSize": true } - }, - "renaming": false + } }, "editorStyle": "wp-block-navigation-link-editor", "style": "wp-block-navigation-link" diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/block.json index 36817a5e1c..cb5ca4fec1 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/block.json @@ -133,9 +133,9 @@ } } }, - "interactivity": true, - "renaming": false + "interactivity": true }, + "viewScript": "file:./view.min.js", "editorStyle": "wp-block-navigation-editor", "style": "wp-block-navigation" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.css index 6f223e1b00..aeaa09c03a 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.css @@ -277,8 +277,10 @@ min-height:1px; min-width:1px; } -.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ + display:none; + } } .wp-block-navigation__responsive-container.is-menu-open{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.min.css index d3328a418b..c5618b8078 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor-rtl.min.css @@ -1 +1 @@ -.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:right;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{left:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px} \ No newline at end of file +.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:right;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{left:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.css index c421f4f9f6..581c748bb5 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.css @@ -277,8 +277,10 @@ min-height:1px; min-width:1px; } -.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ + display:none; + } } .wp-block-navigation__responsive-container.is-menu-open{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.min.css index aa82804f09..d601f57a68 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/editor.min.css @@ -1 +1 @@ -.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:left;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{right:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px} \ No newline at end of file +.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:left;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{right:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.css index f5837f5880..8d9606d37f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.css @@ -202,16 +202,11 @@ button.wp-block-navigation-item__content{ .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{ padding-left:.85em; - padding-right:0; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{ margin-right:-.6em; pointer-events:none; } - -.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){ - padding:0; -} .wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{ gap:inherit; } @@ -363,18 +358,20 @@ button.wp-block-navigation-item__content{ left:auto; right:auto; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){ - background-color:inherit; - display:block; - position:relative; - width:100%; - z-index:auto; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{ - display:none; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ - right:0; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){ + background-color:inherit; + display:block; + position:relative; + width:100%; + z-index:auto; + } + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{ + display:none; + } + .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ + right:0; + } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{ @@ -416,8 +413,10 @@ button.wp-block-navigation-item__content{ font-size:inherit; font-weight:inherit; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container-open:not(.always-shown){ + display:none; + } } .wp-block-navigation__responsive-container-close{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.min.css index 036b750a4e..4e5f7bcc46 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style-rtl.min.css @@ -1 +1 @@ -.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;opacity:0;overflow:hidden;position:absolute;right:-1px;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em;padding-right:0}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{display:none}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} \ No newline at end of file +.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;opacity:0;overflow:hidden;position:absolute;right:-1px;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.css index e39f6a78cf..6c7ebaf77d 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.css @@ -201,17 +201,12 @@ button.wp-block-navigation-item__content{ } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{ - padding-left:0; padding-right:.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{ margin-left:-.6em; pointer-events:none; } - -.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){ - padding:0; -} .wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{ gap:inherit; } @@ -363,18 +358,20 @@ button.wp-block-navigation-item__content{ left:auto; right:auto; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){ - background-color:inherit; - display:block; - position:relative; - width:100%; - z-index:auto; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{ - display:none; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ - left:0; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){ + background-color:inherit; + display:block; + position:relative; + width:100%; + z-index:auto; + } + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{ + display:none; + } + .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ + left:0; + } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{ @@ -416,8 +413,10 @@ button.wp-block-navigation-item__content{ font-size:inherit; font-weight:inherit; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container-open:not(.always-shown){ + display:none; + } } .wp-block-navigation__responsive-container-close{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.min.css index 298c13855b..67a42cf2fe 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/navigation/style.min.css @@ -1 +1 @@ -.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;left:-1px;opacity:0;overflow:hidden;position:absolute;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:0;padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{display:none}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} \ No newline at end of file +.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;left:-1px;opacity:0;overflow:hidden;position:absolute;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.css index 1f973dfe22..d3679e9275 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.css @@ -37,6 +37,10 @@ width:auto; } +.wp-block-page-list .components-notice{ + margin-right:0; +} + .wp-block-page-list__loading-indicator-container{ padding:8px 12px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.min.css index d9e9b1d163..4c1863098d 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor-rtl.min.css @@ -1 +1 @@ -.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} \ No newline at end of file +.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list .components-notice{margin-right:0}.wp-block-page-list__loading-indicator-container{padding:8px 12px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.css index 1f973dfe22..82610f9273 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.css @@ -37,6 +37,10 @@ width:auto; } +.wp-block-page-list .components-notice{ + margin-left:0; +} + .wp-block-page-list__loading-indicator-container{ padding:8px 12px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.min.css index d9e9b1d163..f0ac772256 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/page-list/editor.min.css @@ -1 +1 @@ -.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} \ No newline at end of file +.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list .components-notice{margin-left:0}.wp-block-page-list__loading-indicator-container{padding:8px 12px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/paragraph/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/paragraph/block.json index 25a9a36fa8..85f56f4a83 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/paragraph/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/paragraph/block.json @@ -7,15 +7,16 @@ "description": "Start with the basic building block of all narrative.", "keywords": [ "text" ], "textdomain": "default", - "usesContext": [ "postId", "pattern/overrides" ], + "usesContext": [ "postId" ], "attributes": { "align": { "type": "string" }, "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "p", + "default": "", "__experimentalRole": "content" }, "dropCap": { @@ -41,6 +42,7 @@ "text": true } }, + "__experimentalConnections": true, "spacing": { "margin": true, "padding": true, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pattern/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pattern/block.json index da02f7b727..e9a85a9b2f 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pattern/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pattern/block.json @@ -7,8 +7,7 @@ "description": "Show a block pattern.", "supports": { "html": false, - "inserter": false, - "renaming": false + "inserter": false }, "textdomain": "default", "attributes": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/block.json index 4c4ba6919e..34e3bd6b23 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/block.json @@ -51,10 +51,6 @@ }, "customGradient": { "type": "string" - }, - "useFirstImageFromPost": { - "type": "boolean", - "default": false } }, "usesContext": [ "postId", "postType", "queryId" ], diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.css index c6cd467292..7b4087ddc0 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.css @@ -66,13 +66,6 @@ min-width:48px; width:100%; } -.wp-block-post-featured-image>a{ - cursor:default; -} -.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{ - opacity:1; - pointer-events:auto; -} div[data-type="core/post-featured-image"] img{ display:block; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.min.css index 0979445798..f36d0ededa 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor-rtl.min.css @@ -1 +1 @@ -.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{cursor:default}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} \ No newline at end of file +.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.css index 110aaa0c03..0a451d3fc0 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.css @@ -66,13 +66,6 @@ min-width:48px; width:100%; } -.wp-block-post-featured-image>a{ - cursor:default; -} -.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{ - opacity:1; - pointer-events:auto; -} div[data-type="core/post-featured-image"] img{ display:block; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.min.css index 59f9786b79..1da64e1a0b 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-featured-image/editor.min.css @@ -1 +1 @@ -.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{cursor:default}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} \ No newline at end of file +.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-navigation-link/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-navigation-link/block.json index 61d42f0e55..e1b6d4fa90 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-navigation-link/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-navigation-link/block.json @@ -28,16 +28,8 @@ "arrow": { "type": "string", "default": "none" - }, - "inSameTerm": { - "type": "boolean" - }, - "taxonomy": { - "type": "string", - "default": "" } }, - "usesContext": [ "postType" ], "supports": { "reusable": false, "html": false, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/block.json index d2f7c09693..48804de75d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/block.json @@ -10,6 +10,7 @@ "usesContext": [ "queryId", "query", + "queryContext", "displayLayout", "templateSlug", "previewPostType", diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.css index fe211d97a6..2275f6f39c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.css @@ -42,18 +42,24 @@ } } .wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{ + -webkit-margin-start:2em; + -webkit-margin-end:0; float:left; - margin-inline-end:0; - margin-inline-start:2em; + margin-inline-end:0; + margin-inline-start:2em; } .wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{ + -webkit-margin-start:0; + -webkit-margin-end:2em; float:right; - margin-inline-end:2em; - margin-inline-start:0; + margin-inline-end:2em; + margin-inline-start:0; } .wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{ - margin-inline-end:auto; - margin-inline-start:auto; + -webkit-margin-start:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; + margin-inline-start:auto; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.min.css index d4e9d48488..fec44d4af9 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style-rtl.min.css @@ -1 +1 @@ -.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} \ No newline at end of file +.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.css index 49af81d3ea..133d38ddc9 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.css @@ -42,18 +42,24 @@ } } .wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{ + -webkit-margin-start:2em; + -webkit-margin-end:0; float:right; - margin-inline-end:0; - margin-inline-start:2em; + margin-inline-end:0; + margin-inline-start:2em; } .wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{ + -webkit-margin-start:0; + -webkit-margin-end:2em; float:left; - margin-inline-end:2em; - margin-inline-start:0; + margin-inline-end:2em; + margin-inline-start:0; } .wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{ - margin-inline-end:auto; - margin-inline-start:auto; + -webkit-margin-start:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; + margin-inline-start:auto; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.min.css index b6746a1356..d1f6d76fe7 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-template/style.min.css @@ -1 +1 @@ -.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} \ No newline at end of file +.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-title/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-title/block.json index 75a4fa3c3a..eda5332f24 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-title/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/post-title/block.json @@ -55,7 +55,9 @@ "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true, + "textTransform": true } } }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/preformatted/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/preformatted/block.json index def870e7ad..ec6ea83938 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/preformatted/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/preformatted/block.json @@ -8,9 +8,10 @@ "textdomain": "default", "attributes": { "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "pre", + "default": "", "__unstablePreserveWhiteSpace": true, "__experimentalRole": "content" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/block.json index f041d46cda..54c4175d31 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/block.json @@ -8,15 +8,16 @@ "textdomain": "default", "attributes": { "value": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "p", "__experimentalRole": "content" }, "citation": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "cite", + "default": "", "__experimentalRole": "content" }, "textAlign": { @@ -35,10 +36,6 @@ "text": true } }, - "spacing": { - "margin": true, - "padding": true - }, "typography": { "fontSize": true, "lineHeight": true, @@ -49,7 +46,8 @@ "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true } }, "__experimentalBorder": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.css index 7aad4a0676..94d1ff57a4 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.css @@ -1,21 +1,12 @@ .wp-block-pullquote{ box-sizing:border-box; overflow-wrap:break-word; - padding:4em 0; + padding:3em 0; text-align:center; } .wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{ color:inherit; } -.wp-block-pullquote blockquote{ - margin:0; -} -.wp-block-pullquote p{ - margin-top:0; -} -.wp-block-pullquote p:last-child{ - margin-bottom:0; -} .wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{ max-width:420px; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.min.css index e54146c275..6980ae98de 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style-rtl.min.css @@ -1 +1 @@ -.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit} \ No newline at end of file +.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:3em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.css index dfcec33b07..6380ab3094 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.css @@ -1,21 +1,12 @@ .wp-block-pullquote{ box-sizing:border-box; overflow-wrap:break-word; - padding:4em 0; + padding:3em 0; text-align:center; } .wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{ color:inherit; } -.wp-block-pullquote blockquote{ - margin:0; -} -.wp-block-pullquote p{ - margin-top:0; -} -.wp-block-pullquote p:last-child{ - margin-bottom:0; -} .wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{ max-width:420px; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.min.css index 506b1e953c..04ea27f98b 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/pullquote/style.min.css @@ -1 +1 @@ -.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit} \ No newline at end of file +.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:3em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination-numbers/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination-numbers/block.json index f22d88115d..f05e269d2e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination-numbers/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination-numbers/block.json @@ -5,7 +5,7 @@ "title": "Page Numbers", "category": "theme", "parent": [ "core/query-pagination" ], - "description": "Displays a list of page numbers for pagination.", + "description": "Displays a list of page numbers for pagination", "textdomain": "default", "attributes": { "midSize": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.css index 667c2f1730..886dd36920 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.css @@ -6,10 +6,12 @@ margin-right:0; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{ - margin-inline-start:auto; + -webkit-margin-start:auto; + margin-inline-start:auto; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{ - margin-inline-end:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow{ display:inline-block; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.min.css index 4378343031..79c2bf0b92 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style-rtl.min.css @@ -1 +1 @@ -.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center} \ No newline at end of file +.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{-webkit-margin-start:auto;margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{-webkit-margin-end:auto;margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.css index a74962b7a5..79f6c2cf57 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.css @@ -6,10 +6,12 @@ margin-right:0; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{ - margin-inline-start:auto; + -webkit-margin-start:auto; + margin-inline-start:auto; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{ - margin-inline-end:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow{ display:inline-block; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.min.css index ae47eaa853..cd4264856f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-pagination/style.min.css @@ -1 +1 @@ -.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center} \ No newline at end of file +.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{-webkit-margin-start:auto;margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{-webkit-margin-end:auto;margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-title/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-title/block.json index 65eb03d310..2db349e55d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-title/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query-title/block.json @@ -50,7 +50,9 @@ "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true, + "textTransform": true } } }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query/block.json index 6189f6f018..d30eccf376 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/query/block.json @@ -52,5 +52,6 @@ "layout": true }, "editorStyle": "wp-block-query-editor", - "style": "wp-block-query" + "style": "wp-block-query", + "viewScript": "file:./view.min.js" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/block.json index 9deca000ef..eff4649230 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/block.json @@ -17,9 +17,10 @@ "__experimentalRole": "content" }, "citation": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "cite", + "default": "", "__experimentalRole": "content" }, "align": { @@ -41,7 +42,8 @@ "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true } }, "color": { @@ -52,12 +54,6 @@ "background": true, "text": true } - }, - "layout": { - "allowEditing": false - }, - "spacing": { - "blockGap": true } }, "styles": [ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.css index fb6ac7de3b..e99e31e3d0 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.css @@ -14,7 +14,4 @@ .wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{ font-size:1.125em; text-align:left; -} -.wp-block-quote>cite{ - display:block; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.min.css index 7a62927471..84c4c8e84b 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style-rtl.min.css @@ -1 +1 @@ -.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left}.wp-block-quote>cite{display:block} \ No newline at end of file +.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.css index 97cdf4715a..366962d8c1 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.css @@ -14,7 +14,4 @@ .wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{ font-size:1.125em; text-align:right; -} -.wp-block-quote>cite{ - display:block; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.min.css index c3a1e9b65e..81cdcd93cf 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/quote/style.min.css @@ -1 +1 @@ -.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block} \ No newline at end of file +.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.css index 76ab028085..8cfefa83df 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.css @@ -3,9 +3,6 @@ width:-moz-fit-content; width:fit-content; } -.wp-block-read-more:where(:not([style*=text-decoration])){ - text-decoration:none; -} -.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{ +.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{ text-decoration:none; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.min.css index c2c810cef0..4f750e6144 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style-rtl.min.css @@ -1 +1 @@ -.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} \ No newline at end of file +.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{text-decoration:none} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.css index 76ab028085..8cfefa83df 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.css @@ -3,9 +3,6 @@ width:-moz-fit-content; width:fit-content; } -.wp-block-read-more:where(:not([style*=text-decoration])){ - text-decoration:none; -} -.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{ +.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{ text-decoration:none; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.min.css index c2c810cef0..4f750e6144 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/read-more/style.min.css @@ -1 +1 @@ -.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} \ No newline at end of file +.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{text-decoration:none} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/block.json index 8d5e208045..5669a9089d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/block.json @@ -43,6 +43,10 @@ "type": "object", "default": {} }, + "buttonBehavior": { + "type": "string", + "default": "expand-searchfield" + }, "isSearchFieldHidden": { "type": "boolean", "default": false @@ -87,6 +91,7 @@ }, "html": false }, + "viewScript": "file:./view.min.js", "editorStyle": "wp-block-search-editor", "style": "wp-block-search" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.css index 26babe4f87..05eeacfbb1 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.css @@ -8,7 +8,6 @@ display:flex; height:auto; justify-content:center; - text-align:center; } .wp-block-search__components-button-group{ margin-top:10px; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.min.css index f24037ce5e..b9c22f4815 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor-rtl.min.css @@ -1 +1 @@ -.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__components-button-group{margin-top:10px} \ No newline at end of file +.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center}.wp-block-search__components-button-group{margin-top:10px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.css index 26babe4f87..05eeacfbb1 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.css @@ -8,7 +8,6 @@ display:flex; height:auto; justify-content:center; - text-align:center; } .wp-block-search__components-button-group{ margin-top:10px; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.min.css index f24037ce5e..b9c22f4815 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/editor.min.css @@ -1 +1 @@ -.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__components-button-group{margin-top:10px} \ No newline at end of file +.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center}.wp-block-search__components-button-group{margin-top:10px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.css index 53a454db5b..ff600861ba 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.css @@ -43,33 +43,8 @@ .wp-block-search.wp-block-search__button-only .wp-block-search__button{ flex-shrink:0; margin-right:0; - max-width:100%; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{ max-width:calc(100% - 100px); } -.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ - min-width:0 !important; - transition-property:width; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__input{ - flex-basis:100%; - transition-duration:.3s; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ - overflow:hidden; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{ - border-left-width:0 !important; - border-right-width:0 !important; - flex-basis:0; - flex-grow:0; - margin:0; - min-width:0 !important; - padding-left:0 !important; - padding-right:0 !important; - width:0 !important; -} :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){ border:1px solid #949494; @@ -92,6 +67,29 @@ margin:auto; } -.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ +.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ + min-width:0 !important; + transition-property:width; +} +.wp-block-search__button-behavior-expand .wp-block-search__input{ + flex-basis:100%; + transition-duration:.3s; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ + overflow:hidden; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{ + border-left-width:0 !important; + border-right-width:0 !important; + flex-basis:0; + flex-grow:0; + margin:0; + min-width:0 !important; + padding-left:0 !important; + padding-right:0 !important; + width:0 !important; +} + +.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ float:left; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.min.css index 63028d4561..73dea5a6f1 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style-rtl.min.css @@ -1 +1 @@ -.wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-right:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{max-width:calc(100% - 100px)}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:left} \ No newline at end of file +.wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-right:0;max-width:calc(100% - 100px)}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search__button-behavior-expand .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{float:left} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.css index b2ad7a5253..91fe4f72f2 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.css @@ -43,33 +43,8 @@ .wp-block-search.wp-block-search__button-only .wp-block-search__button{ flex-shrink:0; margin-left:0; - max-width:100%; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{ max-width:calc(100% - 100px); } -.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ - min-width:0 !important; - transition-property:width; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__input{ - flex-basis:100%; - transition-duration:.3s; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ - overflow:hidden; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{ - border-left-width:0 !important; - border-right-width:0 !important; - flex-basis:0; - flex-grow:0; - margin:0; - min-width:0 !important; - padding-left:0 !important; - padding-right:0 !important; - width:0 !important; -} :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){ border:1px solid #949494; @@ -92,6 +67,29 @@ margin:auto; } -.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ +.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ + min-width:0 !important; + transition-property:width; +} +.wp-block-search__button-behavior-expand .wp-block-search__input{ + flex-basis:100%; + transition-duration:.3s; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ + overflow:hidden; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{ + border-left-width:0 !important; + border-right-width:0 !important; + flex-basis:0; + flex-grow:0; + margin:0; + min-width:0 !important; + padding-left:0 !important; + padding-right:0 !important; + width:0 !important; +} + +.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ float:right; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.min.css index 3871eabd6c..c744f3770c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/search/style.min.css @@ -1 +1 @@ -.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{max-width:calc(100% - 100px)}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right} \ No newline at end of file +.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-left:0;max-width:calc(100% - 100px)}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search__button-behavior-expand .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{float:right} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/site-title/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/site-title/block.json index 4a2685e694..e936bad0e4 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/site-title/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/site-title/block.json @@ -56,7 +56,11 @@ "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "lineHeight": true, + "fontAppearance": true, + "letterSpacing": true, + "textTransform": true } } }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.css index 4548ed51e3..b8defda33c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.css @@ -65,12 +65,7 @@ transform:scale(1.1); } -.wp-block-social-links .wp-block-social-link.wp-social-link{ - display:inline-block; - margin:0; - padding:0; -} -.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{ +.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{ fill:currentColor; color:currentColor; } @@ -139,10 +134,6 @@ background-color:#ea4434; color:#fff; } -.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{ - background-color:#1d4fc4; - color:#fff; -} .wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{ background-color:#f00075; color:#fff; @@ -304,9 +295,6 @@ .wp-block-social-links.is-style-logos-only .wp-social-link-google{ color:#ea4434; } -.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{ - color:#1d4fc4; -} .wp-block-social-links.is-style-logos-only .wp-social-link-instagram{ color:#f00075; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.min.css index f015292bac..a54b7a1b09 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style-rtl.min.css @@ -1 +1 @@ -.wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{color:#1d4fc4}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} \ No newline at end of file +.wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.css index 24e85831ed..925361500f 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.css @@ -65,12 +65,7 @@ transform:scale(1.1); } -.wp-block-social-links .wp-block-social-link.wp-social-link{ - display:inline-block; - margin:0; - padding:0; -} -.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{ +.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{ fill:currentColor; color:currentColor; } @@ -139,10 +134,6 @@ background-color:#ea4434; color:#fff; } -.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{ - background-color:#1d4fc4; - color:#fff; -} .wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{ background-color:#f00075; color:#fff; @@ -304,9 +295,6 @@ .wp-block-social-links.is-style-logos-only .wp-social-link-google{ color:#ea4434; } -.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{ - color:#1d4fc4; -} .wp-block-social-links.is-style-logos-only .wp-social-link-instagram{ color:#f00075; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.min.css index 578cf262fd..050e5ef96a 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/social-links/style.min.css @@ -1 +1 @@ -.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{color:#1d4fc4}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} \ No newline at end of file +.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/block.json index 470886a124..d1139d6c55 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/block.json @@ -12,9 +12,10 @@ "default": false }, "caption": { - "type": "rich-text", - "source": "rich-text", - "selector": "figcaption" + "type": "string", + "source": "html", + "selector": "figcaption", + "default": "" }, "head": { "type": "array", @@ -29,8 +30,8 @@ "selector": "td,th", "query": { "content": { - "type": "rich-text", - "source": "rich-text" + "type": "string", + "source": "html" }, "tag": { "type": "string", @@ -74,8 +75,8 @@ "selector": "td,th", "query": { "content": { - "type": "rich-text", - "source": "rich-text" + "type": "string", + "source": "html" }, "tag": { "type": "string", @@ -119,8 +120,8 @@ "selector": "td,th", "query": { "content": { - "type": "rich-text", - "source": "rich-text" + "type": "string", + "source": "html" }, "tag": { "type": "string", diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.css index ab8325eac9..6be0c40a3c 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.css @@ -1,3 +1,6 @@ +.wp-block-table{ + margin:0; +} .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{ height:auto; } @@ -30,15 +33,25 @@ align-items:flex-start; display:flex; flex-direction:column; - gap:8px; +} +.blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:8px; } @media (min-width:782px){ .blocks-table__placeholder-form.blocks-table__placeholder-form{ align-items:flex-end; flex-direction:row; } + .blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:0; + } } .blocks-table__placeholder-input{ + margin-bottom:0; + margin-left:8px; width:112px; +} +.blocks-table__placeholder-input input{ + height:36px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.min.css index f048b398c1..09fac9c6d8 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor-rtl.min.css @@ -1 +1 @@ -.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} \ No newline at end of file +.wp-block-table{margin:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:0}}.blocks-table__placeholder-input{margin-bottom:0;margin-left:8px;width:112px}.blocks-table__placeholder-input input{height:36px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.css index ab8325eac9..0cdedbc9c0 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.css @@ -1,3 +1,6 @@ +.wp-block-table{ + margin:0; +} .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{ height:auto; } @@ -30,15 +33,25 @@ align-items:flex-start; display:flex; flex-direction:column; - gap:8px; +} +.blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:8px; } @media (min-width:782px){ .blocks-table__placeholder-form.blocks-table__placeholder-form{ align-items:flex-end; flex-direction:row; } + .blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:0; + } } .blocks-table__placeholder-input{ + margin-bottom:0; + margin-right:8px; width:112px; +} +.blocks-table__placeholder-input input{ + height:36px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.min.css index f048b398c1..25f31c90d9 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/table/editor.min.css @@ -1 +1 @@ -.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} \ No newline at end of file +.wp-block-table{margin:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:0}}.blocks-table__placeholder-input{margin-bottom:0;margin-right:8px;width:112px}.blocks-table__placeholder-input input{height:36px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/template-part/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/template-part/block.json index 3b0946718b..9fe431150a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/template-part/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/template-part/block.json @@ -23,8 +23,7 @@ "supports": { "align": true, "html": false, - "reusable": false, - "renaming": false + "reusable": false }, "editorStyle": "wp-block-template-part-editor" } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/verse/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/verse/block.json index 846a1dc99c..d0fffc8ae5 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/verse/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/verse/block.json @@ -9,9 +9,10 @@ "textdomain": "default", "attributes": { "content": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "pre", + "default": "", "__unstablePreserveWhiteSpace": true, "__experimentalRole": "content" }, @@ -39,7 +40,8 @@ "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { - "fontSize": true + "fontSize": true, + "fontAppearance": true } }, "spacing": { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/video/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/video/block.json index 5d4680f39e..debe6f20fe 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/video/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/video/block.json @@ -15,8 +15,8 @@ "attribute": "autoplay" }, "caption": { - "type": "rich-text", - "source": "rich-text", + "type": "string", + "source": "html", "selector": "figcaption", "__experimentalRole": "content" }, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/widget-group/block.json b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/widget-group/block.json index 0e59e58aca..c29e811554 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/widget-group/block.json +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/blocks/widget-group/block.json @@ -1,5 +1,4 @@ { - "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/widget-group", "category": "widgets", diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.css index d2191835f6..7754e70467 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.css @@ -85,10 +85,10 @@ .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{ box-shadow:none; } -.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{ +.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{ outline:none; } -.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ +.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ border-radius:1px; bottom:1px; box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); @@ -101,7 +101,7 @@ top:1px; z-index:1; } -.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ +.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff; } .block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{ @@ -159,6 +159,10 @@ margin:0 0 12px; width:100%; } +.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice{ + margin-left:0; + margin-right:0; +} .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{ font-size:13px; } @@ -231,23 +235,6 @@ top:1px; } -.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after{ - border-style:dotted; - border:1px dotted var(--wp-admin-theme-color); - border-radius:1px; - bottom:1px; - content:""; - left:1px; - pointer-events:none; - position:absolute; - right:1px; - top:1px; -} -.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after{ - background:rgba(var(--wp-admin-theme-color--rgb), .1); - border:none; -} - .is-focus-mode .block-editor-block-list__block:not(.has-child-selected){ opacity:.2; transition:opacity .1s linear; @@ -530,10 +517,10 @@ color:#000; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child{ pointer-events:none; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after{ border:1px dashed; border-radius:2px; bottom:0; @@ -544,7 +531,7 @@ right:0; top:0; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before{ background:currentColor; bottom:0; content:""; @@ -555,13 +542,13 @@ right:0; top:0; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter{ visibility:hidden; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after{ border:none; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter{ visibility:visible; } .block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{ @@ -591,7 +578,8 @@ opacity:.62; } :where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{ - margin-block-start:0; + -webkit-margin-before:0; + margin-block-start:0; } .block-editor-default-block-appender .components-drop-zone__content-icon{ display:none; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.min.css index ae74ecb314..6cfa6e2327 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-styles .block-editor-block-list__block{margin:0}@keyframes selection-overlay__fade-in-animation{0%{opacity:0}to{opacity:.4}}:root .block-editor-block-list__layout::selection,:root .has-multi-selection .block-editor-block-list__layout::selection,_::-webkit-full-page-media,_:future{background-color:transparent}.block-editor-block-list__layout{position:relative}.block-editor-block-list__layout:where(.block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)){border-radius:2px}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected) ::selection,.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)::selection{background:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation:selection-overlay__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.4;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}@media (prefers-reduced-motion:reduce){.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{box-shadow:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{outline:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;outline:2px solid transparent;pointer-events:none;position:absolute;right:1px;top:1px;z-index:1}.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{border-radius:2px;border-top:4px solid #ccc;bottom:auto;box-shadow:none;content:"";left:0;pointer-events:none;position:absolute;right:0;top:-14px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear;z-index:0}.block-editor-block-list__layout .is-block-moving-mode.can-insert-moving-block.block-editor-block-list__block.is-selected:after{border-color:var(--wp-admin-theme-color)}.has-multi-selection .block-editor-block-list__layout{-webkit-user-select:none;user-select:none}.block-editor-block-list__layout [class^=components-]{-webkit-user-select:text;user-select:text}.is-block-moving-mode.block-editor-block-list__block-selection-button{font-size:1px;height:1px;opacity:0;padding:0}.block-editor-block-list__layout .block-editor-block-list__block{overflow-wrap:break-word;pointer-events:auto;position:relative;-webkit-user-select:text;user-select:text}.block-editor-block-list__layout .block-editor-block-list__block.is-editing-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel *{z-index:1}.block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui{margin:-10px 0 12px}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui{margin:0 0 12px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{font-size:13px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning{min-height:48px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning>*{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning{pointer-events:all}.block-editor-block-list__layout .block-editor-block-list__block.has-warning:after{background-color:hsla(0,0%,100%,.4);border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected:after{background-color:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay:after{display:none}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay:after{display:block}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable.has-child-selected:after{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.block-editor-block-list__layout .block-editor-block-list__block[data-clear=true]{float:none}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 1px var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected.rich-text{cursor:unset}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected:after{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after{border-style:dotted;border:1px dotted var(--wp-admin-theme-color);border-radius:1px;bottom:1px;content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after{background:rgba(var(--wp-admin-theme-color--rgb),.1);border:none}.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){opacity:.2;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){transition-delay:0s;transition-duration:0s}}.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected) .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-multi-selected,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-selected{opacity:1}.wp-block.alignleft,.wp-block.alignright,.wp-block[data-align=left]>*,.wp-block[data-align=right]>*{z-index:21}.wp-site-blocks>[data-align=left]{float:right;margin-left:2em}.wp-site-blocks>[data-align=right]{float:left;margin-right:2em}.wp-site-blocks>[data-align=center]{justify-content:center;margin-left:auto;margin-right:auto}.block-editor-block-list .block-editor-inserter{cursor:move;cursor:grab;margin:8px}@keyframes block-editor-inserter__toggle__fade-in-animation{0%{opacity:0}to{opacity:1}}.wp-block .block-list-appender .block-editor-inserter__toggle{animation:block-editor-inserter__toggle__fade-in-animation .1s ease;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.wp-block .block-list-appender .block-editor-inserter__toggle{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender{display:none}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block .block-editor-block-list__block-html-textarea{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;line-height:1.5;margin:0;outline:none;overflow:hidden;padding:12px;resize:none;transition:padding .2s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-list__block .block-editor-block-list__block-html-textarea{transition-delay:0s;transition-duration:0s}}.block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-block-list__block .block-editor-warning{position:relative;z-index:5}.block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning{margin-bottom:auto}.block-editor-iframe__body{transform-origin:top center;transition:all .3s}.is-vertical .block-list-appender{margin-left:auto;margin-right:12px;margin-top:12px;width:24px}.block-list-appender>.block-editor-inserter{display:block}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block.has-block-overlay{cursor:default}.block-editor-block-list__block.has-block-overlay:before{background:transparent;border:none;border-radius:2px;content:"";height:100%;position:absolute;right:0;top:0;width:100%;z-index:10}.block-editor-block-list__block.has-block-overlay:not(.is-multi-selected):after{content:none!important}.block-editor-block-list__block.has-block-overlay:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-admin-theme-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay.is-reusable:hover:not(.is-dragging-blocks):not(.is-multi-selected):before,.block-editor-block-list__block.has-block-overlay.wp-block-template-part:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-block-synced-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-block-synced-color) inset}.block-editor-block-list__block.has-block-overlay.is-selected:not(.is-dragging-blocks):before{box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay .block-editor-block-list__block{pointer-events:none}.block-editor-iframe__body.is-zoomed-out .block-editor-block-list__block.has-block-overlay:before{right:calc(50% - 50vw);width:100vw}.block-editor-block-list__layout .is-dragging{background-color:currentColor!important;border-radius:2px!important;opacity:.05!important;pointer-events:none!important}.block-editor-block-list__layout .is-dragging::selection{background:transparent!important}.block-editor-block-list__layout .is-dragging:after{content:none!important}.block-editor-block-preview__content-iframe .block-list-appender{display:none}.block-editor-block-preview__live-content *{pointer-events:none}.block-editor-block-preview__live-content .block-list-appender{display:none}.block-editor-block-preview__live-content .components-button:disabled{opacity:1}.block-editor-block-preview__live-content .block-editor-block-list__block[data-empty=true],.block-editor-block-preview__live-content .components-placeholder{display:none}.block-editor-block-variation-picker .components-placeholder__instructions{margin-bottom:0}.block-editor-block-variation-picker .components-placeholder__fieldset{flex-direction:column}.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset{max-width:90%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;list-style:none;margin:16px 0;padding:0;width:100%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li{flex-shrink:1;list-style:none;margin:8px 0 0 20px;text-align:center;width:75px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li button{display:inline-flex;margin-left:0}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation{padding:8px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;line-height:1.4}.block-editor-block-variation-picker__variation{width:100%}.block-editor-block-variation-picker__variation.components-button.has-icon{justify-content:center;width:auto}.block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary{background-color:#fff}.block-editor-block-variation-picker__variation.components-button{height:auto;padding:0}.block-editor-block-variation-picker__variation:before{content:"";padding-bottom:100%}.block-editor-block-variation-picker__variation:first-child{margin-right:0}.block-editor-block-variation-picker__variation:last-child{margin-left:0}.block-editor-button-block-appender{align-items:center;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:flex;flex-direction:column;height:auto;justify-content:center;width:100%}.block-editor-button-block-appender.components-button.components-button{padding:12px}.is-dark-theme .block-editor-button-block-appender{box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65)}.block-editor-button-block-appender:hover{box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color);color:var(--wp-admin-theme-color)}.block-editor-button-block-appender:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.block-editor-button-block-appender:active{color:#000}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child{pointer-events:none}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter{visibility:hidden}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after{border:none}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter{visibility:visible}.block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{border:none}.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{background-color:var(--wp-admin-theme-color);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65);transition:background-color .2s ease-in-out}@media (prefers-reduced-motion:reduce){.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{transition:none}}.block-editor-default-block-appender{clear:both;margin-left:auto;margin-right:auto;position:relative}.block-editor-default-block-appender[data-root-client-id=""] .block-editor-default-block-appender__content:hover{outline:1px solid transparent}.block-editor-default-block-appender .block-editor-default-block-appender__content{opacity:.62}:where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{margin-block-start:0}.block-editor-default-block-appender .components-drop-zone__content-icon{display:none}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,.block-editor-default-block-appender .block-editor-inserter{left:0;line-height:0;position:absolute;top:0}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter:disabled,.block-editor-default-block-appender .block-editor-inserter:disabled{display:none}.block-editor-block-list__block .block-list-appender{bottom:0;left:0;list-style:none;padding:0;position:absolute;z-index:2}.block-editor-block-list__block .block-list-appender.block-list-appender{line-height:0;margin:0}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender{height:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle{background:#1e1e1e;box-shadow:none;color:#fff;display:none;flex-direction:row;height:24px;min-width:24px;padding:0!important;width:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender__content{display:none}.block-editor-block-list__block .block-list-appender:only-child{align-self:center;left:auto;line-height:inherit;list-style:none;position:relative}.block-editor-block-list__block .block-list-appender:only-child .block-editor-default-block-appender__content{display:block}.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle,.block-editor-block-list__block.is-selected>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected>.block-list-appender .block-list-appender__toggle{display:flex}.block-editor-default-block-appender__content{cursor:text}.block-editor-block-list__layout.has-overlay:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:60}.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button{margin-bottom:0}.block-editor-media-placeholder__url-input-form{display:flex}.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{border:none;border-radius:0;flex-grow:1;margin:2px;min-width:200px;width:100%}@media (min-width:600px){.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{width:300px}}.block-editor-media-placeholder__url-input-submit-button{flex-shrink:1}.block-editor-media-placeholder__button{margin-bottom:.5rem}.block-editor-media-placeholder__cancel-button.is-link{display:block;margin:1em}.block-editor-media-placeholder.is-appender{min-height:0}.block-editor-media-placeholder.is-appender:hover{box-shadow:0 0 0 1px var(--wp-admin-theme-color);cursor:pointer}.block-editor-plain-text{border:none;box-shadow:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;width:100%}.rich-text [data-rich-text-placeholder]{pointer-events:none}.rich-text [data-rich-text-placeholder]:after{content:attr(data-rich-text-placeholder);opacity:.62}.rich-text:focus{outline:none}.rich-text:focus [data-rich-text-format-boundary]{border-radius:2px}.block-editor-rich-text__editable>p:first-child{margin-top:0}figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]:before{opacity:.8}[data-rich-text-script]{display:inline}[data-rich-text-script]:before{background:#ff0;content:""}.block-editor-warning{align-items:center;background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:flex;flex-wrap:wrap;padding:1em}.block-editor-warning,.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.block-editor-warning .block-editor-warning__message{color:#1e1e1e;font-size:13px;line-height:1.4;margin:0}.block-editor-warning p.block-editor-warning__message.block-editor-warning__message{min-height:auto}.block-editor-warning .block-editor-warning__contents{align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%}.block-editor-warning .block-editor-warning__actions{align-items:center;display:flex;margin-top:1em}.block-editor-warning .block-editor-warning__action{margin:0 0 0 8px}.block-editor-warning__secondary{margin:auto 8px auto 0}.components-popover.block-editor-warning__dropdown{z-index:99998}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-styles .block-editor-block-list__block{margin:0}@keyframes selection-overlay__fade-in-animation{0%{opacity:0}to{opacity:.4}}:root .block-editor-block-list__layout::selection,:root .has-multi-selection .block-editor-block-list__layout::selection,_::-webkit-full-page-media,_:future{background-color:transparent}.block-editor-block-list__layout{position:relative}.block-editor-block-list__layout:where(.block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)){border-radius:2px}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected) ::selection,.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)::selection{background:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation:selection-overlay__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.4;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}@media (prefers-reduced-motion:reduce){.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{box-shadow:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{outline:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;outline:2px solid transparent;pointer-events:none;position:absolute;right:1px;top:1px;z-index:1}.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{border-radius:2px;border-top:4px solid #ccc;bottom:auto;box-shadow:none;content:"";left:0;pointer-events:none;position:absolute;right:0;top:-14px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear;z-index:0}.block-editor-block-list__layout .is-block-moving-mode.can-insert-moving-block.block-editor-block-list__block.is-selected:after{border-color:var(--wp-admin-theme-color)}.has-multi-selection .block-editor-block-list__layout{-webkit-user-select:none;user-select:none}.block-editor-block-list__layout [class^=components-]{-webkit-user-select:text;user-select:text}.is-block-moving-mode.block-editor-block-list__block-selection-button{font-size:1px;height:1px;opacity:0;padding:0}.block-editor-block-list__layout .block-editor-block-list__block{overflow-wrap:break-word;pointer-events:auto;position:relative;-webkit-user-select:text;user-select:text}.block-editor-block-list__layout .block-editor-block-list__block.is-editing-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel *{z-index:1}.block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui{margin:-10px 0 12px}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui{margin:0 0 12px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice{margin-left:0;margin-right:0}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{font-size:13px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning{min-height:48px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning>*{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning{pointer-events:all}.block-editor-block-list__layout .block-editor-block-list__block.has-warning:after{background-color:hsla(0,0%,100%,.4);border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected:after{background-color:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay:after{display:none}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay:after{display:block}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable.has-child-selected:after{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.block-editor-block-list__layout .block-editor-block-list__block[data-clear=true]{float:none}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 1px var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected.rich-text{cursor:unset}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected:after{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){opacity:.2;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){transition-delay:0s;transition-duration:0s}}.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected) .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-multi-selected,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-selected{opacity:1}.wp-block.alignleft,.wp-block.alignright,.wp-block[data-align=left]>*,.wp-block[data-align=right]>*{z-index:21}.wp-site-blocks>[data-align=left]{float:right;margin-left:2em}.wp-site-blocks>[data-align=right]{float:left;margin-right:2em}.wp-site-blocks>[data-align=center]{justify-content:center;margin-left:auto;margin-right:auto}.block-editor-block-list .block-editor-inserter{cursor:move;cursor:grab;margin:8px}@keyframes block-editor-inserter__toggle__fade-in-animation{0%{opacity:0}to{opacity:1}}.wp-block .block-list-appender .block-editor-inserter__toggle{animation:block-editor-inserter__toggle__fade-in-animation .1s ease;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.wp-block .block-list-appender .block-editor-inserter__toggle{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender{display:none}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block .block-editor-block-list__block-html-textarea{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;line-height:1.5;margin:0;outline:none;overflow:hidden;padding:12px;resize:none;transition:padding .2s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-list__block .block-editor-block-list__block-html-textarea{transition-delay:0s;transition-duration:0s}}.block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-block-list__block .block-editor-warning{position:relative;z-index:5}.block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning{margin-bottom:auto}.block-editor-iframe__body{transform-origin:top center;transition:all .3s}.is-vertical .block-list-appender{margin-left:auto;margin-right:12px;margin-top:12px;width:24px}.block-list-appender>.block-editor-inserter{display:block}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block.has-block-overlay{cursor:default}.block-editor-block-list__block.has-block-overlay:before{background:transparent;border:none;border-radius:2px;content:"";height:100%;position:absolute;right:0;top:0;width:100%;z-index:10}.block-editor-block-list__block.has-block-overlay:not(.is-multi-selected):after{content:none!important}.block-editor-block-list__block.has-block-overlay:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-admin-theme-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay.is-reusable:hover:not(.is-dragging-blocks):not(.is-multi-selected):before,.block-editor-block-list__block.has-block-overlay.wp-block-template-part:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-block-synced-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-block-synced-color) inset}.block-editor-block-list__block.has-block-overlay.is-selected:not(.is-dragging-blocks):before{box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay .block-editor-block-list__block{pointer-events:none}.block-editor-iframe__body.is-zoomed-out .block-editor-block-list__block.has-block-overlay:before{right:calc(50% - 50vw);width:100vw}.block-editor-block-list__layout .is-dragging{background-color:currentColor!important;border-radius:2px!important;opacity:.05!important;pointer-events:none!important}.block-editor-block-list__layout .is-dragging::selection{background:transparent!important}.block-editor-block-list__layout .is-dragging:after{content:none!important}.block-editor-block-preview__content-iframe .block-list-appender{display:none}.block-editor-block-preview__live-content *{pointer-events:none}.block-editor-block-preview__live-content .block-list-appender{display:none}.block-editor-block-preview__live-content .components-button:disabled{opacity:1}.block-editor-block-preview__live-content .block-editor-block-list__block[data-empty=true],.block-editor-block-preview__live-content .components-placeholder{display:none}.block-editor-block-variation-picker .components-placeholder__instructions{margin-bottom:0}.block-editor-block-variation-picker .components-placeholder__fieldset{flex-direction:column}.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset{max-width:90%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;list-style:none;margin:16px 0;padding:0;width:100%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li{flex-shrink:1;list-style:none;margin:8px 0 0 20px;text-align:center;width:75px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li button{display:inline-flex;margin-left:0}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation{padding:8px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;line-height:1.4}.block-editor-block-variation-picker__variation{width:100%}.block-editor-block-variation-picker__variation.components-button.has-icon{justify-content:center;width:auto}.block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary{background-color:#fff}.block-editor-block-variation-picker__variation.components-button{height:auto;padding:0}.block-editor-block-variation-picker__variation:before{content:"";padding-bottom:100%}.block-editor-block-variation-picker__variation:first-child{margin-right:0}.block-editor-block-variation-picker__variation:last-child{margin-left:0}.block-editor-button-block-appender{align-items:center;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:flex;flex-direction:column;height:auto;justify-content:center;width:100%}.block-editor-button-block-appender.components-button.components-button{padding:12px}.is-dark-theme .block-editor-button-block-appender{box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65)}.block-editor-button-block-appender:hover{box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color);color:var(--wp-admin-theme-color)}.block-editor-button-block-appender:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.block-editor-button-block-appender:active{color:#000}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child{pointer-events:none}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter{visibility:hidden}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after{border:none}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter{visibility:visible}.block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{border:none}.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{background-color:var(--wp-admin-theme-color);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65);transition:background-color .2s ease-in-out}@media (prefers-reduced-motion:reduce){.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{transition:none}}.block-editor-default-block-appender{clear:both;margin-left:auto;margin-right:auto;position:relative}.block-editor-default-block-appender[data-root-client-id=""] .block-editor-default-block-appender__content:hover{outline:1px solid transparent}.block-editor-default-block-appender .block-editor-default-block-appender__content{opacity:.62}:where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{-webkit-margin-before:0;margin-block-start:0}.block-editor-default-block-appender .components-drop-zone__content-icon{display:none}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,.block-editor-default-block-appender .block-editor-inserter{left:0;line-height:0;position:absolute;top:0}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter:disabled,.block-editor-default-block-appender .block-editor-inserter:disabled{display:none}.block-editor-block-list__block .block-list-appender{bottom:0;left:0;list-style:none;padding:0;position:absolute;z-index:2}.block-editor-block-list__block .block-list-appender.block-list-appender{line-height:0;margin:0}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender{height:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle{background:#1e1e1e;box-shadow:none;color:#fff;display:none;flex-direction:row;height:24px;min-width:24px;padding:0!important;width:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender__content{display:none}.block-editor-block-list__block .block-list-appender:only-child{align-self:center;left:auto;line-height:inherit;list-style:none;position:relative}.block-editor-block-list__block .block-list-appender:only-child .block-editor-default-block-appender__content{display:block}.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle,.block-editor-block-list__block.is-selected>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected>.block-list-appender .block-list-appender__toggle{display:flex}.block-editor-default-block-appender__content{cursor:text}.block-editor-block-list__layout.has-overlay:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:60}.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button{margin-bottom:0}.block-editor-media-placeholder__url-input-form{display:flex}.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{border:none;border-radius:0;flex-grow:1;margin:2px;min-width:200px;width:100%}@media (min-width:600px){.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{width:300px}}.block-editor-media-placeholder__url-input-submit-button{flex-shrink:1}.block-editor-media-placeholder__button{margin-bottom:.5rem}.block-editor-media-placeholder__cancel-button.is-link{display:block;margin:1em}.block-editor-media-placeholder.is-appender{min-height:0}.block-editor-media-placeholder.is-appender:hover{box-shadow:0 0 0 1px var(--wp-admin-theme-color);cursor:pointer}.block-editor-plain-text{border:none;box-shadow:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;width:100%}.rich-text [data-rich-text-placeholder]{pointer-events:none}.rich-text [data-rich-text-placeholder]:after{content:attr(data-rich-text-placeholder);opacity:.62}.rich-text:focus{outline:none}.rich-text:focus [data-rich-text-format-boundary]{border-radius:2px}.block-editor-rich-text__editable>p:first-child{margin-top:0}figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]:before{opacity:.8}[data-rich-text-script]{display:inline}[data-rich-text-script]:before{background:#ff0;content:""}.block-editor-warning{align-items:center;background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:flex;flex-wrap:wrap;padding:1em}.block-editor-warning,.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.block-editor-warning .block-editor-warning__message{color:#1e1e1e;font-size:13px;line-height:1.4;margin:0}.block-editor-warning p.block-editor-warning__message.block-editor-warning__message{min-height:auto}.block-editor-warning .block-editor-warning__contents{align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%}.block-editor-warning .block-editor-warning__actions{align-items:center;display:flex;margin-top:1em}.block-editor-warning .block-editor-warning__action{margin:0 0 0 8px}.block-editor-warning__secondary{margin:auto 8px auto 0}.components-popover.block-editor-warning__dropdown{z-index:99998}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.css index 355ac00c52..702cae4df1 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.css @@ -85,10 +85,10 @@ .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{ box-shadow:none; } -.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{ +.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{ outline:none; } -.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ +.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ border-radius:1px; bottom:1px; box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); @@ -101,7 +101,7 @@ top:1px; z-index:1; } -.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ +.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{ box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff; } .block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{ @@ -159,6 +159,10 @@ margin:0 0 12px; width:100%; } +.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice{ + margin-left:0; + margin-right:0; +} .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{ font-size:13px; } @@ -231,23 +235,6 @@ top:1px; } -.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after{ - border-style:dotted; - border:1px dotted var(--wp-admin-theme-color); - border-radius:1px; - bottom:1px; - content:""; - left:1px; - pointer-events:none; - position:absolute; - right:1px; - top:1px; -} -.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after{ - background:rgba(var(--wp-admin-theme-color--rgb), .1); - border:none; -} - .is-focus-mode .block-editor-block-list__block:not(.has-child-selected){ opacity:.2; transition:opacity .1s linear; @@ -530,10 +517,10 @@ color:#000; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child{ pointer-events:none; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after{ border:1px dashed; border-radius:2px; bottom:0; @@ -544,7 +531,7 @@ right:0; top:0; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before{ background:currentColor; bottom:0; content:""; @@ -555,13 +542,13 @@ right:0; top:0; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter{ visibility:hidden; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after{ border:none; } -.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter{ +.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter{ visibility:visible; } .block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{ @@ -591,7 +578,8 @@ opacity:.62; } :where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{ - margin-block-start:0; + -webkit-margin-before:0; + margin-block-start:0; } .block-editor-default-block-appender .components-drop-zone__content-icon{ display:none; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.min.css index a4db1a66ba..9e60e7f0fe 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/content.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-styles .block-editor-block-list__block{margin:0}@keyframes selection-overlay__fade-in-animation{0%{opacity:0}to{opacity:.4}}:root .block-editor-block-list__layout::selection,:root .has-multi-selection .block-editor-block-list__layout::selection,_::-webkit-full-page-media,_:future{background-color:transparent}.block-editor-block-list__layout{position:relative}.block-editor-block-list__layout:where(.block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)){border-radius:2px}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected) ::selection,.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)::selection{background:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation:selection-overlay__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.4;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}@media (prefers-reduced-motion:reduce){.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{box-shadow:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{outline:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;outline:2px solid transparent;pointer-events:none;position:absolute;right:1px;top:1px;z-index:1}.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{border-radius:2px;border-top:4px solid #ccc;bottom:auto;box-shadow:none;content:"";left:0;pointer-events:none;position:absolute;right:0;top:-14px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear;z-index:0}.block-editor-block-list__layout .is-block-moving-mode.can-insert-moving-block.block-editor-block-list__block.is-selected:after{border-color:var(--wp-admin-theme-color)}.has-multi-selection .block-editor-block-list__layout{-webkit-user-select:none;user-select:none}.block-editor-block-list__layout [class^=components-]{-webkit-user-select:text;user-select:text}.is-block-moving-mode.block-editor-block-list__block-selection-button{font-size:1px;height:1px;opacity:0;padding:0}.block-editor-block-list__layout .block-editor-block-list__block{overflow-wrap:break-word;pointer-events:auto;position:relative;-webkit-user-select:text;user-select:text}.block-editor-block-list__layout .block-editor-block-list__block.is-editing-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel *{z-index:1}.block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui{margin:-10px 0 12px}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui{margin:0 0 12px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{font-size:13px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning{min-height:48px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning>*{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning{pointer-events:all}.block-editor-block-list__layout .block-editor-block-list__block.has-warning:after{background-color:hsla(0,0%,100%,.4);border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected:after{background-color:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay:after{display:none}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay:after{display:block}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable.has-child-selected:after{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.block-editor-block-list__layout .block-editor-block-list__block[data-clear=true]{float:none}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 1px var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected.rich-text{cursor:unset}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected:after{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected):after{border-style:dotted;border:1px dotted var(--wp-admin-theme-color);border-radius:1px;bottom:1px;content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.block-editor-block-list__block:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.block-editor-block-list__block:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover .block-editor-block-list__block.is-editing-disabled>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after,.is-template-locked:hover:has(>.block-editor-block-list__block.is-editing-disabled)>.block-editor-block-list__block:not(.is-editing-disabled):not(.is-selected):not(.has-child-selected).is-hovered:after{background:rgba(var(--wp-admin-theme-color--rgb),.1);border:none}.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){opacity:.2;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){transition-delay:0s;transition-duration:0s}}.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected) .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-multi-selected,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-selected{opacity:1}.wp-block.alignleft,.wp-block.alignright,.wp-block[data-align=left]>*,.wp-block[data-align=right]>*{z-index:21}.wp-site-blocks>[data-align=left]{float:left;margin-right:2em}.wp-site-blocks>[data-align=right]{float:right;margin-left:2em}.wp-site-blocks>[data-align=center]{justify-content:center;margin-left:auto;margin-right:auto}.block-editor-block-list .block-editor-inserter{cursor:move;cursor:grab;margin:8px}@keyframes block-editor-inserter__toggle__fade-in-animation{0%{opacity:0}to{opacity:1}}.wp-block .block-list-appender .block-editor-inserter__toggle{animation:block-editor-inserter__toggle__fade-in-animation .1s ease;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.wp-block .block-list-appender .block-editor-inserter__toggle{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender{display:none}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block .block-editor-block-list__block-html-textarea{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;line-height:1.5;margin:0;outline:none;overflow:hidden;padding:12px;resize:none;transition:padding .2s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-list__block .block-editor-block-list__block-html-textarea{transition-delay:0s;transition-duration:0s}}.block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-block-list__block .block-editor-warning{position:relative;z-index:5}.block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning{margin-bottom:auto}.block-editor-iframe__body{transform-origin:top center;transition:all .3s}.is-vertical .block-list-appender{margin-left:12px;margin-right:auto;margin-top:12px;width:24px}.block-list-appender>.block-editor-inserter{display:block}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block.has-block-overlay{cursor:default}.block-editor-block-list__block.has-block-overlay:before{background:transparent;border:none;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.block-editor-block-list__block.has-block-overlay:not(.is-multi-selected):after{content:none!important}.block-editor-block-list__block.has-block-overlay:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-admin-theme-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay.is-reusable:hover:not(.is-dragging-blocks):not(.is-multi-selected):before,.block-editor-block-list__block.has-block-overlay.wp-block-template-part:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-block-synced-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-block-synced-color) inset}.block-editor-block-list__block.has-block-overlay.is-selected:not(.is-dragging-blocks):before{box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay .block-editor-block-list__block{pointer-events:none}.block-editor-iframe__body.is-zoomed-out .block-editor-block-list__block.has-block-overlay:before{left:calc(50% - 50vw);width:100vw}.block-editor-block-list__layout .is-dragging{background-color:currentColor!important;border-radius:2px!important;opacity:.05!important;pointer-events:none!important}.block-editor-block-list__layout .is-dragging::selection{background:transparent!important}.block-editor-block-list__layout .is-dragging:after{content:none!important}.block-editor-block-preview__content-iframe .block-list-appender{display:none}.block-editor-block-preview__live-content *{pointer-events:none}.block-editor-block-preview__live-content .block-list-appender{display:none}.block-editor-block-preview__live-content .components-button:disabled{opacity:1}.block-editor-block-preview__live-content .block-editor-block-list__block[data-empty=true],.block-editor-block-preview__live-content .components-placeholder{display:none}.block-editor-block-variation-picker .components-placeholder__instructions{margin-bottom:0}.block-editor-block-variation-picker .components-placeholder__fieldset{flex-direction:column}.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset{max-width:90%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;list-style:none;margin:16px 0;padding:0;width:100%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li{flex-shrink:1;list-style:none;margin:8px 20px 0 0;text-align:center;width:75px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li button{display:inline-flex;margin-right:0}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation{padding:8px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;line-height:1.4}.block-editor-block-variation-picker__variation{width:100%}.block-editor-block-variation-picker__variation.components-button.has-icon{justify-content:center;width:auto}.block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary{background-color:#fff}.block-editor-block-variation-picker__variation.components-button{height:auto;padding:0}.block-editor-block-variation-picker__variation:before{content:"";padding-bottom:100%}.block-editor-block-variation-picker__variation:first-child{margin-left:0}.block-editor-block-variation-picker__variation:last-child{margin-right:0}.block-editor-button-block-appender{align-items:center;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:flex;flex-direction:column;height:auto;justify-content:center;width:100%}.block-editor-button-block-appender.components-button.components-button{padding:12px}.is-dark-theme .block-editor-button-block-appender{box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65)}.block-editor-button-block-appender:hover{box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color);color:var(--wp-admin-theme-color)}.block-editor-button-block-appender:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.block-editor-button-block-appender:active{color:#000}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child{pointer-events:none}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter{visibility:hidden}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after{border:none}.block-editor-block-list__block:not(.is-selected)>.is-layout-constrained.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.block-editor-block-list__block:not(.is-selected)>.is-layout-flow.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter{visibility:visible}.block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{border:none}.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{background-color:var(--wp-admin-theme-color);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65);transition:background-color .2s ease-in-out}@media (prefers-reduced-motion:reduce){.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{transition:none}}.block-editor-default-block-appender{clear:both;margin-left:auto;margin-right:auto;position:relative}.block-editor-default-block-appender[data-root-client-id=""] .block-editor-default-block-appender__content:hover{outline:1px solid transparent}.block-editor-default-block-appender .block-editor-default-block-appender__content{opacity:.62}:where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{margin-block-start:0}.block-editor-default-block-appender .components-drop-zone__content-icon{display:none}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,.block-editor-default-block-appender .block-editor-inserter{line-height:0;position:absolute;right:0;top:0}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter:disabled,.block-editor-default-block-appender .block-editor-inserter:disabled{display:none}.block-editor-block-list__block .block-list-appender{bottom:0;list-style:none;padding:0;position:absolute;right:0;z-index:2}.block-editor-block-list__block .block-list-appender.block-list-appender{line-height:0;margin:0}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender{height:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle{background:#1e1e1e;box-shadow:none;color:#fff;display:none;flex-direction:row;height:24px;min-width:24px;padding:0!important;width:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender__content{display:none}.block-editor-block-list__block .block-list-appender:only-child{align-self:center;line-height:inherit;list-style:none;position:relative;right:auto}.block-editor-block-list__block .block-list-appender:only-child .block-editor-default-block-appender__content{display:block}.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle,.block-editor-block-list__block.is-selected>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected>.block-list-appender .block-list-appender__toggle{display:flex}.block-editor-default-block-appender__content{cursor:text}.block-editor-block-list__layout.has-overlay:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:60}.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button{margin-bottom:0}.block-editor-media-placeholder__url-input-form{display:flex}.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{border:none;border-radius:0;flex-grow:1;margin:2px;min-width:200px;width:100%}@media (min-width:600px){.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{width:300px}}.block-editor-media-placeholder__url-input-submit-button{flex-shrink:1}.block-editor-media-placeholder__button{margin-bottom:.5rem}.block-editor-media-placeholder__cancel-button.is-link{display:block;margin:1em}.block-editor-media-placeholder.is-appender{min-height:0}.block-editor-media-placeholder.is-appender:hover{box-shadow:0 0 0 1px var(--wp-admin-theme-color);cursor:pointer}.block-editor-plain-text{border:none;box-shadow:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;width:100%}.rich-text [data-rich-text-placeholder]{pointer-events:none}.rich-text [data-rich-text-placeholder]:after{content:attr(data-rich-text-placeholder);opacity:.62}.rich-text:focus{outline:none}.rich-text:focus [data-rich-text-format-boundary]{border-radius:2px}.block-editor-rich-text__editable>p:first-child{margin-top:0}figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]:before{opacity:.8}[data-rich-text-script]{display:inline}[data-rich-text-script]:before{background:#ff0;content:""}.block-editor-warning{align-items:center;background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:flex;flex-wrap:wrap;padding:1em}.block-editor-warning,.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.block-editor-warning .block-editor-warning__message{color:#1e1e1e;font-size:13px;line-height:1.4;margin:0}.block-editor-warning p.block-editor-warning__message.block-editor-warning__message{min-height:auto}.block-editor-warning .block-editor-warning__contents{align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%}.block-editor-warning .block-editor-warning__actions{align-items:center;display:flex;margin-top:1em}.block-editor-warning .block-editor-warning__action{margin:0 8px 0 0}.block-editor-warning__secondary{margin:auto 0 auto 8px}.components-popover.block-editor-warning__dropdown{z-index:99998}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-styles .block-editor-block-list__block{margin:0}@keyframes selection-overlay__fade-in-animation{0%{opacity:0}to{opacity:.4}}:root .block-editor-block-list__layout::selection,:root .has-multi-selection .block-editor-block-list__layout::selection,_::-webkit-full-page-media,_:future{background-color:transparent}.block-editor-block-list__layout{position:relative}.block-editor-block-list__layout:where(.block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)){border-radius:2px}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected) ::selection,.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected)::selection{background:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation:selection-overlay__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.4;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}@media (prefers-reduced-motion:reduce){.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected):after{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected:not(.is-partially-selected).is-highlighted:after{box-shadow:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected{outline:none}.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;outline:2px solid transparent;pointer-events:none;position:absolute;right:1px;top:1px;z-index:1}.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted~.is-multi-selected:after,.is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .block-editor-block-list__layout.is-navigate-mode .block-editor-block-list__block.is-selected:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-block-list__layout .is-block-moving-mode.block-editor-block-list__block.is-selected:after{border-radius:2px;border-top:4px solid #ccc;bottom:auto;box-shadow:none;content:"";left:0;pointer-events:none;position:absolute;right:0;top:-14px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear;z-index:0}.block-editor-block-list__layout .is-block-moving-mode.can-insert-moving-block.block-editor-block-list__block.is-selected:after{border-color:var(--wp-admin-theme-color)}.has-multi-selection .block-editor-block-list__layout{-webkit-user-select:none;user-select:none}.block-editor-block-list__layout [class^=components-]{-webkit-user-select:text;user-select:text}.is-block-moving-mode.block-editor-block-list__block-selection-button{font-size:1px;height:1px;opacity:0;padding:0}.block-editor-block-list__layout .block-editor-block-list__block{overflow-wrap:break-word;pointer-events:auto;position:relative;-webkit-user-select:text;user-select:text}.block-editor-block-list__layout .block-editor-block-list__block.is-editing-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel *{z-index:1}.block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui{margin:-10px 0 12px}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui{margin:0 0 12px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice{margin-left:0;margin-right:0}.block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content{font-size:13px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning{min-height:48px}.block-editor-block-list__layout .block-editor-block-list__block.has-warning>*{pointer-events:none;-webkit-user-select:none;user-select:none}.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning{pointer-events:all}.block-editor-block-list__layout .block-editor-block-list__block.has-warning:after{background-color:hsla(0,0%,100%,.4);border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected:after{background-color:transparent}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay:after{display:none}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable>.block-editor-inner-blocks>.block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay:after{display:block}.block-editor-block-list__layout .block-editor-block-list__block.is-reusable.has-child-selected:after{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.block-editor-block-list__layout .block-editor-block-list__block[data-clear=true]{float:none}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-hovered:after{border-radius:1px;bottom:1px;box-shadow:0 0 0 1px var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected{cursor:default}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected.rich-text{cursor:unset}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-selected:after{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:1px;pointer-events:none;position:absolute;right:1px;top:1px}.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){opacity:.2;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.is-focus-mode .block-editor-block-list__block:not(.has-child-selected){transition-delay:0s;transition-duration:0s}}.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked-temporarily-editing-as-blocks.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected,.is-focus-mode .block-editor-block-list__block.is-content-locked.has-child-selected .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected) .block-editor-block-list__block,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-multi-selected,.is-focus-mode .block-editor-block-list__block:not(.has-child-selected).is-selected{opacity:1}.wp-block.alignleft,.wp-block.alignright,.wp-block[data-align=left]>*,.wp-block[data-align=right]>*{z-index:21}.wp-site-blocks>[data-align=left]{float:left;margin-right:2em}.wp-site-blocks>[data-align=right]{float:right;margin-left:2em}.wp-site-blocks>[data-align=center]{justify-content:center;margin-left:auto;margin-right:auto}.block-editor-block-list .block-editor-inserter{cursor:move;cursor:grab;margin:8px}@keyframes block-editor-inserter__toggle__fade-in-animation{0%{opacity:0}to{opacity:1}}.wp-block .block-list-appender .block-editor-inserter__toggle{animation:block-editor-inserter__toggle__fade-in-animation .1s ease;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.wp-block .block-list-appender .block-editor-inserter__toggle{animation-delay:0s;animation-duration:1ms}}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender{display:none}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block .block-editor-block-list__block-html-textarea{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;line-height:1.5;margin:0;outline:none;overflow:hidden;padding:12px;resize:none;transition:padding .2s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-list__block .block-editor-block-list__block-html-textarea{transition-delay:0s;transition-duration:0s}}.block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-block-list__block .block-editor-warning{position:relative;z-index:5}.block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning{margin-bottom:auto}.block-editor-iframe__body{transform-origin:top center;transition:all .3s}.is-vertical .block-list-appender{margin-left:12px;margin-right:auto;margin-top:12px;width:24px}.block-list-appender>.block-editor-inserter{display:block}.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle{opacity:0;transform:scale(0)}.block-editor-block-list__block.has-block-overlay{cursor:default}.block-editor-block-list__block.has-block-overlay:before{background:transparent;border:none;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.block-editor-block-list__block.has-block-overlay:not(.is-multi-selected):after{content:none!important}.block-editor-block-list__block.has-block-overlay:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-admin-theme-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay.is-reusable:hover:not(.is-dragging-blocks):not(.is-multi-selected):before,.block-editor-block-list__block.has-block-overlay.wp-block-template-part:hover:not(.is-dragging-blocks):not(.is-multi-selected):before{background:rgba(var(--wp-block-synced-color--rgb),.04);box-shadow:0 0 0 1px var(--wp-block-synced-color) inset}.block-editor-block-list__block.has-block-overlay.is-selected:not(.is-dragging-blocks):before{box-shadow:0 0 0 1px var(--wp-admin-theme-color) inset}.block-editor-block-list__block.has-block-overlay .block-editor-block-list__block{pointer-events:none}.block-editor-iframe__body.is-zoomed-out .block-editor-block-list__block.has-block-overlay:before{left:calc(50% - 50vw);width:100vw}.block-editor-block-list__layout .is-dragging{background-color:currentColor!important;border-radius:2px!important;opacity:.05!important;pointer-events:none!important}.block-editor-block-list__layout .is-dragging::selection{background:transparent!important}.block-editor-block-list__layout .is-dragging:after{content:none!important}.block-editor-block-preview__content-iframe .block-list-appender{display:none}.block-editor-block-preview__live-content *{pointer-events:none}.block-editor-block-preview__live-content .block-list-appender{display:none}.block-editor-block-preview__live-content .components-button:disabled{opacity:1}.block-editor-block-preview__live-content .block-editor-block-list__block[data-empty=true],.block-editor-block-preview__live-content .components-placeholder{display:none}.block-editor-block-variation-picker .components-placeholder__instructions{margin-bottom:0}.block-editor-block-variation-picker .components-placeholder__fieldset{flex-direction:column}.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset{max-width:90%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;list-style:none;margin:16px 0;padding:0;width:100%}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li{flex-shrink:1;list-style:none;margin:8px 20px 0 0;text-align:center;width:75px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations>li button{display:inline-flex;margin-right:0}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation{padding:8px}.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;line-height:1.4}.block-editor-block-variation-picker__variation{width:100%}.block-editor-block-variation-picker__variation.components-button.has-icon{justify-content:center;width:auto}.block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary{background-color:#fff}.block-editor-block-variation-picker__variation.components-button{height:auto;padding:0}.block-editor-block-variation-picker__variation:before{content:"";padding-bottom:100%}.block-editor-block-variation-picker__variation:first-child{margin-left:0}.block-editor-block-variation-picker__variation:last-child{margin-right:0}.block-editor-button-block-appender{align-items:center;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:flex;flex-direction:column;height:auto;justify-content:center;width:100%}.block-editor-button-block-appender.components-button.components-button{padding:12px}.is-dark-theme .block-editor-button-block-appender{box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65)}.block-editor-button-block-appender:hover{box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color);color:var(--wp-admin-theme-color)}.block-editor-button-block-appender:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.block-editor-button-block-appender:active{color:#000}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child{pointer-events:none}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child:after:before,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child .block-editor-inserter{visibility:hidden}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over:after,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over:after{border:none}.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-constrained.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.block-list-appender:only-child.is-drag-over .block-editor-inserter,.is-layout-flow.block-editor-block-list__block:not(.is-selected)>.wp-block-group__inner-container>.block-list-appender:only-child.is-drag-over .block-editor-inserter{visibility:visible}.block-editor-block-list__block:not(.is-selected)>.block-editor-block-list__block>.block-list-appender:only-child:after{border:none}.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{background-color:var(--wp-admin-theme-color);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.65);color:hsla(0,0%,100%,.65);transition:background-color .2s ease-in-out}@media (prefers-reduced-motion:reduce){.block-list-appender:only-child.is-drag-over .block-editor-button-block-appender{transition:none}}.block-editor-default-block-appender{clear:both;margin-left:auto;margin-right:auto;position:relative}.block-editor-default-block-appender[data-root-client-id=""] .block-editor-default-block-appender__content:hover{outline:1px solid transparent}.block-editor-default-block-appender .block-editor-default-block-appender__content{opacity:.62}:where(body .is-layout-constrained) .block-editor-default-block-appender>:first-child:first-child{-webkit-margin-before:0;margin-block-start:0}.block-editor-default-block-appender .components-drop-zone__content-icon{display:none}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,.block-editor-default-block-appender .block-editor-inserter{line-height:0;position:absolute;right:0;top:0}.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter:disabled,.block-editor-default-block-appender .block-editor-inserter:disabled{display:none}.block-editor-block-list__block .block-list-appender{bottom:0;list-style:none;padding:0;position:absolute;right:0;z-index:2}.block-editor-block-list__block .block-list-appender.block-list-appender{line-height:0;margin:0}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender{height:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle{background:#1e1e1e;box-shadow:none;color:#fff;display:none;flex-direction:row;height:24px;min-width:24px;padding:0!important;width:24px}.block-editor-block-list__block .block-list-appender .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__block .block-list-appender .block-list-appender__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__block .block-list-appender .block-editor-default-block-appender__content{display:none}.block-editor-block-list__block .block-list-appender:only-child{align-self:center;line-height:inherit;list-style:none;position:relative;right:auto}.block-editor-block-list__block .block-list-appender:only-child .block-editor-default-block-appender__content{display:block}.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected .block-editor-block-list__layout>.block-list-appender .block-list-appender__toggle,.block-editor-block-list__block.is-selected>.block-list-appender .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__block.is-selected>.block-list-appender .block-list-appender__toggle{display:flex}.block-editor-default-block-appender__content{cursor:text}.block-editor-block-list__layout.has-overlay:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:60}.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button{margin-bottom:0}.block-editor-media-placeholder__url-input-form{display:flex}.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{border:none;border-radius:0;flex-grow:1;margin:2px;min-width:200px;width:100%}@media (min-width:600px){.block-editor-media-placeholder__url-input-form input[type=url].block-editor-media-placeholder__url-input-field{width:300px}}.block-editor-media-placeholder__url-input-submit-button{flex-shrink:1}.block-editor-media-placeholder__button{margin-bottom:.5rem}.block-editor-media-placeholder__cancel-button.is-link{display:block;margin:1em}.block-editor-media-placeholder.is-appender{min-height:0}.block-editor-media-placeholder.is-appender:hover{box-shadow:0 0 0 1px var(--wp-admin-theme-color);cursor:pointer}.block-editor-plain-text{border:none;box-shadow:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;width:100%}.rich-text [data-rich-text-placeholder]{pointer-events:none}.rich-text [data-rich-text-placeholder]:after{content:attr(data-rich-text-placeholder);opacity:.62}.rich-text:focus{outline:none}.rich-text:focus [data-rich-text-format-boundary]{border-radius:2px}.block-editor-rich-text__editable>p:first-child{margin-top:0}figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]:before{opacity:.8}[data-rich-text-script]{display:inline}[data-rich-text-script]:before{background:#ff0;content:""}.block-editor-warning{align-items:center;background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:flex;flex-wrap:wrap;padding:1em}.block-editor-warning,.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.block-editor-warning .block-editor-warning__message{color:#1e1e1e;font-size:13px;line-height:1.4;margin:0}.block-editor-warning p.block-editor-warning__message.block-editor-warning__message{min-height:auto}.block-editor-warning .block-editor-warning__contents{align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;width:100%}.block-editor-warning .block-editor-warning__actions{align-items:center;display:flex;margin-top:1em}.block-editor-warning .block-editor-warning__action{margin:0 8px 0 0}.block-editor-warning__secondary{margin:auto 0 auto 8px}.components-popover.block-editor-warning__dropdown{z-index:99998}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.css index b8ef98fd4b..7f40ccc50b 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.css @@ -34,20 +34,6 @@ margin-top:0; } -iframe[name=editor-canvas]{ - display:block; - height:100%; - width:100%; -} - -iframe[name=editor-canvas]:not(.has-history){ - background-color:#fff; -} - -iframe[name=editor-canvas].has-history{ - padding:48px 48px 0; -} - .block-editor-block-icon{ align-items:center; display:flex; @@ -92,6 +78,9 @@ iframe[name=editor-canvas].has-history{ border-top:1px solid #e0e0e0; margin-top:-1px; } +.block-editor-block-inspector .block-editor-block-card{ + padding:16px; +} .block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{ background:#fff; @@ -176,6 +165,140 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{ background:#1e1e1e; } +.block-editor-block-contextual-toolbar{ + background-color:#fff; + border:1px solid #1e1e1e; + border-radius:2px; + display:inline-flex; +} +.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{ + border-left-color:#1e1e1e; +} +.block-editor-block-contextual-toolbar.is-fixed{ + border:none; + border-bottom:1px solid #e0e0e0; + border-radius:0; + overflow:hidden; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar{ + overflow:auto; + overflow-y:hidden; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-left-color:#e0e0e0; +} +.block-editor-block-contextual-toolbar.is-collapsed:after{ + background:linear-gradient(270deg, #fff, transparent); + content:""; + height:100%; + position:absolute; + right:100%; + width:48px; +} +@media (min-width:782px){ + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar{ + flex-grow:0; + width:auto; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + margin-left:0; + margin-top:12px; + position:relative; + right:-2px; + top:-1px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{ + border:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon svg{ + display:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon:after{ + content:attr(aria-label); + font-size:12px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + margin-left:8px; + margin-top:12px; + position:relative; + right:0; + top:-1px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{ + border:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{ + width:256px; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon svg{ + display:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon:after{ + content:attr(aria-label); + font-size:12px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + margin-bottom:12px; + margin-top:12px; + position:relative; + right:-8px; + top:-1px; + width:1px; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{ + right:0; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{ + border-right:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover:before{ + background-color:#ddd; + content:""; + margin-bottom:12px; + margin-top:12px; + position:relative; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ + border:0; + padding-left:6px; + padding-right:6px; + position:relative; + top:-1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{ + bottom:4px; + content:"·"; + font-size:16px; + line-height:40px; + position:absolute; + right:46px; + } + .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{ + position:absolute; + right:-57px; + top:-1px; + } + .show-icon-labels .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{ + margin-bottom:-1px; + margin-right:-1px; + margin-top:-1px; + position:relative; + right:auto; + top:auto; + } +} .block-editor-block-list__block-selection-button{ background-color:#1e1e1e; border-radius:2px; @@ -241,25 +364,6 @@ iframe[name=editor-canvas].has-history{ margin-top:12px; pointer-events:all; } -.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar{ - border:1px solid #1e1e1e; - border-radius:2px; - overflow:visible; - position:static; - width:auto; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{ - margin-right:56px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{ - margin-right:0; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar{ - overflow:visible; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar-group{ - border-left-color:#1e1e1e; -} .components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{ visibility:hidden; } @@ -267,31 +371,6 @@ iframe[name=editor-canvas].has-history{ animation:hide-during-dragging 1ms linear forwards; opacity:0; } -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{ - position:absolute; - right:-57px; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector:before{ - content:""; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - background-color:#fff; - border:1px solid #1e1e1e; - padding-left:6px; - padding-right:6px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - padding-left:12px; - padding-right:12px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{ - margin-right:-1px; - position:relative; - right:auto; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-mover__move-button-container,.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar__block-controls .block-editor-block-mover{ - border-right:1px solid #1e1e1e; -} .is-dragging-components-draggable .components-tooltip{ display:none; @@ -416,28 +495,24 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-card{ align-items:flex-start; - color:#1e1e1e; display:flex; - padding:16px; } .block-editor-block-card__content{ flex-grow:1; + margin-bottom:4px; } .block-editor-block-card__title{ font-weight:500; } .block-editor-block-card__title.block-editor-block-card__title{ - font-size:13px; line-height:24px; - margin:0; + margin:0 0 4px; } .block-editor-block-card__description{ - display:block; font-size:13px; - margin-top:4px; } .block-editor-block-card .block-editor-block-icon{ @@ -526,7 +601,6 @@ iframe[name=editor-canvas].has-history{ display:inline-flex; height:48px; padding:0 13px; - position:relative; -webkit-user-select:none; user-select:none; width:max-content; @@ -553,35 +627,6 @@ iframe[name=editor-canvas].has-history{ font-size:13px; } -.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{ - align-items:center; - background-color:transparent; - bottom:0; - display:flex; - justify-content:center; - left:0; - opacity:0; - position:absolute; - right:0; - top:0; - transition:all .1s linear .1s; -} -.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled .block-editor-block-draggable-chip__disabled-icon{ - background:transparent linear-gradient(45deg, transparent 47.5%, #fff 0, #fff 52.5%, transparent 0); - border-radius:50%; - box-shadow:inset 0 0 0 1.5px #fff; - display:inline-block; - height:20px; - padding:0; - width:20px; -} - -.block-draggable-invalid-drag-token .block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{ - background-color:#757575; - box-shadow:0 4px 8px rgba(0,0,0,.2); - opacity:1; -} - .block-editor-block-mover__move-button-container{ border:none; display:flex; @@ -665,7 +710,7 @@ iframe[name=editor-canvas].has-history{ outline:none; } .components-button.block-editor-block-mover-button:focus-visible:before{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } @@ -681,6 +726,17 @@ iframe[name=editor-canvas].has-history{ text-transform:uppercase; } +.block-editor-block-parent-selector{ + background:#fff; + border-radius:2px; +} +.block-editor-block-parent-selector .block-editor-block-parent-selector__button{ + border:1px solid #1e1e1e; + border-radius:2px; + height:48px; + width:48px; +} + .block-editor-block-patterns-list__list-item{ cursor:pointer; margin-bottom:24px; @@ -695,8 +751,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-patterns-list__item{ height:100%; - scroll-margin-bottom:56px; - scroll-margin-top:24px; } .block-editor-block-patterns-list__item .block-editor-block-preview__container{ align-items:center; @@ -844,6 +898,15 @@ iframe[name=editor-canvas].has-history{ display:block; } } +.block-editor-block-styles__preview-panel .block-editor-inserter__preview-container{ + left:auto; + position:static; + right:auto; + top:auto; +} +.block-editor-block-styles__preview-panel .block-editor-block-card__title.block-editor-block-card__title{ + margin:0; +} .block-editor-block-styles__preview-panel .block-editor-block-icon{ display:none; } @@ -873,7 +936,6 @@ iframe[name=editor-canvas].has-history{ } .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{ box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - outline:2px solid transparent; } .block-editor-block-styles__variants .block-editor-block-styles__item-text{ text-align:start; @@ -913,6 +975,10 @@ iframe[name=editor-canvas].has-history{ display:none; } +.show-icon-labels .block-editor-block-toolbar .block-editor-block-switcher .components-button.has-icon:after{ + font-size:14px; +} + .components-button.block-editor-block-switcher__no-switcher-icon{ display:flex; } @@ -1037,12 +1103,6 @@ iframe[name=editor-canvas].has-history{ text-align:center; } -.block-editor-block-switcher__no-transforms{ - color:#757575; - margin:0; - padding:6px 8px; -} - .block-editor-block-types-list>[role=presentation]{ display:flex; flex-wrap:wrap; @@ -1078,9 +1138,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{ cursor:pointer; } -.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item{ - scroll-margin:5px 0; -} .block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{ box-shadow:0 0 0 2px var(--wp-admin-theme-color); } @@ -1112,7 +1169,7 @@ iframe[name=editor-canvas].has-history{ } .block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{ align-items:center; - align-self:stretch; + align-self:flex-end; background-color:#fff; border-top:1px solid #ddd; bottom:0; @@ -1274,6 +1331,10 @@ iframe[name=editor-canvas].has-history{ min-width:0; } +.block-editor-color-gradient-control__tabs .block-editor-color-gradient-control__panel{ + padding:16px; +} + .block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){ display:block; } @@ -1282,6 +1343,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{ display:grid; grid-template-columns:repeat(6, 28px); + justify-content:space-between; } } .block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{ @@ -1303,13 +1365,13 @@ iframe[name=editor-canvas].has-history{ max-width:100%; padding:0; } -.block-editor-tools-panel-color-gradient-settings__item:nth-child(1 of .block-editor-tools-panel-color-gradient-settings__item){ +.block-editor-tools-panel-color-gradient-settings__item.first{ border-top:1px solid #ddd; border-top-left-radius:2px; border-top-right-radius:2px; margin-top:24px; } -.block-editor-tools-panel-color-gradient-settings__item:nth-last-child(1 of .block-editor-tools-panel-color-gradient-settings__item){ +.block-editor-tools-panel-color-gradient-settings__item.last{ border-bottom-left-radius:2px; border-bottom-right-radius:2px; } @@ -1344,6 +1406,10 @@ iframe[name=editor-canvas].has-history{ flex-shrink:0; } +.block-editor-contrast-checker>.components-notice{ + margin:0; +} + .block-editor-date-format-picker{ margin-bottom:16px; } @@ -1361,7 +1427,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-duotone-control__popover>.components-popover__content{ padding:16px; - width:260px; + width:280px; } .block-editor-duotone-control__popover .components-menu-group__label{ padding:0; @@ -1373,6 +1439,11 @@ iframe[name=editor-canvas].has-history{ justify-content:space-between; } +.block-editor-duotone-control__description{ + font-size:12px; + margin:16px 0; +} + .block-editor-duotone-control__unset-indicator{ background:linear-gradient(45deg, transparent 48%, #ddd 0, #ddd 52%, transparent 0); } @@ -1558,21 +1629,20 @@ iframe[name=editor-canvas].has-history{ padding:4px 2px 8px; } -.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon svg{ +.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon svg{ display:none; } -.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon:before{ +.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon:before{ content:attr(aria-label); } .block-editor-inspector-controls-tabs__hint{ - align-items:flex-start; + align-items:top; background:#f0f0f0; border-radius:2px; color:#1e1e1e; display:flex; flex-direction:row; - font-size:13px; margin:16px; } @@ -1651,12 +1721,13 @@ iframe[name=editor-canvas].has-history{ position:relative; } +.block-editor-link-control__search-input.has-no-label .block-editor-url-input__input{ + flex:1; +} + .block-editor-link-control__field{ margin:16px; } -.block-editor-link-control__field .components-base-control__label{ - color:#1e1e1e; -} .block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{ border:1px solid #949494; border-radius:2px; @@ -1667,7 +1738,7 @@ iframe[name=editor-canvas].has-history{ height:40px; line-height:normal; margin:0; - padding:8px 16px 8px 40px; + padding:8px 16px; position:relative; transition:box-shadow .1s linear; width:100%; @@ -1699,9 +1770,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{ color:rgba(30,30,30,.62); } -.has-actions .block-editor-link-control__field input[type=text],.has-actions .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{ - padding-left:16px; -} .block-editor-link-control__search-error{ margin:-8px 16px 16px; @@ -1718,6 +1786,11 @@ iframe[name=editor-canvas].has-history{ } .block-editor-link-control__search-actions{ + display:flex; + flex-direction:row-reverse; + gap:8px; + justify-content:flex-start; + order:20; padding:8px 16px 16px; } @@ -1789,15 +1862,11 @@ iframe[name=editor-canvas].has-history{ align-items:flex-start; display:block; flex-direction:row; - gap:8px; margin-left:8px; overflow-wrap:break-word; white-space:pre-wrap; } .block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{ - color:#757575; - font-size:12px; - line-height:1.1; word-break:break-all; } .block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{ @@ -1810,24 +1879,14 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{ word-break:break-all; } -.block-editor-link-control__search-item .block-editor-link-control__search-item-details{ - display:flex; - flex-direction:column; - gap:4px; - justify-content:space-between; -} -.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-icon{ - background-color:#f0f0f0; - border-radius:2px; - height:32px; - width:32px; -} .block-editor-link-control__search-item .block-editor-link-control__search-item-icon{ - align-items:center; display:flex; flex-shrink:0; justify-content:center; + margin-left:8px; + max-height:24px; position:relative; + width:24px; } .block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{ width:16px; @@ -1838,13 +1897,10 @@ iframe[name=editor-canvas].has-history{ width:32px; } .block-editor-link-control__search-item .block-editor-link-control__search-item-title{ - border-radius:2px; - line-height:1.1; -} -.block-editor-link-control__search-item .block-editor-link-control__search-item-title:focus-visible{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - outline:2px solid transparent; - text-decoration:none; + display:block; + font-weight:500; + line-height:24px; + position:relative; } .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{ background-color:transparent; @@ -1857,6 +1913,50 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{ display:none; } +.block-editor-link-control__search-item .block-editor-link-control__search-item-description{ + margin:0; + padding-top:12px; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder{ + display:flex; + flex-direction:column; + height:28px; + justify-content:space-around; + margin-top:12px; + padding-top:0; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:after,.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:before{ + background-color:#f0f0f0; + border-radius:3px; + content:""; + display:block; + height:.7em; + width:100%; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description .components-text{ + font-size:.9em; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image{ + background-color:#f0f0f0; + border-radius:2px; + display:flex; + height:140px; + justify-content:center; + margin-top:12px; + max-height:140px; + overflow:hidden; + width:100%; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image.is-placeholder{ + background-color:#f0f0f0; + border-radius:3px; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image img{ + display:block; + height:140px; + max-height:140px; + max-width:100%; +} .block-editor-link-control__search-item-top{ align-items:center; @@ -1865,6 +1965,14 @@ iframe[name=editor-canvas].has-history{ width:100%; } +.block-editor-link-control__search-item-bottom{ + transition:opacity 1.5s; + width:100%; +} +.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:after,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:before,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-image{ + animation:loadingpulse 1s linear infinite; + animation-delay:.5s; +} .block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{ opacity:0; } @@ -1941,9 +2049,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__setting .components-base-control__field{ display:flex; } -.block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label{ - color:#1e1e1e; -} .block-editor-link-control__setting input{ margin-right:0; } @@ -2016,16 +2121,9 @@ iframe[name=editor-canvas].has-history{ margin:-12px -6px 0; width:calc(100% + 12px); } -.block-editor-list-view-tree.is-dragging tbody{ - pointer-events:none; -} .block-editor-list-view-leaf{ position:relative; - transform:translateY(0); -} -.block-editor-list-view-leaf.is-draggable,.block-editor-list-view-leaf.is-draggable .block-editor-list-view-block-contents{ - cursor:grab; } .block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{ color:inherit; @@ -2099,72 +2197,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{ border-radius:0; } -.block-editor-list-view-leaf.is-displacement-normal{ - transform:translateY(0); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-normal{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-displacement-up{ - transform:translateY(-36px); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-up{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-displacement-down{ - transform:translateY(36px); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-down{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks{ - transform:translateY(calc(var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{ - transform:translateY(calc(-36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{ - transform:translateY(calc(36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-dragging{ - opacity:0; - pointer-events:none; - right:0; - z-index:-9999; -} .block-editor-list-view-leaf .block-editor-list-view-block-contents{ align-items:center; border-radius:2px; @@ -2190,10 +2222,10 @@ iframe[name=editor-canvas].has-history{ padding-left:0; padding-right:0; } -.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents{ +.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus{ box-shadow:none; } -.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents:after{ +.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{ border-radius:inherit; bottom:0; box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); @@ -2205,13 +2237,19 @@ iframe[name=editor-canvas].has-history{ top:0; z-index:2; } +.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{ + box-shadow:none; +} .block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{ left:0; } -.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view__menu{ +.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{ box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); z-index:1; } +.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{ + box-shadow:none; +} .block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{ animation:edit-post__fade-in-animation .2s ease-out 0s; animation-fill-mode:forwards; @@ -2350,16 +2388,11 @@ iframe[name=editor-canvas].has-history{ box-shadow:0 0 0 2px var(--wp-admin-theme-color); } -.block-editor-list-view-draggable-chip{ - opacity:.8; -} - .block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{ display:flex; } .block-editor-list-view__expander{ - cursor:pointer; height:24px; margin-right:4px; width:24px; @@ -2442,22 +2475,6 @@ iframe[name=editor-canvas].has-history{ height:4px; } -.block-editor-list-view-drop-indicator--preview{ - pointer-events:none; -} -.block-editor-list-view-drop-indicator--preview .components-popover__content{ - overflow:hidden !important; -} -.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line{ - background:rgba(var(--wp-admin-theme-color--rgb), .04); - border-radius:4px; - height:36px; - overflow:hidden; -} -.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line--darker{ - background:rgba(var(--wp-admin-theme-color--rgb), .09); -} - .block-editor-list-view-placeholder{ height:36px; margin:0; @@ -2494,7 +2511,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-media-flow__url-input.has-siblings{ border-top:1px solid #1e1e1e; margin-top:8px; - padding-bottom:8px; } .block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{ display:block; @@ -2525,7 +2541,8 @@ iframe[name=editor-canvas].has-history{ width:100%; } .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{ - padding:8px 0 0; + left:4px; + top:0; } .block-editor-media-flow__error{ @@ -2894,7 +2911,7 @@ iframe[name=editor-canvas].has-history{ box-shadow:none; } .block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } @@ -3133,45 +3150,27 @@ iframe[name=editor-canvas].has-history{ border-left:none; } -.block-editor-block-contextual-toolbar{ - background-color:#fff; - display:block; - flex-shrink:3; - position:sticky; - top:0; - width:100%; - z-index:31; -} -.block-editor-block-contextual-toolbar.components-accessible-toolbar{ - border:none; - border-bottom:1px solid #e0e0e0; - border-radius:0; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar{ - overflow:auto; - overflow-y:hidden; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child:after{ - display:none; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{ - border-left-color:#e0e0e0; -} -.block-editor-block-contextual-toolbar>.block-editor-block-toolbar{ - flex-grow:0; - width:auto; +@media (min-width:782px){ + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-left:none; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar:after{ + background-color:#ddd; + content:""; + margin-bottom:12px; + margin-right:8px; + margin-top:12px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child:after{ + display:none; + } } -.block-editor-block-contextual-toolbar .block-editor-block-parent-selector{ - margin-bottom:-1px; - margin-top:-1px; - position:relative; +.block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){ + margin-right:56px; } -.block-editor-block-contextual-toolbar .block-editor-block-parent-selector:after{ - bottom:16px; - content:"·"; - font-size:16px; - left:0; - position:absolute; +.show-icon-labels .block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){ + margin-right:0; } .block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{ @@ -3216,35 +3215,16 @@ iframe[name=editor-canvas].has-history{ min-width:0 !important; width:0 !important; } -.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - text-wrap:nowrap; +.show-icon-labels .block-editor-block-parent-selector__button{ border-bottom-left-radius:0; border-top-left-radius:0; - padding-left:12px; - padding-right:12px; } -.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button .block-editor-block-icon{ +.show-icon-labels .block-editor-block-parent-selector__button .block-editor-block-icon{ width:0; } .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{ width:auto; } -@media (min-width:600px){ - .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{ - position:relative; - } - .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#1e1e1e; - content:""; - height:1px; - margin-top:-.5px; - position:absolute; - right:50%; - top:50%; - transform:translate(50%); - width:100%; - } -} .show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{ padding-left:6px; padding-right:6px; @@ -3254,21 +3234,48 @@ iframe[name=editor-canvas].has-history{ padding-right:8px; } .show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{ - border-right:1px solid #ddd; + border-right:1px solid #1e1e1e; margin-left:-6px; margin-right:6px; white-space:nowrap; } +.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{ + border-right-color:#e0e0e0; +} .show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{ padding-left:12px; padding-right:12px; } +.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container{ + border-width:0; +} +@media (min-width:600px){ + .show-icon-labels .is-up-button.is-up-button.is-up-button{ + border-radius:0; + margin-left:0; + order:1; + } + .show-icon-labels .block-editor-block-mover__move-button-container{ + border-right:1px solid #1e1e1e; + } + .show-icon-labels .is-down-button.is-down-button.is-down-button{ + order:2; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container:before{ + background:#ddd; + } +} .show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{ width:auto; } .show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{ flex-shrink:1; } +@media (min-width:782px){ + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar,.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar-group{ + flex-shrink:0; + } +} .show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{ margin-right:6px; } @@ -3293,7 +3300,6 @@ iframe[name=editor-canvas].has-history{ flex-direction:column; gap:16px; height:100%; - overflow-y:hidden; position:relative; } .block-editor-inserter__main-area.show-as-tabs{ @@ -3329,7 +3335,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__popover .block-editor-inserter__menu{ margin:-12px; } -.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs div[role=tablist]{ +.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs{ top:60px; } .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{ @@ -3387,19 +3393,19 @@ iframe[name=editor-canvas].has-history{ flex-grow:1; overflow:hidden; } -.block-editor-inserter__tabs div[role=tablist]{ +.block-editor-inserter__tabs .components-tab-panel__tabs{ border-bottom:1px solid #ddd; } -.block-editor-inserter__tabs div[role=tablist] button[role=tab]{ +.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ flex-grow:1; margin-bottom:-1px; } -.block-editor-inserter__tabs div[role=tablist] button[role=tab][id$=reusable]{ +.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item[id$=reusable]{ flex-grow:inherit; padding-left:16px; padding-right:16px; } -.block-editor-inserter__tabs div[role=tabpanel]{ +.block-editor-inserter__tabs .components-tab-panel__tab-content{ display:flex; flex-direction:column; flex-grow:1; @@ -3476,29 +3482,28 @@ iframe[name=editor-canvas].has-history{ margin-left:8px; } -.block-editor-inserter__preview-container__popover{ - top:16px !important; -} - .block-editor-inserter__preview-container{ + background:#fff; + border:1px solid #ddd; + border-radius:2px; display:none; max-height:calc(100% - 32px); overflow-y:hidden; - padding:16px; - width:280px; + position:absolute; + right:calc(100% + 16px); + top:16px; + width:300px; } @media (min-width:782px){ .block-editor-inserter__preview-container{ display:block; } } -.block-editor-inserter__preview-container .block-editor-block-preview__container{ - height:100%; -} .block-editor-inserter__preview-container .block-editor-block-card{ - padding-bottom:4px; - padding-left:0; - padding-right:0; + padding:16px; +} +.block-editor-inserter__preview-container .block-editor-block-card__title{ + font-size:13px; } .block-editor-inserter__patterns-explore-button.components-button{ @@ -3529,9 +3534,12 @@ iframe[name=editor-canvas].has-history{ right:0; top:0; } -.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{ +.block-editor-block-patterns-explorer__sidebar,.block-editor-block-patterns-explorer__sidebar nav,.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{ height:100%; } +.block-editor-block-patterns-explorer__sidebar .block-editor-block-patterns__source-filter select.components-select-control__input,.block-editor-inserter__block-patterns-tabs-container .block-editor-block-patterns__source-filter select.components-select-control__input{ + height:40px; +} .block-editor-inserter__block-patterns-tabs{ display:flex; @@ -3543,9 +3551,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{ margin-top:auto; } -.block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category{ - padding-left:4px; -} .block-editor-inserter__patterns-category-dialog{ background:#f0f0f0; @@ -3607,7 +3612,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__preview-content-missing{ align-items:center; background:#f0f0f0; - border-radius:2px; color:#757575; display:flex; flex:1; @@ -3689,7 +3693,7 @@ iframe[name=editor-canvas].has-history{ padding:24px 32px 32px; position:absolute; right:0; - top:72px; + top:76px; width:280px; } .block-editor-block-patterns-explorer__sidebar__categories-list__item{ @@ -3759,20 +3763,17 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__media-tabs div[role=listitem]:last-child{ margin-top:auto; } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category{ - padding-left:4px; -} -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected{ +.block-editor-inserter__media-tabs__media-category.is-selected{ color:var(--wp-admin-theme-color); position:relative; } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{ +.block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{ filter:brightness(.95); } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg{ +.block-editor-inserter__media-tabs__media-category.is-selected svg{ fill:var(--wp-admin-theme-color); } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected:after{ +.block-editor-inserter__media-tabs__media-category.is-selected:after{ background:var(--wp-admin-theme-color); border-radius:2px; bottom:0; @@ -3954,6 +3955,50 @@ iframe[name=editor-canvas].has-history{ height:40px; } +.block-editor-post-preview__dropdown{ + padding:0; +} + +.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize{ + padding-right:40px; +} +.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon{ + padding-right:8px; +} + +.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:first-child{ + padding-bottom:8px; +} +.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:last-child{ + margin-bottom:0; +} +.block-editor-post-preview__dropdown-content .components-menu-group+.components-menu-group{ + padding:8px; +} + +@media (min-width:600px){ + .edit-post-header__settings .editor-post-preview,.edit-site-header-edit-mode__actions .editor-post-preview{ + display:none; + } + .edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{ + transition:opacity .1s linear; + } +} +@media (min-width:600px) and (prefers-reduced-motion:reduce){ + .edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{ + transition-delay:0s; + transition-duration:0s; + } +} +@media (min-width:600px){ + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-saved-state{ + opacity:0; + } + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle.is-opened{ + opacity:1; + } +} + .spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{ margin-bottom:0; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.min.css index 7f17a67f72..dcca3db68a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style-rtl.min.css @@ -1 +1 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-autocompleters__block{white-space:nowrap}.block-editor-autocompleters__block .block-editor-block-icon{margin-left:8px}.block-editor-autocompleters__link{white-space:nowrap}.block-editor-autocompleters__link .block-editor-block-icon{margin-left:8px}.block-editor-block-alignment-control__menu-group .components-menu-item__info{margin-top:0}iframe[name=editor-canvas]{display:block;height:100%;width:100%}iframe[name=editor-canvas]:not(.has-history){background-color:#fff}iframe[name=editor-canvas].has-history{padding:48px 48px 0}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-inspector p:not(.components-base-control__help){margin-top:0}.block-editor-block-inspector h2,.block-editor-block-inspector h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.block-editor-block-inspector .components-base-control{margin-bottom:24px}.block-editor-block-inspector .components-base-control:last-child{margin-bottom:8px}.block-editor-block-inspector .components-focal-point-picker-control .components-base-control,.block-editor-block-inspector .components-query-controls .components-base-control,.block-editor-block-inspector .components-range-control .components-base-control{margin-bottom:0}.block-editor-block-inspector .components-panel__body{border:none;border-top:1px solid #e0e0e0;margin-top:-1px}.block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{background:#fff;display:block;font-size:13px;padding:32px 16px;text-align:center}.block-editor-block-inspector__no-block-tools{border-top:1px solid #ddd}.block-editor-block-inspector__tab-item{flex:1 1 0px}.block-editor-block-list__insertion-point{bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__insertion-point-indicator{background:var(--wp-admin-theme-color);border-radius:2px;opacity:0;position:absolute;transform-origin:center;will-change:transform,opacity}.block-editor-block-list__insertion-point.is-vertical>.block-editor-block-list__insertion-point-indicator{height:4px;top:calc(50% - 2px);width:100%}.block-editor-block-list__insertion-point.is-horizontal>.block-editor-block-list__insertion-point-indicator{bottom:0;right:calc(50% - 2px);top:0;width:4px}.block-editor-block-list__insertion-point-inserter{display:none;justify-content:center;position:absolute;right:calc(50% - 12px);top:calc(50% - 12px);will-change:transform}@media (min-width:480px){.block-editor-block-list__insertion-point-inserter{display:flex}}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div{pointer-events:none}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div>*{pointer-events:all}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:var(--wp-admin-theme-color)}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:#1e1e1e}.block-editor-block-list__block-selection-button{background-color:#1e1e1e;border-radius:2px;display:inline-flex;font-size:13px;height:48px;padding:0 12px;z-index:22}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content{align-items:center;display:inline-flex;margin:auto}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content>.components-flex__item{margin-left:6px}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle{cursor:grab;height:24px;margin-right:-2px;min-width:24px;padding:0}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle svg{min-height:18px;min-width:18px}.block-editor-block-list__block-selection-button .block-editor-block-icon{color:#fff;font-size:13px;height:48px}.block-editor-block-list__block-selection-button .components-button{color:#fff;display:flex;height:48px;min-width:36px}.block-editor-block-list__block-selection-button .components-button:focus{border:none;box-shadow:none}.block-editor-block-list__block-selection-button .components-button:active,.block-editor-block-list__block-selection-button .components-button[aria-disabled=true]:hover{color:#fff}.block-editor-block-list__block-selection-button .block-selection-button_select-button.components-button{padding:0}.block-editor-block-list__block-selection-button .block-editor-block-mover{background:unset;border:none}@keyframes hide-during-dragging{to{position:fixed;transform:translate(-9999px,9999px)}}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-list__block-selection-button{margin-bottom:12px;margin-top:12px;pointer-events:all}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar{border:1px solid #1e1e1e;border-radius:2px;overflow:visible;position:static;width:auto}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{margin-right:56px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{margin-right:0}.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar{overflow:visible}.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar-group{border-left-color:#1e1e1e}.components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{visibility:hidden}.is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover{animation:hide-during-dragging 1ms linear forwards;opacity:0}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{position:absolute;right:-57px}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector:before{content:""}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{background-color:#fff;border:1px solid #1e1e1e;padding-left:6px;padding-right:6px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{padding-left:12px;padding-right:12px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{margin-right:-1px;position:relative;right:auto}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-mover__move-button-container,.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-right:1px solid #1e1e1e}.is-dragging-components-draggable .components-tooltip{display:none}.block-editor-block-lock-modal{z-index:1000001}@media (min-width:600px){.block-editor-block-lock-modal .components-modal__frame{max-width:480px}}.block-editor-block-lock-modal__checklist{margin:0}.block-editor-block-lock-modal__options-title{padding:12px 0}.block-editor-block-lock-modal__options-title .components-checkbox-control__label{font-weight:600}.block-editor-block-lock-modal__checklist-item{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:0;padding:12px 32px 12px 0}.block-editor-block-lock-modal__checklist-item .block-editor-block-lock-modal__lock-icon{fill:#1e1e1e;flex-shrink:0;margin-left:12px}.block-editor-block-lock-modal__checklist-item:hover{background-color:#f0f0f0;border-radius:2px}.block-editor-block-lock-modal__template-lock{border-top:1px solid #ddd;margin-top:16px;padding:12px 0}.block-editor-block-lock-modal__actions{margin-top:24px}.block-editor-block-lock-toolbar .components-button.has-icon{min-width:36px!important}.block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{margin-right:-6px!important}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{border-right:1px solid #1e1e1e;margin-left:-6px;margin-right:6px!important}.block-editor-block-breadcrumb{list-style:none;margin:0;padding:0}.block-editor-block-breadcrumb li{display:inline-flex;margin:0}.block-editor-block-breadcrumb li .block-editor-block-breadcrumb__separator{fill:currentColor;margin-left:-4px;margin-right:-4px;transform:scaleX(-1)}.block-editor-block-breadcrumb li:last-child .block-editor-block-breadcrumb__separator{display:none}.block-editor-block-breadcrumb__button.components-button{height:24px;line-height:24px;padding:0;position:relative}.block-editor-block-breadcrumb__button.components-button:hover:not(:disabled){box-shadow:none;text-decoration:underline}.block-editor-block-breadcrumb__button.components-button:focus{box-shadow:none}.block-editor-block-breadcrumb__button.components-button:focus:before{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:1px;outline:2px solid transparent;position:absolute;right:1px;top:1px}.block-editor-block-breadcrumb__current{cursor:default}.block-editor-block-breadcrumb__button.components-button,.block-editor-block-breadcrumb__current{color:#1e1e1e;font-size:inherit;padding:0 8px}.block-editor-block-card{align-items:flex-start;color:#1e1e1e;display:flex;padding:16px}.block-editor-block-card__content{flex-grow:1}.block-editor-block-card__title{font-weight:500}.block-editor-block-card__title.block-editor-block-card__title{font-size:13px;line-height:24px;margin:0}.block-editor-block-card__description{display:block;font-size:13px;margin-top:4px}.block-editor-block-card .block-editor-block-icon{flex:0 0 24px;height:24px;margin-left:12px;margin-right:0;width:24px}.block-editor-block-card.is-synced .block-editor-block-icon{color:var(--wp-block-synced-color)}.block-editor-block-compare{height:auto}.block-editor-block-compare__wrapper{display:flex;padding-bottom:16px}.block-editor-block-compare__wrapper>div{display:flex;flex-direction:column;justify-content:space-between;max-width:600px;min-width:200px;padding:0 0 0 16px;width:50%}.block-editor-block-compare__wrapper>div button{float:left}.block-editor-block-compare__wrapper .block-editor-block-compare__converted{border-right:1px solid #ddd;padding-left:0;padding-right:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html{border-bottom:1px solid #ddd;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:12px;line-height:1.7;padding-bottom:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span{background-color:#e6ffed;padding-bottom:3px;padding-top:3px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added{background-color:#acf2bd}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed{background-color:#cc1818}.block-editor-block-compare__wrapper .block-editor-block-compare__preview{padding:16px 0 0}.block-editor-block-compare__wrapper .block-editor-block-compare__preview p{font-size:12px;margin-top:0}.block-editor-block-compare__wrapper .block-editor-block-compare__action{margin-top:16px}.block-editor-block-compare__wrapper .block-editor-block-compare__heading{font-size:1em;font-weight:400;margin:.67em 0}.block-editor-block-draggable-chip-wrapper{position:absolute;right:0;top:-24px}.block-editor-block-draggable-chip{background-color:#1e1e1e;border-radius:2px;box-shadow:0 6px 8px rgba(0,0,0,.3);color:#fff;cursor:grabbing;display:inline-flex;height:48px;padding:0 13px;position:relative;-webkit-user-select:none;user-select:none;width:max-content}.block-editor-block-draggable-chip svg{fill:currentColor}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content{justify-content:flex-start;margin:auto}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item{margin-left:6px}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item:last-child{margin-left:0}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content .block-editor-block-icon svg{min-height:18px;min-width:18px}.block-editor-block-draggable-chip .components-flex__item{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{align-items:center;background-color:transparent;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:all .1s linear .1s}.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled .block-editor-block-draggable-chip__disabled-icon{background:transparent linear-gradient(45deg,transparent 47.5%,#fff 0,#fff 52.5%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1.5px #fff;display:inline-block;height:20px;padding:0;width:20px}.block-draggable-invalid-drag-token .block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{background-color:#757575;box-shadow:0 4px 8px rgba(0,0,0,.2);opacity:1}.block-editor-block-mover__move-button-container{border:none;display:flex;padding:0}@media (min-width:600px){.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container{flex-direction:column}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>*{height:24px;min-width:0!important;width:100%}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>:before{height:calc(100% - 4px)}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{flex-shrink:0;top:5px}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{bottom:5px;flex-shrink:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{width:48px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container>*{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button{padding-left:0;padding-right:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{right:5px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{left:5px}}.block-editor-block-mover__drag-handle{cursor:grab}@media (min-width:600px){.block-editor-block-mover__drag-handle{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon.has-icon{padding-left:0;padding-right:0}}.components-button.block-editor-block-mover-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-mover-button:before{animation-delay:0s;animation-duration:1ms}}.components-button.block-editor-block-mover-button:focus,.components-button.block-editor-block-mover-button:focus:before,.components-button.block-editor-block-mover-button:focus:enabled{box-shadow:none;outline:none}.components-button.block-editor-block-mover-button:focus-visible:before{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-block-navigation__container{min-width:280px}.block-editor-block-navigation__label{color:#757575;font-size:11px;font-weight:500;margin:0 0 12px;text-transform:uppercase}.block-editor-block-patterns-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-block-patterns-list__list-item.is-placeholder{min-height:100px}.block-editor-block-patterns-list__list-item[draggable=true]{cursor:grab}.block-editor-block-patterns-list__item{height:100%;scroll-margin-bottom:56px;scroll-margin-top:24px}.block-editor-block-patterns-list__item .block-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;overflow:hidden}.block-editor-block-patterns-list__item .block-editor-block-patterns-list__item-title{flex-grow:1;text-align:right}.block-editor-block-patterns-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e}.block-editor-block-patterns-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) #1e1e1e;outline:2px solid transparent;outline-offset:2px}.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:focus .block-editor-block-preview__container,.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-block-synced-color),0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-details{align-items:center;margin-top:8px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper{height:24px;min-width:24px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper .block-editor-patterns__pattern-icon{fill:var(--wp-block-synced-color)}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination{border-top:1px solid #2f2f2f;justify-content:center;padding:4px}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:auto}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575;color:#fff}.show-icon-labels .block-editor-patterns__grid-pagination,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-next,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-previous{flex-direction:column}.show-icon-labels .block-editor-patterns__grid-pagination .components-button{width:auto}.show-icon-labels .block-editor-patterns__grid-pagination .components-button span{display:none}.show-icon-labels .block-editor-patterns__grid-pagination .components-button:before{content:attr(aria-label)}.components-popover.block-editor-block-popover{margin:0!important;pointer-events:none;position:absolute;z-index:31}.components-popover.block-editor-block-popover .components-popover__content{margin:0!important;min-width:auto;overflow-y:visible;width:max-content}.components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween,.block-editor-block-popover__drop-zone,.block-editor-block-list__block-side-inserter-popover) .components-popover__content *{pointer-events:all}.components-popover.block-editor-block-popover__inbetween,.components-popover.block-editor-block-popover__inbetween *{pointer-events:none}.components-popover.block-editor-block-popover__inbetween .is-with-inserter,.components-popover.block-editor-block-popover__inbetween .is-with-inserter *{pointer-events:all}.components-popover.block-editor-block-popover__drop-zone *{pointer-events:none}.components-popover.block-editor-block-popover__drop-zone .block-editor-block-popover__drop-zone-foreground{background-color:var(--wp-admin-theme-color);border-radius:2px;inset:0;position:absolute}.block-editor-block-preview__container{overflow:hidden;position:relative;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content{margin:0;min-height:auto;overflow:visible;right:0;text-align:initial;top:0;transform-origin:top right;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content .block-editor-block-list__insertion-point,.block-editor-block-preview__container .block-editor-block-preview__content .block-list-appender{display:none}.block-editor-block-preview__container:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.block-editor-block-rename-modal{z-index:1000001}.block-editor-block-settings-menu__popover .components-dropdown-menu__menu{padding:0}.block-editor-block-styles+.default-style-picker__default-switcher{margin-top:16px}.block-editor-block-styles__preview-panel{display:none;z-index:90}@media (min-width:782px){.block-editor-block-styles__preview-panel{display:block}}.block-editor-block-styles__preview-panel .block-editor-block-icon{display:none}.block-editor-block-styles__variants{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:inline-block;width:calc(50% - 4px)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:hover{box-shadow:inset 0 0 0 1px #ddd;color:var(--wp-admin-theme-color)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover{background-color:#1e1e1e;box-shadow:none}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active .block-editor-block-styles__item-text,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover .block-editor-block-styles__item-text{color:#fff}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-block-styles__variants .block-editor-block-styles__item-text{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-block-styles__block-preview-container,.block-editor-block-styles__block-preview-container *{box-sizing:border-box!important}.block-editor-block-switcher{position:relative}.block-editor-block-switcher .components-button.components-dropdown-menu__toggle.has-icon.has-icon{min-width:36px}.block-editor-block-switcher__no-switcher-icon,.block-editor-block-switcher__toggle{position:relative}.components-button.block-editor-block-switcher__no-switcher-icon,.components-button.block-editor-block-switcher__toggle{display:block;height:48px;margin:0}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.components-button.block-editor-block-switcher__toggle .block-editor-block-icon{margin:auto}.block-editor-block-switcher__toggle-text{margin-right:8px}.show-icon-labels .block-editor-block-switcher__toggle-text{display:none}.components-button.block-editor-block-switcher__no-switcher-icon{display:flex}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin-left:auto;margin-right:auto;min-width:24px!important}.components-button.block-editor-block-switcher__no-switcher-icon:disabled{opacity:1}.components-button.block-editor-block-switcher__no-switcher-icon:disabled,.components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:#1e1e1e}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon{align-items:center;display:flex;height:100%;margin:0 auto;min-width:100%;position:relative}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before{bottom:8px;left:8px;right:8px;top:8px}.components-popover.block-editor-block-switcher__popover .components-popover__content{min-width:300px}.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container{position:absolute;right:calc(100% + 16px);top:-12px}.block-editor-block-switcher__preview__popover{display:none;overflow:hidden}.block-editor-block-switcher__preview__popover.components-popover{margin-top:11px}@media (min-width:782px){.block-editor-block-switcher__preview__popover{display:block}}.block-editor-block-switcher__preview__popover .components-popover__content{background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:none;outline:none;overflow:auto;width:300px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview{margin:16px 0;max-height:468px;overflow:hidden;padding:0 16px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview.is-pattern-list-preview{overflow:unset}.block-editor-block-switcher__preview-title{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;text-transform:uppercase}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon{min-width:36px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle{height:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{height:48px;width:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{padding:12px}.block-editor-block-switcher__preview-patterns-container{padding-bottom:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item{margin-top:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-preview__container{cursor:pointer}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item{border:1px solid transparent;border-radius:2px;height:100%;position:relative;transition:all .05s ease-in-out}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:focus,.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) #1e1e1e}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item .block-editor-block-switcher__preview-patterns-container-list__item-title{cursor:pointer;font-size:12px;padding:4px;text-align:center}.block-editor-block-switcher__no-transforms{color:#757575;margin:0;padding:6px 8px}.block-editor-block-types-list>[role=presentation]{display:flex;flex-wrap:wrap;overflow:hidden}.block-editor-block-pattern-setup{align-items:flex-start;border-radius:2px;display:flex;flex-direction:column;justify-content:center;width:100%}.block-editor-block-pattern-setup.view-mode-grid{padding-top:4px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__toolbar{justify-content:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:2;column-gap:24px;display:block;padding:0 32px;width:100%}@media (min-width:1440px){.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:3}}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{cursor:pointer}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item{scroll-margin:5px 0}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-pattern-setup-list__item-title,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-pattern-setup-list__item-title{color:var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item{break-inside:avoid-column;margin-bottom:24px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-pattern-setup-list__item-title{cursor:pointer;font-size:12px;padding-top:8px;text-align:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__container{border:1px solid #ddd;border-radius:2px;min-height:100px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__content{width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{align-items:center;align-self:stretch;background-color:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:border-box;color:#1e1e1e;display:flex;flex-direction:row;height:60px;justify-content:space-between;margin:0;padding:16px;position:absolute;text-align:right;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__display-controls{display:flex}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions,.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__navigation{display:flex;width:calc(50% - 36px)}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions{justify-content:flex-end}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container{height:100%;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;transform-style:preserve-3d}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container *{box-sizing:border-box}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide{background-color:#fff;height:100%;margin:auto;padding:0;position:absolute;top:0;transition:transform .5s,z-index .5s;width:100%;z-index:100}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.active-slide{opacity:1;position:relative;z-index:102}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.previous-slide{transform:translateX(100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.next-slide{transform:translateX(-100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .block-list-appender{display:none}.block-editor-block-pattern-setup__carousel,.block-editor-block-pattern-setup__grid{width:100%}.block-editor-block-variation-transforms{padding:0 52px 16px 16px;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle{border:1px solid #757575;border-radius:2px;justify-content:right;min-height:30px;padding:6px 12px;position:relative;text-align:right;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle.components-dropdown-menu__toggle{padding-left:24px}.block-editor-block-variation-transforms .components-dropdown-menu__toggle:focus:not(:disabled){border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 calc(var(--wp-admin-border-width-focus) - 1px) var(--wp-admin-theme-color)}.block-editor-block-variation-transforms .components-dropdown-menu__toggle svg{height:100%;left:0;padding:0;position:absolute;top:0}.block-editor-block-variation-transforms__popover .components-popover__content{min-width:230px}.components-border-radius-control{margin-bottom:12px}.components-border-radius-control legend{margin-bottom:8px}.components-border-radius-control .components-border-radius-control__wrapper{align-items:flex-start;display:flex;justify-content:space-between}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control{flex-shrink:0;margin-bottom:0;margin-left:16px;width:calc(50% - 8px)}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control{flex:1;margin-left:12px}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control>div{align-items:center;display:flex;height:40px}.components-border-radius-control .components-border-radius-control__wrapper>span{flex:0 0 auto}.components-border-radius-control .components-border-radius-control__input-controls-wrapper{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-left:12px}.components-border-radius-control .component-border-radius-control__linked-button{display:flex;justify-content:center;margin-top:8px}.components-border-radius-control .component-border-radius-control__linked-button svg{margin-left:0}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-color-gradient-control__fieldset{min-width:0}.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){display:block}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px)}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.block-editor-panel-color-gradient-settings__dropdown-content .block-editor-color-gradient-control__panel{padding:16px;width:260px}.block-editor-panel-color-gradient-settings__color-indicator{background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.block-editor-tools-panel-color-gradient-settings__item{border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #ddd;max-width:100%;padding:0}.block-editor-tools-panel-color-gradient-settings__item:nth-child(1 of .block-editor-tools-panel-color-gradient-settings__item){border-top:1px solid #ddd;border-top-left-radius:2px;border-top-right-radius:2px;margin-top:24px}.block-editor-tools-panel-color-gradient-settings__item:nth-last-child(1 of .block-editor-tools-panel-color-gradient-settings__item){border-bottom-left-radius:2px;border-bottom-right-radius:2px}.block-editor-tools-panel-color-gradient-settings__item>div,.block-editor-tools-panel-color-gradient-settings__item>div>button{border-radius:inherit}.block-editor-tools-panel-color-gradient-settings__dropdown{display:block;padding:0}.block-editor-tools-panel-color-gradient-settings__dropdown>button{height:auto;padding-bottom:10px;padding-top:10px;text-align:right}.block-editor-tools-panel-color-gradient-settings__dropdown>button.is-open{background:#f0f0f0;color:var(--wp-admin-theme-color)}.block-editor-tools-panel-color-gradient-settings__dropdown .block-editor-panel-color-gradient-settings__color-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-panel-color-gradient-settings__dropdown{width:100%}.block-editor-panel-color-gradient-settings__dropdown .component-color-indicator{flex-shrink:0}.block-editor-date-format-picker{margin-bottom:16px}.block-editor-date-format-picker__custom-format-select-control__custom-option{border-top:1px solid #ddd}.block-editor-date-format-picker__custom-format-select-control__custom-option.has-hint{grid-template-columns:auto 30px}.block-editor-date-format-picker__custom-format-select-control__custom-option .components-custom-select-control__item-hint{grid-row:2;text-align:right}.block-editor-duotone-control__popover>.components-popover__content{padding:16px;width:260px}.block-editor-duotone-control__popover .components-menu-group__label{padding:0}.block-editor-duotone-control__popover .components-circular-option-picker__swatches{display:grid;gap:12px;grid-template-columns:repeat(6,28px);justify-content:space-between}.block-editor-duotone-control__unset-indicator{background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.components-font-appearance-control ul li{color:#1e1e1e;text-transform:capitalize}.block-editor-global-styles-effects-panel__toggle-icon{fill:currentColor}.block-editor-global-styles-effects-panel__shadow-popover-container{width:230px}.block-editor-global-styles-effects-panel__shadow-dropdown,.block-editor-global-styles-filters-panel__dropdown{display:block;padding:0}.block-editor-global-styles-effects-panel__shadow-dropdown button,.block-editor-global-styles-filters-panel__dropdown button{padding:8px;width:100%}.block-editor-global-styles-effects-panel__shadow-dropdown button.is-open,.block-editor-global-styles-filters-panel__dropdown button.is-open{background-color:#f0f0f0}.block-editor-global-styles-effects-panel__shadow-indicator-wrapper{align-items:center;display:flex;justify-content:center;overflow:hidden;padding:6px}.block-editor-global-styles-effects-panel__shadow-indicator{border:1px solid #e0e0e0;border-radius:2px;color:#2f2f2f;cursor:pointer;height:24px;padding:0;width:24px}.block-editor-global-styles-advanced-panel__custom-css-input textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace}.block-editor-global-styles-advanced-panel__custom-css-validation-wrapper{bottom:16px;left:24px;position:absolute}.block-editor-global-styles-advanced-panel__custom-css-validation-icon{fill:#cc1818}.block-editor-height-control{border:0;margin:0;padding:0}.block-editor-image-size-control{margin-bottom:1em}.block-editor-image-size-control .block-editor-image-size-control__height,.block-editor-image-size-control .block-editor-image-size-control__width{margin-bottom:1.115em}.block-editor-block-types-list__list-item{display:block;margin:0;padding:0;width:33.33%}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled) .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-block-synced-color)!important;filter:brightness(.95)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-block-synced-color)!important}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):after{background:var(--wp-block-synced-color)}.components-button.block-editor-block-types-list__item{align-items:stretch;background:transparent;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;flex-direction:column;font-size:13px;height:auto;justify-content:center;padding:8px;position:relative;transition:all .05s ease-in-out;width:100%;word-break:break-word}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-types-list__item{transition-delay:0s;transition-duration:0s}}.components-button.block-editor-block-types-list__item:disabled{cursor:default;opacity:.6}.components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-admin-theme-color)!important;filter:brightness(.95)}.components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-admin-theme-color)!important}.components-button.block-editor-block-types-list__item:not(:disabled):hover:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;pointer-events:none;position:absolute;right:0;top:0}.components-button.block-editor-block-types-list__item:not(:disabled):focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.block-editor-block-types-list__item:not(:disabled).is-active{background:#1e1e1e;color:#fff;outline:2px solid transparent;outline-offset:-2px}.block-editor-block-types-list__item-icon{border-radius:2px;color:#1e1e1e;padding:12px 20px;transition:all .05s ease-in-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__item-icon .block-editor-block-icon{margin-left:auto;margin-right:auto}.block-editor-block-types-list__item-icon svg{transition:all .15s ease-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon svg{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__list-item[draggable=true] .block-editor-block-types-list__item-icon{cursor:grab}.block-editor-block-types-list__item-title{font-size:12px;padding:4px 2px 8px}.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon:before{content:attr(aria-label)}.block-editor-inspector-controls-tabs__hint{align-items:flex-start;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;font-size:13px;margin:16px}.block-editor-inspector-controls-tabs__hint-content{margin:12px 12px 12px 0}.block-editor-inspector-controls-tabs__hint-dismiss{margin:4px 0 4px 4px}.block-editor-inspector-popover-header{margin-bottom:16px}[class].block-editor-inspector-popover-header__action{height:24px}[class].block-editor-inspector-popover-header__action.has-icon{min-width:24px;padding:0}[class].block-editor-inspector-popover-header__action:not(.has-icon){text-decoration:underline}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}@keyframes loadingpulse{0%{opacity:1}50%{opacity:0}to{opacity:1}}.block-editor-link-control{min-width:350px;position:relative}.components-popover__content .block-editor-link-control{max-width:350px;min-width:auto;width:90vw}.show-icon-labels .block-editor-link-control .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-link-control .components-button.has-icon:before{content:attr(aria-label)}.block-editor-link-control__search-input-wrapper{margin-bottom:8px;position:relative}.block-editor-link-control__search-input-container,.block-editor-link-control__search-input-wrapper{position:relative}.block-editor-link-control__field{margin:16px}.block-editor-link-control__field .components-base-control__label{color:#1e1e1e}.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:40px;line-height:normal;margin:0;padding:8px 16px 8px 40px;position:relative;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{font-size:13px;line-height:normal}}.block-editor-link-control__field input[type=text]:focus,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-link-control__field input[type=text]::-webkit-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__field input[type=text]::-moz-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}.has-actions .block-editor-link-control__field input[type=text],.has-actions .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{padding-left:16px}.block-editor-link-control__search-error{margin:-8px 16px 16px}.block-editor-link-control__search-enter{left:19px;position:absolute;top:3px}.block-editor-link-control__search-enter svg{position:relative;top:-2px}.block-editor-link-control__search-actions{padding:8px 16px 16px}.block-editor-link-control__search-results-wrapper{position:relative}.block-editor-link-control__search-results-wrapper:after,.block-editor-link-control__search-results-wrapper:before{content:"";display:block;left:16px;pointer-events:none;position:absolute;right:-1px;z-index:100}.block-editor-link-control__search-results-wrapper:before{bottom:auto;height:8px;top:0}.block-editor-link-control__search-results-wrapper:after{bottom:0;height:16px;top:auto}.block-editor-link-control__search-results{margin-top:-16px;max-height:200px;overflow-y:auto;padding:8px}.block-editor-link-control__search-results.is-loading{opacity:.2}.block-editor-link-control__search-item.components-button.components-menu-item__button{height:auto;text-align:right}.block-editor-link-control__search-item .components-menu-item__item{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.block-editor-link-control__search-item .components-menu-item__item mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .components-menu-item__shortcut{color:#757575;text-transform:capitalize;white-space:nowrap}.block-editor-link-control__search-item[aria-selected]{background:#f0f0f0}.block-editor-link-control__search-item.is-current{background:transparent;border:0;cursor:default;flex-direction:column;padding:16px;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-header{align-items:flex-start;display:block;flex-direction:row;gap:8px;margin-left:8px;overflow-wrap:break-word;white-space:pre-wrap}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{color:#757575;font-size:12px;line-height:1.1;word-break:break-all}.block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{display:flex;flex:1}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-header{align-items:center}.block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{word-break:break-all}.block-editor-link-control__search-item .block-editor-link-control__search-item-details{display:flex;flex-direction:column;gap:4px;justify-content:space-between}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-icon{background-color:#f0f0f0;border-radius:2px;height:32px;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon{align-items:center;display:flex;flex-shrink:0;justify-content:center;position:relative}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{width:16px}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-icon{max-height:32px;top:0;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-title{border-radius:2px;line-height:1.1}.block-editor-link-control__search-item .block-editor-link-control__search-item-title:focus-visible{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;text-decoration:none}.block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .block-editor-link-control__search-item-title span{font-weight:400}.block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{display:none}.block-editor-link-control__search-item-top{align-items:center;display:flex;flex-direction:row;width:100%}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{opacity:0}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon:before{animation:loadingpulse 1s linear infinite;animation-delay:.5s;background-color:#f0f0f0;border-radius:100%;bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.block-editor-link-control__loading{align-items:center;display:flex;margin:16px}.block-editor-link-control__loading .components-spinner{margin-top:0}.components-button+.block-editor-link-control__search-create{overflow:visible;padding:12px 16px}.components-button+.block-editor-link-control__search-create:before{content:"";display:block;position:absolute;right:0;top:-10px;width:100%}.block-editor-link-control__search-create{align-items:center}.block-editor-link-control__search-create .block-editor-link-control__search-item-title{margin-bottom:0}.block-editor-link-control__search-create .block-editor-link-control__search-item-icon{top:0}.block-editor-link-control__drawer{display:flex;flex-basis:100%;flex-direction:column;order:30}.block-editor-link-control__drawer-inner{display:flex;flex-basis:100%;flex-direction:column;position:relative}.block-editor-link-control__unlink{padding-left:16px;padding-right:16px}.block-editor-link-control__setting{flex:1;margin-bottom:0;padding:8px 24px 8px 0}.block-editor-link-control__setting .components-base-control__field{display:flex}.block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label{color:#1e1e1e}.block-editor-link-control__setting input{margin-right:0}.is-preview .block-editor-link-control__setting{padding:20px 0 8px 8px}.block-editor-link-control__tools{margin-top:-16px;padding:8px 8px 0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle{gap:0;padding-right:0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true]{color:#1e1e1e}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transform:rotate(-90deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transform:rotate(0deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control .block-editor-link-control__search-input .components-spinner{display:block}.block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner{bottom:auto;left:40px;position:absolute;right:auto;top:calc(50% - 8px)}.block-editor-link-control .block-editor-link-control__search-input-wrapper.has-actions .components-spinner{left:12px;top:calc(50% + 4px)}.block-editor-link-control__search-item-action{flex-shrink:0;margin-right:auto}.block-editor-list-view-tree{border-collapse:collapse;margin:0;padding:0;width:100%}.components-modal__content .block-editor-list-view-tree{margin:-12px -6px 0;width:calc(100% + 12px)}.block-editor-list-view-tree.is-dragging tbody{pointer-events:none}.block-editor-list-view-leaf{position:relative;transform:translateY(0)}.block-editor-list-view-leaf.is-draggable,.block-editor-list-view-leaf.is-draggable .block-editor-list-view-block-contents{cursor:grab}.block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{color:inherit}.block-editor-list-view-leaf .block-editor-list-view-block-select-button:hover{color:var(--wp-admin-theme-color)}.is-dragging-components-draggable .block-editor-list-view-leaf:not(.is-selected) .block-editor-list-view-block-select-button:hover{color:inherit}.block-editor-list-view-leaf.is-selected td{background:var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced td{background:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents .block-editor-block-icon,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:hover{color:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents,.block-editor-list-view-leaf.is-selected .components-button.has-icon{color:#fff}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-list-view-leaf.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-last-selected td:first-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-last-selected td:last-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.block-editor-list-view-leaf.is-synced-branch.is-branch-selected{background:rgba(var(--wp-block-synced-color--rgb),.04)}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:first-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:last-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{border-radius:0}.block-editor-list-view-leaf.is-displacement-normal{transform:translateY(0);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-normal{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-displacement-up{transform:translateY(-36px);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-up{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-displacement-down{transform:translateY(36px);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-down{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks{transform:translateY(calc(var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{transform:translateY(calc(-36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{transform:translateY(calc(36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-dragging{opacity:0;pointer-events:none;right:0;z-index:-9999}.block-editor-list-view-leaf .block-editor-list-view-block-contents{align-items:center;border-radius:2px;display:flex;height:auto;padding:6px 0 6px 4px;position:relative;text-align:right;white-space:nowrap;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-contents.is-dropping-before:before{border-top:4px solid var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:0;top:-2px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear}.components-modal__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{padding-left:0;padding-right:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents{box-shadow:none}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents:after{border-radius:inherit;bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:-29px;pointer-events:none;position:absolute;right:0;top:0;z-index:2}.block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{left:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view__menu{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);z-index:1}.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;opacity:1}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation-delay:0s;animation-duration:1ms}}.block-editor-list-view-leaf .block-editor-block-icon{flex:0 0 24px;margin-left:8px}.block-editor-list-view-leaf .block-editor-list-view-block__contents-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{padding-bottom:0;padding-top:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{line-height:0;vertical-align:middle;width:36px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell>*{opacity:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:hover>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:hover>*{opacity:1}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell .components-button.has-icon{min-width:24px;padding:0;width:24px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell{padding-left:4px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon{height:24px}.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell-alignment-wrapper{align-items:center;display:flex;flex-direction:column;height:100%}.block-editor-list-view-leaf .block-editor-block-mover-button{height:24px;position:relative;width:36px}.block-editor-list-view-leaf .block-editor-block-mover-button svg{height:24px;position:relative}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button{align-items:flex-end;margin-top:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button svg{bottom:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button{align-items:flex-start;margin-bottom:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg{top:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button:before{height:16px;left:0;min-width:100%;right:0}.block-editor-list-view-leaf .block-editor-inserter__toggle{background:#1e1e1e;color:#fff;height:24px;margin:6px 1px 6px 6px;min-width:24px}.block-editor-list-view-leaf .block-editor-inserter__toggle:active{color:#fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__label-wrapper{min-width:120px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title{flex:1;position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title .components-truncate{position:absolute;transform:translateY(-50%);width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor-wrapper{max-width:min(110px,40%);position:relative;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.1);border-radius:2px;box-sizing:border-box;left:0;max-width:100%;padding:2px 6px;position:absolute;transform:translateY(-50%)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.3)}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__lock{line-height:0}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__images{display:flex}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image{background-size:cover;border-radius:2px;height:18px;width:18px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px #fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:first-child){margin-right:-6px}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-list-view-draggable-chip{opacity:.8}.block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{display:flex}.block-editor-list-view__expander{cursor:pointer;height:24px;margin-right:4px;width:24px}.block-editor-list-view-leaf[aria-level] .block-editor-list-view__expander{margin-right:220px}.block-editor-list-view-leaf:not([aria-level="1"]) .block-editor-list-view__expander{margin-left:4px}.block-editor-list-view-leaf[aria-level="1"] .block-editor-list-view__expander{margin-right:0}.block-editor-list-view-leaf[aria-level="2"] .block-editor-list-view__expander{margin-right:24px}.block-editor-list-view-leaf[aria-level="3"] .block-editor-list-view__expander{margin-right:52px}.block-editor-list-view-leaf[aria-level="4"] .block-editor-list-view__expander{margin-right:80px}.block-editor-list-view-leaf[aria-level="5"] .block-editor-list-view__expander{margin-right:108px}.block-editor-list-view-leaf[aria-level="6"] .block-editor-list-view__expander{margin-right:136px}.block-editor-list-view-leaf[aria-level="7"] .block-editor-list-view__expander{margin-right:164px}.block-editor-list-view-leaf[aria-level="8"] .block-editor-list-view__expander{margin-right:192px}.block-editor-list-view-leaf .block-editor-list-view__expander{visibility:hidden}.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transform:rotate(-90deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transform:rotate(0deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-drop-indicator{pointer-events:none}.block-editor-list-view-drop-indicator .block-editor-list-view-drop-indicator__line{background:var(--wp-admin-theme-color);border-radius:4px;height:4px}.block-editor-list-view-drop-indicator--preview{pointer-events:none}.block-editor-list-view-drop-indicator--preview .components-popover__content{overflow:hidden!important}.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:4px;height:36px;overflow:hidden}.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line--darker{background:rgba(var(--wp-admin-theme-color--rgb),.09)}.block-editor-list-view-placeholder{height:36px;margin:0;padding:0}.list-view-appender .block-editor-inserter__toggle{background-color:#1e1e1e;border-radius:2px;color:#fff;height:24px;margin:8px 24px 0 0;min-width:24px;padding:0}.list-view-appender .block-editor-inserter__toggle:focus,.list-view-appender .block-editor-inserter__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.list-view-appender__description,.modal-open .block-editor-media-replace-flow__options{display:none}.block-editor-media-replace-flow__indicator{margin-right:4px}.block-editor-media-flow__url-input{margin-left:-8px;margin-right:-8px;padding:16px}.block-editor-media-flow__url-input.has-siblings{border-top:1px solid #1e1e1e;margin-top:8px;padding-bottom:8px}.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{display:block;margin-bottom:8px;top:16px}.block-editor-media-flow__url-input .block-editor-link-control{width:300px}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-url-input{margin:0;padding:0}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-info,.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title{max-width:200px;white-space:nowrap}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__tools{justify-content:flex-end;padding:16px var(--wp-admin-border-width-focus) var(--wp-admin-border-width-focus)}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current{padding:0;width:auto}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=text]{margin:0;width:100%}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{padding:8px 0 0}.block-editor-media-flow__error{max-width:255px;padding:0 20px 20px}.block-editor-media-flow__error .components-with-notices-ui{max-width:255px}.block-editor-media-flow__error .components-with-notices-ui .components-notice__content{word-wrap:break-word;overflow:hidden}.block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss{left:10px;position:absolute}.block-editor-multi-selection-inspector__card{align-items:flex-start;display:flex;padding:16px}.block-editor-multi-selection-inspector__card-content{flex-grow:1}.block-editor-multi-selection-inspector__card-title{font-weight:500;margin-bottom:5px}.block-editor-multi-selection-inspector__card-description{font-size:13px}.block-editor-multi-selection-inspector__card .block-editor-block-icon{height:24px;margin-left:10px;margin-right:-2px;padding:0 3px;width:36px}.block-editor-responsive-block-control{border-bottom:1px solid #ccc;margin-bottom:28px;padding-bottom:14px}.block-editor-responsive-block-control:last-child{border-bottom:0;padding-bottom:0}.block-editor-responsive-block-control__title{margin:0 -3px .6em 0}.block-editor-responsive-block-control__label{font-weight:600;margin-bottom:.6em;margin-right:-3px}.block-editor-responsive-block-control__inner{margin-right:-1px}.block-editor-responsive-block-control__toggle{margin-right:1px}.block-editor-responsive-block-control .components-base-control__help{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.components-popover.block-editor-rich-text__inline-format-toolbar{z-index:99998}.components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content{box-shadow:none;margin-bottom:8px;min-width:auto;outline:none;width:auto}.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar{border-radius:2px}.components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle,.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control{min-height:48px;min-width:48px;padding-left:12px;padding-right:12px}.block-editor-rich-text__inline-format-toolbar-group .components-dropdown-menu__toggle{justify-content:center}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon{width:auto}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon:after{content:attr(aria-label)}.block-editor-skip-to-selected-block{position:absolute;top:-9999em}.block-editor-skip-to-selected-block:focus{background:#f1f1f1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:var(--wp-admin-theme-color);display:block;font-size:14px;font-weight:600;height:auto;line-height:normal;outline:none;padding:15px 23px 14px;text-decoration:none;width:auto;z-index:100000}.block-editor-text-decoration-control{border:0;margin:0;padding:0}.block-editor-text-decoration-control .block-editor-text-decoration-control__buttons{display:flex;padding:4px 0}.block-editor-text-decoration-control .components-button.has-icon{height:32px;margin-left:4px;min-width:32px;padding:0}.block-editor-text-transform-control{border:0;margin:0;padding:0}.block-editor-text-transform-control .block-editor-text-transform-control__buttons{display:flex;padding:4px 0}.block-editor-text-transform-control .components-button.has-icon{height:32px;margin-left:4px;min-width:32px;padding:0}.block-editor-tool-selector__help{border-top:1px solid #ddd;color:#757575;margin:8px -8px -8px;min-width:280px;padding:16px}.block-editor-block-list__block .block-editor-url-input,.block-editor-url-input,.components-popover .block-editor-url-input{flex-grow:1;padding:1px;position:relative}.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{border:none;border-radius:0;font-size:16px;margin-left:0;margin-right:0;padding:8px 12px 8px 8px;width:100%}@media (min-width:600px){.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{font-size:13px;width:300px}}.block-editor-block-list__block .block-editor-url-input input[type=text]::-ms-clear,.block-editor-url-input input[type=text]::-ms-clear,.components-popover .block-editor-url-input input[type=text]::-ms-clear{display:none}.block-editor-block-list__block .block-editor-url-input.is-full-width,.block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,.block-editor-url-input.is-full-width,.block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-url-input.is-full-width__suggestions,.components-popover .block-editor-url-input.is-full-width,.components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.components-popover .block-editor-url-input.is-full-width__suggestions{width:100%}.block-editor-block-list__block .block-editor-url-input .components-spinner,.block-editor-url-input .components-spinner,.components-popover .block-editor-url-input .components-spinner{left:8px;margin:0;position:absolute;top:calc(50% - 8px)}.block-editor-url-input__input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.block-editor-url-input__input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-url-input__input[type=text]{font-size:13px;line-height:normal}}.block-editor-url-input__input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-url-input__input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-url-input__input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__suggestions{max-height:200px;overflow-y:auto;padding:4px 0;transition:all .15s ease-in-out;width:302px}@media (prefers-reduced-motion:reduce){.block-editor-url-input__suggestions{transition-delay:0s;transition-duration:0s}}.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:none}@media (min-width:600px){.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:grid}}.block-editor-url-input__suggestion{background:#fff;border:none;box-shadow:none;color:#757575;cursor:pointer;display:block;font-size:13px;height:auto;min-height:36px;text-align:right;width:100%}.block-editor-url-input__suggestion:hover{background:#ddd}.block-editor-url-input__suggestion.is-selected,.block-editor-url-input__suggestion:focus{background:var(--wp-admin-theme-color-darker-20);color:#fff;outline:none}.components-toolbar-group>.block-editor-url-input__button,.components-toolbar>.block-editor-url-input__button{position:inherit}.block-editor-url-input__button .block-editor-url-input__back{margin-left:4px;overflow:visible}.block-editor-url-input__button .block-editor-url-input__back:after{background:#ddd;content:"";display:block;height:24px;left:-1px;position:absolute;width:1px}.block-editor-url-input__button-modal{background:#fff;border:1px solid #ddd;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}.block-editor-url-input__button-modal-line{align-items:flex-start;display:flex;flex-direction:row;flex-grow:1;flex-shrink:1;min-width:0}.block-editor-url-input__button-modal-line .components-button{flex-shrink:0;height:36px;width:36px}.block-editor-url-popover__additional-controls{border-top:1px solid #ddd}.block-editor-url-popover__additional-controls>div[role=menu] .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary)>svg{box-shadow:none}.block-editor-url-popover__additional-controls div[role=menu]>.components-button{padding-right:12px}.block-editor-url-popover__row{display:flex}.block-editor-url-popover__row>:not(.block-editor-url-popover__settings-toggle){flex-grow:1}.block-editor-url-popover .components-button.has-icon{padding:3px}.block-editor-url-popover .components-button.has-icon>svg{border-radius:2px;height:30px;padding:5px;width:30px}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus{box-shadow:none}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-url-popover__settings-toggle{border-radius:0;border-right:1px solid #ddd;flex-shrink:0;margin-right:1px}.block-editor-url-popover__settings-toggle[aria-expanded=true] .dashicon{transform:rotate(-180deg)}.block-editor-url-popover__settings{border-top:1px solid #ddd;display:block;padding:16px}.block-editor-url-popover__link-editor,.block-editor-url-popover__link-viewer{display:flex}.block-editor-url-popover__link-viewer-url{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-url-popover__link-viewer-url.has-invalid-link{color:#cc1818}.html-anchor-control .components-external-link{display:block;margin-top:8px}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack{flex-direction:row-reverse}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack .components-h-stack{flex-direction:row}.block-editor-hooks__background__inspector-media-replace-container{position:relative}.block-editor-hooks__background__inspector-media-replace-container .components-drop-zone__content-icon{display:none}.block-editor-hooks__background__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:block;height:40px;width:100%}.block-editor-hooks__background__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container .block-editor-hooks__background__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-hooks__background__inspector-media-replace-container .components-dropdown{display:block}.block-editor-hooks__background__inspector-image-indicator-wrapper{background:#fff linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:block;flex:none;height:20px;width:20px}.block-editor-hooks__background__inspector-image-indicator-wrapper.has-image{background:#fff}.block-editor-hooks__background__inspector-image-indicator{background-size:cover;border-radius:50%;display:block;height:20px;position:relative;width:20px}.block-editor-hooks__background__inspector-image-indicator:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.border-block-support-panel .single-column{grid-column:span 1}.color-block-support-panel .block-editor-contrast-checker{grid-column:span 2;margin-top:16px;order:9999}.color-block-support-panel .block-editor-contrast-checker .components-notice__content{margin-left:0}.color-block-support-panel.color-block-support-panel .color-block-support-panel__inner-wrapper{row-gap:0}.color-block-support-panel .block-editor-tools-panel-color-gradient-settings__item.first{margin-top:0}.dimensions-block-support-panel .single-column{grid-column:span 1}.block-editor-hooks__layout-controls{display:flex;margin-bottom:8px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit{display:flex;margin-left:24px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit svg{margin:auto 8px 4px 0}.block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input{margin-bottom:0}.block-editor-hooks__layout-controls-reset{display:flex;justify-content:flex-end;margin-bottom:24px}.block-editor-hooks__layout-controls-helptext{color:#757575;font-size:12px;margin-bottom:16px}.block-editor-hooks__flex-layout-justification-controls,.block-editor-hooks__flex-layout-orientation-controls{margin-bottom:12px}.block-editor-hooks__flex-layout-justification-controls legend,.block-editor-hooks__flex-layout-orientation-controls legend{margin-bottom:8px}.block-editor-hooks__toggle-control.block-editor-hooks__toggle-control{margin-bottom:16px}.block-editor__padding-visualizer{border-color:var(--wp-admin-theme-color);border-style:solid;bottom:0;box-sizing:border-box;left:0;opacity:.5;pointer-events:none;position:absolute;right:0;top:0}.block-editor-hooks__position-selection__select-control .components-custom-select-control__hint{display:none}.block-editor-hooks__position-selection__select-control__option.has-hint{grid-template-columns:auto 30px;line-height:1.4;margin-bottom:0}.block-editor-hooks__position-selection__select-control__option .components-custom-select-control__item-hint{grid-row:2;text-align:right}.typography-block-support-panel .single-column{grid-column:span 1}.block-editor-block-toolbar{display:flex;flex-grow:1;overflow-x:auto;overflow-y:hidden;position:relative;transition:border-color .1s linear,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-toolbar{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-block-toolbar{overflow:inherit}}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group{background:none;border:0;border-left:1px solid #ddd;line-height:0;margin-bottom:-1px;margin-top:-1px}.block-editor-block-toolbar.is-synced .block-editor-block-switcher .components-button .block-editor-block-icon,.block-editor-block-toolbar.is-synced .components-toolbar-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-toolbar>:last-child,.block-editor-block-toolbar>:last-child .components-toolbar,.block-editor-block-toolbar>:last-child .components-toolbar-group{border-left:none}.block-editor-block-contextual-toolbar{background-color:#fff;display:block;flex-shrink:3;position:sticky;top:0;width:100%;z-index:31}.block-editor-block-contextual-toolbar.components-accessible-toolbar{border:none;border-bottom:1px solid #e0e0e0;border-radius:0}.block-editor-block-contextual-toolbar .block-editor-block-toolbar{overflow:auto;overflow-y:hidden}.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child:after{display:none}.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{border-left-color:#e0e0e0}.block-editor-block-contextual-toolbar>.block-editor-block-toolbar{flex-grow:0;width:auto}.block-editor-block-contextual-toolbar .block-editor-block-parent-selector{margin-bottom:-1px;margin-top:-1px;position:relative}.block-editor-block-contextual-toolbar .block-editor-block-parent-selector:after{bottom:16px;content:"·";font-size:16px;left:0;position:absolute}.block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin:0!important;width:24px!important}.block-editor-block-toolbar__block-controls .components-toolbar-group{padding:0}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar-group{display:flex;flex-wrap:nowrap}.block-editor-block-toolbar__slot{display:inline-block;line-height:0}@supports (position:sticky){.block-editor-block-toolbar__slot{display:inline-flex}}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon{width:auto}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.show-icon-labels .components-accessible-toolbar .components-toolbar-group>div:first-child:last-child>.components-button.has-icon{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.show-icon-labels .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{height:0!important;min-width:0!important;width:0!important}.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button{text-wrap:nowrap;border-bottom-left-radius:0;border-top-left-radius:0;padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button .block-editor-block-icon{width:0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{width:auto}@media (min-width:600px){.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{position:relative}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#1e1e1e;content:"";height:1px;margin-top:-.5px;position:absolute;right:50%;top:50%;transform:translate(50%);width:100%}}.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button{padding-left:8px;padding-right:8px}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-right:1px solid #ddd;margin-left:-6px;margin-right:6px;white-space:nowrap}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{width:auto}.show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{flex-shrink:1}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{margin-right:6px}.block-editor-inserter{background:none;border:none;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:0;padding:0}@media (min-width:782px){.block-editor-inserter{position:relative}}.block-editor-inserter__main-area{display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:hidden;position:relative}.block-editor-inserter__main-area.show-as-tabs{gap:0}@media (min-width:782px){.block-editor-inserter__main-area{width:350px}}.block-editor-inserter__popover.is-quick .components-popover__content{border:none;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);outline:none}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>*{border-left:1px solid #ccc;border-right:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:first-child{border-radius:2px 2px 0 0;border-top:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:last-child{border-bottom:1px solid #ccc;border-radius:0 0 2px 2px}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>.components-button{border:1px solid #1e1e1e}.block-editor-inserter__popover .block-editor-inserter__menu{margin:-12px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs div[role=tablist]{top:60px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{height:auto;overflow:visible}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__preview-container{display:none}.block-editor-inserter__toggle.components-button{align-items:center;border:none;cursor:pointer;display:inline-flex;outline:none;padding:0;transition:color .2s ease}@media (prefers-reduced-motion:reduce){.block-editor-inserter__toggle.components-button{transition-delay:0s;transition-duration:0s}}.block-editor-inserter__menu{height:100%;overflow:visible;position:relative}.block-editor-inserter__inline-elements{margin-top:-1px}.block-editor-inserter__menu.is-bottom:after{border-bottom-color:#fff}.components-popover.block-editor-inserter__popover{z-index:99999}.block-editor-inserter__search{padding:16px 16px 0}.block-editor-inserter__search .components-search-control__icon{left:20px}.block-editor-inserter__tabs{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.block-editor-inserter__tabs div[role=tablist]{border-bottom:1px solid #ddd}.block-editor-inserter__tabs div[role=tablist] button[role=tab]{flex-grow:1;margin-bottom:-1px}.block-editor-inserter__tabs div[role=tablist] button[role=tab][id$=reusable]{flex-grow:inherit;padding-left:16px;padding-right:16px}.block-editor-inserter__tabs div[role=tabpanel]{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.block-editor-inserter__no-tab-container{flex-grow:1;overflow-y:auto}.block-editor-inserter__panel-header{align-items:center;display:inline-flex;padding:16px 16px 0}.block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__panel-title,.block-editor-inserter__panel-title button{color:#757575;font-size:11px;font-weight:500;margin:0 0 0 12px;text-transform:uppercase}.block-editor-inserter__panel-dropdown select.components-select-control__input.components-select-control__input.components-select-control__input{height:36px;line-height:36px}.block-editor-inserter__panel-dropdown select{border:none}.block-editor-inserter__reusable-blocks-panel{position:relative;text-align:left}.block-editor-inserter__manage-reusable-blocks-container{margin:auto 16px 16px}.block-editor-inserter__manage-reusable-blocks{justify-content:center;width:100%}.block-editor-inserter__no-results{padding:32px;text-align:center}.block-editor-inserter__no-results-icon{fill:#949494}.block-editor-inserter__child-blocks{padding:0 16px}.block-editor-inserter__parent-block-header{align-items:center;display:flex}.block-editor-inserter__parent-block-header h2{font-size:13px}.block-editor-inserter__parent-block-header .block-editor-block-icon{margin-left:8px}.block-editor-inserter__preview-container__popover{top:16px!important}.block-editor-inserter__preview-container{display:none;max-height:calc(100% - 32px);overflow-y:hidden;padding:16px;width:280px}@media (min-width:782px){.block-editor-inserter__preview-container{display:block}}.block-editor-inserter__preview-container .block-editor-block-preview__container{height:100%}.block-editor-inserter__preview-container .block-editor-block-card{padding-bottom:4px;padding-left:0;padding-right:0}.block-editor-inserter__patterns-explore-button.components-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category .components-flex-item{filter:brightness(.95)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{height:100%}.block-editor-inserter__block-patterns-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category{padding-left:4px}.block-editor-inserter__patterns-category-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;position:absolute;right:0;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__patterns-category-dialog{display:block;right:100%;width:300px}}.block-editor-inserter__patterns-category-dialog .block-editor-block-patterns-list{flex-grow:1;height:100%;overflow-y:auto;padding:16px 24px}.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__list-item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__patterns-category-panel{display:flex;flex-direction:column;height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__patterns-category-panel{padding:0}}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-panel-header{padding:16px 24px}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-no-results{margin-top:24px}.block-editor-inserter__preview-content{align-items:center;background:#f0f0f0;display:grid;flex-grow:1;min-height:144px}.block-editor-inserter__preview-content-missing{align-items:center;background:#f0f0f0;border-radius:2px;color:#757575;display:flex;flex:1;justify-content:center;min-height:144px}.block-editor-inserter__tips{border-top:1px solid #ddd;flex-shrink:0;padding:16px;position:relative}.block-editor-inserter__quick-inserter{max-width:100%;width:100%}@media (min-width:782px){.block-editor-inserter__quick-inserter{width:350px}}.block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header{float:right;height:0;padding:0}.block-editor-inserter__quick-inserter.has-expand .block-editor-inserter__panel-content,.block-editor-inserter__quick-inserter.has-search .block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-preview__container{min-height:100px}.block-editor-inserter__quick-inserter-separator{border-top:1px solid #ddd}.block-editor-inserter__popover.is-quick>.components-popover__content{padding:0}.block-editor-inserter__quick-inserter-expand.components-button{background:#1e1e1e;border-radius:0;color:#fff;display:block;height:44px;width:100%}.block-editor-inserter__quick-inserter-expand.components-button:hover{color:#fff}.block-editor-inserter__quick-inserter-expand.components-button:active{color:#ccc}.block-editor-inserter__quick-inserter-expand.components-button.components-button:focus:not(:disabled){background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);box-shadow:none}.block-editor-block-patterns-explorer__sidebar{bottom:0;overflow-x:visible;overflow-y:scroll;padding:24px 32px 32px;position:absolute;right:0;top:72px;width:280px}.block-editor-block-patterns-explorer__sidebar__categories-list__item{display:block;height:48px;text-align:right;width:100%}.block-editor-block-patterns-explorer__search{margin-bottom:32px}.block-editor-block-patterns-explorer__search-results-count{padding-bottom:32px}.block-editor-block-patterns-explorer__list{margin-right:280px;padding:24px 0 32px}.block-editor-block-patterns-explorer__list .block-editor-patterns__sync-status-filter .components-input-control__container{width:380px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-gap:32px;display:grid;grid-template-columns:repeat(1,1fr);margin-bottom:16px}@media (min-width:1080px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(3,1fr)}}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{min-height:240px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-preview__container{height:inherit;max-height:800px;min-height:100px}.block-editor-inserter__patterns-category-panel-title{font-size:16.25px}.block-editor-inserter__media-tabs-container,.block-editor-inserter__media-tabs-container nav{height:100%}.block-editor-inserter__media-tabs-container .block-editor-inserter__media-library-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__media-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__media-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category{padding-left:4px}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{filter:brightness(.95)}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__media-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;overflow-y:auto;padding:16px 24px;position:absolute;right:0;scrollbar-gutter:stable both-edges;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__media-dialog{display:block;right:100%;width:300px}}.block-editor-inserter__media-dialog .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-dialog .block-editor-block-preview__container:hover{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-panel{display:flex;flex-direction:column;min-height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__media-panel{padding:0}}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-spinner{align-items:center;display:flex;flex:1;height:100%;justify-content:center}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control input[type=search].components-search-control__input{background:#fff}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control button.components-button{min-width:auto;padding-left:2px;padding-right:2px}.block-editor-inserter__media-list{margin-top:16px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-placeholder{min-height:100px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item[draggable=true] .block-editor-block-preview__container{cursor:grab}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview-options>button{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options{left:8px;position:absolute;top:8px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button{background:#fff;border-radius:2px;display:none}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button.is-opened,.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:focus{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:hover{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list .block-editor-inserter__media-list__item{height:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview{align-items:center;border-radius:2px;display:flex;overflow:hidden}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview>*{margin:0 auto;max-width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview .block-editor-inserter__media-list__item-preview-spinner{align-items:center;background:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item:focus .block-editor-inserter__media-list__item-preview{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list__item-preview-options__popover .components-menu-item__button .components-menu-item__item{min-width:auto}.block-editor-inserter__mobile-tab-navigation{height:100%;padding:16px}.block-editor-inserter__mobile-tab-navigation>*{height:100%}@media (min-width:600px){.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal{max-width:480px}}.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal p{margin:0}.block-editor-inserter__hint{margin:16px 16px 0}.reusable-blocks-menu-items__rename-hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;max-width:380px}.reusable-blocks-menu-items__rename-hint-content{margin:12px 12px 12px 0}.reusable-blocks-menu-items__rename-hint-dismiss{margin:4px 0 4px 4px}.components-menu-group .reusable-blocks-menu-items__rename-hint{margin:0}.block-editor-patterns__sync-status-filter .components-input-control__container select.components-select-control__input{height:40px}.spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range,.spacing-sizes-control .spacing-sizes-control__range-control{align-items:center;display:flex;flex:1;height:40px;margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range>.components-base-control__field,.spacing-sizes-control .spacing-sizes-control__range-control>.components-base-control__field{flex:1}.spacing-sizes-control .components-range-control__mark{background-color:#fff;height:4px;width:3px;z-index:1}.spacing-sizes-control .components-range-control__marks{margin-top:17px}.spacing-sizes-control .components-range-control__marks :first-child{display:none}.spacing-sizes-control .components-range-control__thumb-wrapper{z-index:3}.spacing-sizes-control__header{height:16px;margin-bottom:12px}.spacing-sizes-control__dropdown{height:24px}.spacing-sizes-control__custom-select-control,.spacing-sizes-control__custom-value-input{flex:1}.spacing-sizes-control__custom-toggle,.spacing-sizes-control__icon{flex:0 0 auto}.spacing-sizes-control__icon{margin-right:-4px}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-autocompleters__block{white-space:nowrap}.block-editor-autocompleters__block .block-editor-block-icon{margin-left:8px}.block-editor-autocompleters__link{white-space:nowrap}.block-editor-autocompleters__link .block-editor-block-icon{margin-left:8px}.block-editor-block-alignment-control__menu-group .components-menu-item__info{margin-top:0}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-inspector p:not(.components-base-control__help){margin-top:0}.block-editor-block-inspector h2,.block-editor-block-inspector h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.block-editor-block-inspector .components-base-control{margin-bottom:24px}.block-editor-block-inspector .components-base-control:last-child{margin-bottom:8px}.block-editor-block-inspector .components-focal-point-picker-control .components-base-control,.block-editor-block-inspector .components-query-controls .components-base-control,.block-editor-block-inspector .components-range-control .components-base-control{margin-bottom:0}.block-editor-block-inspector .components-panel__body{border:none;border-top:1px solid #e0e0e0;margin-top:-1px}.block-editor-block-inspector .block-editor-block-card{padding:16px}.block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{background:#fff;display:block;font-size:13px;padding:32px 16px;text-align:center}.block-editor-block-inspector__no-block-tools{border-top:1px solid #ddd}.block-editor-block-inspector__tab-item{flex:1 1 0px}.block-editor-block-list__insertion-point{bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__insertion-point-indicator{background:var(--wp-admin-theme-color);border-radius:2px;opacity:0;position:absolute;transform-origin:center;will-change:transform,opacity}.block-editor-block-list__insertion-point.is-vertical>.block-editor-block-list__insertion-point-indicator{height:4px;top:calc(50% - 2px);width:100%}.block-editor-block-list__insertion-point.is-horizontal>.block-editor-block-list__insertion-point-indicator{bottom:0;right:calc(50% - 2px);top:0;width:4px}.block-editor-block-list__insertion-point-inserter{display:none;justify-content:center;position:absolute;right:calc(50% - 12px);top:calc(50% - 12px);will-change:transform}@media (min-width:480px){.block-editor-block-list__insertion-point-inserter{display:flex}}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div{pointer-events:none}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div>*{pointer-events:all}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:var(--wp-admin-theme-color)}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:#1e1e1e}.block-editor-block-contextual-toolbar{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:inline-flex}.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{border-left-color:#1e1e1e}.block-editor-block-contextual-toolbar.is-fixed{border:none;border-bottom:1px solid #e0e0e0;border-radius:0;overflow:hidden}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar{overflow:auto;overflow-y:hidden}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-left-color:#e0e0e0}.block-editor-block-contextual-toolbar.is-collapsed:after{background:linear-gradient(270deg,#fff,transparent);content:"";height:100%;position:absolute;right:100%;width:48px}@media (min-width:782px){.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar{flex-grow:0;width:auto}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar:before{background-color:#ddd;content:"";height:24px;margin-left:0;margin-top:12px;position:relative;right:-2px;top:-1px;width:1px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{border:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar:before{background-color:#ddd;content:"";height:24px;margin-left:8px;margin-top:12px;position:relative;right:0;top:-1px;width:1px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{border:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{width:256px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar:before{background-color:#ddd;content:"";height:24px;margin-bottom:12px;margin-top:12px;position:relative;right:-8px;top:-1px;width:1px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{right:0}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-right:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-top:12px;position:relative;width:1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button{border:0;padding-left:6px;padding-right:6px;position:relative;top:-1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{bottom:4px;content:"·";font-size:16px;line-height:40px;position:absolute;right:46px}.block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{position:absolute;right:-57px;top:-1px}.show-icon-labels .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{margin-bottom:-1px;margin-right:-1px;margin-top:-1px;position:relative;right:auto;top:auto}}.block-editor-block-list__block-selection-button{background-color:#1e1e1e;border-radius:2px;display:inline-flex;font-size:13px;height:48px;padding:0 12px;z-index:22}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content{align-items:center;display:inline-flex;margin:auto}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content>.components-flex__item{margin-left:6px}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle{cursor:grab;height:24px;margin-right:-2px;min-width:24px;padding:0}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle svg{min-height:18px;min-width:18px}.block-editor-block-list__block-selection-button .block-editor-block-icon{color:#fff;font-size:13px;height:48px}.block-editor-block-list__block-selection-button .components-button{color:#fff;display:flex;height:48px;min-width:36px}.block-editor-block-list__block-selection-button .components-button:focus{border:none;box-shadow:none}.block-editor-block-list__block-selection-button .components-button:active,.block-editor-block-list__block-selection-button .components-button[aria-disabled=true]:hover{color:#fff}.block-editor-block-list__block-selection-button .block-selection-button_select-button.components-button{padding:0}.block-editor-block-list__block-selection-button .block-editor-block-mover{background:unset;border:none}@keyframes hide-during-dragging{to{position:fixed;transform:translate(-9999px,9999px)}}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-list__block-selection-button{margin-bottom:12px;margin-top:12px;pointer-events:all}.components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{visibility:hidden}.is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover{animation:hide-during-dragging 1ms linear forwards;opacity:0}.is-dragging-components-draggable .components-tooltip{display:none}.block-editor-block-lock-modal{z-index:1000001}@media (min-width:600px){.block-editor-block-lock-modal .components-modal__frame{max-width:480px}}.block-editor-block-lock-modal__checklist{margin:0}.block-editor-block-lock-modal__options-title{padding:12px 0}.block-editor-block-lock-modal__options-title .components-checkbox-control__label{font-weight:600}.block-editor-block-lock-modal__checklist-item{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:0;padding:12px 32px 12px 0}.block-editor-block-lock-modal__checklist-item .block-editor-block-lock-modal__lock-icon{fill:#1e1e1e;flex-shrink:0;margin-left:12px}.block-editor-block-lock-modal__checklist-item:hover{background-color:#f0f0f0;border-radius:2px}.block-editor-block-lock-modal__template-lock{border-top:1px solid #ddd;margin-top:16px;padding:12px 0}.block-editor-block-lock-modal__actions{margin-top:24px}.block-editor-block-lock-toolbar .components-button.has-icon{min-width:36px!important}.block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{margin-right:-6px!important}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{border-right:1px solid #1e1e1e;margin-left:-6px;margin-right:6px!important}.block-editor-block-breadcrumb{list-style:none;margin:0;padding:0}.block-editor-block-breadcrumb li{display:inline-flex;margin:0}.block-editor-block-breadcrumb li .block-editor-block-breadcrumb__separator{fill:currentColor;margin-left:-4px;margin-right:-4px;transform:scaleX(-1)}.block-editor-block-breadcrumb li:last-child .block-editor-block-breadcrumb__separator{display:none}.block-editor-block-breadcrumb__button.components-button{height:24px;line-height:24px;padding:0;position:relative}.block-editor-block-breadcrumb__button.components-button:hover:not(:disabled){box-shadow:none;text-decoration:underline}.block-editor-block-breadcrumb__button.components-button:focus{box-shadow:none}.block-editor-block-breadcrumb__button.components-button:focus:before{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:1px;outline:2px solid transparent;position:absolute;right:1px;top:1px}.block-editor-block-breadcrumb__current{cursor:default}.block-editor-block-breadcrumb__button.components-button,.block-editor-block-breadcrumb__current{color:#1e1e1e;font-size:inherit;padding:0 8px}.block-editor-block-card{align-items:flex-start;display:flex}.block-editor-block-card__content{flex-grow:1;margin-bottom:4px}.block-editor-block-card__title{font-weight:500}.block-editor-block-card__title.block-editor-block-card__title{line-height:24px;margin:0 0 4px}.block-editor-block-card__description{font-size:13px}.block-editor-block-card .block-editor-block-icon{flex:0 0 24px;height:24px;margin-left:12px;margin-right:0;width:24px}.block-editor-block-card.is-synced .block-editor-block-icon{color:var(--wp-block-synced-color)}.block-editor-block-compare{height:auto}.block-editor-block-compare__wrapper{display:flex;padding-bottom:16px}.block-editor-block-compare__wrapper>div{display:flex;flex-direction:column;justify-content:space-between;max-width:600px;min-width:200px;padding:0 0 0 16px;width:50%}.block-editor-block-compare__wrapper>div button{float:left}.block-editor-block-compare__wrapper .block-editor-block-compare__converted{border-right:1px solid #ddd;padding-left:0;padding-right:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html{border-bottom:1px solid #ddd;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:12px;line-height:1.7;padding-bottom:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span{background-color:#e6ffed;padding-bottom:3px;padding-top:3px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added{background-color:#acf2bd}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed{background-color:#cc1818}.block-editor-block-compare__wrapper .block-editor-block-compare__preview{padding:16px 0 0}.block-editor-block-compare__wrapper .block-editor-block-compare__preview p{font-size:12px;margin-top:0}.block-editor-block-compare__wrapper .block-editor-block-compare__action{margin-top:16px}.block-editor-block-compare__wrapper .block-editor-block-compare__heading{font-size:1em;font-weight:400;margin:.67em 0}.block-editor-block-draggable-chip-wrapper{position:absolute;right:0;top:-24px}.block-editor-block-draggable-chip{background-color:#1e1e1e;border-radius:2px;box-shadow:0 6px 8px rgba(0,0,0,.3);color:#fff;cursor:grabbing;display:inline-flex;height:48px;padding:0 13px;-webkit-user-select:none;user-select:none;width:max-content}.block-editor-block-draggable-chip svg{fill:currentColor}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content{justify-content:flex-start;margin:auto}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item{margin-left:6px}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item:last-child{margin-left:0}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content .block-editor-block-icon svg{min-height:18px;min-width:18px}.block-editor-block-draggable-chip .components-flex__item{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-block-mover__move-button-container{border:none;display:flex;padding:0}@media (min-width:600px){.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container{flex-direction:column}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>*{height:24px;min-width:0!important;width:100%}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>:before{height:calc(100% - 4px)}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{flex-shrink:0;top:5px}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{bottom:5px;flex-shrink:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{width:48px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container>*{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button{padding-left:0;padding-right:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{right:5px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{left:5px}}.block-editor-block-mover__drag-handle{cursor:grab}@media (min-width:600px){.block-editor-block-mover__drag-handle{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon.has-icon{padding-left:0;padding-right:0}}.components-button.block-editor-block-mover-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-mover-button:before{animation-delay:0s;animation-duration:1ms}}.components-button.block-editor-block-mover-button:focus,.components-button.block-editor-block-mover-button:focus:before,.components-button.block-editor-block-mover-button:focus:enabled{box-shadow:none;outline:none}.components-button.block-editor-block-mover-button:focus-visible:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.block-editor-block-navigation__container{min-width:280px}.block-editor-block-navigation__label{color:#757575;font-size:11px;font-weight:500;margin:0 0 12px;text-transform:uppercase}.block-editor-block-parent-selector{background:#fff;border-radius:2px}.block-editor-block-parent-selector .block-editor-block-parent-selector__button{border:1px solid #1e1e1e;border-radius:2px;height:48px;width:48px}.block-editor-block-patterns-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-block-patterns-list__list-item.is-placeholder{min-height:100px}.block-editor-block-patterns-list__list-item[draggable=true]{cursor:grab}.block-editor-block-patterns-list__item{height:100%}.block-editor-block-patterns-list__item .block-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;overflow:hidden}.block-editor-block-patterns-list__item .block-editor-block-patterns-list__item-title{flex-grow:1;text-align:right}.block-editor-block-patterns-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e}.block-editor-block-patterns-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) #1e1e1e;outline:2px solid transparent;outline-offset:2px}.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:focus .block-editor-block-preview__container,.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-block-synced-color),0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-details{align-items:center;margin-top:8px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper{height:24px;min-width:24px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper .block-editor-patterns__pattern-icon{fill:var(--wp-block-synced-color)}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination{border-top:1px solid #2f2f2f;justify-content:center;padding:4px}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:auto}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575;color:#fff}.show-icon-labels .block-editor-patterns__grid-pagination,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-next,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-previous{flex-direction:column}.show-icon-labels .block-editor-patterns__grid-pagination .components-button{width:auto}.show-icon-labels .block-editor-patterns__grid-pagination .components-button span{display:none}.show-icon-labels .block-editor-patterns__grid-pagination .components-button:before{content:attr(aria-label)}.components-popover.block-editor-block-popover{margin:0!important;pointer-events:none;position:absolute;z-index:31}.components-popover.block-editor-block-popover .components-popover__content{margin:0!important;min-width:auto;overflow-y:visible;width:max-content}.components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween,.block-editor-block-popover__drop-zone,.block-editor-block-list__block-side-inserter-popover) .components-popover__content *{pointer-events:all}.components-popover.block-editor-block-popover__inbetween,.components-popover.block-editor-block-popover__inbetween *{pointer-events:none}.components-popover.block-editor-block-popover__inbetween .is-with-inserter,.components-popover.block-editor-block-popover__inbetween .is-with-inserter *{pointer-events:all}.components-popover.block-editor-block-popover__drop-zone *{pointer-events:none}.components-popover.block-editor-block-popover__drop-zone .block-editor-block-popover__drop-zone-foreground{background-color:var(--wp-admin-theme-color);border-radius:2px;inset:0;position:absolute}.block-editor-block-preview__container{overflow:hidden;position:relative;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content{margin:0;min-height:auto;overflow:visible;right:0;text-align:initial;top:0;transform-origin:top right;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content .block-editor-block-list__insertion-point,.block-editor-block-preview__container .block-editor-block-preview__content .block-list-appender{display:none}.block-editor-block-preview__container:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.block-editor-block-rename-modal{z-index:1000001}.block-editor-block-settings-menu__popover .components-dropdown-menu__menu{padding:0}.block-editor-block-styles+.default-style-picker__default-switcher{margin-top:16px}.block-editor-block-styles__preview-panel{display:none;z-index:90}@media (min-width:782px){.block-editor-block-styles__preview-panel{display:block}}.block-editor-block-styles__preview-panel .block-editor-inserter__preview-container{left:auto;position:static;right:auto;top:auto}.block-editor-block-styles__preview-panel .block-editor-block-card__title.block-editor-block-card__title{margin:0}.block-editor-block-styles__preview-panel .block-editor-block-icon{display:none}.block-editor-block-styles__variants{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:inline-block;width:calc(50% - 4px)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:hover{box-shadow:inset 0 0 0 1px #ddd;color:var(--wp-admin-theme-color)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover{background-color:#1e1e1e;box-shadow:none}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active .block-editor-block-styles__item-text,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover .block-editor-block-styles__item-text{color:#fff}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.block-editor-block-styles__variants .block-editor-block-styles__item-text{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-block-styles__block-preview-container,.block-editor-block-styles__block-preview-container *{box-sizing:border-box!important}.block-editor-block-switcher{position:relative}.block-editor-block-switcher .components-button.components-dropdown-menu__toggle.has-icon.has-icon{min-width:36px}.block-editor-block-switcher__no-switcher-icon,.block-editor-block-switcher__toggle{position:relative}.components-button.block-editor-block-switcher__no-switcher-icon,.components-button.block-editor-block-switcher__toggle{display:block;height:48px;margin:0}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.components-button.block-editor-block-switcher__toggle .block-editor-block-icon{margin:auto}.block-editor-block-switcher__toggle-text{margin-right:8px}.show-icon-labels .block-editor-block-switcher__toggle-text{display:none}.show-icon-labels .block-editor-block-toolbar .block-editor-block-switcher .components-button.has-icon:after{font-size:14px}.components-button.block-editor-block-switcher__no-switcher-icon{display:flex}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin-left:auto;margin-right:auto;min-width:24px!important}.components-button.block-editor-block-switcher__no-switcher-icon:disabled{opacity:1}.components-button.block-editor-block-switcher__no-switcher-icon:disabled,.components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:#1e1e1e}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon{align-items:center;display:flex;height:100%;margin:0 auto;min-width:100%;position:relative}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before{bottom:8px;left:8px;right:8px;top:8px}.components-popover.block-editor-block-switcher__popover .components-popover__content{min-width:300px}.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container{position:absolute;right:calc(100% + 16px);top:-12px}.block-editor-block-switcher__preview__popover{display:none;overflow:hidden}.block-editor-block-switcher__preview__popover.components-popover{margin-top:11px}@media (min-width:782px){.block-editor-block-switcher__preview__popover{display:block}}.block-editor-block-switcher__preview__popover .components-popover__content{background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:none;outline:none;overflow:auto;width:300px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview{margin:16px 0;max-height:468px;overflow:hidden;padding:0 16px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview.is-pattern-list-preview{overflow:unset}.block-editor-block-switcher__preview-title{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;text-transform:uppercase}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon{min-width:36px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle{height:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{height:48px;width:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{padding:12px}.block-editor-block-switcher__preview-patterns-container{padding-bottom:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item{margin-top:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-preview__container{cursor:pointer}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item{border:1px solid transparent;border-radius:2px;height:100%;position:relative;transition:all .05s ease-in-out}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:focus,.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) #1e1e1e}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item .block-editor-block-switcher__preview-patterns-container-list__item-title{cursor:pointer;font-size:12px;padding:4px;text-align:center}.block-editor-block-types-list>[role=presentation]{display:flex;flex-wrap:wrap;overflow:hidden}.block-editor-block-pattern-setup{align-items:flex-start;border-radius:2px;display:flex;flex-direction:column;justify-content:center;width:100%}.block-editor-block-pattern-setup.view-mode-grid{padding-top:4px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__toolbar{justify-content:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:2;column-gap:24px;display:block;padding:0 32px;width:100%}@media (min-width:1440px){.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:3}}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{cursor:pointer}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-pattern-setup-list__item-title,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-pattern-setup-list__item-title{color:var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item{break-inside:avoid-column;margin-bottom:24px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-pattern-setup-list__item-title{cursor:pointer;font-size:12px;padding-top:8px;text-align:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__container{border:1px solid #ddd;border-radius:2px;min-height:100px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__content{width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{align-items:center;align-self:flex-end;background-color:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:border-box;color:#1e1e1e;display:flex;flex-direction:row;height:60px;justify-content:space-between;margin:0;padding:16px;position:absolute;text-align:right;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__display-controls{display:flex}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions,.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__navigation{display:flex;width:calc(50% - 36px)}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions{justify-content:flex-end}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container{height:100%;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;transform-style:preserve-3d}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container *{box-sizing:border-box}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide{background-color:#fff;height:100%;margin:auto;padding:0;position:absolute;top:0;transition:transform .5s,z-index .5s;width:100%;z-index:100}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.active-slide{opacity:1;position:relative;z-index:102}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.previous-slide{transform:translateX(100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.next-slide{transform:translateX(-100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .block-list-appender{display:none}.block-editor-block-pattern-setup__carousel,.block-editor-block-pattern-setup__grid{width:100%}.block-editor-block-variation-transforms{padding:0 52px 16px 16px;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle{border:1px solid #757575;border-radius:2px;justify-content:right;min-height:30px;padding:6px 12px;position:relative;text-align:right;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle.components-dropdown-menu__toggle{padding-left:24px}.block-editor-block-variation-transforms .components-dropdown-menu__toggle:focus:not(:disabled){border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 calc(var(--wp-admin-border-width-focus) - 1px) var(--wp-admin-theme-color)}.block-editor-block-variation-transforms .components-dropdown-menu__toggle svg{height:100%;left:0;padding:0;position:absolute;top:0}.block-editor-block-variation-transforms__popover .components-popover__content{min-width:230px}.components-border-radius-control{margin-bottom:12px}.components-border-radius-control legend{margin-bottom:8px}.components-border-radius-control .components-border-radius-control__wrapper{align-items:flex-start;display:flex;justify-content:space-between}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control{flex-shrink:0;margin-bottom:0;margin-left:16px;width:calc(50% - 8px)}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control{flex:1;margin-left:12px}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control>div{align-items:center;display:flex;height:40px}.components-border-radius-control .components-border-radius-control__wrapper>span{flex:0 0 auto}.components-border-radius-control .components-border-radius-control__input-controls-wrapper{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-left:12px}.components-border-radius-control .component-border-radius-control__linked-button{display:flex;justify-content:center;margin-top:8px}.components-border-radius-control .component-border-radius-control__linked-button svg{margin-left:0}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-color-gradient-control__fieldset{min-width:0}.block-editor-color-gradient-control__tabs .block-editor-color-gradient-control__panel{padding:16px}.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){display:block}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px);justify-content:space-between}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.block-editor-panel-color-gradient-settings__dropdown-content .block-editor-color-gradient-control__panel{padding:16px;width:260px}.block-editor-panel-color-gradient-settings__color-indicator{background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.block-editor-tools-panel-color-gradient-settings__item{border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #ddd;max-width:100%;padding:0}.block-editor-tools-panel-color-gradient-settings__item.first{border-top:1px solid #ddd;border-top-left-radius:2px;border-top-right-radius:2px;margin-top:24px}.block-editor-tools-panel-color-gradient-settings__item.last{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.block-editor-tools-panel-color-gradient-settings__item>div,.block-editor-tools-panel-color-gradient-settings__item>div>button{border-radius:inherit}.block-editor-tools-panel-color-gradient-settings__dropdown{display:block;padding:0}.block-editor-tools-panel-color-gradient-settings__dropdown>button{height:auto;padding-bottom:10px;padding-top:10px;text-align:right}.block-editor-tools-panel-color-gradient-settings__dropdown>button.is-open{background:#f0f0f0;color:var(--wp-admin-theme-color)}.block-editor-tools-panel-color-gradient-settings__dropdown .block-editor-panel-color-gradient-settings__color-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-panel-color-gradient-settings__dropdown{width:100%}.block-editor-panel-color-gradient-settings__dropdown .component-color-indicator{flex-shrink:0}.block-editor-contrast-checker>.components-notice{margin:0}.block-editor-date-format-picker{margin-bottom:16px}.block-editor-date-format-picker__custom-format-select-control__custom-option{border-top:1px solid #ddd}.block-editor-date-format-picker__custom-format-select-control__custom-option.has-hint{grid-template-columns:auto 30px}.block-editor-date-format-picker__custom-format-select-control__custom-option .components-custom-select-control__item-hint{grid-row:2;text-align:right}.block-editor-duotone-control__popover>.components-popover__content{padding:16px;width:280px}.block-editor-duotone-control__popover .components-menu-group__label{padding:0}.block-editor-duotone-control__popover .components-circular-option-picker__swatches{display:grid;gap:12px;grid-template-columns:repeat(6,28px);justify-content:space-between}.block-editor-duotone-control__description{font-size:12px;margin:16px 0}.block-editor-duotone-control__unset-indicator{background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.components-font-appearance-control ul li{color:#1e1e1e;text-transform:capitalize}.block-editor-global-styles-effects-panel__toggle-icon{fill:currentColor}.block-editor-global-styles-effects-panel__shadow-popover-container{width:230px}.block-editor-global-styles-effects-panel__shadow-dropdown,.block-editor-global-styles-filters-panel__dropdown{display:block;padding:0}.block-editor-global-styles-effects-panel__shadow-dropdown button,.block-editor-global-styles-filters-panel__dropdown button{padding:8px;width:100%}.block-editor-global-styles-effects-panel__shadow-dropdown button.is-open,.block-editor-global-styles-filters-panel__dropdown button.is-open{background-color:#f0f0f0}.block-editor-global-styles-effects-panel__shadow-indicator-wrapper{align-items:center;display:flex;justify-content:center;overflow:hidden;padding:6px}.block-editor-global-styles-effects-panel__shadow-indicator{border:1px solid #e0e0e0;border-radius:2px;color:#2f2f2f;cursor:pointer;height:24px;padding:0;width:24px}.block-editor-global-styles-advanced-panel__custom-css-input textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace}.block-editor-global-styles-advanced-panel__custom-css-validation-wrapper{bottom:16px;left:24px;position:absolute}.block-editor-global-styles-advanced-panel__custom-css-validation-icon{fill:#cc1818}.block-editor-height-control{border:0;margin:0;padding:0}.block-editor-image-size-control{margin-bottom:1em}.block-editor-image-size-control .block-editor-image-size-control__height,.block-editor-image-size-control .block-editor-image-size-control__width{margin-bottom:1.115em}.block-editor-block-types-list__list-item{display:block;margin:0;padding:0;width:33.33%}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled) .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-block-synced-color)!important;filter:brightness(.95)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-block-synced-color)!important}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):after{background:var(--wp-block-synced-color)}.components-button.block-editor-block-types-list__item{align-items:stretch;background:transparent;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;flex-direction:column;font-size:13px;height:auto;justify-content:center;padding:8px;position:relative;transition:all .05s ease-in-out;width:100%;word-break:break-word}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-types-list__item{transition-delay:0s;transition-duration:0s}}.components-button.block-editor-block-types-list__item:disabled{cursor:default;opacity:.6}.components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-admin-theme-color)!important;filter:brightness(.95)}.components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-admin-theme-color)!important}.components-button.block-editor-block-types-list__item:not(:disabled):hover:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;pointer-events:none;position:absolute;right:0;top:0}.components-button.block-editor-block-types-list__item:not(:disabled):focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.block-editor-block-types-list__item:not(:disabled).is-active{background:#1e1e1e;color:#fff;outline:2px solid transparent;outline-offset:-2px}.block-editor-block-types-list__item-icon{border-radius:2px;color:#1e1e1e;padding:12px 20px;transition:all .05s ease-in-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__item-icon .block-editor-block-icon{margin-left:auto;margin-right:auto}.block-editor-block-types-list__item-icon svg{transition:all .15s ease-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon svg{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__list-item[draggable=true] .block-editor-block-types-list__item-icon{cursor:grab}.block-editor-block-types-list__item-title{font-size:12px;padding:4px 2px 8px}.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon:before{content:attr(aria-label)}.block-editor-inspector-controls-tabs__hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;margin:16px}.block-editor-inspector-controls-tabs__hint-content{margin:12px 12px 12px 0}.block-editor-inspector-controls-tabs__hint-dismiss{margin:4px 0 4px 4px}.block-editor-inspector-popover-header{margin-bottom:16px}[class].block-editor-inspector-popover-header__action{height:24px}[class].block-editor-inspector-popover-header__action.has-icon{min-width:24px;padding:0}[class].block-editor-inspector-popover-header__action:not(.has-icon){text-decoration:underline}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}@keyframes loadingpulse{0%{opacity:1}50%{opacity:0}to{opacity:1}}.block-editor-link-control{min-width:350px;position:relative}.components-popover__content .block-editor-link-control{max-width:350px;min-width:auto;width:90vw}.show-icon-labels .block-editor-link-control .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-link-control .components-button.has-icon:before{content:attr(aria-label)}.block-editor-link-control__search-input-wrapper{margin-bottom:8px;position:relative}.block-editor-link-control__search-input-container,.block-editor-link-control__search-input-wrapper{position:relative}.block-editor-link-control__search-input.has-no-label .block-editor-url-input__input{flex:1}.block-editor-link-control__field{margin:16px}.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:40px;line-height:normal;margin:0;padding:8px 16px;position:relative;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{font-size:13px;line-height:normal}}.block-editor-link-control__field input[type=text]:focus,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-link-control__field input[type=text]::-webkit-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__field input[type=text]::-moz-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__search-error{margin:-8px 16px 16px}.block-editor-link-control__search-enter{left:19px;position:absolute;top:3px}.block-editor-link-control__search-enter svg{position:relative;top:-2px}.block-editor-link-control__search-actions{display:flex;flex-direction:row-reverse;gap:8px;justify-content:flex-start;order:20;padding:8px 16px 16px}.block-editor-link-control__search-results-wrapper{position:relative}.block-editor-link-control__search-results-wrapper:after,.block-editor-link-control__search-results-wrapper:before{content:"";display:block;left:16px;pointer-events:none;position:absolute;right:-1px;z-index:100}.block-editor-link-control__search-results-wrapper:before{bottom:auto;height:8px;top:0}.block-editor-link-control__search-results-wrapper:after{bottom:0;height:16px;top:auto}.block-editor-link-control__search-results{margin-top:-16px;max-height:200px;overflow-y:auto;padding:8px}.block-editor-link-control__search-results.is-loading{opacity:.2}.block-editor-link-control__search-item.components-button.components-menu-item__button{height:auto;text-align:right}.block-editor-link-control__search-item .components-menu-item__item{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.block-editor-link-control__search-item .components-menu-item__item mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .components-menu-item__shortcut{color:#757575;text-transform:capitalize;white-space:nowrap}.block-editor-link-control__search-item[aria-selected]{background:#f0f0f0}.block-editor-link-control__search-item.is-current{background:transparent;border:0;cursor:default;flex-direction:column;padding:16px;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-header{align-items:flex-start;display:block;flex-direction:row;margin-left:8px;overflow-wrap:break-word;white-space:pre-wrap}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{word-break:break-all}.block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{display:flex;flex:1}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-header{align-items:center}.block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{word-break:break-all}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon{display:flex;flex-shrink:0;justify-content:center;margin-left:8px;max-height:24px;position:relative;width:24px}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{width:16px}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-icon{max-height:32px;top:0;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-title{display:block;font-weight:500;line-height:24px;position:relative}.block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .block-editor-link-control__search-item-title span{font-weight:400}.block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{display:none}.block-editor-link-control__search-item .block-editor-link-control__search-item-description{margin:0;padding-top:12px}.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder{display:flex;flex-direction:column;height:28px;justify-content:space-around;margin-top:12px;padding-top:0}.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:after,.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:before{background-color:#f0f0f0;border-radius:3px;content:"";display:block;height:.7em;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-description .components-text{font-size:.9em}.block-editor-link-control__search-item .block-editor-link-control__search-item-image{background-color:#f0f0f0;border-radius:2px;display:flex;height:140px;justify-content:center;margin-top:12px;max-height:140px;overflow:hidden;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-image.is-placeholder{background-color:#f0f0f0;border-radius:3px}.block-editor-link-control__search-item .block-editor-link-control__search-item-image img{display:block;height:140px;max-height:140px;max-width:100%}.block-editor-link-control__search-item-top{align-items:center;display:flex;flex-direction:row;width:100%}.block-editor-link-control__search-item-bottom{transition:opacity 1.5s;width:100%}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:after,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:before,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-image{animation:loadingpulse 1s linear infinite;animation-delay:.5s}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{opacity:0}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon:before{animation:loadingpulse 1s linear infinite;animation-delay:.5s;background-color:#f0f0f0;border-radius:100%;bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.block-editor-link-control__loading{align-items:center;display:flex;margin:16px}.block-editor-link-control__loading .components-spinner{margin-top:0}.components-button+.block-editor-link-control__search-create{overflow:visible;padding:12px 16px}.components-button+.block-editor-link-control__search-create:before{content:"";display:block;position:absolute;right:0;top:-10px;width:100%}.block-editor-link-control__search-create{align-items:center}.block-editor-link-control__search-create .block-editor-link-control__search-item-title{margin-bottom:0}.block-editor-link-control__search-create .block-editor-link-control__search-item-icon{top:0}.block-editor-link-control__drawer{display:flex;flex-basis:100%;flex-direction:column;order:30}.block-editor-link-control__drawer-inner{display:flex;flex-basis:100%;flex-direction:column;position:relative}.block-editor-link-control__unlink{padding-left:16px;padding-right:16px}.block-editor-link-control__setting{flex:1;margin-bottom:0;padding:8px 24px 8px 0}.block-editor-link-control__setting .components-base-control__field{display:flex}.block-editor-link-control__setting input{margin-right:0}.is-preview .block-editor-link-control__setting{padding:20px 0 8px 8px}.block-editor-link-control__tools{margin-top:-16px;padding:8px 8px 0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle{gap:0;padding-right:0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true]{color:#1e1e1e}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transform:rotate(-90deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transform:rotate(0deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control .block-editor-link-control__search-input .components-spinner{display:block}.block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner{bottom:auto;left:40px;position:absolute;right:auto;top:calc(50% - 8px)}.block-editor-link-control .block-editor-link-control__search-input-wrapper.has-actions .components-spinner{left:12px;top:calc(50% + 4px)}.block-editor-link-control__search-item-action{flex-shrink:0;margin-right:auto}.block-editor-list-view-tree{border-collapse:collapse;margin:0;padding:0;width:100%}.components-modal__content .block-editor-list-view-tree{margin:-12px -6px 0;width:calc(100% + 12px)}.block-editor-list-view-leaf{position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{color:inherit}.block-editor-list-view-leaf .block-editor-list-view-block-select-button:hover{color:var(--wp-admin-theme-color)}.is-dragging-components-draggable .block-editor-list-view-leaf:not(.is-selected) .block-editor-list-view-block-select-button:hover{color:inherit}.block-editor-list-view-leaf.is-selected td{background:var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced td{background:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents .block-editor-block-icon,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:hover{color:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents,.block-editor-list-view-leaf.is-selected .components-button.has-icon{color:#fff}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-list-view-leaf.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-last-selected td:first-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-last-selected td:last-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.block-editor-list-view-leaf.is-synced-branch.is-branch-selected{background:rgba(var(--wp-block-synced-color--rgb),.04)}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:first-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:last-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:first-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:last-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{border-radius:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents{align-items:center;border-radius:2px;display:flex;height:auto;padding:6px 0 6px 4px;position:relative;text-align:right;white-space:nowrap;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-contents.is-dropping-before:before{border-top:4px solid var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:0;top:-2px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear}.components-modal__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{padding-left:0;padding-right:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus{box-shadow:none}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{border-radius:inherit;bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:-29px;pointer-events:none;position:absolute;right:0;top:0;z-index:2}.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{box-shadow:none}.block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{left:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);z-index:1}.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{box-shadow:none}.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;opacity:1}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation-delay:0s;animation-duration:1ms}}.block-editor-list-view-leaf .block-editor-block-icon{flex:0 0 24px;margin-left:8px}.block-editor-list-view-leaf .block-editor-list-view-block__contents-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{padding-bottom:0;padding-top:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{line-height:0;vertical-align:middle;width:36px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell>*{opacity:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:hover>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:hover>*{opacity:1}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell .components-button.has-icon{min-width:24px;padding:0;width:24px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell{padding-left:4px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon{height:24px}.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell-alignment-wrapper{align-items:center;display:flex;flex-direction:column;height:100%}.block-editor-list-view-leaf .block-editor-block-mover-button{height:24px;position:relative;width:36px}.block-editor-list-view-leaf .block-editor-block-mover-button svg{height:24px;position:relative}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button{align-items:flex-end;margin-top:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button svg{bottom:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button{align-items:flex-start;margin-bottom:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg{top:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button:before{height:16px;left:0;min-width:100%;right:0}.block-editor-list-view-leaf .block-editor-inserter__toggle{background:#1e1e1e;color:#fff;height:24px;margin:6px 1px 6px 6px;min-width:24px}.block-editor-list-view-leaf .block-editor-inserter__toggle:active{color:#fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__label-wrapper{min-width:120px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title{flex:1;position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title .components-truncate{position:absolute;transform:translateY(-50%);width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor-wrapper{max-width:min(110px,40%);position:relative;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.1);border-radius:2px;box-sizing:border-box;left:0;max-width:100%;padding:2px 6px;position:absolute;transform:translateY(-50%)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.3)}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__lock{line-height:0}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__images{display:flex}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image{background-size:cover;border-radius:2px;height:18px;width:18px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px #fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:first-child){margin-right:-6px}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{display:flex}.block-editor-list-view__expander{height:24px;margin-right:4px;width:24px}.block-editor-list-view-leaf[aria-level] .block-editor-list-view__expander{margin-right:220px}.block-editor-list-view-leaf:not([aria-level="1"]) .block-editor-list-view__expander{margin-left:4px}.block-editor-list-view-leaf[aria-level="1"] .block-editor-list-view__expander{margin-right:0}.block-editor-list-view-leaf[aria-level="2"] .block-editor-list-view__expander{margin-right:24px}.block-editor-list-view-leaf[aria-level="3"] .block-editor-list-view__expander{margin-right:52px}.block-editor-list-view-leaf[aria-level="4"] .block-editor-list-view__expander{margin-right:80px}.block-editor-list-view-leaf[aria-level="5"] .block-editor-list-view__expander{margin-right:108px}.block-editor-list-view-leaf[aria-level="6"] .block-editor-list-view__expander{margin-right:136px}.block-editor-list-view-leaf[aria-level="7"] .block-editor-list-view__expander{margin-right:164px}.block-editor-list-view-leaf[aria-level="8"] .block-editor-list-view__expander{margin-right:192px}.block-editor-list-view-leaf .block-editor-list-view__expander{visibility:hidden}.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transform:rotate(-90deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transform:rotate(0deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-drop-indicator{pointer-events:none}.block-editor-list-view-drop-indicator .block-editor-list-view-drop-indicator__line{background:var(--wp-admin-theme-color);border-radius:4px;height:4px}.block-editor-list-view-placeholder{height:36px;margin:0;padding:0}.list-view-appender .block-editor-inserter__toggle{background-color:#1e1e1e;border-radius:2px;color:#fff;height:24px;margin:8px 24px 0 0;min-width:24px;padding:0}.list-view-appender .block-editor-inserter__toggle:focus,.list-view-appender .block-editor-inserter__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.list-view-appender__description,.modal-open .block-editor-media-replace-flow__options{display:none}.block-editor-media-replace-flow__indicator{margin-right:4px}.block-editor-media-flow__url-input{margin-left:-8px;margin-right:-8px;padding:16px}.block-editor-media-flow__url-input.has-siblings{border-top:1px solid #1e1e1e;margin-top:8px}.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{display:block;margin-bottom:8px;top:16px}.block-editor-media-flow__url-input .block-editor-link-control{width:300px}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-url-input{margin:0;padding:0}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-info,.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title{max-width:200px;white-space:nowrap}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__tools{justify-content:flex-end;padding:16px var(--wp-admin-border-width-focus) var(--wp-admin-border-width-focus)}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current{padding:0;width:auto}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=text]{margin:0;width:100%}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{left:4px;top:0}.block-editor-media-flow__error{max-width:255px;padding:0 20px 20px}.block-editor-media-flow__error .components-with-notices-ui{max-width:255px}.block-editor-media-flow__error .components-with-notices-ui .components-notice__content{word-wrap:break-word;overflow:hidden}.block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss{left:10px;position:absolute}.block-editor-multi-selection-inspector__card{align-items:flex-start;display:flex;padding:16px}.block-editor-multi-selection-inspector__card-content{flex-grow:1}.block-editor-multi-selection-inspector__card-title{font-weight:500;margin-bottom:5px}.block-editor-multi-selection-inspector__card-description{font-size:13px}.block-editor-multi-selection-inspector__card .block-editor-block-icon{height:24px;margin-left:10px;margin-right:-2px;padding:0 3px;width:36px}.block-editor-responsive-block-control{border-bottom:1px solid #ccc;margin-bottom:28px;padding-bottom:14px}.block-editor-responsive-block-control:last-child{border-bottom:0;padding-bottom:0}.block-editor-responsive-block-control__title{margin:0 -3px .6em 0}.block-editor-responsive-block-control__label{font-weight:600;margin-bottom:.6em;margin-right:-3px}.block-editor-responsive-block-control__inner{margin-right:-1px}.block-editor-responsive-block-control__toggle{margin-right:1px}.block-editor-responsive-block-control .components-base-control__help{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.components-popover.block-editor-rich-text__inline-format-toolbar{z-index:99998}.components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content{box-shadow:none;margin-bottom:8px;min-width:auto;outline:none;width:auto}.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar{border-radius:2px}.components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle,.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control{min-height:48px;min-width:48px;padding-left:12px;padding-right:12px}.block-editor-rich-text__inline-format-toolbar-group .components-dropdown-menu__toggle{justify-content:center}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon{width:auto}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon:after{content:attr(aria-label)}.block-editor-skip-to-selected-block{position:absolute;top:-9999em}.block-editor-skip-to-selected-block:focus{background:#f1f1f1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:var(--wp-admin-theme-color);display:block;font-size:14px;font-weight:600;height:auto;line-height:normal;outline:none;padding:15px 23px 14px;text-decoration:none;width:auto;z-index:100000}.block-editor-text-decoration-control{border:0;margin:0;padding:0}.block-editor-text-decoration-control .block-editor-text-decoration-control__buttons{display:flex;padding:4px 0}.block-editor-text-decoration-control .components-button.has-icon{height:32px;margin-left:4px;min-width:32px;padding:0}.block-editor-text-transform-control{border:0;margin:0;padding:0}.block-editor-text-transform-control .block-editor-text-transform-control__buttons{display:flex;padding:4px 0}.block-editor-text-transform-control .components-button.has-icon{height:32px;margin-left:4px;min-width:32px;padding:0}.block-editor-tool-selector__help{border-top:1px solid #ddd;color:#757575;margin:8px -8px -8px;min-width:280px;padding:16px}.block-editor-block-list__block .block-editor-url-input,.block-editor-url-input,.components-popover .block-editor-url-input{flex-grow:1;padding:1px;position:relative}.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{border:none;border-radius:0;font-size:16px;margin-left:0;margin-right:0;padding:8px 12px 8px 8px;width:100%}@media (min-width:600px){.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{font-size:13px;width:300px}}.block-editor-block-list__block .block-editor-url-input input[type=text]::-ms-clear,.block-editor-url-input input[type=text]::-ms-clear,.components-popover .block-editor-url-input input[type=text]::-ms-clear{display:none}.block-editor-block-list__block .block-editor-url-input.is-full-width,.block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,.block-editor-url-input.is-full-width,.block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-url-input.is-full-width__suggestions,.components-popover .block-editor-url-input.is-full-width,.components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.components-popover .block-editor-url-input.is-full-width__suggestions{width:100%}.block-editor-block-list__block .block-editor-url-input .components-spinner,.block-editor-url-input .components-spinner,.components-popover .block-editor-url-input .components-spinner{left:8px;margin:0;position:absolute;top:calc(50% - 8px)}.block-editor-url-input__input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.block-editor-url-input__input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-url-input__input[type=text]{font-size:13px;line-height:normal}}.block-editor-url-input__input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-url-input__input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-url-input__input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__suggestions{max-height:200px;overflow-y:auto;padding:4px 0;transition:all .15s ease-in-out;width:302px}@media (prefers-reduced-motion:reduce){.block-editor-url-input__suggestions{transition-delay:0s;transition-duration:0s}}.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:none}@media (min-width:600px){.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:grid}}.block-editor-url-input__suggestion{background:#fff;border:none;box-shadow:none;color:#757575;cursor:pointer;display:block;font-size:13px;height:auto;min-height:36px;text-align:right;width:100%}.block-editor-url-input__suggestion:hover{background:#ddd}.block-editor-url-input__suggestion.is-selected,.block-editor-url-input__suggestion:focus{background:var(--wp-admin-theme-color-darker-20);color:#fff;outline:none}.components-toolbar-group>.block-editor-url-input__button,.components-toolbar>.block-editor-url-input__button{position:inherit}.block-editor-url-input__button .block-editor-url-input__back{margin-left:4px;overflow:visible}.block-editor-url-input__button .block-editor-url-input__back:after{background:#ddd;content:"";display:block;height:24px;left:-1px;position:absolute;width:1px}.block-editor-url-input__button-modal{background:#fff;border:1px solid #ddd;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}.block-editor-url-input__button-modal-line{align-items:flex-start;display:flex;flex-direction:row;flex-grow:1;flex-shrink:1;min-width:0}.block-editor-url-input__button-modal-line .components-button{flex-shrink:0;height:36px;width:36px}.block-editor-url-popover__additional-controls{border-top:1px solid #ddd}.block-editor-url-popover__additional-controls>div[role=menu] .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary)>svg{box-shadow:none}.block-editor-url-popover__additional-controls div[role=menu]>.components-button{padding-right:12px}.block-editor-url-popover__row{display:flex}.block-editor-url-popover__row>:not(.block-editor-url-popover__settings-toggle){flex-grow:1}.block-editor-url-popover .components-button.has-icon{padding:3px}.block-editor-url-popover .components-button.has-icon>svg{border-radius:2px;height:30px;padding:5px;width:30px}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus{box-shadow:none}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.block-editor-url-popover__settings-toggle{border-radius:0;border-right:1px solid #ddd;flex-shrink:0;margin-right:1px}.block-editor-url-popover__settings-toggle[aria-expanded=true] .dashicon{transform:rotate(-180deg)}.block-editor-url-popover__settings{border-top:1px solid #ddd;display:block;padding:16px}.block-editor-url-popover__link-editor,.block-editor-url-popover__link-viewer{display:flex}.block-editor-url-popover__link-viewer-url{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-url-popover__link-viewer-url.has-invalid-link{color:#cc1818}.html-anchor-control .components-external-link{display:block;margin-top:8px}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack{flex-direction:row-reverse}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack .components-h-stack{flex-direction:row}.block-editor-hooks__background__inspector-media-replace-container{position:relative}.block-editor-hooks__background__inspector-media-replace-container .components-drop-zone__content-icon{display:none}.block-editor-hooks__background__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:block;height:40px;width:100%}.block-editor-hooks__background__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container .block-editor-hooks__background__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-hooks__background__inspector-media-replace-container .components-dropdown{display:block}.block-editor-hooks__background__inspector-image-indicator-wrapper{background:#fff linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:block;flex:none;height:20px;width:20px}.block-editor-hooks__background__inspector-image-indicator-wrapper.has-image{background:#fff}.block-editor-hooks__background__inspector-image-indicator{background-size:cover;border-radius:50%;display:block;height:20px;position:relative;width:20px}.block-editor-hooks__background__inspector-image-indicator:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.border-block-support-panel .single-column{grid-column:span 1}.color-block-support-panel .block-editor-contrast-checker{grid-column:span 2;margin-top:16px;order:9999}.color-block-support-panel .block-editor-contrast-checker .components-notice__content{margin-left:0}.color-block-support-panel.color-block-support-panel .color-block-support-panel__inner-wrapper{row-gap:0}.color-block-support-panel .block-editor-tools-panel-color-gradient-settings__item.first{margin-top:0}.dimensions-block-support-panel .single-column{grid-column:span 1}.block-editor-hooks__layout-controls{display:flex;margin-bottom:8px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit{display:flex;margin-left:24px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit svg{margin:auto 8px 4px 0}.block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input{margin-bottom:0}.block-editor-hooks__layout-controls-reset{display:flex;justify-content:flex-end;margin-bottom:24px}.block-editor-hooks__layout-controls-helptext{color:#757575;font-size:12px;margin-bottom:16px}.block-editor-hooks__flex-layout-justification-controls,.block-editor-hooks__flex-layout-orientation-controls{margin-bottom:12px}.block-editor-hooks__flex-layout-justification-controls legend,.block-editor-hooks__flex-layout-orientation-controls legend{margin-bottom:8px}.block-editor-hooks__toggle-control.block-editor-hooks__toggle-control{margin-bottom:16px}.block-editor__padding-visualizer{border-color:var(--wp-admin-theme-color);border-style:solid;bottom:0;box-sizing:border-box;left:0;opacity:.5;pointer-events:none;position:absolute;right:0;top:0}.block-editor-hooks__position-selection__select-control .components-custom-select-control__hint{display:none}.block-editor-hooks__position-selection__select-control__option.has-hint{grid-template-columns:auto 30px;line-height:1.4;margin-bottom:0}.block-editor-hooks__position-selection__select-control__option .components-custom-select-control__item-hint{grid-row:2;text-align:right}.typography-block-support-panel .single-column{grid-column:span 1}.block-editor-block-toolbar{display:flex;flex-grow:1;overflow-x:auto;overflow-y:hidden;position:relative;transition:border-color .1s linear,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-toolbar{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-block-toolbar{overflow:inherit}}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group{background:none;border:0;border-left:1px solid #ddd;line-height:0;margin-bottom:-1px;margin-top:-1px}.block-editor-block-toolbar.is-synced .block-editor-block-switcher .components-button .block-editor-block-icon,.block-editor-block-toolbar.is-synced .components-toolbar-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-toolbar>:last-child,.block-editor-block-toolbar>:last-child .components-toolbar,.block-editor-block-toolbar>:last-child .components-toolbar-group{border-left:none}@media (min-width:782px){.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-left:none}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child:after{display:none}}.block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){margin-right:56px}.show-icon-labels .block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){margin-right:0}.block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin:0!important;width:24px!important}.block-editor-block-toolbar__block-controls .components-toolbar-group{padding:0}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar-group{display:flex;flex-wrap:nowrap}.block-editor-block-toolbar__slot{display:inline-block;line-height:0}@supports (position:sticky){.block-editor-block-toolbar__slot{display:inline-flex}}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon{width:auto}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.show-icon-labels .components-accessible-toolbar .components-toolbar-group>div:first-child:last-child>.components-button.has-icon{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.show-icon-labels .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{height:0!important;min-width:0!important;width:0!important}.show-icon-labels .block-editor-block-parent-selector__button{border-bottom-left-radius:0;border-top-left-radius:0}.show-icon-labels .block-editor-block-parent-selector__button .block-editor-block-icon{width:0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{width:auto}.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button{padding-left:8px;padding-right:8px}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-right:1px solid #1e1e1e;margin-left:-6px;margin-right:6px;white-space:nowrap}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-right-color:#e0e0e0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container{border-width:0}@media (min-width:600px){.show-icon-labels .is-up-button.is-up-button.is-up-button{border-radius:0;margin-left:0;order:1}.show-icon-labels .block-editor-block-mover__move-button-container{border-right:1px solid #1e1e1e}.show-icon-labels .is-down-button.is-down-button.is-down-button{order:2}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container:before{background:#ddd}}.show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{width:auto}.show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{flex-shrink:1}@media (min-width:782px){.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar,.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar-group{flex-shrink:0}}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{margin-right:6px}.block-editor-inserter{background:none;border:none;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:0;padding:0}@media (min-width:782px){.block-editor-inserter{position:relative}}.block-editor-inserter__main-area{display:flex;flex-direction:column;gap:16px;height:100%;position:relative}.block-editor-inserter__main-area.show-as-tabs{gap:0}@media (min-width:782px){.block-editor-inserter__main-area{width:350px}}.block-editor-inserter__popover.is-quick .components-popover__content{border:none;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);outline:none}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>*{border-left:1px solid #ccc;border-right:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:first-child{border-radius:2px 2px 0 0;border-top:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:last-child{border-bottom:1px solid #ccc;border-radius:0 0 2px 2px}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>.components-button{border:1px solid #1e1e1e}.block-editor-inserter__popover .block-editor-inserter__menu{margin:-12px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs{top:60px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{height:auto;overflow:visible}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__preview-container{display:none}.block-editor-inserter__toggle.components-button{align-items:center;border:none;cursor:pointer;display:inline-flex;outline:none;padding:0;transition:color .2s ease}@media (prefers-reduced-motion:reduce){.block-editor-inserter__toggle.components-button{transition-delay:0s;transition-duration:0s}}.block-editor-inserter__menu{height:100%;overflow:visible;position:relative}.block-editor-inserter__inline-elements{margin-top:-1px}.block-editor-inserter__menu.is-bottom:after{border-bottom-color:#fff}.components-popover.block-editor-inserter__popover{z-index:99999}.block-editor-inserter__search{padding:16px 16px 0}.block-editor-inserter__search .components-search-control__icon{left:20px}.block-editor-inserter__tabs{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.block-editor-inserter__tabs .components-tab-panel__tabs{border-bottom:1px solid #ddd}.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{flex-grow:1;margin-bottom:-1px}.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item[id$=reusable]{flex-grow:inherit;padding-left:16px;padding-right:16px}.block-editor-inserter__tabs .components-tab-panel__tab-content{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.block-editor-inserter__no-tab-container{flex-grow:1;overflow-y:auto}.block-editor-inserter__panel-header{align-items:center;display:inline-flex;padding:16px 16px 0}.block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__panel-title,.block-editor-inserter__panel-title button{color:#757575;font-size:11px;font-weight:500;margin:0 0 0 12px;text-transform:uppercase}.block-editor-inserter__panel-dropdown select.components-select-control__input.components-select-control__input.components-select-control__input{height:36px;line-height:36px}.block-editor-inserter__panel-dropdown select{border:none}.block-editor-inserter__reusable-blocks-panel{position:relative;text-align:left}.block-editor-inserter__manage-reusable-blocks-container{margin:auto 16px 16px}.block-editor-inserter__manage-reusable-blocks{justify-content:center;width:100%}.block-editor-inserter__no-results{padding:32px;text-align:center}.block-editor-inserter__no-results-icon{fill:#949494}.block-editor-inserter__child-blocks{padding:0 16px}.block-editor-inserter__parent-block-header{align-items:center;display:flex}.block-editor-inserter__parent-block-header h2{font-size:13px}.block-editor-inserter__parent-block-header .block-editor-block-icon{margin-left:8px}.block-editor-inserter__preview-container{background:#fff;border:1px solid #ddd;border-radius:2px;display:none;max-height:calc(100% - 32px);overflow-y:hidden;position:absolute;right:calc(100% + 16px);top:16px;width:300px}@media (min-width:782px){.block-editor-inserter__preview-container{display:block}}.block-editor-inserter__preview-container .block-editor-block-card{padding:16px}.block-editor-inserter__preview-container .block-editor-block-card__title{font-size:13px}.block-editor-inserter__patterns-explore-button.components-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category .components-flex-item{filter:brightness(.95)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-block-patterns-explorer__sidebar,.block-editor-block-patterns-explorer__sidebar nav,.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{height:100%}.block-editor-block-patterns-explorer__sidebar .block-editor-block-patterns__source-filter select.components-select-control__input,.block-editor-inserter__block-patterns-tabs-container .block-editor-block-patterns__source-filter select.components-select-control__input{height:40px}.block-editor-inserter__block-patterns-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__patterns-category-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;position:absolute;right:0;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__patterns-category-dialog{display:block;right:100%;width:300px}}.block-editor-inserter__patterns-category-dialog .block-editor-block-patterns-list{flex-grow:1;height:100%;overflow-y:auto;padding:16px 24px}.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__list-item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__patterns-category-panel{display:flex;flex-direction:column;height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__patterns-category-panel{padding:0}}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-panel-header{padding:16px 24px}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-no-results{margin-top:24px}.block-editor-inserter__preview-content{align-items:center;background:#f0f0f0;display:grid;flex-grow:1;min-height:144px}.block-editor-inserter__preview-content-missing{align-items:center;background:#f0f0f0;color:#757575;display:flex;flex:1;justify-content:center;min-height:144px}.block-editor-inserter__tips{border-top:1px solid #ddd;flex-shrink:0;padding:16px;position:relative}.block-editor-inserter__quick-inserter{max-width:100%;width:100%}@media (min-width:782px){.block-editor-inserter__quick-inserter{width:350px}}.block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header{float:right;height:0;padding:0}.block-editor-inserter__quick-inserter.has-expand .block-editor-inserter__panel-content,.block-editor-inserter__quick-inserter.has-search .block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-preview__container{min-height:100px}.block-editor-inserter__quick-inserter-separator{border-top:1px solid #ddd}.block-editor-inserter__popover.is-quick>.components-popover__content{padding:0}.block-editor-inserter__quick-inserter-expand.components-button{background:#1e1e1e;border-radius:0;color:#fff;display:block;height:44px;width:100%}.block-editor-inserter__quick-inserter-expand.components-button:hover{color:#fff}.block-editor-inserter__quick-inserter-expand.components-button:active{color:#ccc}.block-editor-inserter__quick-inserter-expand.components-button.components-button:focus:not(:disabled){background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);box-shadow:none}.block-editor-block-patterns-explorer__sidebar{bottom:0;overflow-x:visible;overflow-y:scroll;padding:24px 32px 32px;position:absolute;right:0;top:76px;width:280px}.block-editor-block-patterns-explorer__sidebar__categories-list__item{display:block;height:48px;text-align:right;width:100%}.block-editor-block-patterns-explorer__search{margin-bottom:32px}.block-editor-block-patterns-explorer__search-results-count{padding-bottom:32px}.block-editor-block-patterns-explorer__list{margin-right:280px;padding:24px 0 32px}.block-editor-block-patterns-explorer__list .block-editor-patterns__sync-status-filter .components-input-control__container{width:380px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-gap:32px;display:grid;grid-template-columns:repeat(1,1fr);margin-bottom:16px}@media (min-width:1080px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(3,1fr)}}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{min-height:240px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-preview__container{height:inherit;max-height:800px;min-height:100px}.block-editor-inserter__patterns-category-panel-title{font-size:16.25px}.block-editor-inserter__media-tabs-container,.block-editor-inserter__media-tabs-container nav{height:100%}.block-editor-inserter__media-tabs-container .block-editor-inserter__media-library-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__media-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__media-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__media-tabs__media-category.is-selected{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{filter:brightness(.95)}.block-editor-inserter__media-tabs__media-category.is-selected svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__media-tabs__media-category.is-selected:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__media-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;overflow-y:auto;padding:16px 24px;position:absolute;right:0;scrollbar-gutter:stable both-edges;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__media-dialog{display:block;right:100%;width:300px}}.block-editor-inserter__media-dialog .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-dialog .block-editor-block-preview__container:hover{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-panel{display:flex;flex-direction:column;min-height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__media-panel{padding:0}}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-spinner{align-items:center;display:flex;flex:1;height:100%;justify-content:center}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control input[type=search].components-search-control__input{background:#fff}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control button.components-button{min-width:auto;padding-left:2px;padding-right:2px}.block-editor-inserter__media-list{margin-top:16px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-placeholder{min-height:100px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item[draggable=true] .block-editor-block-preview__container{cursor:grab}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview-options>button{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options{left:8px;position:absolute;top:8px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button{background:#fff;border-radius:2px;display:none}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button.is-opened,.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:focus{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:hover{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list .block-editor-inserter__media-list__item{height:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview{align-items:center;border-radius:2px;display:flex;overflow:hidden}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview>*{margin:0 auto;max-width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview .block-editor-inserter__media-list__item-preview-spinner{align-items:center;background:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item:focus .block-editor-inserter__media-list__item-preview{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list__item-preview-options__popover .components-menu-item__button .components-menu-item__item{min-width:auto}.block-editor-inserter__mobile-tab-navigation{height:100%;padding:16px}.block-editor-inserter__mobile-tab-navigation>*{height:100%}@media (min-width:600px){.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal{max-width:480px}}.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal p{margin:0}.block-editor-inserter__hint{margin:16px 16px 0}.reusable-blocks-menu-items__rename-hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;max-width:380px}.reusable-blocks-menu-items__rename-hint-content{margin:12px 12px 12px 0}.reusable-blocks-menu-items__rename-hint-dismiss{margin:4px 0 4px 4px}.components-menu-group .reusable-blocks-menu-items__rename-hint{margin:0}.block-editor-patterns__sync-status-filter .components-input-control__container select.components-select-control__input{height:40px}.block-editor-post-preview__dropdown{padding:0}.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize{padding-right:40px}.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon{padding-right:8px}.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:first-child{padding-bottom:8px}.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:last-child{margin-bottom:0}.block-editor-post-preview__dropdown-content .components-menu-group+.components-menu-group{padding:8px}@media (min-width:600px){.edit-post-header__settings .editor-post-preview,.edit-site-header-edit-mode__actions .editor-post-preview{display:none}.edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{transition:opacity .1s linear}}@media (min-width:600px) and (prefers-reduced-motion:reduce){.edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-saved-state{opacity:0}.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle.is-opened{opacity:1}}.spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range,.spacing-sizes-control .spacing-sizes-control__range-control{align-items:center;display:flex;flex:1;height:40px;margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range>.components-base-control__field,.spacing-sizes-control .spacing-sizes-control__range-control>.components-base-control__field{flex:1}.spacing-sizes-control .components-range-control__mark{background-color:#fff;height:4px;width:3px;z-index:1}.spacing-sizes-control .components-range-control__marks{margin-top:17px}.spacing-sizes-control .components-range-control__marks :first-child{display:none}.spacing-sizes-control .components-range-control__thumb-wrapper{z-index:3}.spacing-sizes-control__header{height:16px;margin-bottom:12px}.spacing-sizes-control__dropdown{height:24px}.spacing-sizes-control__custom-select-control,.spacing-sizes-control__custom-value-input{flex:1}.spacing-sizes-control__custom-toggle,.spacing-sizes-control__icon{flex:0 0 auto}.spacing-sizes-control__icon{margin-right:-4px}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.css index dbbce29c36..97d6e6d425 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.css @@ -34,20 +34,6 @@ margin-top:0; } -iframe[name=editor-canvas]{ - display:block; - height:100%; - width:100%; -} - -iframe[name=editor-canvas]:not(.has-history){ - background-color:#fff; -} - -iframe[name=editor-canvas].has-history{ - padding:48px 48px 0; -} - .block-editor-block-icon{ align-items:center; display:flex; @@ -92,6 +78,9 @@ iframe[name=editor-canvas].has-history{ border-top:1px solid #e0e0e0; margin-top:-1px; } +.block-editor-block-inspector .block-editor-block-card{ + padding:16px; +} .block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{ background:#fff; @@ -176,6 +165,140 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{ background:#1e1e1e; } +.block-editor-block-contextual-toolbar{ + background-color:#fff; + border:1px solid #1e1e1e; + border-radius:2px; + display:inline-flex; +} +.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{ + border-right-color:#1e1e1e; +} +.block-editor-block-contextual-toolbar.is-fixed{ + border:none; + border-bottom:1px solid #e0e0e0; + border-radius:0; + overflow:hidden; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar{ + overflow:auto; + overflow-y:hidden; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-right-color:#e0e0e0; +} +.block-editor-block-contextual-toolbar.is-collapsed:after{ + background:linear-gradient(90deg, #fff, transparent); + content:""; + height:100%; + left:100%; + position:absolute; + width:48px; +} +@media (min-width:782px){ + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar{ + flex-grow:0; + width:auto; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + left:-2px; + margin-right:0; + margin-top:12px; + position:relative; + top:-1px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{ + border:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon svg{ + display:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon:after{ + content:attr(aria-label); + font-size:12px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + left:0; + margin-right:8px; + margin-top:12px; + position:relative; + top:-1px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{ + border:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{ + width:256px; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon svg{ + display:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon:after{ + content:attr(aria-label); + font-size:12px; + } + .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar:before{ + background-color:#ddd; + content:""; + height:24px; + left:-8px; + margin-bottom:12px; + margin-top:12px; + position:relative; + top:-1px; + width:1px; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{ + left:0; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{ + border-left:none; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover:before{ + background-color:#ddd; + content:""; + margin-bottom:12px; + margin-top:12px; + position:relative; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ + border:0; + padding-left:6px; + padding-right:6px; + position:relative; + top:-1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{ + bottom:4px; + content:"·"; + font-size:16px; + left:46px; + line-height:40px; + position:absolute; + } + .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{ + left:-57px; + position:absolute; + top:-1px; + } + .show-icon-labels .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{ + left:auto; + margin-bottom:-1px; + margin-left:-1px; + margin-top:-1px; + position:relative; + top:auto; + } +} .block-editor-block-list__block-selection-button{ background-color:#1e1e1e; border-radius:2px; @@ -241,25 +364,6 @@ iframe[name=editor-canvas].has-history{ margin-top:12px; pointer-events:all; } -.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar{ - border:1px solid #1e1e1e; - border-radius:2px; - overflow:visible; - position:static; - width:auto; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{ - margin-left:56px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{ - margin-left:0; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar{ - overflow:visible; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar-group{ - border-right-color:#1e1e1e; -} .components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{ visibility:hidden; } @@ -267,31 +371,6 @@ iframe[name=editor-canvas].has-history{ animation:hide-during-dragging 1ms linear forwards; opacity:0; } -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{ - left:-57px; - position:absolute; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector:before{ - content:""; -} -.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - background-color:#fff; - border:1px solid #1e1e1e; - padding-left:6px; - padding-right:6px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - padding-left:12px; - padding-right:12px; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{ - left:auto; - margin-left:-1px; - position:relative; -} -.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-mover__move-button-container,.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar__block-controls .block-editor-block-mover{ - border-left:1px solid #1e1e1e; -} .is-dragging-components-draggable .components-tooltip{ display:none; @@ -416,28 +495,24 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-card{ align-items:flex-start; - color:#1e1e1e; display:flex; - padding:16px; } .block-editor-block-card__content{ flex-grow:1; + margin-bottom:4px; } .block-editor-block-card__title{ font-weight:500; } .block-editor-block-card__title.block-editor-block-card__title{ - font-size:13px; line-height:24px; - margin:0; + margin:0 0 4px; } .block-editor-block-card__description{ - display:block; font-size:13px; - margin-top:4px; } .block-editor-block-card .block-editor-block-icon{ @@ -526,7 +601,6 @@ iframe[name=editor-canvas].has-history{ display:inline-flex; height:48px; padding:0 13px; - position:relative; -webkit-user-select:none; user-select:none; width:max-content; @@ -553,35 +627,6 @@ iframe[name=editor-canvas].has-history{ font-size:13px; } -.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{ - align-items:center; - background-color:transparent; - bottom:0; - display:flex; - justify-content:center; - left:0; - opacity:0; - position:absolute; - right:0; - top:0; - transition:all .1s linear .1s; -} -.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled .block-editor-block-draggable-chip__disabled-icon{ - background:transparent linear-gradient(-45deg, transparent 47.5%, #fff 0, #fff 52.5%, transparent 0); - border-radius:50%; - box-shadow:inset 0 0 0 1.5px #fff; - display:inline-block; - height:20px; - padding:0; - width:20px; -} - -.block-draggable-invalid-drag-token .block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{ - background-color:#757575; - box-shadow:0 4px 8px rgba(0,0,0,.2); - opacity:1; -} - .block-editor-block-mover__move-button-container{ border:none; display:flex; @@ -665,7 +710,7 @@ iframe[name=editor-canvas].has-history{ outline:none; } .components-button.block-editor-block-mover-button:focus-visible:before{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } @@ -681,6 +726,17 @@ iframe[name=editor-canvas].has-history{ text-transform:uppercase; } +.block-editor-block-parent-selector{ + background:#fff; + border-radius:2px; +} +.block-editor-block-parent-selector .block-editor-block-parent-selector__button{ + border:1px solid #1e1e1e; + border-radius:2px; + height:48px; + width:48px; +} + .block-editor-block-patterns-list__list-item{ cursor:pointer; margin-bottom:24px; @@ -695,8 +751,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-patterns-list__item{ height:100%; - scroll-margin-bottom:56px; - scroll-margin-top:24px; } .block-editor-block-patterns-list__item .block-editor-block-preview__container{ align-items:center; @@ -844,6 +898,15 @@ iframe[name=editor-canvas].has-history{ display:block; } } +.block-editor-block-styles__preview-panel .block-editor-inserter__preview-container{ + left:auto; + position:static; + right:auto; + top:auto; +} +.block-editor-block-styles__preview-panel .block-editor-block-card__title.block-editor-block-card__title{ + margin:0; +} .block-editor-block-styles__preview-panel .block-editor-block-icon{ display:none; } @@ -873,7 +936,6 @@ iframe[name=editor-canvas].has-history{ } .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{ box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - outline:2px solid transparent; } .block-editor-block-styles__variants .block-editor-block-styles__item-text{ text-align:start; @@ -913,6 +975,10 @@ iframe[name=editor-canvas].has-history{ display:none; } +.show-icon-labels .block-editor-block-toolbar .block-editor-block-switcher .components-button.has-icon:after{ + font-size:14px; +} + .components-button.block-editor-block-switcher__no-switcher-icon{ display:flex; } @@ -1037,12 +1103,6 @@ iframe[name=editor-canvas].has-history{ text-align:center; } -.block-editor-block-switcher__no-transforms{ - color:#757575; - margin:0; - padding:6px 8px; -} - .block-editor-block-types-list>[role=presentation]{ display:flex; flex-wrap:wrap; @@ -1078,9 +1138,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{ cursor:pointer; } -.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item{ - scroll-margin:5px 0; -} .block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{ box-shadow:0 0 0 2px var(--wp-admin-theme-color); } @@ -1112,7 +1169,7 @@ iframe[name=editor-canvas].has-history{ } .block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{ align-items:center; - align-self:stretch; + align-self:flex-end; background-color:#fff; border-top:1px solid #ddd; bottom:0; @@ -1274,6 +1331,10 @@ iframe[name=editor-canvas].has-history{ min-width:0; } +.block-editor-color-gradient-control__tabs .block-editor-color-gradient-control__panel{ + padding:16px; +} + .block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){ display:block; } @@ -1282,6 +1343,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{ display:grid; grid-template-columns:repeat(6, 28px); + justify-content:space-between; } } .block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{ @@ -1303,13 +1365,13 @@ iframe[name=editor-canvas].has-history{ max-width:100%; padding:0; } -.block-editor-tools-panel-color-gradient-settings__item:nth-child(1 of .block-editor-tools-panel-color-gradient-settings__item){ +.block-editor-tools-panel-color-gradient-settings__item.first{ border-top:1px solid #ddd; border-top-left-radius:2px; border-top-right-radius:2px; margin-top:24px; } -.block-editor-tools-panel-color-gradient-settings__item:nth-last-child(1 of .block-editor-tools-panel-color-gradient-settings__item){ +.block-editor-tools-panel-color-gradient-settings__item.last{ border-bottom-left-radius:2px; border-bottom-right-radius:2px; } @@ -1344,6 +1406,10 @@ iframe[name=editor-canvas].has-history{ flex-shrink:0; } +.block-editor-contrast-checker>.components-notice{ + margin:0; +} + .block-editor-date-format-picker{ margin-bottom:16px; } @@ -1361,7 +1427,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-duotone-control__popover>.components-popover__content{ padding:16px; - width:260px; + width:280px; } .block-editor-duotone-control__popover .components-menu-group__label{ padding:0; @@ -1373,6 +1439,11 @@ iframe[name=editor-canvas].has-history{ justify-content:space-between; } +.block-editor-duotone-control__description{ + font-size:12px; + margin:16px 0; +} + .block-editor-duotone-control__unset-indicator{ background:linear-gradient(-45deg, transparent 48%, #ddd 0, #ddd 52%, transparent 0); } @@ -1558,21 +1629,20 @@ iframe[name=editor-canvas].has-history{ padding:4px 2px 8px; } -.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon svg{ +.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon svg{ display:none; } -.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon:before{ +.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon:before{ content:attr(aria-label); } .block-editor-inspector-controls-tabs__hint{ - align-items:flex-start; + align-items:top; background:#f0f0f0; border-radius:2px; color:#1e1e1e; display:flex; flex-direction:row; - font-size:13px; margin:16px; } @@ -1651,12 +1721,13 @@ iframe[name=editor-canvas].has-history{ position:relative; } +.block-editor-link-control__search-input.has-no-label .block-editor-url-input__input{ + flex:1; +} + .block-editor-link-control__field{ margin:16px; } -.block-editor-link-control__field .components-base-control__label{ - color:#1e1e1e; -} .block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{ border:1px solid #949494; border-radius:2px; @@ -1667,7 +1738,7 @@ iframe[name=editor-canvas].has-history{ height:40px; line-height:normal; margin:0; - padding:8px 40px 8px 16px; + padding:8px 16px; position:relative; transition:box-shadow .1s linear; width:100%; @@ -1699,9 +1770,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{ color:rgba(30,30,30,.62); } -.has-actions .block-editor-link-control__field input[type=text],.has-actions .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{ - padding-right:16px; -} .block-editor-link-control__search-error{ margin:-8px 16px 16px; @@ -1718,6 +1786,11 @@ iframe[name=editor-canvas].has-history{ } .block-editor-link-control__search-actions{ + display:flex; + flex-direction:row-reverse; + gap:8px; + justify-content:flex-start; + order:20; padding:8px 16px 16px; } @@ -1789,15 +1862,11 @@ iframe[name=editor-canvas].has-history{ align-items:flex-start; display:block; flex-direction:row; - gap:8px; margin-right:8px; overflow-wrap:break-word; white-space:pre-wrap; } .block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{ - color:#757575; - font-size:12px; - line-height:1.1; word-break:break-all; } .block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{ @@ -1810,24 +1879,14 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{ word-break:break-all; } -.block-editor-link-control__search-item .block-editor-link-control__search-item-details{ - display:flex; - flex-direction:column; - gap:4px; - justify-content:space-between; -} -.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-icon{ - background-color:#f0f0f0; - border-radius:2px; - height:32px; - width:32px; -} .block-editor-link-control__search-item .block-editor-link-control__search-item-icon{ - align-items:center; display:flex; flex-shrink:0; justify-content:center; + margin-right:8px; + max-height:24px; position:relative; + width:24px; } .block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{ width:16px; @@ -1838,13 +1897,10 @@ iframe[name=editor-canvas].has-history{ width:32px; } .block-editor-link-control__search-item .block-editor-link-control__search-item-title{ - border-radius:2px; - line-height:1.1; -} -.block-editor-link-control__search-item .block-editor-link-control__search-item-title:focus-visible{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - outline:2px solid transparent; - text-decoration:none; + display:block; + font-weight:500; + line-height:24px; + position:relative; } .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{ background-color:transparent; @@ -1857,6 +1913,50 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{ display:none; } +.block-editor-link-control__search-item .block-editor-link-control__search-item-description{ + margin:0; + padding-top:12px; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder{ + display:flex; + flex-direction:column; + height:28px; + justify-content:space-around; + margin-top:12px; + padding-top:0; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:after,.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:before{ + background-color:#f0f0f0; + border-radius:3px; + content:""; + display:block; + height:.7em; + width:100%; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-description .components-text{ + font-size:.9em; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image{ + background-color:#f0f0f0; + border-radius:2px; + display:flex; + height:140px; + justify-content:center; + margin-top:12px; + max-height:140px; + overflow:hidden; + width:100%; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image.is-placeholder{ + background-color:#f0f0f0; + border-radius:3px; +} +.block-editor-link-control__search-item .block-editor-link-control__search-item-image img{ + display:block; + height:140px; + max-height:140px; + max-width:100%; +} .block-editor-link-control__search-item-top{ align-items:center; @@ -1865,6 +1965,14 @@ iframe[name=editor-canvas].has-history{ width:100%; } +.block-editor-link-control__search-item-bottom{ + transition:opacity 1.5s; + width:100%; +} +.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:after,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:before,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-image{ + animation:loadingpulse 1s linear infinite; + animation-delay:.5s; +} .block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{ opacity:0; } @@ -1941,9 +2049,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-link-control__setting .components-base-control__field{ display:flex; } -.block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label{ - color:#1e1e1e; -} .block-editor-link-control__setting input{ margin-left:0; } @@ -2016,16 +2121,9 @@ iframe[name=editor-canvas].has-history{ margin:-12px -6px 0; width:calc(100% + 12px); } -.block-editor-list-view-tree.is-dragging tbody{ - pointer-events:none; -} .block-editor-list-view-leaf{ position:relative; - transform:translateY(0); -} -.block-editor-list-view-leaf.is-draggable,.block-editor-list-view-leaf.is-draggable .block-editor-list-view-block-contents{ - cursor:grab; } .block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{ color:inherit; @@ -2099,72 +2197,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{ border-radius:0; } -.block-editor-list-view-leaf.is-displacement-normal{ - transform:translateY(0); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-normal{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-displacement-up{ - transform:translateY(-36px); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-up{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-displacement-down{ - transform:translateY(36px); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-displacement-down{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks{ - transform:translateY(calc(var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{ - transform:translateY(calc(-36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{ - transform:translateY(calc(36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1)); - transition:transform .2s; -} -@media (prefers-reduced-motion:reduce){ - .block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{ - transition-delay:0s; - transition-duration:0s; - } -} -.block-editor-list-view-leaf.is-dragging{ - left:0; - opacity:0; - pointer-events:none; - z-index:-9999; -} .block-editor-list-view-leaf .block-editor-list-view-block-contents{ align-items:center; border-radius:2px; @@ -2190,10 +2222,10 @@ iframe[name=editor-canvas].has-history{ padding-left:0; padding-right:0; } -.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents{ +.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus{ box-shadow:none; } -.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents:after{ +.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{ border-radius:inherit; bottom:0; box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); @@ -2205,13 +2237,19 @@ iframe[name=editor-canvas].has-history{ top:0; z-index:2; } +.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{ + box-shadow:none; +} .block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{ right:0; } -.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view__menu{ +.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{ box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); z-index:1; } +.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{ + box-shadow:none; +} .block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{ animation:edit-post__fade-in-animation .2s ease-out 0s; animation-fill-mode:forwards; @@ -2350,16 +2388,11 @@ iframe[name=editor-canvas].has-history{ box-shadow:0 0 0 2px var(--wp-admin-theme-color); } -.block-editor-list-view-draggable-chip{ - opacity:.8; -} - .block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{ display:flex; } .block-editor-list-view__expander{ - cursor:pointer; height:24px; margin-left:4px; width:24px; @@ -2442,22 +2475,6 @@ iframe[name=editor-canvas].has-history{ height:4px; } -.block-editor-list-view-drop-indicator--preview{ - pointer-events:none; -} -.block-editor-list-view-drop-indicator--preview .components-popover__content{ - overflow:hidden !important; -} -.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line{ - background:rgba(var(--wp-admin-theme-color--rgb), .04); - border-radius:4px; - height:36px; - overflow:hidden; -} -.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line--darker{ - background:rgba(var(--wp-admin-theme-color--rgb), .09); -} - .block-editor-list-view-placeholder{ height:36px; margin:0; @@ -2494,7 +2511,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-media-flow__url-input.has-siblings{ border-top:1px solid #1e1e1e; margin-top:8px; - padding-bottom:8px; } .block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{ display:block; @@ -2525,7 +2541,8 @@ iframe[name=editor-canvas].has-history{ width:100%; } .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{ - padding:8px 0 0; + right:4px; + top:0; } .block-editor-media-flow__error{ @@ -2894,7 +2911,7 @@ iframe[name=editor-canvas].has-history{ box-shadow:none; } .block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } @@ -3133,45 +3150,27 @@ iframe[name=editor-canvas].has-history{ border-right:none; } -.block-editor-block-contextual-toolbar{ - background-color:#fff; - display:block; - flex-shrink:3; - position:sticky; - top:0; - width:100%; - z-index:31; -} -.block-editor-block-contextual-toolbar.components-accessible-toolbar{ - border:none; - border-bottom:1px solid #e0e0e0; - border-radius:0; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar{ - overflow:auto; - overflow-y:hidden; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child:after{ - display:none; -} -.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{ - border-right-color:#e0e0e0; -} -.block-editor-block-contextual-toolbar>.block-editor-block-toolbar{ - flex-grow:0; - width:auto; +@media (min-width:782px){ + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-right:none; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar:after{ + background-color:#ddd; + content:""; + margin-bottom:12px; + margin-left:8px; + margin-top:12px; + width:1px; + } + .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child:after{ + display:none; + } } -.block-editor-block-contextual-toolbar .block-editor-block-parent-selector{ - margin-bottom:-1px; - margin-top:-1px; - position:relative; +.block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){ + margin-left:56px; } -.block-editor-block-contextual-toolbar .block-editor-block-parent-selector:after{ - bottom:16px; - content:"·"; - font-size:16px; - position:absolute; - right:0; +.show-icon-labels .block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){ + margin-left:0; } .block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{ @@ -3216,35 +3215,16 @@ iframe[name=editor-canvas].has-history{ min-width:0 !important; width:0 !important; } -.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button{ - text-wrap:nowrap; +.show-icon-labels .block-editor-block-parent-selector__button{ border-bottom-right-radius:0; border-top-right-radius:0; - padding-left:12px; - padding-right:12px; } -.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button .block-editor-block-icon{ +.show-icon-labels .block-editor-block-parent-selector__button .block-editor-block-icon{ width:0; } .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{ width:auto; } -@media (min-width:600px){ - .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{ - position:relative; - } - .show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#1e1e1e; - content:""; - height:1px; - left:50%; - margin-top:-.5px; - position:absolute; - top:50%; - transform:translate(-50%); - width:100%; - } -} .show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{ padding-left:6px; padding-right:6px; @@ -3254,21 +3234,48 @@ iframe[name=editor-canvas].has-history{ padding-right:8px; } .show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{ - border-left:1px solid #ddd; + border-left:1px solid #1e1e1e; margin-left:6px; margin-right:-6px; white-space:nowrap; } +.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{ + border-left-color:#e0e0e0; +} .show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{ padding-left:12px; padding-right:12px; } +.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container{ + border-width:0; +} +@media (min-width:600px){ + .show-icon-labels .is-up-button.is-up-button.is-up-button{ + border-radius:0; + margin-right:0; + order:1; + } + .show-icon-labels .block-editor-block-mover__move-button-container{ + border-left:1px solid #1e1e1e; + } + .show-icon-labels .is-down-button.is-down-button.is-down-button{ + order:2; + } + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container:before{ + background:#ddd; + } +} .show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{ width:auto; } .show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{ flex-shrink:1; } +@media (min-width:782px){ + .show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar,.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar-group{ + flex-shrink:0; + } +} .show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{ margin-left:6px; } @@ -3293,7 +3300,6 @@ iframe[name=editor-canvas].has-history{ flex-direction:column; gap:16px; height:100%; - overflow-y:hidden; position:relative; } .block-editor-inserter__main-area.show-as-tabs{ @@ -3329,7 +3335,7 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__popover .block-editor-inserter__menu{ margin:-12px; } -.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs div[role=tablist]{ +.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs{ top:60px; } .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{ @@ -3387,19 +3393,19 @@ iframe[name=editor-canvas].has-history{ flex-grow:1; overflow:hidden; } -.block-editor-inserter__tabs div[role=tablist]{ +.block-editor-inserter__tabs .components-tab-panel__tabs{ border-bottom:1px solid #ddd; } -.block-editor-inserter__tabs div[role=tablist] button[role=tab]{ +.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ flex-grow:1; margin-bottom:-1px; } -.block-editor-inserter__tabs div[role=tablist] button[role=tab][id$=reusable]{ +.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item[id$=reusable]{ flex-grow:inherit; padding-left:16px; padding-right:16px; } -.block-editor-inserter__tabs div[role=tabpanel]{ +.block-editor-inserter__tabs .components-tab-panel__tab-content{ display:flex; flex-direction:column; flex-grow:1; @@ -3476,29 +3482,28 @@ iframe[name=editor-canvas].has-history{ margin-right:8px; } -.block-editor-inserter__preview-container__popover{ - top:16px !important; -} - .block-editor-inserter__preview-container{ + background:#fff; + border:1px solid #ddd; + border-radius:2px; display:none; + left:calc(100% + 16px); max-height:calc(100% - 32px); overflow-y:hidden; - padding:16px; - width:280px; + position:absolute; + top:16px; + width:300px; } @media (min-width:782px){ .block-editor-inserter__preview-container{ display:block; } } -.block-editor-inserter__preview-container .block-editor-block-preview__container{ - height:100%; -} .block-editor-inserter__preview-container .block-editor-block-card{ - padding-bottom:4px; - padding-left:0; - padding-right:0; + padding:16px; +} +.block-editor-inserter__preview-container .block-editor-block-card__title{ + font-size:13px; } .block-editor-inserter__patterns-explore-button.components-button{ @@ -3529,9 +3534,12 @@ iframe[name=editor-canvas].has-history{ right:0; top:0; } -.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{ +.block-editor-block-patterns-explorer__sidebar,.block-editor-block-patterns-explorer__sidebar nav,.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{ height:100%; } +.block-editor-block-patterns-explorer__sidebar .block-editor-block-patterns__source-filter select.components-select-control__input,.block-editor-inserter__block-patterns-tabs-container .block-editor-block-patterns__source-filter select.components-select-control__input{ + height:40px; +} .block-editor-inserter__block-patterns-tabs{ display:flex; @@ -3543,9 +3551,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{ margin-top:auto; } -.block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category{ - padding-right:4px; -} .block-editor-inserter__patterns-category-dialog{ background:#f0f0f0; @@ -3607,7 +3612,6 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__preview-content-missing{ align-items:center; background:#f0f0f0; - border-radius:2px; color:#757575; display:flex; flex:1; @@ -3689,7 +3693,7 @@ iframe[name=editor-canvas].has-history{ overflow-y:scroll; padding:24px 32px 32px; position:absolute; - top:72px; + top:76px; width:280px; } .block-editor-block-patterns-explorer__sidebar__categories-list__item{ @@ -3759,20 +3763,17 @@ iframe[name=editor-canvas].has-history{ .block-editor-inserter__media-tabs div[role=listitem]:last-child{ margin-top:auto; } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category{ - padding-right:4px; -} -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected{ +.block-editor-inserter__media-tabs__media-category.is-selected{ color:var(--wp-admin-theme-color); position:relative; } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{ +.block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{ filter:brightness(.95); } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg{ +.block-editor-inserter__media-tabs__media-category.is-selected svg{ fill:var(--wp-admin-theme-color); } -.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected:after{ +.block-editor-inserter__media-tabs__media-category.is-selected:after{ background:var(--wp-admin-theme-color); border-radius:2px; bottom:0; @@ -3954,6 +3955,50 @@ iframe[name=editor-canvas].has-history{ height:40px; } +.block-editor-post-preview__dropdown{ + padding:0; +} + +.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize{ + padding-left:40px; +} +.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon{ + padding-left:8px; +} + +.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:first-child{ + padding-bottom:8px; +} +.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:last-child{ + margin-bottom:0; +} +.block-editor-post-preview__dropdown-content .components-menu-group+.components-menu-group{ + padding:8px; +} + +@media (min-width:600px){ + .edit-post-header__settings .editor-post-preview,.edit-site-header-edit-mode__actions .editor-post-preview{ + display:none; + } + .edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{ + transition:opacity .1s linear; + } +} +@media (min-width:600px) and (prefers-reduced-motion:reduce){ + .edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{ + transition-delay:0s; + transition-duration:0s; + } +} +@media (min-width:600px){ + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-saved-state{ + opacity:0; + } + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle.is-opened{ + opacity:1; + } +} + .spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{ margin-bottom:0; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.min.css index 85f61621bb..66ab8acf39 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-editor/style.min.css @@ -1 +1 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-autocompleters__block{white-space:nowrap}.block-editor-autocompleters__block .block-editor-block-icon{margin-right:8px}.block-editor-autocompleters__link{white-space:nowrap}.block-editor-autocompleters__link .block-editor-block-icon{margin-right:8px}.block-editor-block-alignment-control__menu-group .components-menu-item__info{margin-top:0}iframe[name=editor-canvas]{display:block;height:100%;width:100%}iframe[name=editor-canvas]:not(.has-history){background-color:#fff}iframe[name=editor-canvas].has-history{padding:48px 48px 0}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-inspector p:not(.components-base-control__help){margin-top:0}.block-editor-block-inspector h2,.block-editor-block-inspector h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.block-editor-block-inspector .components-base-control{margin-bottom:24px}.block-editor-block-inspector .components-base-control:last-child{margin-bottom:8px}.block-editor-block-inspector .components-focal-point-picker-control .components-base-control,.block-editor-block-inspector .components-query-controls .components-base-control,.block-editor-block-inspector .components-range-control .components-base-control{margin-bottom:0}.block-editor-block-inspector .components-panel__body{border:none;border-top:1px solid #e0e0e0;margin-top:-1px}.block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{background:#fff;display:block;font-size:13px;padding:32px 16px;text-align:center}.block-editor-block-inspector__no-block-tools{border-top:1px solid #ddd}.block-editor-block-inspector__tab-item{flex:1 1 0px}.block-editor-block-list__insertion-point{bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__insertion-point-indicator{background:var(--wp-admin-theme-color);border-radius:2px;opacity:0;position:absolute;transform-origin:center;will-change:transform,opacity}.block-editor-block-list__insertion-point.is-vertical>.block-editor-block-list__insertion-point-indicator{height:4px;top:calc(50% - 2px);width:100%}.block-editor-block-list__insertion-point.is-horizontal>.block-editor-block-list__insertion-point-indicator{bottom:0;left:calc(50% - 2px);top:0;width:4px}.block-editor-block-list__insertion-point-inserter{display:none;justify-content:center;left:calc(50% - 12px);position:absolute;top:calc(50% - 12px);will-change:transform}@media (min-width:480px){.block-editor-block-list__insertion-point-inserter{display:flex}}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div{pointer-events:none}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div>*{pointer-events:all}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:var(--wp-admin-theme-color)}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:#1e1e1e}.block-editor-block-list__block-selection-button{background-color:#1e1e1e;border-radius:2px;display:inline-flex;font-size:13px;height:48px;padding:0 12px;z-index:22}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content{align-items:center;display:inline-flex;margin:auto}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content>.components-flex__item{margin-right:6px}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle{cursor:grab;height:24px;margin-left:-2px;min-width:24px;padding:0}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle svg{min-height:18px;min-width:18px}.block-editor-block-list__block-selection-button .block-editor-block-icon{color:#fff;font-size:13px;height:48px}.block-editor-block-list__block-selection-button .components-button{color:#fff;display:flex;height:48px;min-width:36px}.block-editor-block-list__block-selection-button .components-button:focus{border:none;box-shadow:none}.block-editor-block-list__block-selection-button .components-button:active,.block-editor-block-list__block-selection-button .components-button[aria-disabled=true]:hover{color:#fff}.block-editor-block-list__block-selection-button .block-selection-button_select-button.components-button{padding:0}.block-editor-block-list__block-selection-button .block-editor-block-mover{background:unset;border:none}@keyframes hide-during-dragging{to{position:fixed;transform:translate(9999px,9999px)}}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-list__block-selection-button{margin-bottom:12px;margin-top:12px;pointer-events:all}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar{border:1px solid #1e1e1e;border-radius:2px;overflow:visible;position:static;width:auto}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{margin-left:56px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar.has-parent{margin-left:0}.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar{overflow:visible}.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar .components-toolbar-group{border-right-color:#1e1e1e}.components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{visibility:hidden}.is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover{animation:hide-during-dragging 1ms linear forwards;opacity:0}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{left:-57px;position:absolute}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector:before{content:""}.components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{background-color:#fff;border:1px solid #1e1e1e;padding-left:6px;padding-right:6px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector .block-editor-block-parent-selector__button{padding-left:12px;padding-right:12px}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-parent-selector{left:auto;margin-left:-1px;position:relative}.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-mover__move-button-container,.show-icon-labels .components-popover.block-editor-block-list__block-popover .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-left:1px solid #1e1e1e}.is-dragging-components-draggable .components-tooltip{display:none}.block-editor-block-lock-modal{z-index:1000001}@media (min-width:600px){.block-editor-block-lock-modal .components-modal__frame{max-width:480px}}.block-editor-block-lock-modal__checklist{margin:0}.block-editor-block-lock-modal__options-title{padding:12px 0}.block-editor-block-lock-modal__options-title .components-checkbox-control__label{font-weight:600}.block-editor-block-lock-modal__checklist-item{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:0;padding:12px 0 12px 32px}.block-editor-block-lock-modal__checklist-item .block-editor-block-lock-modal__lock-icon{fill:#1e1e1e;flex-shrink:0;margin-right:12px}.block-editor-block-lock-modal__checklist-item:hover{background-color:#f0f0f0;border-radius:2px}.block-editor-block-lock-modal__template-lock{border-top:1px solid #ddd;margin-top:16px;padding:12px 0}.block-editor-block-lock-modal__actions{margin-top:24px}.block-editor-block-lock-toolbar .components-button.has-icon{min-width:36px!important}.block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{margin-left:-6px!important}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{border-left:1px solid #1e1e1e;margin-left:6px!important;margin-right:-6px}.block-editor-block-breadcrumb{list-style:none;margin:0;padding:0}.block-editor-block-breadcrumb li{display:inline-flex;margin:0}.block-editor-block-breadcrumb li .block-editor-block-breadcrumb__separator{fill:currentColor;margin-left:-4px;margin-right:-4px;transform:scaleX(1)}.block-editor-block-breadcrumb li:last-child .block-editor-block-breadcrumb__separator{display:none}.block-editor-block-breadcrumb__button.components-button{height:24px;line-height:24px;padding:0;position:relative}.block-editor-block-breadcrumb__button.components-button:hover:not(:disabled){box-shadow:none;text-decoration:underline}.block-editor-block-breadcrumb__button.components-button:focus{box-shadow:none}.block-editor-block-breadcrumb__button.components-button:focus:before{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:1px;outline:2px solid transparent;position:absolute;right:1px;top:1px}.block-editor-block-breadcrumb__current{cursor:default}.block-editor-block-breadcrumb__button.components-button,.block-editor-block-breadcrumb__current{color:#1e1e1e;font-size:inherit;padding:0 8px}.block-editor-block-card{align-items:flex-start;color:#1e1e1e;display:flex;padding:16px}.block-editor-block-card__content{flex-grow:1}.block-editor-block-card__title{font-weight:500}.block-editor-block-card__title.block-editor-block-card__title{font-size:13px;line-height:24px;margin:0}.block-editor-block-card__description{display:block;font-size:13px;margin-top:4px}.block-editor-block-card .block-editor-block-icon{flex:0 0 24px;height:24px;margin-left:0;margin-right:12px;width:24px}.block-editor-block-card.is-synced .block-editor-block-icon{color:var(--wp-block-synced-color)}.block-editor-block-compare{height:auto}.block-editor-block-compare__wrapper{display:flex;padding-bottom:16px}.block-editor-block-compare__wrapper>div{display:flex;flex-direction:column;justify-content:space-between;max-width:600px;min-width:200px;padding:0 16px 0 0;width:50%}.block-editor-block-compare__wrapper>div button{float:right}.block-editor-block-compare__wrapper .block-editor-block-compare__converted{border-left:1px solid #ddd;padding-left:15px;padding-right:0}.block-editor-block-compare__wrapper .block-editor-block-compare__html{border-bottom:1px solid #ddd;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:12px;line-height:1.7;padding-bottom:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span{background-color:#e6ffed;padding-bottom:3px;padding-top:3px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added{background-color:#acf2bd}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed{background-color:#cc1818}.block-editor-block-compare__wrapper .block-editor-block-compare__preview{padding:16px 0 0}.block-editor-block-compare__wrapper .block-editor-block-compare__preview p{font-size:12px;margin-top:0}.block-editor-block-compare__wrapper .block-editor-block-compare__action{margin-top:16px}.block-editor-block-compare__wrapper .block-editor-block-compare__heading{font-size:1em;font-weight:400;margin:.67em 0}.block-editor-block-draggable-chip-wrapper{left:0;position:absolute;top:-24px}.block-editor-block-draggable-chip{background-color:#1e1e1e;border-radius:2px;box-shadow:0 6px 8px rgba(0,0,0,.3);color:#fff;cursor:grabbing;display:inline-flex;height:48px;padding:0 13px;position:relative;-webkit-user-select:none;user-select:none;width:max-content}.block-editor-block-draggable-chip svg{fill:currentColor}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content{justify-content:flex-start;margin:auto}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item{margin-right:6px}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item:last-child{margin-right:0}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content .block-editor-block-icon svg{min-height:18px;min-width:18px}.block-editor-block-draggable-chip .components-flex__item{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{align-items:center;background-color:transparent;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:all .1s linear .1s}.block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled .block-editor-block-draggable-chip__disabled-icon{background:transparent linear-gradient(-45deg,transparent 47.5%,#fff 0,#fff 52.5%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1.5px #fff;display:inline-block;height:20px;padding:0;width:20px}.block-draggable-invalid-drag-token .block-editor-block-draggable-chip__disabled.block-editor-block-draggable-chip__disabled{background-color:#757575;box-shadow:0 4px 8px rgba(0,0,0,.2);opacity:1}.block-editor-block-mover__move-button-container{border:none;display:flex;padding:0}@media (min-width:600px){.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container{flex-direction:column}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>*{height:24px;min-width:0!important;width:100%}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>:before{height:calc(100% - 4px)}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{flex-shrink:0;top:5px}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{bottom:5px;flex-shrink:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{width:48px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container>*{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button{padding-left:0;padding-right:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{left:5px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{right:5px}}.block-editor-block-mover__drag-handle{cursor:grab}@media (min-width:600px){.block-editor-block-mover__drag-handle{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon.has-icon{padding-left:0;padding-right:0}}.components-button.block-editor-block-mover-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-mover-button:before{animation-delay:0s;animation-duration:1ms}}.components-button.block-editor-block-mover-button:focus,.components-button.block-editor-block-mover-button:focus:before,.components-button.block-editor-block-mover-button:focus:enabled{box-shadow:none;outline:none}.components-button.block-editor-block-mover-button:focus-visible:before{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-block-navigation__container{min-width:280px}.block-editor-block-navigation__label{color:#757575;font-size:11px;font-weight:500;margin:0 0 12px;text-transform:uppercase}.block-editor-block-patterns-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-block-patterns-list__list-item.is-placeholder{min-height:100px}.block-editor-block-patterns-list__list-item[draggable=true]{cursor:grab}.block-editor-block-patterns-list__item{height:100%;scroll-margin-bottom:56px;scroll-margin-top:24px}.block-editor-block-patterns-list__item .block-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;overflow:hidden}.block-editor-block-patterns-list__item .block-editor-block-patterns-list__item-title{flex-grow:1;text-align:left}.block-editor-block-patterns-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e}.block-editor-block-patterns-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) #1e1e1e;outline:2px solid transparent;outline-offset:2px}.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:focus .block-editor-block-preview__container,.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-block-synced-color),0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-details{align-items:center;margin-top:8px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper{height:24px;min-width:24px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper .block-editor-patterns__pattern-icon{fill:var(--wp-block-synced-color)}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination{border-top:1px solid #2f2f2f;justify-content:center;padding:4px}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:auto}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575;color:#fff}.show-icon-labels .block-editor-patterns__grid-pagination,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-next,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-previous{flex-direction:column}.show-icon-labels .block-editor-patterns__grid-pagination .components-button{width:auto}.show-icon-labels .block-editor-patterns__grid-pagination .components-button span{display:none}.show-icon-labels .block-editor-patterns__grid-pagination .components-button:before{content:attr(aria-label)}.components-popover.block-editor-block-popover{margin:0!important;pointer-events:none;position:absolute;z-index:31}.components-popover.block-editor-block-popover .components-popover__content{margin:0!important;min-width:auto;overflow-y:visible;width:max-content}.components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween,.block-editor-block-popover__drop-zone,.block-editor-block-list__block-side-inserter-popover) .components-popover__content *{pointer-events:all}.components-popover.block-editor-block-popover__inbetween,.components-popover.block-editor-block-popover__inbetween *{pointer-events:none}.components-popover.block-editor-block-popover__inbetween .is-with-inserter,.components-popover.block-editor-block-popover__inbetween .is-with-inserter *{pointer-events:all}.components-popover.block-editor-block-popover__drop-zone *{pointer-events:none}.components-popover.block-editor-block-popover__drop-zone .block-editor-block-popover__drop-zone-foreground{background-color:var(--wp-admin-theme-color);border-radius:2px;inset:0;position:absolute}.block-editor-block-preview__container{overflow:hidden;position:relative;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content{left:0;margin:0;min-height:auto;overflow:visible;text-align:initial;top:0;transform-origin:top left;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content .block-editor-block-list__insertion-point,.block-editor-block-preview__container .block-editor-block-preview__content .block-list-appender{display:none}.block-editor-block-preview__container:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.block-editor-block-rename-modal{z-index:1000001}.block-editor-block-settings-menu__popover .components-dropdown-menu__menu{padding:0}.block-editor-block-styles+.default-style-picker__default-switcher{margin-top:16px}.block-editor-block-styles__preview-panel{display:none;z-index:90}@media (min-width:782px){.block-editor-block-styles__preview-panel{display:block}}.block-editor-block-styles__preview-panel .block-editor-block-icon{display:none}.block-editor-block-styles__variants{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:inline-block;width:calc(50% - 4px)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:hover{box-shadow:inset 0 0 0 1px #ddd;color:var(--wp-admin-theme-color)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover{background-color:#1e1e1e;box-shadow:none}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active .block-editor-block-styles__item-text,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover .block-editor-block-styles__item-text{color:#fff}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-block-styles__variants .block-editor-block-styles__item-text{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-block-styles__block-preview-container,.block-editor-block-styles__block-preview-container *{box-sizing:border-box!important}.block-editor-block-switcher{position:relative}.block-editor-block-switcher .components-button.components-dropdown-menu__toggle.has-icon.has-icon{min-width:36px}.block-editor-block-switcher__no-switcher-icon,.block-editor-block-switcher__toggle{position:relative}.components-button.block-editor-block-switcher__no-switcher-icon,.components-button.block-editor-block-switcher__toggle{display:block;height:48px;margin:0}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.components-button.block-editor-block-switcher__toggle .block-editor-block-icon{margin:auto}.block-editor-block-switcher__toggle-text{margin-left:8px}.show-icon-labels .block-editor-block-switcher__toggle-text{display:none}.components-button.block-editor-block-switcher__no-switcher-icon{display:flex}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin-left:auto;margin-right:auto;min-width:24px!important}.components-button.block-editor-block-switcher__no-switcher-icon:disabled{opacity:1}.components-button.block-editor-block-switcher__no-switcher-icon:disabled,.components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:#1e1e1e}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon{align-items:center;display:flex;height:100%;margin:0 auto;min-width:100%;position:relative}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before{bottom:8px;left:8px;right:8px;top:8px}.components-popover.block-editor-block-switcher__popover .components-popover__content{min-width:300px}.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container{left:calc(100% + 16px);position:absolute;top:-12px}.block-editor-block-switcher__preview__popover{display:none;overflow:hidden}.block-editor-block-switcher__preview__popover.components-popover{margin-top:11px}@media (min-width:782px){.block-editor-block-switcher__preview__popover{display:block}}.block-editor-block-switcher__preview__popover .components-popover__content{background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:none;outline:none;overflow:auto;width:300px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview{margin:16px 0;max-height:468px;overflow:hidden;padding:0 16px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview.is-pattern-list-preview{overflow:unset}.block-editor-block-switcher__preview-title{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;text-transform:uppercase}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon{min-width:36px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle{height:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{height:48px;width:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{padding:12px}.block-editor-block-switcher__preview-patterns-container{padding-bottom:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item{margin-top:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-preview__container{cursor:pointer}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item{border:1px solid transparent;border-radius:2px;height:100%;position:relative;transition:all .05s ease-in-out}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:focus,.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) #1e1e1e}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item .block-editor-block-switcher__preview-patterns-container-list__item-title{cursor:pointer;font-size:12px;padding:4px;text-align:center}.block-editor-block-switcher__no-transforms{color:#757575;margin:0;padding:6px 8px}.block-editor-block-types-list>[role=presentation]{display:flex;flex-wrap:wrap;overflow:hidden}.block-editor-block-pattern-setup{align-items:flex-start;border-radius:2px;display:flex;flex-direction:column;justify-content:center;width:100%}.block-editor-block-pattern-setup.view-mode-grid{padding-top:4px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__toolbar{justify-content:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:2;column-gap:24px;display:block;padding:0 32px;width:100%}@media (min-width:1440px){.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:3}}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{cursor:pointer}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item{scroll-margin:5px 0}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-pattern-setup-list__item-title,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-pattern-setup-list__item-title{color:var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item{break-inside:avoid-column;margin-bottom:24px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-pattern-setup-list__item-title{cursor:pointer;font-size:12px;padding-top:8px;text-align:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__container{border:1px solid #ddd;border-radius:2px;min-height:100px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__content{width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{align-items:center;align-self:stretch;background-color:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:border-box;color:#1e1e1e;display:flex;flex-direction:row;height:60px;justify-content:space-between;margin:0;padding:16px;position:absolute;text-align:left;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__display-controls{display:flex}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions,.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__navigation{display:flex;width:calc(50% - 36px)}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions{justify-content:flex-end}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container{height:100%;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;transform-style:preserve-3d}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container *{box-sizing:border-box}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide{background-color:#fff;height:100%;margin:auto;padding:0;position:absolute;top:0;transition:transform .5s,z-index .5s;width:100%;z-index:100}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.active-slide{opacity:1;position:relative;z-index:102}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.previous-slide{transform:translateX(-100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.next-slide{transform:translateX(100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .block-list-appender{display:none}.block-editor-block-pattern-setup__carousel,.block-editor-block-pattern-setup__grid{width:100%}.block-editor-block-variation-transforms{padding:0 16px 16px 52px;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle{border:1px solid #757575;border-radius:2px;justify-content:left;min-height:30px;padding:6px 12px;position:relative;text-align:left;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle.components-dropdown-menu__toggle{padding-right:24px}.block-editor-block-variation-transforms .components-dropdown-menu__toggle:focus:not(:disabled){border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 calc(var(--wp-admin-border-width-focus) - 1px) var(--wp-admin-theme-color)}.block-editor-block-variation-transforms .components-dropdown-menu__toggle svg{height:100%;padding:0;position:absolute;right:0;top:0}.block-editor-block-variation-transforms__popover .components-popover__content{min-width:230px}.components-border-radius-control{margin-bottom:12px}.components-border-radius-control legend{margin-bottom:8px}.components-border-radius-control .components-border-radius-control__wrapper{align-items:flex-start;display:flex;justify-content:space-between}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control{flex-shrink:0;margin-bottom:0;margin-right:16px;width:calc(50% - 8px)}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control{flex:1;margin-right:12px}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control>div{align-items:center;display:flex;height:40px}.components-border-radius-control .components-border-radius-control__wrapper>span{flex:0 0 auto}.components-border-radius-control .components-border-radius-control__input-controls-wrapper{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-right:12px}.components-border-radius-control .component-border-radius-control__linked-button{display:flex;justify-content:center;margin-top:8px}.components-border-radius-control .component-border-radius-control__linked-button svg{margin-right:0}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-color-gradient-control__fieldset{min-width:0}.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){display:block}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px)}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.block-editor-panel-color-gradient-settings__dropdown-content .block-editor-color-gradient-control__panel{padding:16px;width:260px}.block-editor-panel-color-gradient-settings__color-indicator{background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.block-editor-tools-panel-color-gradient-settings__item{border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #ddd;max-width:100%;padding:0}.block-editor-tools-panel-color-gradient-settings__item:nth-child(1 of .block-editor-tools-panel-color-gradient-settings__item){border-top:1px solid #ddd;border-top-left-radius:2px;border-top-right-radius:2px;margin-top:24px}.block-editor-tools-panel-color-gradient-settings__item:nth-last-child(1 of .block-editor-tools-panel-color-gradient-settings__item){border-bottom-left-radius:2px;border-bottom-right-radius:2px}.block-editor-tools-panel-color-gradient-settings__item>div,.block-editor-tools-panel-color-gradient-settings__item>div>button{border-radius:inherit}.block-editor-tools-panel-color-gradient-settings__dropdown{display:block;padding:0}.block-editor-tools-panel-color-gradient-settings__dropdown>button{height:auto;padding-bottom:10px;padding-top:10px;text-align:left}.block-editor-tools-panel-color-gradient-settings__dropdown>button.is-open{background:#f0f0f0;color:var(--wp-admin-theme-color)}.block-editor-tools-panel-color-gradient-settings__dropdown .block-editor-panel-color-gradient-settings__color-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-panel-color-gradient-settings__dropdown{width:100%}.block-editor-panel-color-gradient-settings__dropdown .component-color-indicator{flex-shrink:0}.block-editor-date-format-picker{margin-bottom:16px}.block-editor-date-format-picker__custom-format-select-control__custom-option{border-top:1px solid #ddd}.block-editor-date-format-picker__custom-format-select-control__custom-option.has-hint{grid-template-columns:auto 30px}.block-editor-date-format-picker__custom-format-select-control__custom-option .components-custom-select-control__item-hint{grid-row:2;text-align:left}.block-editor-duotone-control__popover>.components-popover__content{padding:16px;width:260px}.block-editor-duotone-control__popover .components-menu-group__label{padding:0}.block-editor-duotone-control__popover .components-circular-option-picker__swatches{display:grid;gap:12px;grid-template-columns:repeat(6,28px);justify-content:space-between}.block-editor-duotone-control__unset-indicator{background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.components-font-appearance-control ul li{color:#1e1e1e;text-transform:capitalize}.block-editor-global-styles-effects-panel__toggle-icon{fill:currentColor}.block-editor-global-styles-effects-panel__shadow-popover-container{width:230px}.block-editor-global-styles-effects-panel__shadow-dropdown,.block-editor-global-styles-filters-panel__dropdown{display:block;padding:0}.block-editor-global-styles-effects-panel__shadow-dropdown button,.block-editor-global-styles-filters-panel__dropdown button{padding:8px;width:100%}.block-editor-global-styles-effects-panel__shadow-dropdown button.is-open,.block-editor-global-styles-filters-panel__dropdown button.is-open{background-color:#f0f0f0}.block-editor-global-styles-effects-panel__shadow-indicator-wrapper{align-items:center;display:flex;justify-content:center;overflow:hidden;padding:6px}.block-editor-global-styles-effects-panel__shadow-indicator{border:1px solid #e0e0e0;border-radius:2px;color:#2f2f2f;cursor:pointer;height:24px;padding:0;width:24px}.block-editor-global-styles-advanced-panel__custom-css-input textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace}.block-editor-global-styles-advanced-panel__custom-css-validation-wrapper{bottom:16px;position:absolute;right:24px}.block-editor-global-styles-advanced-panel__custom-css-validation-icon{fill:#cc1818}.block-editor-height-control{border:0;margin:0;padding:0}.block-editor-image-size-control{margin-bottom:1em}.block-editor-image-size-control .block-editor-image-size-control__height,.block-editor-image-size-control .block-editor-image-size-control__width{margin-bottom:1.115em}.block-editor-block-types-list__list-item{display:block;margin:0;padding:0;width:33.33%}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled) .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-block-synced-color)!important;filter:brightness(.95)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-block-synced-color)!important}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):after{background:var(--wp-block-synced-color)}.components-button.block-editor-block-types-list__item{align-items:stretch;background:transparent;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;flex-direction:column;font-size:13px;height:auto;justify-content:center;padding:8px;position:relative;transition:all .05s ease-in-out;width:100%;word-break:break-word}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-types-list__item{transition-delay:0s;transition-duration:0s}}.components-button.block-editor-block-types-list__item:disabled{cursor:default;opacity:.6}.components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-admin-theme-color)!important;filter:brightness(.95)}.components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-admin-theme-color)!important}.components-button.block-editor-block-types-list__item:not(:disabled):hover:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;pointer-events:none;position:absolute;right:0;top:0}.components-button.block-editor-block-types-list__item:not(:disabled):focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.block-editor-block-types-list__item:not(:disabled).is-active{background:#1e1e1e;color:#fff;outline:2px solid transparent;outline-offset:-2px}.block-editor-block-types-list__item-icon{border-radius:2px;color:#1e1e1e;padding:12px 20px;transition:all .05s ease-in-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__item-icon .block-editor-block-icon{margin-left:auto;margin-right:auto}.block-editor-block-types-list__item-icon svg{transition:all .15s ease-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon svg{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__list-item[draggable=true] .block-editor-block-types-list__item-icon{cursor:grab}.block-editor-block-types-list__item-title{font-size:12px;padding:4px 2px 8px}.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-inspector__tabs [role=tablist] .components-button.has-icon:before{content:attr(aria-label)}.block-editor-inspector-controls-tabs__hint{align-items:flex-start;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;font-size:13px;margin:16px}.block-editor-inspector-controls-tabs__hint-content{margin:12px 0 12px 12px}.block-editor-inspector-controls-tabs__hint-dismiss{margin:4px 4px 4px 0}.block-editor-inspector-popover-header{margin-bottom:16px}[class].block-editor-inspector-popover-header__action{height:24px}[class].block-editor-inspector-popover-header__action.has-icon{min-width:24px;padding:0}[class].block-editor-inspector-popover-header__action:not(.has-icon){text-decoration:underline}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}@keyframes loadingpulse{0%{opacity:1}50%{opacity:0}to{opacity:1}}.block-editor-link-control{min-width:350px;position:relative}.components-popover__content .block-editor-link-control{max-width:350px;min-width:auto;width:90vw}.show-icon-labels .block-editor-link-control .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-link-control .components-button.has-icon:before{content:attr(aria-label)}.block-editor-link-control__search-input-wrapper{margin-bottom:8px;position:relative}.block-editor-link-control__search-input-container,.block-editor-link-control__search-input-wrapper{position:relative}.block-editor-link-control__field{margin:16px}.block-editor-link-control__field .components-base-control__label{color:#1e1e1e}.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:40px;line-height:normal;margin:0;padding:8px 40px 8px 16px;position:relative;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{font-size:13px;line-height:normal}}.block-editor-link-control__field input[type=text]:focus,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-link-control__field input[type=text]::-webkit-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__field input[type=text]::-moz-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}.has-actions .block-editor-link-control__field input[type=text],.has-actions .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{padding-right:16px}.block-editor-link-control__search-error{margin:-8px 16px 16px}.block-editor-link-control__search-enter{position:absolute;right:19px;top:3px}.block-editor-link-control__search-enter svg{position:relative;top:-2px}.block-editor-link-control__search-actions{padding:8px 16px 16px}.block-editor-link-control__search-results-wrapper{position:relative}.block-editor-link-control__search-results-wrapper:after,.block-editor-link-control__search-results-wrapper:before{content:"";display:block;left:-1px;pointer-events:none;position:absolute;right:16px;z-index:100}.block-editor-link-control__search-results-wrapper:before{bottom:auto;height:8px;top:0}.block-editor-link-control__search-results-wrapper:after{bottom:0;height:16px;top:auto}.block-editor-link-control__search-results{margin-top:-16px;max-height:200px;overflow-y:auto;padding:8px}.block-editor-link-control__search-results.is-loading{opacity:.2}.block-editor-link-control__search-item.components-button.components-menu-item__button{height:auto;text-align:left}.block-editor-link-control__search-item .components-menu-item__item{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.block-editor-link-control__search-item .components-menu-item__item mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .components-menu-item__shortcut{color:#757575;text-transform:capitalize;white-space:nowrap}.block-editor-link-control__search-item[aria-selected]{background:#f0f0f0}.block-editor-link-control__search-item.is-current{background:transparent;border:0;cursor:default;flex-direction:column;padding:16px;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-header{align-items:flex-start;display:block;flex-direction:row;gap:8px;margin-right:8px;overflow-wrap:break-word;white-space:pre-wrap}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{color:#757575;font-size:12px;line-height:1.1;word-break:break-all}.block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{display:flex;flex:1}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-header{align-items:center}.block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{word-break:break-all}.block-editor-link-control__search-item .block-editor-link-control__search-item-details{display:flex;flex-direction:column;gap:4px;justify-content:space-between}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-icon{background-color:#f0f0f0;border-radius:2px;height:32px;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon{align-items:center;display:flex;flex-shrink:0;justify-content:center;position:relative}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{width:16px}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-icon{max-height:32px;top:0;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-title{border-radius:2px;line-height:1.1}.block-editor-link-control__search-item .block-editor-link-control__search-item-title:focus-visible{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;text-decoration:none}.block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .block-editor-link-control__search-item-title span{font-weight:400}.block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{display:none}.block-editor-link-control__search-item-top{align-items:center;display:flex;flex-direction:row;width:100%}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{opacity:0}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon:before{animation:loadingpulse 1s linear infinite;animation-delay:.5s;background-color:#f0f0f0;border-radius:100%;bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.block-editor-link-control__loading{align-items:center;display:flex;margin:16px}.block-editor-link-control__loading .components-spinner{margin-top:0}.components-button+.block-editor-link-control__search-create{overflow:visible;padding:12px 16px}.components-button+.block-editor-link-control__search-create:before{content:"";display:block;left:0;position:absolute;top:-10px;width:100%}.block-editor-link-control__search-create{align-items:center}.block-editor-link-control__search-create .block-editor-link-control__search-item-title{margin-bottom:0}.block-editor-link-control__search-create .block-editor-link-control__search-item-icon{top:0}.block-editor-link-control__drawer{display:flex;flex-basis:100%;flex-direction:column;order:30}.block-editor-link-control__drawer-inner{display:flex;flex-basis:100%;flex-direction:column;position:relative}.block-editor-link-control__unlink{padding-left:16px;padding-right:16px}.block-editor-link-control__setting{flex:1;margin-bottom:0;padding:8px 0 8px 24px}.block-editor-link-control__setting .components-base-control__field{display:flex}.block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label{color:#1e1e1e}.block-editor-link-control__setting input{margin-left:0}.is-preview .block-editor-link-control__setting{padding:20px 8px 8px 0}.block-editor-link-control__tools{margin-top:-16px;padding:8px 8px 0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle{gap:0;padding-left:0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true]{color:#1e1e1e}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transform:rotate(90deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transform:rotate(0deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control .block-editor-link-control__search-input .components-spinner{display:block}.block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner{bottom:auto;left:auto;position:absolute;right:40px;top:calc(50% - 8px)}.block-editor-link-control .block-editor-link-control__search-input-wrapper.has-actions .components-spinner{right:12px;top:calc(50% + 4px)}.block-editor-link-control__search-item-action{flex-shrink:0;margin-left:auto}.block-editor-list-view-tree{border-collapse:collapse;margin:0;padding:0;width:100%}.components-modal__content .block-editor-list-view-tree{margin:-12px -6px 0;width:calc(100% + 12px)}.block-editor-list-view-tree.is-dragging tbody{pointer-events:none}.block-editor-list-view-leaf{position:relative;transform:translateY(0)}.block-editor-list-view-leaf.is-draggable,.block-editor-list-view-leaf.is-draggable .block-editor-list-view-block-contents{cursor:grab}.block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{color:inherit}.block-editor-list-view-leaf .block-editor-list-view-block-select-button:hover{color:var(--wp-admin-theme-color)}.is-dragging-components-draggable .block-editor-list-view-leaf:not(.is-selected) .block-editor-list-view-block-select-button:hover{color:inherit}.block-editor-list-view-leaf.is-selected td{background:var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced td{background:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents .block-editor-block-icon,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:hover{color:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents,.block-editor-list-view-leaf.is-selected .components-button.has-icon{color:#fff}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-list-view-leaf.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-last-selected td:first-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-last-selected td:last-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.block-editor-list-view-leaf.is-synced-branch.is-branch-selected{background:rgba(var(--wp-block-synced-color--rgb),.04)}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:first-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:last-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{border-radius:0}.block-editor-list-view-leaf.is-displacement-normal{transform:translateY(0);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-normal{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-displacement-up{transform:translateY(-36px);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-up{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-displacement-down{transform:translateY(36px);transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-displacement-down{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks{transform:translateY(calc(var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{transform:translateY(calc(-36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-up{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{transform:translateY(calc(36px + var(--wp-admin--list-view-dragged-items-height, 36px)*-1));transition:transform .2s}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-after-dragged-blocks.is-displacement-down{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf.is-dragging{left:0;opacity:0;pointer-events:none;z-index:-9999}.block-editor-list-view-leaf .block-editor-list-view-block-contents{align-items:center;border-radius:2px;display:flex;height:auto;padding:6px 4px 6px 0;position:relative;text-align:left;white-space:nowrap;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-contents.is-dropping-before:before{border-top:4px solid var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:0;top:-2px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear}.components-modal__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{padding-left:0;padding-right:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents{box-shadow:none}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.block-editor-list-view-leaf.is-nesting .block-editor-list-view-block-contents:after{border-radius:inherit;bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:-29px;top:0;z-index:2}.block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{right:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus,.block-editor-list-view-leaf.is-nesting .block-editor-list-view__menu{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);z-index:1}.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;opacity:1}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation-delay:0s;animation-duration:1ms}}.block-editor-list-view-leaf .block-editor-block-icon{flex:0 0 24px;margin-right:8px}.block-editor-list-view-leaf .block-editor-list-view-block__contents-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{padding-bottom:0;padding-top:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{line-height:0;vertical-align:middle;width:36px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell>*{opacity:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:hover>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:hover>*{opacity:1}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell .components-button.has-icon{min-width:24px;padding:0;width:24px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell{padding-right:4px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon{height:24px}.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell-alignment-wrapper{align-items:center;display:flex;flex-direction:column;height:100%}.block-editor-list-view-leaf .block-editor-block-mover-button{height:24px;position:relative;width:36px}.block-editor-list-view-leaf .block-editor-block-mover-button svg{height:24px;position:relative}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button{align-items:flex-end;margin-top:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button svg{bottom:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button{align-items:flex-start;margin-bottom:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg{top:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button:before{height:16px;left:0;min-width:100%;right:0}.block-editor-list-view-leaf .block-editor-inserter__toggle{background:#1e1e1e;color:#fff;height:24px;margin:6px 6px 6px 1px;min-width:24px}.block-editor-list-view-leaf .block-editor-inserter__toggle:active{color:#fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__label-wrapper{min-width:120px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title{flex:1;position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title .components-truncate{position:absolute;transform:translateY(-50%);width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor-wrapper{max-width:min(110px,40%);position:relative;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.1);border-radius:2px;box-sizing:border-box;max-width:100%;padding:2px 6px;position:absolute;right:0;transform:translateY(-50%)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.3)}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__lock{line-height:0}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__images{display:flex}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image{background-size:cover;border-radius:2px;height:18px;width:18px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px #fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:first-child){margin-left:-6px}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-list-view-draggable-chip{opacity:.8}.block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{display:flex}.block-editor-list-view__expander{cursor:pointer;height:24px;margin-left:4px;width:24px}.block-editor-list-view-leaf[aria-level] .block-editor-list-view__expander{margin-left:220px}.block-editor-list-view-leaf:not([aria-level="1"]) .block-editor-list-view__expander{margin-right:4px}.block-editor-list-view-leaf[aria-level="1"] .block-editor-list-view__expander{margin-left:0}.block-editor-list-view-leaf[aria-level="2"] .block-editor-list-view__expander{margin-left:24px}.block-editor-list-view-leaf[aria-level="3"] .block-editor-list-view__expander{margin-left:52px}.block-editor-list-view-leaf[aria-level="4"] .block-editor-list-view__expander{margin-left:80px}.block-editor-list-view-leaf[aria-level="5"] .block-editor-list-view__expander{margin-left:108px}.block-editor-list-view-leaf[aria-level="6"] .block-editor-list-view__expander{margin-left:136px}.block-editor-list-view-leaf[aria-level="7"] .block-editor-list-view__expander{margin-left:164px}.block-editor-list-view-leaf[aria-level="8"] .block-editor-list-view__expander{margin-left:192px}.block-editor-list-view-leaf .block-editor-list-view__expander{visibility:hidden}.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transform:rotate(90deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transform:rotate(0deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-drop-indicator{pointer-events:none}.block-editor-list-view-drop-indicator .block-editor-list-view-drop-indicator__line{background:var(--wp-admin-theme-color);border-radius:4px;height:4px}.block-editor-list-view-drop-indicator--preview{pointer-events:none}.block-editor-list-view-drop-indicator--preview .components-popover__content{overflow:hidden!important}.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:4px;height:36px;overflow:hidden}.block-editor-list-view-drop-indicator--preview .block-editor-list-view-drop-indicator__line--darker{background:rgba(var(--wp-admin-theme-color--rgb),.09)}.block-editor-list-view-placeholder{height:36px;margin:0;padding:0}.list-view-appender .block-editor-inserter__toggle{background-color:#1e1e1e;border-radius:2px;color:#fff;height:24px;margin:8px 0 0 24px;min-width:24px;padding:0}.list-view-appender .block-editor-inserter__toggle:focus,.list-view-appender .block-editor-inserter__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.list-view-appender__description,.modal-open .block-editor-media-replace-flow__options{display:none}.block-editor-media-replace-flow__indicator{margin-left:4px}.block-editor-media-flow__url-input{margin-left:-8px;margin-right:-8px;padding:16px}.block-editor-media-flow__url-input.has-siblings{border-top:1px solid #1e1e1e;margin-top:8px;padding-bottom:8px}.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{display:block;margin-bottom:8px;top:16px}.block-editor-media-flow__url-input .block-editor-link-control{width:300px}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-url-input{margin:0;padding:0}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-info,.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title{max-width:200px;white-space:nowrap}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__tools{justify-content:flex-end;padding:16px var(--wp-admin-border-width-focus) var(--wp-admin-border-width-focus)}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current{padding:0;width:auto}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=text]{margin:0;width:100%}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{padding:8px 0 0}.block-editor-media-flow__error{max-width:255px;padding:0 20px 20px}.block-editor-media-flow__error .components-with-notices-ui{max-width:255px}.block-editor-media-flow__error .components-with-notices-ui .components-notice__content{word-wrap:break-word;overflow:hidden}.block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss{position:absolute;right:10px}.block-editor-multi-selection-inspector__card{align-items:flex-start;display:flex;padding:16px}.block-editor-multi-selection-inspector__card-content{flex-grow:1}.block-editor-multi-selection-inspector__card-title{font-weight:500;margin-bottom:5px}.block-editor-multi-selection-inspector__card-description{font-size:13px}.block-editor-multi-selection-inspector__card .block-editor-block-icon{height:24px;margin-left:-2px;margin-right:10px;padding:0 3px;width:36px}.block-editor-responsive-block-control{border-bottom:1px solid #ccc;margin-bottom:28px;padding-bottom:14px}.block-editor-responsive-block-control:last-child{border-bottom:0;padding-bottom:0}.block-editor-responsive-block-control__title{margin:0 0 .6em -3px}.block-editor-responsive-block-control__label{font-weight:600;margin-bottom:.6em;margin-left:-3px}.block-editor-responsive-block-control__inner{margin-left:-1px}.block-editor-responsive-block-control__toggle{margin-left:1px}.block-editor-responsive-block-control .components-base-control__help{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.components-popover.block-editor-rich-text__inline-format-toolbar{z-index:99998}.components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content{box-shadow:none;margin-bottom:8px;min-width:auto;outline:none;width:auto}.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar{border-radius:2px}.components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle,.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control{min-height:48px;min-width:48px;padding-left:12px;padding-right:12px}.block-editor-rich-text__inline-format-toolbar-group .components-dropdown-menu__toggle{justify-content:center}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon{width:auto}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon:after{content:attr(aria-label)}.block-editor-skip-to-selected-block{position:absolute;top:-9999em}.block-editor-skip-to-selected-block:focus{background:#f1f1f1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:var(--wp-admin-theme-color);display:block;font-size:14px;font-weight:600;height:auto;line-height:normal;outline:none;padding:15px 23px 14px;text-decoration:none;width:auto;z-index:100000}.block-editor-text-decoration-control{border:0;margin:0;padding:0}.block-editor-text-decoration-control .block-editor-text-decoration-control__buttons{display:flex;padding:4px 0}.block-editor-text-decoration-control .components-button.has-icon{height:32px;margin-right:4px;min-width:32px;padding:0}.block-editor-text-transform-control{border:0;margin:0;padding:0}.block-editor-text-transform-control .block-editor-text-transform-control__buttons{display:flex;padding:4px 0}.block-editor-text-transform-control .components-button.has-icon{height:32px;margin-right:4px;min-width:32px;padding:0}.block-editor-tool-selector__help{border-top:1px solid #ddd;color:#757575;margin:8px -8px -8px;min-width:280px;padding:16px}.block-editor-block-list__block .block-editor-url-input,.block-editor-url-input,.components-popover .block-editor-url-input{flex-grow:1;padding:1px;position:relative}.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{border:none;border-radius:0;font-size:16px;margin-left:0;margin-right:0;padding:8px 8px 8px 12px;width:100%}@media (min-width:600px){.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{font-size:13px;width:300px}}.block-editor-block-list__block .block-editor-url-input input[type=text]::-ms-clear,.block-editor-url-input input[type=text]::-ms-clear,.components-popover .block-editor-url-input input[type=text]::-ms-clear{display:none}.block-editor-block-list__block .block-editor-url-input.is-full-width,.block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,.block-editor-url-input.is-full-width,.block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-url-input.is-full-width__suggestions,.components-popover .block-editor-url-input.is-full-width,.components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.components-popover .block-editor-url-input.is-full-width__suggestions{width:100%}.block-editor-block-list__block .block-editor-url-input .components-spinner,.block-editor-url-input .components-spinner,.components-popover .block-editor-url-input .components-spinner{margin:0;position:absolute;right:8px;top:calc(50% - 8px)}.block-editor-url-input__input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.block-editor-url-input__input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-url-input__input[type=text]{font-size:13px;line-height:normal}}.block-editor-url-input__input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-url-input__input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-url-input__input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__suggestions{max-height:200px;overflow-y:auto;padding:4px 0;transition:all .15s ease-in-out;width:302px}@media (prefers-reduced-motion:reduce){.block-editor-url-input__suggestions{transition-delay:0s;transition-duration:0s}}.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:none}@media (min-width:600px){.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:grid}}.block-editor-url-input__suggestion{background:#fff;border:none;box-shadow:none;color:#757575;cursor:pointer;display:block;font-size:13px;height:auto;min-height:36px;text-align:left;width:100%}.block-editor-url-input__suggestion:hover{background:#ddd}.block-editor-url-input__suggestion.is-selected,.block-editor-url-input__suggestion:focus{background:var(--wp-admin-theme-color-darker-20);color:#fff;outline:none}.components-toolbar-group>.block-editor-url-input__button,.components-toolbar>.block-editor-url-input__button{position:inherit}.block-editor-url-input__button .block-editor-url-input__back{margin-right:4px;overflow:visible}.block-editor-url-input__button .block-editor-url-input__back:after{background:#ddd;content:"";display:block;height:24px;position:absolute;right:-1px;width:1px}.block-editor-url-input__button-modal{background:#fff;border:1px solid #ddd;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}.block-editor-url-input__button-modal-line{align-items:flex-start;display:flex;flex-direction:row;flex-grow:1;flex-shrink:1;min-width:0}.block-editor-url-input__button-modal-line .components-button{flex-shrink:0;height:36px;width:36px}.block-editor-url-popover__additional-controls{border-top:1px solid #ddd}.block-editor-url-popover__additional-controls>div[role=menu] .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary)>svg{box-shadow:none}.block-editor-url-popover__additional-controls div[role=menu]>.components-button{padding-left:12px}.block-editor-url-popover__row{display:flex}.block-editor-url-popover__row>:not(.block-editor-url-popover__settings-toggle){flex-grow:1}.block-editor-url-popover .components-button.has-icon{padding:3px}.block-editor-url-popover .components-button.has-icon>svg{border-radius:2px;height:30px;padding:5px;width:30px}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus{box-shadow:none}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.block-editor-url-popover__settings-toggle{border-left:1px solid #ddd;border-radius:0;flex-shrink:0;margin-left:1px}.block-editor-url-popover__settings-toggle[aria-expanded=true] .dashicon{transform:rotate(180deg)}.block-editor-url-popover__settings{border-top:1px solid #ddd;display:block;padding:16px}.block-editor-url-popover__link-editor,.block-editor-url-popover__link-viewer{display:flex}.block-editor-url-popover__link-viewer-url{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-url-popover__link-viewer-url.has-invalid-link{color:#cc1818}.html-anchor-control .components-external-link{display:block;margin-top:8px}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack{flex-direction:row-reverse}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack .components-h-stack{flex-direction:row}.block-editor-hooks__background__inspector-media-replace-container{position:relative}.block-editor-hooks__background__inspector-media-replace-container .components-drop-zone__content-icon{display:none}.block-editor-hooks__background__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:block;height:40px;width:100%}.block-editor-hooks__background__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container .block-editor-hooks__background__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-hooks__background__inspector-media-replace-container .components-dropdown{display:block}.block-editor-hooks__background__inspector-image-indicator-wrapper{background:#fff linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:block;flex:none;height:20px;width:20px}.block-editor-hooks__background__inspector-image-indicator-wrapper.has-image{background:#fff}.block-editor-hooks__background__inspector-image-indicator{background-size:cover;border-radius:50%;display:block;height:20px;position:relative;width:20px}.block-editor-hooks__background__inspector-image-indicator:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.border-block-support-panel .single-column{grid-column:span 1}.color-block-support-panel .block-editor-contrast-checker{grid-column:span 2;margin-top:16px;order:9999}.color-block-support-panel .block-editor-contrast-checker .components-notice__content{margin-right:0}.color-block-support-panel.color-block-support-panel .color-block-support-panel__inner-wrapper{row-gap:0}.color-block-support-panel .block-editor-tools-panel-color-gradient-settings__item.first{margin-top:0}.dimensions-block-support-panel .single-column{grid-column:span 1}.block-editor-hooks__layout-controls{display:flex;margin-bottom:8px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit{display:flex;margin-right:24px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit svg{margin:auto 0 4px 8px}.block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input{margin-bottom:0}.block-editor-hooks__layout-controls-reset{display:flex;justify-content:flex-end;margin-bottom:24px}.block-editor-hooks__layout-controls-helptext{color:#757575;font-size:12px;margin-bottom:16px}.block-editor-hooks__flex-layout-justification-controls,.block-editor-hooks__flex-layout-orientation-controls{margin-bottom:12px}.block-editor-hooks__flex-layout-justification-controls legend,.block-editor-hooks__flex-layout-orientation-controls legend{margin-bottom:8px}.block-editor-hooks__toggle-control.block-editor-hooks__toggle-control{margin-bottom:16px}.block-editor__padding-visualizer{border-color:var(--wp-admin-theme-color);border-style:solid;bottom:0;box-sizing:border-box;left:0;opacity:.5;pointer-events:none;position:absolute;right:0;top:0}.block-editor-hooks__position-selection__select-control .components-custom-select-control__hint{display:none}.block-editor-hooks__position-selection__select-control__option.has-hint{grid-template-columns:auto 30px;line-height:1.4;margin-bottom:0}.block-editor-hooks__position-selection__select-control__option .components-custom-select-control__item-hint{grid-row:2;text-align:left}.typography-block-support-panel .single-column{grid-column:span 1}.block-editor-block-toolbar{display:flex;flex-grow:1;overflow-x:auto;overflow-y:hidden;position:relative;transition:border-color .1s linear,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-toolbar{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-block-toolbar{overflow:inherit}}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group{background:none;border:0;border-right:1px solid #ddd;line-height:0;margin-bottom:-1px;margin-top:-1px}.block-editor-block-toolbar.is-synced .block-editor-block-switcher .components-button .block-editor-block-icon,.block-editor-block-toolbar.is-synced .components-toolbar-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-toolbar>:last-child,.block-editor-block-toolbar>:last-child .components-toolbar,.block-editor-block-toolbar>:last-child .components-toolbar-group{border-right:none}.block-editor-block-contextual-toolbar{background-color:#fff;display:block;flex-shrink:3;position:sticky;top:0;width:100%;z-index:31}.block-editor-block-contextual-toolbar.components-accessible-toolbar{border:none;border-bottom:1px solid #e0e0e0;border-radius:0}.block-editor-block-contextual-toolbar .block-editor-block-toolbar{overflow:auto;overflow-y:hidden}.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar .block-editor-block-toolbar>:last-child:after{display:none}.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{border-right-color:#e0e0e0}.block-editor-block-contextual-toolbar>.block-editor-block-toolbar{flex-grow:0;width:auto}.block-editor-block-contextual-toolbar .block-editor-block-parent-selector{margin-bottom:-1px;margin-top:-1px;position:relative}.block-editor-block-contextual-toolbar .block-editor-block-parent-selector:after{bottom:16px;content:"·";font-size:16px;position:absolute;right:0}.block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin:0!important;width:24px!important}.block-editor-block-toolbar__block-controls .components-toolbar-group{padding:0}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar-group{display:flex;flex-wrap:nowrap}.block-editor-block-toolbar__slot{display:inline-block;line-height:0}@supports (position:sticky){.block-editor-block-toolbar__slot{display:inline-flex}}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon{width:auto}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.show-icon-labels .components-accessible-toolbar .components-toolbar-group>div:first-child:last-child>.components-button.has-icon{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.show-icon-labels .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{height:0!important;min-width:0!important;width:0!important}.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button{text-wrap:nowrap;border-bottom-right-radius:0;border-top-right-radius:0;padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-parent-selector .block-editor-block-parent-selector__button .block-editor-block-icon{width:0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{width:auto}@media (min-width:600px){.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{position:relative}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#1e1e1e;content:"";height:1px;left:50%;margin-top:-.5px;position:absolute;top:50%;transform:translate(-50%);width:100%}}.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button{padding-left:8px;padding-right:8px}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-left:1px solid #ddd;margin-left:6px;margin-right:-6px;white-space:nowrap}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{width:auto}.show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{flex-shrink:1}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{margin-left:6px}.block-editor-inserter{background:none;border:none;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:0;padding:0}@media (min-width:782px){.block-editor-inserter{position:relative}}.block-editor-inserter__main-area{display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:hidden;position:relative}.block-editor-inserter__main-area.show-as-tabs{gap:0}@media (min-width:782px){.block-editor-inserter__main-area{width:350px}}.block-editor-inserter__popover.is-quick .components-popover__content{border:none;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);outline:none}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>*{border-left:1px solid #ccc;border-right:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:first-child{border-radius:2px 2px 0 0;border-top:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:last-child{border-bottom:1px solid #ccc;border-radius:0 0 2px 2px}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>.components-button{border:1px solid #1e1e1e}.block-editor-inserter__popover .block-editor-inserter__menu{margin:-12px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs div[role=tablist]{top:60px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{height:auto;overflow:visible}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__preview-container{display:none}.block-editor-inserter__toggle.components-button{align-items:center;border:none;cursor:pointer;display:inline-flex;outline:none;padding:0;transition:color .2s ease}@media (prefers-reduced-motion:reduce){.block-editor-inserter__toggle.components-button{transition-delay:0s;transition-duration:0s}}.block-editor-inserter__menu{height:100%;overflow:visible;position:relative}.block-editor-inserter__inline-elements{margin-top:-1px}.block-editor-inserter__menu.is-bottom:after{border-bottom-color:#fff}.components-popover.block-editor-inserter__popover{z-index:99999}.block-editor-inserter__search{padding:16px 16px 0}.block-editor-inserter__search .components-search-control__icon{right:20px}.block-editor-inserter__tabs{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.block-editor-inserter__tabs div[role=tablist]{border-bottom:1px solid #ddd}.block-editor-inserter__tabs div[role=tablist] button[role=tab]{flex-grow:1;margin-bottom:-1px}.block-editor-inserter__tabs div[role=tablist] button[role=tab][id$=reusable]{flex-grow:inherit;padding-left:16px;padding-right:16px}.block-editor-inserter__tabs div[role=tabpanel]{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.block-editor-inserter__no-tab-container{flex-grow:1;overflow-y:auto}.block-editor-inserter__panel-header{align-items:center;display:inline-flex;padding:16px 16px 0}.block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__panel-title,.block-editor-inserter__panel-title button{color:#757575;font-size:11px;font-weight:500;margin:0 12px 0 0;text-transform:uppercase}.block-editor-inserter__panel-dropdown select.components-select-control__input.components-select-control__input.components-select-control__input{height:36px;line-height:36px}.block-editor-inserter__panel-dropdown select{border:none}.block-editor-inserter__reusable-blocks-panel{position:relative;text-align:right}.block-editor-inserter__manage-reusable-blocks-container{margin:auto 16px 16px}.block-editor-inserter__manage-reusable-blocks{justify-content:center;width:100%}.block-editor-inserter__no-results{padding:32px;text-align:center}.block-editor-inserter__no-results-icon{fill:#949494}.block-editor-inserter__child-blocks{padding:0 16px}.block-editor-inserter__parent-block-header{align-items:center;display:flex}.block-editor-inserter__parent-block-header h2{font-size:13px}.block-editor-inserter__parent-block-header .block-editor-block-icon{margin-right:8px}.block-editor-inserter__preview-container__popover{top:16px!important}.block-editor-inserter__preview-container{display:none;max-height:calc(100% - 32px);overflow-y:hidden;padding:16px;width:280px}@media (min-width:782px){.block-editor-inserter__preview-container{display:block}}.block-editor-inserter__preview-container .block-editor-block-preview__container{height:100%}.block-editor-inserter__preview-container .block-editor-block-card{padding-bottom:4px;padding-left:0;padding-right:0}.block-editor-inserter__patterns-explore-button.components-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category .components-flex-item{filter:brightness(.95)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{height:100%}.block-editor-inserter__block-patterns-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category{padding-right:4px}.block-editor-inserter__patterns-category-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;left:0;position:absolute;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__patterns-category-dialog{display:block;left:100%;width:300px}}.block-editor-inserter__patterns-category-dialog .block-editor-block-patterns-list{flex-grow:1;height:100%;overflow-y:auto;padding:16px 24px}.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__list-item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__patterns-category-panel{display:flex;flex-direction:column;height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__patterns-category-panel{padding:0}}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-panel-header{padding:16px 24px}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-no-results{margin-top:24px}.block-editor-inserter__preview-content{align-items:center;background:#f0f0f0;display:grid;flex-grow:1;min-height:144px}.block-editor-inserter__preview-content-missing{align-items:center;background:#f0f0f0;border-radius:2px;color:#757575;display:flex;flex:1;justify-content:center;min-height:144px}.block-editor-inserter__tips{border-top:1px solid #ddd;flex-shrink:0;padding:16px;position:relative}.block-editor-inserter__quick-inserter{max-width:100%;width:100%}@media (min-width:782px){.block-editor-inserter__quick-inserter{width:350px}}.block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header{float:left;height:0;padding:0}.block-editor-inserter__quick-inserter.has-expand .block-editor-inserter__panel-content,.block-editor-inserter__quick-inserter.has-search .block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-preview__container{min-height:100px}.block-editor-inserter__quick-inserter-separator{border-top:1px solid #ddd}.block-editor-inserter__popover.is-quick>.components-popover__content{padding:0}.block-editor-inserter__quick-inserter-expand.components-button{background:#1e1e1e;border-radius:0;color:#fff;display:block;height:44px;width:100%}.block-editor-inserter__quick-inserter-expand.components-button:hover{color:#fff}.block-editor-inserter__quick-inserter-expand.components-button:active{color:#ccc}.block-editor-inserter__quick-inserter-expand.components-button.components-button:focus:not(:disabled){background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);box-shadow:none}.block-editor-block-patterns-explorer__sidebar{bottom:0;left:0;overflow-x:visible;overflow-y:scroll;padding:24px 32px 32px;position:absolute;top:72px;width:280px}.block-editor-block-patterns-explorer__sidebar__categories-list__item{display:block;height:48px;text-align:left;width:100%}.block-editor-block-patterns-explorer__search{margin-bottom:32px}.block-editor-block-patterns-explorer__search-results-count{padding-bottom:32px}.block-editor-block-patterns-explorer__list{margin-left:280px;padding:24px 0 32px}.block-editor-block-patterns-explorer__list .block-editor-patterns__sync-status-filter .components-input-control__container{width:380px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-gap:32px;display:grid;grid-template-columns:repeat(1,1fr);margin-bottom:16px}@media (min-width:1080px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(3,1fr)}}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{min-height:240px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-preview__container{height:inherit;max-height:800px;min-height:100px}.block-editor-inserter__patterns-category-panel-title{font-size:16.25px}.block-editor-inserter__media-tabs-container,.block-editor-inserter__media-tabs-container nav{height:100%}.block-editor-inserter__media-tabs-container .block-editor-inserter__media-library-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__media-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__media-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category{padding-right:4px}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{filter:brightness(.95)}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__media-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;left:0;overflow-y:auto;padding:16px 24px;position:absolute;scrollbar-gutter:stable both-edges;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__media-dialog{display:block;left:100%;width:300px}}.block-editor-inserter__media-dialog .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-dialog .block-editor-block-preview__container:hover{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-panel{display:flex;flex-direction:column;min-height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__media-panel{padding:0}}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-spinner{align-items:center;display:flex;flex:1;height:100%;justify-content:center}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control input[type=search].components-search-control__input{background:#fff}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control button.components-button{min-width:auto;padding-left:2px;padding-right:2px}.block-editor-inserter__media-list{margin-top:16px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-placeholder{min-height:100px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item[draggable=true] .block-editor-block-preview__container{cursor:grab}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview-options>button{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options{position:absolute;right:8px;top:8px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button{background:#fff;border-radius:2px;display:none}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button.is-opened,.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:focus{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:hover{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list .block-editor-inserter__media-list__item{height:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview{align-items:center;border-radius:2px;display:flex;overflow:hidden}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview>*{margin:0 auto;max-width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview .block-editor-inserter__media-list__item-preview-spinner{align-items:center;background:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item:focus .block-editor-inserter__media-list__item-preview{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list__item-preview-options__popover .components-menu-item__button .components-menu-item__item{min-width:auto}.block-editor-inserter__mobile-tab-navigation{height:100%;padding:16px}.block-editor-inserter__mobile-tab-navigation>*{height:100%}@media (min-width:600px){.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal{max-width:480px}}.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal p{margin:0}.block-editor-inserter__hint{margin:16px 16px 0}.reusable-blocks-menu-items__rename-hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;max-width:380px}.reusable-blocks-menu-items__rename-hint-content{margin:12px 0 12px 12px}.reusable-blocks-menu-items__rename-hint-dismiss{margin:4px 4px 4px 0}.components-menu-group .reusable-blocks-menu-items__rename-hint{margin:0}.block-editor-patterns__sync-status-filter .components-input-control__container select.components-select-control__input{height:40px}.spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range,.spacing-sizes-control .spacing-sizes-control__range-control{align-items:center;display:flex;flex:1;height:40px;margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range>.components-base-control__field,.spacing-sizes-control .spacing-sizes-control__range-control>.components-base-control__field{flex:1}.spacing-sizes-control .components-range-control__mark{background-color:#fff;height:4px;width:3px;z-index:1}.spacing-sizes-control .components-range-control__marks{margin-top:17px}.spacing-sizes-control .components-range-control__marks :first-child{display:none}.spacing-sizes-control .components-range-control__thumb-wrapper{z-index:3}.spacing-sizes-control__header{height:16px;margin-bottom:12px}.spacing-sizes-control__dropdown{height:24px}.spacing-sizes-control__custom-select-control,.spacing-sizes-control__custom-value-input{flex:1}.spacing-sizes-control__custom-toggle,.spacing-sizes-control__icon{flex:0 0 auto}.spacing-sizes-control__icon{margin-left:-4px}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-autocompleters__block{white-space:nowrap}.block-editor-autocompleters__block .block-editor-block-icon{margin-right:8px}.block-editor-autocompleters__link{white-space:nowrap}.block-editor-autocompleters__link .block-editor-block-icon{margin-right:8px}.block-editor-block-alignment-control__menu-group .components-menu-item__info{margin-top:0}.block-editor-block-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.block-editor-block-icon.has-colors svg{fill:currentColor}@media (forced-colors:active){.block-editor-block-icon.has-colors svg{fill:CanvasText}}.block-editor-block-icon svg{max-height:24px;max-width:24px;min-height:20px;min-width:20px}.block-editor-block-inspector p:not(.components-base-control__help){margin-top:0}.block-editor-block-inspector h2,.block-editor-block-inspector h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.block-editor-block-inspector .components-base-control{margin-bottom:24px}.block-editor-block-inspector .components-base-control:last-child{margin-bottom:8px}.block-editor-block-inspector .components-focal-point-picker-control .components-base-control,.block-editor-block-inspector .components-query-controls .components-base-control,.block-editor-block-inspector .components-range-control .components-base-control{margin-bottom:0}.block-editor-block-inspector .components-panel__body{border:none;border-top:1px solid #e0e0e0;margin-top:-1px}.block-editor-block-inspector .block-editor-block-card{padding:16px}.block-editor-block-inspector__no-block-tools,.block-editor-block-inspector__no-blocks{background:#fff;display:block;font-size:13px;padding:32px 16px;text-align:center}.block-editor-block-inspector__no-block-tools{border-top:1px solid #ddd}.block-editor-block-inspector__tab-item{flex:1 1 0px}.block-editor-block-list__insertion-point{bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__insertion-point-indicator{background:var(--wp-admin-theme-color);border-radius:2px;opacity:0;position:absolute;transform-origin:center;will-change:transform,opacity}.block-editor-block-list__insertion-point.is-vertical>.block-editor-block-list__insertion-point-indicator{height:4px;top:calc(50% - 2px);width:100%}.block-editor-block-list__insertion-point.is-horizontal>.block-editor-block-list__insertion-point-indicator{bottom:0;left:calc(50% - 2px);top:0;width:4px}.block-editor-block-list__insertion-point-inserter{display:none;justify-content:center;left:calc(50% - 12px);position:absolute;top:calc(50% - 12px);will-change:transform}@media (min-width:480px){.block-editor-block-list__insertion-point-inserter{display:flex}}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div{pointer-events:none}.block-editor-block-list__block-side-inserter-popover .components-popover__content>div>*{pointer-events:all}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:#1e1e1e;border-radius:2px;color:#fff;height:24px;min-width:24px;padding:0}.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:var(--wp-admin-theme-color);color:#fff}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon{background:var(--wp-admin-theme-color)}.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover{background:#1e1e1e}.block-editor-block-contextual-toolbar{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;display:inline-flex}.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{border-right-color:#1e1e1e}.block-editor-block-contextual-toolbar.is-fixed{border:none;border-bottom:1px solid #e0e0e0;border-radius:0;overflow:hidden}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar{overflow:auto;overflow-y:hidden}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-right-color:#e0e0e0}.block-editor-block-contextual-toolbar.is-collapsed:after{background:linear-gradient(90deg,#fff,transparent);content:"";height:100%;left:100%;position:absolute;width:48px}@media (min-width:782px){.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar{flex-grow:0;width:auto}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar:before{background-color:#ddd;content:"";height:24px;left:-2px;margin-right:0;margin-top:12px;position:relative;top:-1px;width:1px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{border:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar:before{background-color:#ddd;content:"";height:24px;left:0;margin-right:8px;margin-top:12px;position:relative;top:-1px;width:1px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{border:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar{width:256px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-expand-fixed-toolbar:before{background-color:#ddd;content:"";height:24px;left:-8px;margin-bottom:12px;margin-top:12px;position:relative;top:-1px;width:1px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{left:0}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-left:none}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-top:12px;position:relative;width:1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button{border:0;padding-left:6px;padding-right:6px;position:relative;top:-1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-parent-selector .block-editor-block-parent-selector__button:after{bottom:4px;content:"·";font-size:16px;left:46px;line-height:40px;position:absolute}.block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{left:-57px;position:absolute;top:-1px}.show-icon-labels .block-editor-block-contextual-toolbar:not(.is-fixed) .block-editor-block-parent-selector{left:auto;margin-bottom:-1px;margin-left:-1px;margin-top:-1px;position:relative;top:auto}}.block-editor-block-list__block-selection-button{background-color:#1e1e1e;border-radius:2px;display:inline-flex;font-size:13px;height:48px;padding:0 12px;z-index:22}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content{align-items:center;display:inline-flex;margin:auto}.block-editor-block-list__block-selection-button .block-editor-block-list__block-selection-button__content>.components-flex__item{margin-right:6px}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle{cursor:grab;height:24px;margin-left:-2px;min-width:24px;padding:0}.block-editor-block-list__block-selection-button .components-button.has-icon.block-selection-button_drag-handle svg{min-height:18px;min-width:18px}.block-editor-block-list__block-selection-button .block-editor-block-icon{color:#fff;font-size:13px;height:48px}.block-editor-block-list__block-selection-button .components-button{color:#fff;display:flex;height:48px;min-width:36px}.block-editor-block-list__block-selection-button .components-button:focus{border:none;box-shadow:none}.block-editor-block-list__block-selection-button .components-button:active,.block-editor-block-list__block-selection-button .components-button[aria-disabled=true]:hover{color:#fff}.block-editor-block-list__block-selection-button .block-selection-button_select-button.components-button{padding:0}.block-editor-block-list__block-selection-button .block-editor-block-mover{background:unset;border:none}@keyframes hide-during-dragging{to{position:fixed;transform:translate(9999px,9999px)}}.components-popover.block-editor-block-list__block-popover .block-editor-block-contextual-toolbar,.components-popover.block-editor-block-list__block-popover .block-editor-block-list__block-selection-button{margin-bottom:12px;margin-top:12px;pointer-events:all}.components-popover.block-editor-block-list__block-popover.is-insertion-point-visible{visibility:hidden}.is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover{animation:hide-during-dragging 1ms linear forwards;opacity:0}.is-dragging-components-draggable .components-tooltip{display:none}.block-editor-block-lock-modal{z-index:1000001}@media (min-width:600px){.block-editor-block-lock-modal .components-modal__frame{max-width:480px}}.block-editor-block-lock-modal__checklist{margin:0}.block-editor-block-lock-modal__options-title{padding:12px 0}.block-editor-block-lock-modal__options-title .components-checkbox-control__label{font-weight:600}.block-editor-block-lock-modal__checklist-item{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:0;padding:12px 0 12px 32px}.block-editor-block-lock-modal__checklist-item .block-editor-block-lock-modal__lock-icon{fill:#1e1e1e;flex-shrink:0;margin-right:12px}.block-editor-block-lock-modal__checklist-item:hover{background-color:#f0f0f0;border-radius:2px}.block-editor-block-lock-modal__template-lock{border-top:1px solid #ddd;margin-top:16px;padding:12px 0}.block-editor-block-lock-modal__actions{margin-top:24px}.block-editor-block-lock-toolbar .components-button.has-icon{min-width:36px!important}.block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{margin-left:-6px!important}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-lock-toolbar{border-left:1px solid #1e1e1e;margin-left:6px!important;margin-right:-6px}.block-editor-block-breadcrumb{list-style:none;margin:0;padding:0}.block-editor-block-breadcrumb li{display:inline-flex;margin:0}.block-editor-block-breadcrumb li .block-editor-block-breadcrumb__separator{fill:currentColor;margin-left:-4px;margin-right:-4px;transform:scaleX(1)}.block-editor-block-breadcrumb li:last-child .block-editor-block-breadcrumb__separator{display:none}.block-editor-block-breadcrumb__button.components-button{height:24px;line-height:24px;padding:0;position:relative}.block-editor-block-breadcrumb__button.components-button:hover:not(:disabled){box-shadow:none;text-decoration:underline}.block-editor-block-breadcrumb__button.components-button:focus{box-shadow:none}.block-editor-block-breadcrumb__button.components-button:focus:before{border-radius:2px;bottom:1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:1px;outline:2px solid transparent;position:absolute;right:1px;top:1px}.block-editor-block-breadcrumb__current{cursor:default}.block-editor-block-breadcrumb__button.components-button,.block-editor-block-breadcrumb__current{color:#1e1e1e;font-size:inherit;padding:0 8px}.block-editor-block-card{align-items:flex-start;display:flex}.block-editor-block-card__content{flex-grow:1;margin-bottom:4px}.block-editor-block-card__title{font-weight:500}.block-editor-block-card__title.block-editor-block-card__title{line-height:24px;margin:0 0 4px}.block-editor-block-card__description{font-size:13px}.block-editor-block-card .block-editor-block-icon{flex:0 0 24px;height:24px;margin-left:0;margin-right:12px;width:24px}.block-editor-block-card.is-synced .block-editor-block-icon{color:var(--wp-block-synced-color)}.block-editor-block-compare{height:auto}.block-editor-block-compare__wrapper{display:flex;padding-bottom:16px}.block-editor-block-compare__wrapper>div{display:flex;flex-direction:column;justify-content:space-between;max-width:600px;min-width:200px;padding:0 16px 0 0;width:50%}.block-editor-block-compare__wrapper>div button{float:right}.block-editor-block-compare__wrapper .block-editor-block-compare__converted{border-left:1px solid #ddd;padding-left:15px;padding-right:0}.block-editor-block-compare__wrapper .block-editor-block-compare__html{border-bottom:1px solid #ddd;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:12px;line-height:1.7;padding-bottom:15px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span{background-color:#e6ffed;padding-bottom:3px;padding-top:3px}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added{background-color:#acf2bd}.block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed{background-color:#cc1818}.block-editor-block-compare__wrapper .block-editor-block-compare__preview{padding:16px 0 0}.block-editor-block-compare__wrapper .block-editor-block-compare__preview p{font-size:12px;margin-top:0}.block-editor-block-compare__wrapper .block-editor-block-compare__action{margin-top:16px}.block-editor-block-compare__wrapper .block-editor-block-compare__heading{font-size:1em;font-weight:400;margin:.67em 0}.block-editor-block-draggable-chip-wrapper{left:0;position:absolute;top:-24px}.block-editor-block-draggable-chip{background-color:#1e1e1e;border-radius:2px;box-shadow:0 6px 8px rgba(0,0,0,.3);color:#fff;cursor:grabbing;display:inline-flex;height:48px;padding:0 13px;-webkit-user-select:none;user-select:none;width:max-content}.block-editor-block-draggable-chip svg{fill:currentColor}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content{justify-content:flex-start;margin:auto}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item{margin-right:6px}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content>.components-flex__item:last-child{margin-right:0}.block-editor-block-draggable-chip .block-editor-block-draggable-chip__content .block-editor-block-icon svg{min-height:18px;min-width:18px}.block-editor-block-draggable-chip .components-flex__item{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-block-mover__move-button-container{border:none;display:flex;padding:0}@media (min-width:600px){.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container{flex-direction:column}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>*{height:24px;min-width:0!important;width:100%}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container>:before{height:calc(100% - 4px)}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{flex-shrink:0;top:5px}.block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{bottom:5px;flex-shrink:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{width:48px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container>*{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button{padding-left:0;padding-right:0}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-up-button svg{left:5px}.block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container .block-editor-block-mover-button.is-down-button svg{right:5px}}.block-editor-block-mover__drag-handle{cursor:grab}@media (min-width:600px){.block-editor-block-mover__drag-handle{min-width:0!important;overflow:hidden;width:24px}.block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon.has-icon{padding-left:0;padding-right:0}}.components-button.block-editor-block-mover-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-mover-button:before{animation-delay:0s;animation-duration:1ms}}.components-button.block-editor-block-mover-button:focus,.components-button.block-editor-block-mover-button:focus:before,.components-button.block-editor-block-mover-button:focus:enabled{box-shadow:none;outline:none}.components-button.block-editor-block-mover-button:focus-visible:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.block-editor-block-navigation__container{min-width:280px}.block-editor-block-navigation__label{color:#757575;font-size:11px;font-weight:500;margin:0 0 12px;text-transform:uppercase}.block-editor-block-parent-selector{background:#fff;border-radius:2px}.block-editor-block-parent-selector .block-editor-block-parent-selector__button{border:1px solid #1e1e1e;border-radius:2px;height:48px;width:48px}.block-editor-block-patterns-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-block-patterns-list__list-item.is-placeholder{min-height:100px}.block-editor-block-patterns-list__list-item[draggable=true]{cursor:grab}.block-editor-block-patterns-list__item{height:100%}.block-editor-block-patterns-list__item .block-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;overflow:hidden}.block-editor-block-patterns-list__item .block-editor-block-patterns-list__item-title{flex-grow:1;text-align:left}.block-editor-block-patterns-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e}.block-editor-block-patterns-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) #1e1e1e;outline:2px solid transparent;outline-offset:2px}.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:focus .block-editor-block-preview__container,.block-editor-block-patterns-list__item.block-editor-block-patterns-list__list-item-synced:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-block-synced-color),0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-details{align-items:center;margin-top:8px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper{height:24px;min-width:24px}.block-editor-block-patterns-list__item .block-editor-patterns__pattern-icon-wrapper .block-editor-patterns__pattern-icon{fill:var(--wp-block-synced-color)}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination{border-top:1px solid #2f2f2f;justify-content:center;padding:4px}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:auto}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.block-editor-patterns__grid-pagination-wrapper .block-editor-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575;color:#fff}.show-icon-labels .block-editor-patterns__grid-pagination,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-next,.show-icon-labels .block-editor-patterns__grid-pagination .block-editor-patterns__grid-pagination-previous{flex-direction:column}.show-icon-labels .block-editor-patterns__grid-pagination .components-button{width:auto}.show-icon-labels .block-editor-patterns__grid-pagination .components-button span{display:none}.show-icon-labels .block-editor-patterns__grid-pagination .components-button:before{content:attr(aria-label)}.components-popover.block-editor-block-popover{margin:0!important;pointer-events:none;position:absolute;z-index:31}.components-popover.block-editor-block-popover .components-popover__content{margin:0!important;min-width:auto;overflow-y:visible;width:max-content}.components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween,.block-editor-block-popover__drop-zone,.block-editor-block-list__block-side-inserter-popover) .components-popover__content *{pointer-events:all}.components-popover.block-editor-block-popover__inbetween,.components-popover.block-editor-block-popover__inbetween *{pointer-events:none}.components-popover.block-editor-block-popover__inbetween .is-with-inserter,.components-popover.block-editor-block-popover__inbetween .is-with-inserter *{pointer-events:all}.components-popover.block-editor-block-popover__drop-zone *{pointer-events:none}.components-popover.block-editor-block-popover__drop-zone .block-editor-block-popover__drop-zone-foreground{background-color:var(--wp-admin-theme-color);border-radius:2px;inset:0;position:absolute}.block-editor-block-preview__container{overflow:hidden;position:relative;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content{left:0;margin:0;min-height:auto;overflow:visible;text-align:initial;top:0;transform-origin:top left;width:100%}.block-editor-block-preview__container .block-editor-block-preview__content .block-editor-block-list__insertion-point,.block-editor-block-preview__container .block-editor-block-preview__content .block-list-appender{display:none}.block-editor-block-preview__container:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.block-editor-block-rename-modal{z-index:1000001}.block-editor-block-settings-menu__popover .components-dropdown-menu__menu{padding:0}.block-editor-block-styles+.default-style-picker__default-switcher{margin-top:16px}.block-editor-block-styles__preview-panel{display:none;z-index:90}@media (min-width:782px){.block-editor-block-styles__preview-panel{display:block}}.block-editor-block-styles__preview-panel .block-editor-inserter__preview-container{left:auto;position:static;right:auto;top:auto}.block-editor-block-styles__preview-panel .block-editor-block-card__title.block-editor-block-card__title{margin:0}.block-editor-block-styles__preview-panel .block-editor-block-icon{display:none}.block-editor-block-styles__variants{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:inline-block;width:calc(50% - 4px)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:hover{box-shadow:inset 0 0 0 1px #ddd;color:var(--wp-admin-theme-color)}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover{background-color:#1e1e1e;box-shadow:none}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active .block-editor-block-styles__item-text,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:hover .block-editor-block-styles__item-text{color:#fff}.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus,.block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.block-editor-block-styles__variants .block-editor-block-styles__item-text{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-block-styles__block-preview-container,.block-editor-block-styles__block-preview-container *{box-sizing:border-box!important}.block-editor-block-switcher{position:relative}.block-editor-block-switcher .components-button.components-dropdown-menu__toggle.has-icon.has-icon{min-width:36px}.block-editor-block-switcher__no-switcher-icon,.block-editor-block-switcher__toggle{position:relative}.components-button.block-editor-block-switcher__no-switcher-icon,.components-button.block-editor-block-switcher__toggle{display:block;height:48px;margin:0}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.components-button.block-editor-block-switcher__toggle .block-editor-block-icon{margin:auto}.block-editor-block-switcher__toggle-text{margin-left:8px}.show-icon-labels .block-editor-block-switcher__toggle-text{display:none}.show-icon-labels .block-editor-block-toolbar .block-editor-block-switcher .components-button.has-icon:after{font-size:14px}.components-button.block-editor-block-switcher__no-switcher-icon{display:flex}.components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin-left:auto;margin-right:auto;min-width:24px!important}.components-button.block-editor-block-switcher__no-switcher-icon:disabled{opacity:1}.components-button.block-editor-block-switcher__no-switcher-icon:disabled,.components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:#1e1e1e}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon{align-items:center;display:flex;height:100%;margin:0 auto;min-width:100%;position:relative}.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon:before,.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon:before{bottom:8px;left:8px;right:8px;top:8px}.components-popover.block-editor-block-switcher__popover .components-popover__content{min-width:300px}.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container{left:calc(100% + 16px);position:absolute;top:-12px}.block-editor-block-switcher__preview__popover{display:none;overflow:hidden}.block-editor-block-switcher__preview__popover.components-popover{margin-top:11px}@media (min-width:782px){.block-editor-block-switcher__preview__popover{display:block}}.block-editor-block-switcher__preview__popover .components-popover__content{background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:none;outline:none;overflow:auto;width:300px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview{margin:16px 0;max-height:468px;overflow:hidden;padding:0 16px}.block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview.is-pattern-list-preview{overflow:unset}.block-editor-block-switcher__preview-title{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;text-transform:uppercase}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon{min-width:36px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle{height:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{height:48px;width:48px}.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform{padding:12px}.block-editor-block-switcher__preview-patterns-container{padding-bottom:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item{margin-top:16px}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-preview__container{cursor:pointer}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item{border:1px solid transparent;border-radius:2px;height:100%;position:relative;transition:all .05s ease-in-out}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:focus,.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) #1e1e1e}.block-editor-block-switcher__preview-patterns-container .block-editor-block-switcher__preview-patterns-container-list__list-item .block-editor-block-switcher__preview-patterns-container-list__item .block-editor-block-switcher__preview-patterns-container-list__item-title{cursor:pointer;font-size:12px;padding:4px;text-align:center}.block-editor-block-types-list>[role=presentation]{display:flex;flex-wrap:wrap;overflow:hidden}.block-editor-block-pattern-setup{align-items:flex-start;border-radius:2px;display:flex;flex-direction:column;justify-content:center;width:100%}.block-editor-block-pattern-setup.view-mode-grid{padding-top:4px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__toolbar{justify-content:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:2;column-gap:24px;display:block;padding:0 32px;width:100%}@media (min-width:1440px){.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container{column-count:3}}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-preview__container,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container div[role=button]{cursor:pointer}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-preview__container{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:focus .block-editor-block-pattern-setup-list__item-title,.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__item:hover .block-editor-block-pattern-setup-list__item-title{color:var(--wp-admin-theme-color)}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item{break-inside:avoid-column;margin-bottom:24px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-pattern-setup-list__item-title{cursor:pointer;font-size:12px;padding-top:8px;text-align:center}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__container{border:1px solid #ddd;border-radius:2px;min-height:100px}.block-editor-block-pattern-setup.view-mode-grid .block-editor-block-pattern-setup__container .block-editor-block-pattern-setup-list__list-item .block-editor-block-preview__content{width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar{align-items:center;align-self:flex-end;background-color:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:border-box;color:#1e1e1e;display:flex;flex-direction:row;height:60px;justify-content:space-between;margin:0;padding:16px;position:absolute;text-align:left;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__display-controls{display:flex}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions,.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__navigation{display:flex;width:calc(50% - 36px)}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__toolbar .block-editor-block-pattern-setup__actions{justify-content:flex-end}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container{height:100%;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;transform-style:preserve-3d}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container *{box-sizing:border-box}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide{background-color:#fff;height:100%;margin:auto;padding:0;position:absolute;top:0;transition:transform .5s,z-index .5s;width:100%;z-index:100}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.active-slide{opacity:1;position:relative;z-index:102}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.previous-slide{transform:translateX(-100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .carousel-container .pattern-slide.next-slide{transform:translateX(100%);z-index:101}.block-editor-block-pattern-setup .block-editor-block-pattern-setup__container .block-list-appender{display:none}.block-editor-block-pattern-setup__carousel,.block-editor-block-pattern-setup__grid{width:100%}.block-editor-block-variation-transforms{padding:0 16px 16px 52px;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle{border:1px solid #757575;border-radius:2px;justify-content:left;min-height:30px;padding:6px 12px;position:relative;text-align:left;width:100%}.block-editor-block-variation-transforms .components-dropdown-menu__toggle.components-dropdown-menu__toggle{padding-right:24px}.block-editor-block-variation-transforms .components-dropdown-menu__toggle:focus:not(:disabled){border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 calc(var(--wp-admin-border-width-focus) - 1px) var(--wp-admin-theme-color)}.block-editor-block-variation-transforms .components-dropdown-menu__toggle svg{height:100%;padding:0;position:absolute;right:0;top:0}.block-editor-block-variation-transforms__popover .components-popover__content{min-width:230px}.components-border-radius-control{margin-bottom:12px}.components-border-radius-control legend{margin-bottom:8px}.components-border-radius-control .components-border-radius-control__wrapper{align-items:flex-start;display:flex;justify-content:space-between}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control{flex-shrink:0;margin-bottom:0;margin-right:16px;width:calc(50% - 8px)}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control{flex:1;margin-right:12px}.components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control>div{align-items:center;display:flex;height:40px}.components-border-radius-control .components-border-radius-control__wrapper>span{flex:0 0 auto}.components-border-radius-control .components-border-radius-control__input-controls-wrapper{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-right:12px}.components-border-radius-control .component-border-radius-control__linked-button{display:flex;justify-content:center;margin-top:8px}.components-border-radius-control .component-border-radius-control__linked-button svg{margin-right:0}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-color-gradient-control__fieldset{min-width:0}.block-editor-color-gradient-control__tabs .block-editor-color-gradient-control__panel{padding:16px}.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings,.block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings>div:not(:first-of-type){display:block}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px);justify-content:space-between}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.block-editor-panel-color-gradient-settings__dropdown-content .block-editor-color-gradient-control__panel{padding:16px;width:260px}.block-editor-panel-color-gradient-settings__color-indicator{background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.block-editor-tools-panel-color-gradient-settings__item{border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #ddd;max-width:100%;padding:0}.block-editor-tools-panel-color-gradient-settings__item.first{border-top:1px solid #ddd;border-top-left-radius:2px;border-top-right-radius:2px;margin-top:24px}.block-editor-tools-panel-color-gradient-settings__item.last{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.block-editor-tools-panel-color-gradient-settings__item>div,.block-editor-tools-panel-color-gradient-settings__item>div>button{border-radius:inherit}.block-editor-tools-panel-color-gradient-settings__dropdown{display:block;padding:0}.block-editor-tools-panel-color-gradient-settings__dropdown>button{height:auto;padding-bottom:10px;padding-top:10px;text-align:left}.block-editor-tools-panel-color-gradient-settings__dropdown>button.is-open{background:#f0f0f0;color:var(--wp-admin-theme-color)}.block-editor-tools-panel-color-gradient-settings__dropdown .block-editor-panel-color-gradient-settings__color-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-panel-color-gradient-settings__dropdown{width:100%}.block-editor-panel-color-gradient-settings__dropdown .component-color-indicator{flex-shrink:0}.block-editor-contrast-checker>.components-notice{margin:0}.block-editor-date-format-picker{margin-bottom:16px}.block-editor-date-format-picker__custom-format-select-control__custom-option{border-top:1px solid #ddd}.block-editor-date-format-picker__custom-format-select-control__custom-option.has-hint{grid-template-columns:auto 30px}.block-editor-date-format-picker__custom-format-select-control__custom-option .components-custom-select-control__item-hint{grid-row:2;text-align:left}.block-editor-duotone-control__popover>.components-popover__content{padding:16px;width:280px}.block-editor-duotone-control__popover .components-menu-group__label{padding:0}.block-editor-duotone-control__popover .components-circular-option-picker__swatches{display:grid;gap:12px;grid-template-columns:repeat(6,28px);justify-content:space-between}.block-editor-duotone-control__description{font-size:12px;margin:16px 0}.block-editor-duotone-control__unset-indicator{background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0)}.components-font-appearance-control ul li{color:#1e1e1e;text-transform:capitalize}.block-editor-global-styles-effects-panel__toggle-icon{fill:currentColor}.block-editor-global-styles-effects-panel__shadow-popover-container{width:230px}.block-editor-global-styles-effects-panel__shadow-dropdown,.block-editor-global-styles-filters-panel__dropdown{display:block;padding:0}.block-editor-global-styles-effects-panel__shadow-dropdown button,.block-editor-global-styles-filters-panel__dropdown button{padding:8px;width:100%}.block-editor-global-styles-effects-panel__shadow-dropdown button.is-open,.block-editor-global-styles-filters-panel__dropdown button.is-open{background-color:#f0f0f0}.block-editor-global-styles-effects-panel__shadow-indicator-wrapper{align-items:center;display:flex;justify-content:center;overflow:hidden;padding:6px}.block-editor-global-styles-effects-panel__shadow-indicator{border:1px solid #e0e0e0;border-radius:2px;color:#2f2f2f;cursor:pointer;height:24px;padding:0;width:24px}.block-editor-global-styles-advanced-panel__custom-css-input textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace}.block-editor-global-styles-advanced-panel__custom-css-validation-wrapper{bottom:16px;position:absolute;right:24px}.block-editor-global-styles-advanced-panel__custom-css-validation-icon{fill:#cc1818}.block-editor-height-control{border:0;margin:0;padding:0}.block-editor-image-size-control{margin-bottom:1em}.block-editor-image-size-control .block-editor-image-size-control__height,.block-editor-image-size-control .block-editor-image-size-control__width{margin-bottom:1.115em}.block-editor-block-types-list__list-item{display:block;margin:0;padding:0;width:33.33%}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled) .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-block-synced-color)!important;filter:brightness(.95)}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-block-synced-color)!important}.block-editor-block-types-list__list-item.is-synced .components-button.block-editor-block-types-list__item:not(:disabled):after{background:var(--wp-block-synced-color)}.components-button.block-editor-block-types-list__item{align-items:stretch;background:transparent;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;flex-direction:column;font-size:13px;height:auto;justify-content:center;padding:8px;position:relative;transition:all .05s ease-in-out;width:100%;word-break:break-word}@media (prefers-reduced-motion:reduce){.components-button.block-editor-block-types-list__item{transition-delay:0s;transition-duration:0s}}.components-button.block-editor-block-types-list__item:disabled{cursor:default;opacity:.6}.components-button.block-editor-block-types-list__item:not(:disabled):hover .block-editor-block-types-list__item-title{color:var(--wp-admin-theme-color)!important;filter:brightness(.95)}.components-button.block-editor-block-types-list__item:not(:disabled):hover svg{color:var(--wp-admin-theme-color)!important}.components-button.block-editor-block-types-list__item:not(:disabled):hover:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;pointer-events:none;position:absolute;right:0;top:0}.components-button.block-editor-block-types-list__item:not(:disabled):focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.block-editor-block-types-list__item:not(:disabled).is-active{background:#1e1e1e;color:#fff;outline:2px solid transparent;outline-offset:-2px}.block-editor-block-types-list__item-icon{border-radius:2px;color:#1e1e1e;padding:12px 20px;transition:all .05s ease-in-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__item-icon .block-editor-block-icon{margin-left:auto;margin-right:auto}.block-editor-block-types-list__item-icon svg{transition:all .15s ease-out}@media (prefers-reduced-motion:reduce){.block-editor-block-types-list__item-icon svg{transition-delay:0s;transition-duration:0s}}.block-editor-block-types-list__list-item[draggable=true] .block-editor-block-types-list__item-icon{cursor:grab}.block-editor-block-types-list__item-title{font-size:12px;padding:4px 2px 8px}.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-inspector__tabs .components-tab-panel__tabs .components-button.has-icon:before{content:attr(aria-label)}.block-editor-inspector-controls-tabs__hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;margin:16px}.block-editor-inspector-controls-tabs__hint-content{margin:12px 0 12px 12px}.block-editor-inspector-controls-tabs__hint-dismiss{margin:4px 4px 4px 0}.block-editor-inspector-popover-header{margin-bottom:16px}[class].block-editor-inspector-popover-header__action{height:24px}[class].block-editor-inspector-popover-header__action.has-icon{min-width:24px;padding:0}[class].block-editor-inspector-popover-header__action:not(.has-icon){text-decoration:underline}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}@keyframes loadingpulse{0%{opacity:1}50%{opacity:0}to{opacity:1}}.block-editor-link-control{min-width:350px;position:relative}.components-popover__content .block-editor-link-control{max-width:350px;min-width:auto;width:90vw}.show-icon-labels .block-editor-link-control .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-link-control .components-button.has-icon:before{content:attr(aria-label)}.block-editor-link-control__search-input-wrapper{margin-bottom:8px;position:relative}.block-editor-link-control__search-input-container,.block-editor-link-control__search-input-wrapper{position:relative}.block-editor-link-control__search-input.has-no-label .block-editor-url-input__input{flex:1}.block-editor-link-control__field{margin:16px}.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:40px;line-height:normal;margin:0;padding:8px 16px;position:relative;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-link-control__field input[type=text],.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input{font-size:13px;line-height:normal}}.block-editor-link-control__field input[type=text]:focus,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-link-control__field input[type=text]::-webkit-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__field input[type=text]::-moz-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-link-control__field input[type=text]:-ms-input-placeholder,.block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-link-control__search-error{margin:-8px 16px 16px}.block-editor-link-control__search-enter{position:absolute;right:19px;top:3px}.block-editor-link-control__search-enter svg{position:relative;top:-2px}.block-editor-link-control__search-actions{display:flex;flex-direction:row-reverse;gap:8px;justify-content:flex-start;order:20;padding:8px 16px 16px}.block-editor-link-control__search-results-wrapper{position:relative}.block-editor-link-control__search-results-wrapper:after,.block-editor-link-control__search-results-wrapper:before{content:"";display:block;left:-1px;pointer-events:none;position:absolute;right:16px;z-index:100}.block-editor-link-control__search-results-wrapper:before{bottom:auto;height:8px;top:0}.block-editor-link-control__search-results-wrapper:after{bottom:0;height:16px;top:auto}.block-editor-link-control__search-results{margin-top:-16px;max-height:200px;overflow-y:auto;padding:8px}.block-editor-link-control__search-results.is-loading{opacity:.2}.block-editor-link-control__search-item.components-button.components-menu-item__button{height:auto;text-align:left}.block-editor-link-control__search-item .components-menu-item__item{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.block-editor-link-control__search-item .components-menu-item__item mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .components-menu-item__shortcut{color:#757575;text-transform:capitalize;white-space:nowrap}.block-editor-link-control__search-item[aria-selected]{background:#f0f0f0}.block-editor-link-control__search-item.is-current{background:transparent;border:0;cursor:default;flex-direction:column;padding:16px;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-header{align-items:flex-start;display:block;flex-direction:row;margin-right:8px;overflow-wrap:break-word;white-space:pre-wrap}.block-editor-link-control__search-item .block-editor-link-control__search-item-header .block-editor-link-control__search-item-info{word-break:break-all}.block-editor-link-control__search-item.is-preview .block-editor-link-control__search-item-header{display:flex;flex:1}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-header{align-items:center}.block-editor-link-control__search-item.is-url-title .block-editor-link-control__search-item-title{word-break:break-all}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon{display:flex;flex-shrink:0;justify-content:center;margin-right:8px;max-height:24px;position:relative;width:24px}.block-editor-link-control__search-item .block-editor-link-control__search-item-icon img{width:16px}.block-editor-link-control__search-item.is-error .block-editor-link-control__search-item-icon{max-height:32px;top:0;width:32px}.block-editor-link-control__search-item .block-editor-link-control__search-item-title{display:block;font-weight:500;line-height:24px;position:relative}.block-editor-link-control__search-item .block-editor-link-control__search-item-title mark{background-color:transparent;color:inherit;font-weight:600}.block-editor-link-control__search-item .block-editor-link-control__search-item-title span{font-weight:400}.block-editor-link-control__search-item .block-editor-link-control__search-item-title svg{display:none}.block-editor-link-control__search-item .block-editor-link-control__search-item-description{margin:0;padding-top:12px}.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder{display:flex;flex-direction:column;height:28px;justify-content:space-around;margin-top:12px;padding-top:0}.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:after,.block-editor-link-control__search-item .block-editor-link-control__search-item-description.is-placeholder:before{background-color:#f0f0f0;border-radius:3px;content:"";display:block;height:.7em;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-description .components-text{font-size:.9em}.block-editor-link-control__search-item .block-editor-link-control__search-item-image{background-color:#f0f0f0;border-radius:2px;display:flex;height:140px;justify-content:center;margin-top:12px;max-height:140px;overflow:hidden;width:100%}.block-editor-link-control__search-item .block-editor-link-control__search-item-image.is-placeholder{background-color:#f0f0f0;border-radius:3px}.block-editor-link-control__search-item .block-editor-link-control__search-item-image img{display:block;height:140px;max-height:140px;max-width:100%}.block-editor-link-control__search-item-top{align-items:center;display:flex;flex-direction:row;width:100%}.block-editor-link-control__search-item-bottom{transition:opacity 1.5s;width:100%}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:after,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-description:before,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-image{animation:loadingpulse 1s linear infinite;animation-delay:.5s}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon img,.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon svg{opacity:0}.block-editor-link-control__search-item.is-fetching .block-editor-link-control__search-item-icon:before{animation:loadingpulse 1s linear infinite;animation-delay:.5s;background-color:#f0f0f0;border-radius:100%;bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.block-editor-link-control__loading{align-items:center;display:flex;margin:16px}.block-editor-link-control__loading .components-spinner{margin-top:0}.components-button+.block-editor-link-control__search-create{overflow:visible;padding:12px 16px}.components-button+.block-editor-link-control__search-create:before{content:"";display:block;left:0;position:absolute;top:-10px;width:100%}.block-editor-link-control__search-create{align-items:center}.block-editor-link-control__search-create .block-editor-link-control__search-item-title{margin-bottom:0}.block-editor-link-control__search-create .block-editor-link-control__search-item-icon{top:0}.block-editor-link-control__drawer{display:flex;flex-basis:100%;flex-direction:column;order:30}.block-editor-link-control__drawer-inner{display:flex;flex-basis:100%;flex-direction:column;position:relative}.block-editor-link-control__unlink{padding-left:16px;padding-right:16px}.block-editor-link-control__setting{flex:1;margin-bottom:0;padding:8px 0 8px 24px}.block-editor-link-control__setting .components-base-control__field{display:flex}.block-editor-link-control__setting input{margin-left:0}.is-preview .block-editor-link-control__setting{padding:20px 8px 8px 0}.block-editor-link-control__tools{margin-top:-16px;padding:8px 8px 0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle{gap:0;padding-left:0}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true]{color:#1e1e1e}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transform:rotate(90deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=true] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transform:rotate(0deg);transition:transform .1s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-link-control__tools .components-button.block-editor-link-control__drawer-toggle[aria-expanded=false] svg{transition-delay:0s;transition-duration:0s}}.block-editor-link-control .block-editor-link-control__search-input .components-spinner{display:block}.block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner{bottom:auto;left:auto;position:absolute;right:40px;top:calc(50% - 8px)}.block-editor-link-control .block-editor-link-control__search-input-wrapper.has-actions .components-spinner{right:12px;top:calc(50% + 4px)}.block-editor-link-control__search-item-action{flex-shrink:0;margin-left:auto}.block-editor-list-view-tree{border-collapse:collapse;margin:0;padding:0;width:100%}.components-modal__content .block-editor-list-view-tree{margin:-12px -6px 0;width:calc(100% + 12px)}.block-editor-list-view-leaf{position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button[aria-expanded=true]{color:inherit}.block-editor-list-view-leaf .block-editor-list-view-block-select-button:hover{color:var(--wp-admin-theme-color)}.is-dragging-components-draggable .block-editor-list-view-leaf:not(.is-selected) .block-editor-list-view-block-select-button:hover{color:inherit}.block-editor-list-view-leaf.is-selected td{background:var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced td{background:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents .block-editor-block-icon,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus,.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:hover{color:var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-synced:not(.is-selected) .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents,.block-editor-list-view-leaf.is-selected .components-button.has-icon{color:#fff}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-list-view-leaf.is-selected.is-synced .block-editor-list-view-block-contents:focus:after{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff}.block-editor-list-view-leaf.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf.is-last-selected td:first-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf.is-last-selected td:last-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.block-editor-list-view-leaf.is-synced-branch.is-branch-selected{background:rgba(var(--wp-block-synced-color--rgb),.04)}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf.is-branch-selected.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:first-child{border-top-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-first-selected td:last-child{border-top-right-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:first-child{border-bottom-left-radius:2px}.block-editor-list-view-leaf[data-expanded=false].is-branch-selected.is-last-selected td:last-child{border-bottom-right-radius:2px}.block-editor-list-view-leaf.is-branch-selected:not(.is-selected) td{border-radius:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents{align-items:center;border-radius:2px;display:flex;height:auto;padding:6px 4px 6px 0;position:relative;text-align:left;white-space:nowrap;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-contents.is-dropping-before:before{border-top:4px solid var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:0;top:-2px;transition:border-color .1s linear,border-style .1s linear,box-shadow .1s linear}.components-modal__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{padding-left:0;padding-right:0}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus{box-shadow:none}.block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{border-radius:inherit;bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:0;pointer-events:none;position:absolute;right:-29px;top:0;z-index:2}.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after{box-shadow:none}.block-editor-list-view-leaf.has-single-cell .block-editor-list-view-block-contents:focus:after{right:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);z-index:1}.is-dragging-components-draggable .block-editor-list-view-leaf .block-editor-list-view-block__menu:focus{box-shadow:none}.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;opacity:1}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf.is-visible .block-editor-list-view-block-contents{animation-delay:0s;animation-duration:1ms}}.block-editor-list-view-leaf .block-editor-block-icon{flex:0 0 24px;margin-right:8px}.block-editor-list-view-leaf .block-editor-list-view-block__contents-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{padding-bottom:0;padding-top:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell{line-height:0;vertical-align:middle;width:36px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell>*{opacity:0}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell:hover>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell.is-visible>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:focus-within>*,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell:hover>*{opacity:1}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell,.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell,.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell .components-button.has-icon{min-width:24px;padding:0;width:24px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell{padding-right:4px}.block-editor-list-view-leaf .block-editor-list-view-block__menu-cell .components-button.has-icon{height:24px}.block-editor-list-view-leaf .block-editor-list-view-block__mover-cell-alignment-wrapper{align-items:center;display:flex;flex-direction:column;height:100%}.block-editor-list-view-leaf .block-editor-block-mover-button{height:24px;position:relative;width:36px}.block-editor-list-view-leaf .block-editor-block-mover-button svg{height:24px;position:relative}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button{align-items:flex-end;margin-top:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-up-button svg{bottom:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button{align-items:flex-start;margin-bottom:-6px}.block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg{top:-4px}.block-editor-list-view-leaf .block-editor-block-mover-button:before{height:16px;left:0;min-width:100%;right:0}.block-editor-list-view-leaf .block-editor-inserter__toggle{background:#1e1e1e;color:#fff;height:24px;margin:6px 6px 6px 1px;min-width:24px}.block-editor-list-view-leaf .block-editor-inserter__toggle:active{color:#fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__label-wrapper{min-width:120px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title{flex:1;position:relative}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__title .components-truncate{position:absolute;transform:translateY(-50%);width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor-wrapper{max-width:min(110px,40%);position:relative;width:100%}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.1);border-radius:2px;box-sizing:border-box;max-width:100%;padding:2px 6px;position:absolute;right:0;transform:translateY(-50%)}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__anchor{background:rgba(0,0,0,.3)}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__lock{line-height:0}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__images{display:flex}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image{background-size:cover;border-radius:2px;height:18px;width:18px}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px #fff}.block-editor-list-view-leaf .block-editor-list-view-block-select-button__image:not(:first-child){margin-left:-6px}.block-editor-list-view-leaf.is-selected .block-editor-list-view-block-select-button__image:not(:only-child){box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.block-editor-list-view-appender__cell .block-editor-list-view-appender__container,.block-editor-list-view-appender__cell .block-editor-list-view-block__contents-container,.block-editor-list-view-block__contents-cell .block-editor-list-view-appender__container,.block-editor-list-view-block__contents-cell .block-editor-list-view-block__contents-container{display:flex}.block-editor-list-view__expander{height:24px;margin-left:4px;width:24px}.block-editor-list-view-leaf[aria-level] .block-editor-list-view__expander{margin-left:220px}.block-editor-list-view-leaf:not([aria-level="1"]) .block-editor-list-view__expander{margin-right:4px}.block-editor-list-view-leaf[aria-level="1"] .block-editor-list-view__expander{margin-left:0}.block-editor-list-view-leaf[aria-level="2"] .block-editor-list-view__expander{margin-left:24px}.block-editor-list-view-leaf[aria-level="3"] .block-editor-list-view__expander{margin-left:52px}.block-editor-list-view-leaf[aria-level="4"] .block-editor-list-view__expander{margin-left:80px}.block-editor-list-view-leaf[aria-level="5"] .block-editor-list-view__expander{margin-left:108px}.block-editor-list-view-leaf[aria-level="6"] .block-editor-list-view__expander{margin-left:136px}.block-editor-list-view-leaf[aria-level="7"] .block-editor-list-view__expander{margin-left:164px}.block-editor-list-view-leaf[aria-level="8"] .block-editor-list-view__expander{margin-left:192px}.block-editor-list-view-leaf .block-editor-list-view__expander{visibility:hidden}.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transform:rotate(90deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=true] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transform:rotate(0deg);transition:transform .2s ease;visibility:visible}@media (prefers-reduced-motion:reduce){.block-editor-list-view-leaf[data-expanded=false] .block-editor-list-view__expander svg{transition-delay:0s;transition-duration:0s}}.block-editor-list-view-drop-indicator{pointer-events:none}.block-editor-list-view-drop-indicator .block-editor-list-view-drop-indicator__line{background:var(--wp-admin-theme-color);border-radius:4px;height:4px}.block-editor-list-view-placeholder{height:36px;margin:0;padding:0}.list-view-appender .block-editor-inserter__toggle{background-color:#1e1e1e;border-radius:2px;color:#fff;height:24px;margin:8px 0 0 24px;min-width:24px;padding:0}.list-view-appender .block-editor-inserter__toggle:focus,.list-view-appender .block-editor-inserter__toggle:hover{background:var(--wp-admin-theme-color);color:#fff}.list-view-appender__description,.modal-open .block-editor-media-replace-flow__options{display:none}.block-editor-media-replace-flow__indicator{margin-left:4px}.block-editor-media-flow__url-input{margin-left:-8px;margin-right:-8px;padding:16px}.block-editor-media-flow__url-input.has-siblings{border-top:1px solid #1e1e1e;margin-top:8px}.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label{display:block;margin-bottom:8px;top:16px}.block-editor-media-flow__url-input .block-editor-link-control{width:300px}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-url-input{margin:0;padding:0}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-info,.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title{max-width:200px;white-space:nowrap}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__tools{justify-content:flex-end;padding:16px var(--wp-admin-border-width-focus) var(--wp-admin-border-width-focus)}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current{padding:0;width:auto}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=text]{margin:0;width:100%}.block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions{right:4px;top:0}.block-editor-media-flow__error{max-width:255px;padding:0 20px 20px}.block-editor-media-flow__error .components-with-notices-ui{max-width:255px}.block-editor-media-flow__error .components-with-notices-ui .components-notice__content{word-wrap:break-word;overflow:hidden}.block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss{position:absolute;right:10px}.block-editor-multi-selection-inspector__card{align-items:flex-start;display:flex;padding:16px}.block-editor-multi-selection-inspector__card-content{flex-grow:1}.block-editor-multi-selection-inspector__card-title{font-weight:500;margin-bottom:5px}.block-editor-multi-selection-inspector__card-description{font-size:13px}.block-editor-multi-selection-inspector__card .block-editor-block-icon{height:24px;margin-left:-2px;margin-right:10px;padding:0 3px;width:36px}.block-editor-responsive-block-control{border-bottom:1px solid #ccc;margin-bottom:28px;padding-bottom:14px}.block-editor-responsive-block-control:last-child{border-bottom:0;padding-bottom:0}.block-editor-responsive-block-control__title{margin:0 0 .6em -3px}.block-editor-responsive-block-control__label{font-weight:600;margin-bottom:.6em;margin-left:-3px}.block-editor-responsive-block-control__inner{margin-left:-1px}.block-editor-responsive-block-control__toggle{margin-left:1px}.block-editor-responsive-block-control .components-base-control__help{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.components-popover.block-editor-rich-text__inline-format-toolbar{z-index:99998}.components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content{box-shadow:none;margin-bottom:8px;min-width:auto;outline:none;width:auto}.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar{border-radius:2px}.components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle,.components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control{min-height:48px;min-width:48px;padding-left:12px;padding-right:12px}.block-editor-rich-text__inline-format-toolbar-group .components-dropdown-menu__toggle{justify-content:center}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon{width:auto}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button.has-icon:after{content:attr(aria-label)}.block-editor-skip-to-selected-block{position:absolute;top:-9999em}.block-editor-skip-to-selected-block:focus{background:#f1f1f1;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:var(--wp-admin-theme-color);display:block;font-size:14px;font-weight:600;height:auto;line-height:normal;outline:none;padding:15px 23px 14px;text-decoration:none;width:auto;z-index:100000}.block-editor-text-decoration-control{border:0;margin:0;padding:0}.block-editor-text-decoration-control .block-editor-text-decoration-control__buttons{display:flex;padding:4px 0}.block-editor-text-decoration-control .components-button.has-icon{height:32px;margin-right:4px;min-width:32px;padding:0}.block-editor-text-transform-control{border:0;margin:0;padding:0}.block-editor-text-transform-control .block-editor-text-transform-control__buttons{display:flex;padding:4px 0}.block-editor-text-transform-control .components-button.has-icon{height:32px;margin-right:4px;min-width:32px;padding:0}.block-editor-tool-selector__help{border-top:1px solid #ddd;color:#757575;margin:8px -8px -8px;min-width:280px;padding:16px}.block-editor-block-list__block .block-editor-url-input,.block-editor-url-input,.components-popover .block-editor-url-input{flex-grow:1;padding:1px;position:relative}.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{border:none;border-radius:0;font-size:16px;margin-left:0;margin-right:0;padding:8px 8px 8px 12px;width:100%}@media (min-width:600px){.block-editor-block-list__block .block-editor-url-input input[type=text],.block-editor-url-input input[type=text],.components-popover .block-editor-url-input input[type=text]{font-size:13px;width:300px}}.block-editor-block-list__block .block-editor-url-input input[type=text]::-ms-clear,.block-editor-url-input input[type=text]::-ms-clear,.components-popover .block-editor-url-input input[type=text]::-ms-clear{display:none}.block-editor-block-list__block .block-editor-url-input.is-full-width,.block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,.block-editor-url-input.is-full-width,.block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.block-editor-url-input.is-full-width__suggestions,.components-popover .block-editor-url-input.is-full-width,.components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=text],.components-popover .block-editor-url-input.is-full-width__suggestions{width:100%}.block-editor-block-list__block .block-editor-url-input .components-spinner,.block-editor-url-input .components-spinner,.components-popover .block-editor-url-input .components-spinner{margin:0;position:absolute;right:8px;top:calc(50% - 8px)}.block-editor-url-input__input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.block-editor-url-input__input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-url-input__input[type=text]{font-size:13px;line-height:normal}}.block-editor-url-input__input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-url-input__input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.block-editor-url-input__input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.block-editor-url-input__suggestions{max-height:200px;overflow-y:auto;padding:4px 0;transition:all .15s ease-in-out;width:302px}@media (prefers-reduced-motion:reduce){.block-editor-url-input__suggestions{transition-delay:0s;transition-duration:0s}}.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:none}@media (min-width:600px){.block-editor-url-input .components-spinner,.block-editor-url-input__suggestions{display:grid}}.block-editor-url-input__suggestion{background:#fff;border:none;box-shadow:none;color:#757575;cursor:pointer;display:block;font-size:13px;height:auto;min-height:36px;text-align:left;width:100%}.block-editor-url-input__suggestion:hover{background:#ddd}.block-editor-url-input__suggestion.is-selected,.block-editor-url-input__suggestion:focus{background:var(--wp-admin-theme-color-darker-20);color:#fff;outline:none}.components-toolbar-group>.block-editor-url-input__button,.components-toolbar>.block-editor-url-input__button{position:inherit}.block-editor-url-input__button .block-editor-url-input__back{margin-right:4px;overflow:visible}.block-editor-url-input__button .block-editor-url-input__back:after{background:#ddd;content:"";display:block;height:24px;position:absolute;right:-1px;width:1px}.block-editor-url-input__button-modal{background:#fff;border:1px solid #ddd;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}.block-editor-url-input__button-modal-line{align-items:flex-start;display:flex;flex-direction:row;flex-grow:1;flex-shrink:1;min-width:0}.block-editor-url-input__button-modal-line .components-button{flex-shrink:0;height:36px;width:36px}.block-editor-url-popover__additional-controls{border-top:1px solid #ddd}.block-editor-url-popover__additional-controls>div[role=menu] .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary)>svg{box-shadow:none}.block-editor-url-popover__additional-controls div[role=menu]>.components-button{padding-left:12px}.block-editor-url-popover__row{display:flex}.block-editor-url-popover__row>:not(.block-editor-url-popover__settings-toggle){flex-grow:1}.block-editor-url-popover .components-button.has-icon{padding:3px}.block-editor-url-popover .components-button.has-icon>svg{border-radius:2px;height:30px;padding:5px;width:30px}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus{box-shadow:none}.block-editor-url-popover .components-button.has-icon:not(:disabled):focus>svg{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.block-editor-url-popover__settings-toggle{border-left:1px solid #ddd;border-radius:0;flex-shrink:0;margin-left:1px}.block-editor-url-popover__settings-toggle[aria-expanded=true] .dashicon{transform:rotate(180deg)}.block-editor-url-popover__settings{border-top:1px solid #ddd;display:block;padding:16px}.block-editor-url-popover__link-editor,.block-editor-url-popover__link-viewer{display:flex}.block-editor-url-popover__link-viewer-url{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-url-popover__link-viewer-url.has-invalid-link{color:#cc1818}.html-anchor-control .components-external-link{display:block;margin-top:8px}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack{flex-direction:row-reverse}.block-editor-hooks__block-hooks .components-toggle-control .components-h-stack .components-h-stack{flex-direction:row}.block-editor-hooks__background__inspector-media-replace-container{position:relative}.block-editor-hooks__background__inspector-media-replace-container .components-drop-zone__content-icon{display:none}.block-editor-hooks__background__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ddd;color:#1e1e1e;display:block;height:40px;width:100%}.block-editor-hooks__background__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-editor-hooks__background__inspector-media-replace-container .block-editor-hooks__background__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-editor-hooks__background__inspector-media-replace-container .components-dropdown{display:block}.block-editor-hooks__background__inspector-image-indicator-wrapper{background:#fff linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:block;flex:none;height:20px;width:20px}.block-editor-hooks__background__inspector-image-indicator-wrapper.has-image{background:#fff}.block-editor-hooks__background__inspector-image-indicator{background-size:cover;border-radius:50%;display:block;height:20px;position:relative;width:20px}.block-editor-hooks__background__inspector-image-indicator:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.border-block-support-panel .single-column{grid-column:span 1}.color-block-support-panel .block-editor-contrast-checker{grid-column:span 2;margin-top:16px;order:9999}.color-block-support-panel .block-editor-contrast-checker .components-notice__content{margin-right:0}.color-block-support-panel.color-block-support-panel .color-block-support-panel__inner-wrapper{row-gap:0}.color-block-support-panel .block-editor-tools-panel-color-gradient-settings__item.first{margin-top:0}.dimensions-block-support-panel .single-column{grid-column:span 1}.block-editor-hooks__layout-controls{display:flex;margin-bottom:8px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit{display:flex;margin-right:24px}.block-editor-hooks__layout-controls .block-editor-hooks__layout-controls-unit svg{margin:auto 0 4px 8px}.block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input{margin-bottom:0}.block-editor-hooks__layout-controls-reset{display:flex;justify-content:flex-end;margin-bottom:24px}.block-editor-hooks__layout-controls-helptext{color:#757575;font-size:12px;margin-bottom:16px}.block-editor-hooks__flex-layout-justification-controls,.block-editor-hooks__flex-layout-orientation-controls{margin-bottom:12px}.block-editor-hooks__flex-layout-justification-controls legend,.block-editor-hooks__flex-layout-orientation-controls legend{margin-bottom:8px}.block-editor-hooks__toggle-control.block-editor-hooks__toggle-control{margin-bottom:16px}.block-editor__padding-visualizer{border-color:var(--wp-admin-theme-color);border-style:solid;bottom:0;box-sizing:border-box;left:0;opacity:.5;pointer-events:none;position:absolute;right:0;top:0}.block-editor-hooks__position-selection__select-control .components-custom-select-control__hint{display:none}.block-editor-hooks__position-selection__select-control__option.has-hint{grid-template-columns:auto 30px;line-height:1.4;margin-bottom:0}.block-editor-hooks__position-selection__select-control__option .components-custom-select-control__item-hint{grid-row:2;text-align:left}.typography-block-support-panel .single-column{grid-column:span 1}.block-editor-block-toolbar{display:flex;flex-grow:1;overflow-x:auto;overflow-y:hidden;position:relative;transition:border-color .1s linear,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.block-editor-block-toolbar{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.block-editor-block-toolbar{overflow:inherit}}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group{background:none;border:0;border-right:1px solid #ddd;line-height:0;margin-bottom:-1px;margin-top:-1px}.block-editor-block-toolbar.is-synced .block-editor-block-switcher .components-button .block-editor-block-icon,.block-editor-block-toolbar.is-synced .components-toolbar-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors{color:var(--wp-block-synced-color)}.block-editor-block-toolbar>:last-child,.block-editor-block-toolbar>:last-child .components-toolbar,.block-editor-block-toolbar>:last-child .components-toolbar-group{border-right:none}@media (min-width:782px){.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-right:none}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar-group:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child .components-toolbar:after,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar>:last-child:after{display:none}}.block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){margin-left:56px}.show-icon-labels .block-editor-block-contextual-toolbar.has-parent:not(.is-fixed){margin-left:0}.block-editor-block-toolbar__block-controls .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.block-editor-block-toolbar__block-controls .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{margin:0!important;width:24px!important}.block-editor-block-toolbar__block-controls .components-toolbar-group{padding:0}.block-editor-block-toolbar .components-toolbar,.block-editor-block-toolbar .components-toolbar-group,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar,.block-editor-rich-text__inline-format-toolbar-group .components-toolbar-group{display:flex;flex-wrap:nowrap}.block-editor-block-toolbar__slot{display:inline-block;line-height:0}@supports (position:sticky){.block-editor-block-toolbar__slot{display:inline-flex}}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon{width:auto}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon svg{display:none}.show-icon-labels .block-editor-block-toolbar .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.show-icon-labels .components-accessible-toolbar .components-toolbar-group>div:first-child:last-child>.components-button.has-icon{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-switcher .components-dropdown-menu__toggle .block-editor-block-icon,.show-icon-labels .block-editor-block-switcher__no-switcher-icon .block-editor-block-icon{height:0!important;min-width:0!important;width:0!important}.show-icon-labels .block-editor-block-parent-selector__button{border-bottom-right-radius:0;border-top-right-radius:0}.show-icon-labels .block-editor-block-parent-selector__button .block-editor-block-icon{width:0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container{width:auto}.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover-button,.show-icon-labels .block-editor-block-mover.is-horizontal .block-editor-block-mover__move-button-container{padding-left:6px;padding-right:6px}.show-icon-labels .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button{padding-left:8px;padding-right:8px}.show-icon-labels .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-left:1px solid #1e1e1e;margin-left:6px;margin-right:-6px;white-space:nowrap}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar__block-controls .block-editor-block-mover{border-left-color:#e0e0e0}.show-icon-labels .block-editor-block-mover .block-editor-block-mover__drag-handle.has-icon{padding-left:12px;padding-right:12px}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container{border-width:0}@media (min-width:600px){.show-icon-labels .is-up-button.is-up-button.is-up-button{border-radius:0;margin-right:0;order:1}.show-icon-labels .block-editor-block-mover__move-button-container{border-left:1px solid #1e1e1e}.show-icon-labels .is-down-button.is-down-button.is-down-button{order:2}.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-mover__move-button-container:before{background:#ddd}}.show-icon-labels .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.block-editor-block-mover-button{width:auto}.show-icon-labels .components-toolbar,.show-icon-labels .components-toolbar-group{flex-shrink:1}@media (min-width:782px){.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar,.show-icon-labels .block-editor-block-contextual-toolbar.is-fixed .components-toolbar-group{flex-shrink:0}}.show-icon-labels .block-editor-rich-text__inline-format-toolbar-group .components-button+.components-button{margin-left:6px}.block-editor-inserter{background:none;border:none;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:0;padding:0}@media (min-width:782px){.block-editor-inserter{position:relative}}.block-editor-inserter__main-area{display:flex;flex-direction:column;gap:16px;height:100%;position:relative}.block-editor-inserter__main-area.show-as-tabs{gap:0}@media (min-width:782px){.block-editor-inserter__main-area{width:350px}}.block-editor-inserter__popover.is-quick .components-popover__content{border:none;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);outline:none}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>*{border-left:1px solid #ccc;border-right:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:first-child{border-radius:2px 2px 0 0;border-top:1px solid #ccc}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>:last-child{border-bottom:1px solid #ccc;border-radius:0 0 2px 2px}.block-editor-inserter__popover.is-quick .components-popover__content .block-editor-inserter__quick-inserter>.components-button{border:1px solid #1e1e1e}.block-editor-inserter__popover .block-editor-inserter__menu{margin:-12px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs{top:60px}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area{height:auto;overflow:visible}.block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__preview-container{display:none}.block-editor-inserter__toggle.components-button{align-items:center;border:none;cursor:pointer;display:inline-flex;outline:none;padding:0;transition:color .2s ease}@media (prefers-reduced-motion:reduce){.block-editor-inserter__toggle.components-button{transition-delay:0s;transition-duration:0s}}.block-editor-inserter__menu{height:100%;overflow:visible;position:relative}.block-editor-inserter__inline-elements{margin-top:-1px}.block-editor-inserter__menu.is-bottom:after{border-bottom-color:#fff}.components-popover.block-editor-inserter__popover{z-index:99999}.block-editor-inserter__search{padding:16px 16px 0}.block-editor-inserter__search .components-search-control__icon{right:20px}.block-editor-inserter__tabs{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.block-editor-inserter__tabs .components-tab-panel__tabs{border-bottom:1px solid #ddd}.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{flex-grow:1;margin-bottom:-1px}.block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item[id$=reusable]{flex-grow:inherit;padding-left:16px;padding-right:16px}.block-editor-inserter__tabs .components-tab-panel__tab-content{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.block-editor-inserter__no-tab-container{flex-grow:1;overflow-y:auto}.block-editor-inserter__panel-header{align-items:center;display:inline-flex;padding:16px 16px 0}.block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__panel-title,.block-editor-inserter__panel-title button{color:#757575;font-size:11px;font-weight:500;margin:0 12px 0 0;text-transform:uppercase}.block-editor-inserter__panel-dropdown select.components-select-control__input.components-select-control__input.components-select-control__input{height:36px;line-height:36px}.block-editor-inserter__panel-dropdown select{border:none}.block-editor-inserter__reusable-blocks-panel{position:relative;text-align:right}.block-editor-inserter__manage-reusable-blocks-container{margin:auto 16px 16px}.block-editor-inserter__manage-reusable-blocks{justify-content:center;width:100%}.block-editor-inserter__no-results{padding:32px;text-align:center}.block-editor-inserter__no-results-icon{fill:#949494}.block-editor-inserter__child-blocks{padding:0 16px}.block-editor-inserter__parent-block-header{align-items:center;display:flex}.block-editor-inserter__parent-block-header h2{font-size:13px}.block-editor-inserter__parent-block-header .block-editor-block-icon{margin-right:8px}.block-editor-inserter__preview-container{background:#fff;border:1px solid #ddd;border-radius:2px;display:none;left:calc(100% + 16px);max-height:calc(100% - 32px);overflow-y:hidden;position:absolute;top:16px;width:300px}@media (min-width:782px){.block-editor-inserter__preview-container{display:block}}.block-editor-inserter__preview-container .block-editor-block-card{padding:16px}.block-editor-inserter__preview-container .block-editor-block-card__title{font-size:13px}.block-editor-inserter__patterns-explore-button.components-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category .components-flex-item{filter:brightness(.95)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__patterns-selected-category.block-editor-inserter__patterns-selected-category:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-block-patterns-explorer__sidebar,.block-editor-block-patterns-explorer__sidebar nav,.block-editor-inserter__block-patterns-tabs-container,.block-editor-inserter__block-patterns-tabs-container nav{height:100%}.block-editor-block-patterns-explorer__sidebar .block-editor-block-patterns__source-filter select.components-select-control__input,.block-editor-inserter__block-patterns-tabs-container .block-editor-block-patterns__source-filter select.components-select-control__input{height:40px}.block-editor-inserter__block-patterns-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__patterns-category-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;left:0;position:absolute;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__patterns-category-dialog{display:block;left:100%;width:300px}}.block-editor-inserter__patterns-category-dialog .block-editor-block-patterns-list{flex-grow:1;height:100%;overflow-y:auto;padding:16px 24px}.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-block-patterns-list__list-item:hover .block-editor-block-preview__container{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__patterns-category-panel{display:flex;flex-direction:column;height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__patterns-category-panel{padding:0}}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-panel-header{padding:16px 24px}.block-editor-inserter__patterns-category-panel .block-editor-inserter__patterns-category-no-results{margin-top:24px}.block-editor-inserter__preview-content{align-items:center;background:#f0f0f0;display:grid;flex-grow:1;min-height:144px}.block-editor-inserter__preview-content-missing{align-items:center;background:#f0f0f0;color:#757575;display:flex;flex:1;justify-content:center;min-height:144px}.block-editor-inserter__tips{border-top:1px solid #ddd;flex-shrink:0;padding:16px;position:relative}.block-editor-inserter__quick-inserter{max-width:100%;width:100%}@media (min-width:782px){.block-editor-inserter__quick-inserter{width:350px}}.block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header{float:left;height:0;padding:0}.block-editor-inserter__quick-inserter.has-expand .block-editor-inserter__panel-content,.block-editor-inserter__quick-inserter.has-search .block-editor-inserter__panel-content{padding:16px}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-editor-inserter__quick-inserter-patterns .block-editor-block-patterns-list .block-editor-block-preview__container{min-height:100px}.block-editor-inserter__quick-inserter-separator{border-top:1px solid #ddd}.block-editor-inserter__popover.is-quick>.components-popover__content{padding:0}.block-editor-inserter__quick-inserter-expand.components-button{background:#1e1e1e;border-radius:0;color:#fff;display:block;height:44px;width:100%}.block-editor-inserter__quick-inserter-expand.components-button:hover{color:#fff}.block-editor-inserter__quick-inserter-expand.components-button:active{color:#ccc}.block-editor-inserter__quick-inserter-expand.components-button.components-button:focus:not(:disabled){background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);box-shadow:none}.block-editor-block-patterns-explorer__sidebar{bottom:0;left:0;overflow-x:visible;overflow-y:scroll;padding:24px 32px 32px;position:absolute;top:76px;width:280px}.block-editor-block-patterns-explorer__sidebar__categories-list__item{display:block;height:48px;text-align:left;width:100%}.block-editor-block-patterns-explorer__search{margin-bottom:32px}.block-editor-block-patterns-explorer__search-results-count{padding-bottom:32px}.block-editor-block-patterns-explorer__list{margin-left:280px;padding:24px 0 32px}.block-editor-block-patterns-explorer__list .block-editor-patterns__sync-status-filter .components-input-control__container{width:380px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-gap:32px;display:grid;grid-template-columns:repeat(1,1fr);margin-bottom:16px}@media (min-width:1080px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.block-editor-block-patterns-explorer .block-editor-block-patterns-list{grid-template-columns:repeat(3,1fr)}}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{min-height:240px}.block-editor-block-patterns-explorer .block-editor-block-patterns-list .block-editor-block-preview__container{height:inherit;max-height:800px;min-height:100px}.block-editor-inserter__patterns-category-panel-title{font-size:16.25px}.block-editor-inserter__media-tabs-container,.block-editor-inserter__media-tabs-container nav{height:100%}.block-editor-inserter__media-tabs-container .block-editor-inserter__media-library-button{justify-content:center;margin-top:16px;padding:16px;width:100%}.block-editor-inserter__media-tabs{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:16px}.block-editor-inserter__media-tabs div[role=listitem]:last-child{margin-top:auto}.block-editor-inserter__media-tabs__media-category.is-selected{color:var(--wp-admin-theme-color);position:relative}.block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item{filter:brightness(.95)}.block-editor-inserter__media-tabs__media-category.is-selected svg{fill:var(--wp-admin-theme-color)}.block-editor-inserter__media-tabs__media-category.is-selected:after{background:var(--wp-admin-theme-color);border-radius:2px;bottom:0;content:"";left:0;opacity:.04;position:absolute;right:0;top:0}.block-editor-inserter__media-dialog{background:#f0f0f0;border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;height:100%;left:0;overflow-y:auto;padding:16px 24px;position:absolute;scrollbar-gutter:stable both-edges;top:0;width:100%}@media (min-width:782px){.block-editor-inserter__media-dialog{display:block;left:100%;width:300px}}.block-editor-inserter__media-dialog .block-editor-block-preview__container{box-shadow:0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-dialog .block-editor-block-preview__container:hover{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-panel{display:flex;flex-direction:column;min-height:100%;padding:0 16px}@media (min-width:782px){.block-editor-inserter__media-panel{padding:0}}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-spinner{align-items:center;display:flex;flex:1;height:100%;justify-content:center}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control input[type=search].components-search-control__input{background:#fff}.block-editor-inserter__media-panel .block-editor-inserter__media-panel-search.components-search-control button.components-button{min-width:auto;padding-left:2px;padding-right:2px}.block-editor-inserter__media-list{margin-top:16px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item{cursor:pointer;margin-bottom:24px;position:relative}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-placeholder{min-height:100px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item[draggable=true] .block-editor-block-preview__container{cursor:grab}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview{box-shadow:0 0 0 2px #1e1e1e,0 15px 25px rgba(0,0,0,.07)}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item.is-hovered .block-editor-inserter__media-list__item-preview-options>button{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options{position:absolute;right:8px;top:8px}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button{background:#fff;border-radius:2px;display:none}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button.is-opened,.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:focus{display:block}.block-editor-inserter__media-list .block-editor-inserter__media-list__list-item .block-editor-inserter__media-list__item-preview-options>button:hover{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list .block-editor-inserter__media-list__item{height:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview{align-items:center;border-radius:2px;display:flex;overflow:hidden}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview>*{margin:0 auto;max-width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item .block-editor-inserter__media-list__item-preview .block-editor-inserter__media-list__item-preview-spinner{align-items:center;background:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.block-editor-inserter__media-list .block-editor-inserter__media-list__item:focus .block-editor-inserter__media-list__item-preview{box-shadow:inset 0 0 0 2px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.block-editor-inserter__media-list__item-preview-options__popover .components-menu-item__button .components-menu-item__item{min-width:auto}.block-editor-inserter__mobile-tab-navigation{height:100%;padding:16px}.block-editor-inserter__mobile-tab-navigation>*{height:100%}@media (min-width:600px){.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal{max-width:480px}}.block-editor-inserter-media-tab-media-preview-inserter-external-image-modal p{margin:0}.block-editor-inserter__hint{margin:16px 16px 0}.reusable-blocks-menu-items__rename-hint{align-items:top;background:#f0f0f0;border-radius:2px;color:#1e1e1e;display:flex;flex-direction:row;max-width:380px}.reusable-blocks-menu-items__rename-hint-content{margin:12px 0 12px 12px}.reusable-blocks-menu-items__rename-hint-dismiss{margin:4px 4px 4px 0}.components-menu-group .reusable-blocks-menu-items__rename-hint{margin:0}.block-editor-patterns__sync-status-filter .components-input-control__container select.components-select-control__input{height:40px}.block-editor-post-preview__dropdown{padding:0}.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize{padding-left:40px}.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon{padding-left:8px}.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:first-child{padding-bottom:8px}.block-editor-post-preview__dropdown-content.edit-post-post-preview-dropdown .components-menu-group:last-child{margin-bottom:0}.block-editor-post-preview__dropdown-content .components-menu-group+.components-menu-group{padding:8px}@media (min-width:600px){.edit-post-header__settings .editor-post-preview,.edit-site-header-edit-mode__actions .editor-post-preview{display:none}.edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{transition:opacity .1s linear}}@media (min-width:600px) and (prefers-reduced-motion:reduce){.edit-post-header.has-reduced-ui .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui .edit-post-header__settings .editor-post-saved-state{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-save-draft,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .editor-post-saved-state{opacity:0}.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header__settings .block-editor-post-preview__button-toggle.is-opened{opacity:1}}.spacing-sizes-control .spacing-sizes-control__custom-value-input,.spacing-sizes-control .spacing-sizes-control__label{margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range,.spacing-sizes-control .spacing-sizes-control__range-control{align-items:center;display:flex;flex:1;height:40px;margin-bottom:0}.spacing-sizes-control .spacing-sizes-control__custom-value-range>.components-base-control__field,.spacing-sizes-control .spacing-sizes-control__range-control>.components-base-control__field{flex:1}.spacing-sizes-control .components-range-control__mark{background-color:#fff;height:4px;width:3px;z-index:1}.spacing-sizes-control .components-range-control__marks{margin-top:17px}.spacing-sizes-control .components-range-control__marks :first-child{display:none}.spacing-sizes-control .components-range-control__thumb-wrapper{z-index:3}.spacing-sizes-control__header{height:16px;margin-bottom:12px}.spacing-sizes-control__dropdown{height:24px}.spacing-sizes-control__custom-select-control,.spacing-sizes-control__custom-value-input{flex:1}.spacing-sizes-control__custom-toggle,.spacing-sizes-control__icon{flex:0 0 auto}.spacing-sizes-control__icon{margin-left:-4px}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.css index ce42c41729..6e1d7ba929 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.css @@ -70,6 +70,37 @@ ul.wp-block-archives{ opacity:.8; } +.wp-block-button__inline-link{ + color:#757575; + height:0; + max-width:290px; + overflow:hidden; +} +.wp-block-button__inline-link-input__suggestions{ + max-width:290px; +} +@media (min-width:782px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:260px; + } +} +@media (min-width:960px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:290px; + } +} +.is-selected .wp-block-button__inline-link{ + height:auto; + overflow:visible; +} + +.wp-button-label__width .components-button-group{ + display:block; +} +.wp-button-label__width .components-base-control__field{ + margin-bottom:12px; +} + div[data-type="core/button"]{ display:table; } @@ -482,56 +513,6 @@ html :where(.wp-block-column){ margin-right:.75em; } -.wp-block-form-input .is-input-hidden{ - background:repeating-linear-gradient(-45deg, transparent, transparent 5px, currentColor 0, currentColor 6px); - border:1px dashed; - box-sizing:border-box; - font-size:.85em; - opacity:.3; - padding:.5em; -} -.wp-block-form-input .is-input-hidden input[type=text]{ - background:transparent; -} -.wp-block-form-input.is-selected .is-input-hidden{ - background:none; - opacity:1; -} -.wp-block-form-input.is-selected .is-input-hidden input[type=text]{ - background:unset; -} - -.wp-block-form-submission-notification>*{ - background:repeating-linear-gradient(-45deg, transparent, transparent 5px, currentColor 0, currentColor 6px); - border:1px dashed; - box-sizing:border-box; - opacity:.25; -} -.wp-block-form-submission-notification.is-selected>*,.wp-block-form-submission-notification:has(.is-selected)>*{ - background:none; - opacity:1; -} -.wp-block-form-submission-notification.is-selected:after,.wp-block-form-submission-notification:has(.is-selected):after{ - display:none !important; -} -.wp-block-form-submission-notification:after{ - align-items:center; - display:flex; - font-size:1.1em; - height:100%; - justify-content:center; - position:absolute; - right:0; - top:0; - width:100%; -} -.wp-block-form-submission-notification.form-notification-type-success:after{ - content:attr(data-message-success); -} -.wp-block-form-submission-notification.form-notification-type-error:after{ - content:attr(data-message-error); -} - .wp-block-freeform.block-library-rich-text__tinymce{ height:auto; } @@ -1150,12 +1131,9 @@ figure.wp-block-gallery .components-spinner{ .wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{ display:none; } -.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ +.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ opacity:0; } -.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{ - opacity:1; -} .wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{ transition:none; } @@ -1643,8 +1621,10 @@ figure.wp-block-image:not(.wp-block){ min-height:1px; min-width:1px; } -.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ + display:none; + } } .wp-block-navigation__responsive-container.is-menu-open{ @@ -2020,6 +2000,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op width:auto; } +.wp-block-page-list .components-notice{ + margin-right:0; +} + .wp-block-page-list__loading-indicator-container{ padding:8px 12px; } @@ -2083,7 +2067,6 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op display:flex; height:auto; justify-content:center; - text-align:center; } .wp-block-search__components-button-group{ margin-top:10px; @@ -2382,6 +2365,9 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op margin-bottom:0; } +.wp-block-table{ + margin:0; +} .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{ height:auto; } @@ -2414,18 +2400,28 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op align-items:flex-start; display:flex; flex-direction:column; - gap:8px; +} +.blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:8px; } @media (min-width:782px){ .blocks-table__placeholder-form.blocks-table__placeholder-form{ align-items:flex-end; flex-direction:row; } + .blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:0; + } } .blocks-table__placeholder-input{ + margin-bottom:0; + margin-left:8px; width:112px; } +.blocks-table__placeholder-input input{ + height:36px; +} .block-editor-template-part__selection-modal{ z-index:1000001; @@ -2706,13 +2702,6 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op min-width:48px; width:100%; } -.wp-block-post-featured-image>a{ - cursor:default; -} -.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{ - opacity:1; - pointer-events:auto; -} div[data-type="core/post-featured-image"] img{ display:block; @@ -2766,26 +2755,26 @@ div[data-type="core/post-featured-image"] img{ background:linear-gradient(-135deg, #020381, #2874fc); } -:where(.editor-styles-wrapper){ +.editor-styles-wrapper{ --wp--preset--font-size--normal:16px; --wp--preset--font-size--huge:42px; } -:where(.editor-styles-wrapper) .has-regular-font-size{ +.editor-styles-wrapper .has-regular-font-size{ font-size:16px; } -:where(.editor-styles-wrapper) .has-larger-font-size{ +.editor-styles-wrapper .has-larger-font-size{ font-size:42px; } -:where(.editor-styles-wrapper) .has-normal-font-size{ +.editor-styles-wrapper .has-normal-font-size{ font-size:var(--wp--preset--font-size--normal); } -:where(.editor-styles-wrapper) .has-huge-font-size{ +.editor-styles-wrapper .has-huge-font-size{ font-size:var(--wp--preset--font-size--huge); } -:where(.editor-styles-wrapper) iframe:not([frameborder]){ +.editor-styles-wrapper iframe:not([frameborder]){ border:0; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.min.css index 3e872e4580..7316a07239 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor-rtl.min.css @@ -1 +1 @@ -ul.wp-block-archives{padding-right:2.5em}.wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto}.edit-post-visual-editor .block-library-block__reusable-block-container .is-root-container{padding-left:0;padding-right:0}.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow{display:block}.edit-post-visual-editor .block-library-block__reusable-block-container .components-disabled .block-list-appender{display:none}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium}.wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.editor-styles-wrapper .wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end}.wp-block-categories ul{padding-right:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-code code{background:none}.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}.wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:right}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:left}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none}.wp-block-comment-author-avatar__placeholder{stroke:currentColor;stroke-dasharray:3;border:1px dashed;height:100%;width:100%}.wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}.editor-styles-wrapper .wp-block-comments-pagination{max-width:100%}.editor-styles-wrapper .wp-block-comments-pagination.block-editor-block-list__layout{margin:0}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em;margin-top:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-left:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-comments-title.has-background{padding:inherit}.editor-styles-wrapper .wp-block-cover{box-sizing:border-box}.wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient:before{background-color:#fff;opacity:.3}.wp-block-cover .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);z-index:1}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:right}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-right:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.wp-block-cover>.components-drop-zone .components-drop-zone__content{opacity:.8!important}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px}.wp-block-cover:after{min-height:auto}.wp-block-details summary div{display:inline}.wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-embed .components-placeholder__learn-more{margin-top:1em}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-right:.75em}.wp-block-form-input .is-input-hidden{background:repeating-linear-gradient(-45deg,transparent,transparent 5px,currentColor 0,currentColor 6px);border:1px dashed;box-sizing:border-box;font-size:.85em;opacity:.3;padding:.5em}.wp-block-form-input .is-input-hidden input[type=text]{background:transparent}.wp-block-form-input.is-selected .is-input-hidden{background:none;opacity:1}.wp-block-form-input.is-selected .is-input-hidden input[type=text]{background:unset}.wp-block-form-submission-notification>*{background:repeating-linear-gradient(-45deg,transparent,transparent 5px,currentColor 0,currentColor 6px);border:1px dashed;box-sizing:border-box;opacity:.25}.wp-block-form-submission-notification.is-selected>*,.wp-block-form-submission-notification:has(.is-selected)>*{background:none;opacity:1}.wp-block-form-submission-notification.is-selected:after,.wp-block-form-submission-notification:has(.is-selected):after{display:none!important}.wp-block-form-submission-notification:after{align-items:center;display:flex;font-size:1.1em;height:100%;justify-content:center;position:absolute;right:0;top:0;width:100%}.wp-block-form-submission-notification.form-notification-type-success:after{content:attr(data-message-success)}.wp-block-form-submission-notification.form-notification-type-error:after{content:attr(data-message-error)}.wp-block-freeform.block-library-rich-text__tinymce{height:auto}.wp-block-freeform.block-library-rich-text__tinymce li,.wp-block-freeform.block-library-rich-text__tinymce p{line-height:1.8}.wp-block-freeform.block-library-rich-text__tinymce ol,.wp-block-freeform.block-library-rich-text__tinymce ul{margin-right:0;padding-right:2.5em}.wp-block-freeform.block-library-rich-text__tinymce blockquote{border-right:4px solid #000;box-shadow:inset 0 0 0 0 #ddd;margin:0;padding-right:1em}.wp-block-freeform.block-library-rich-text__tinymce pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;white-space:pre-wrap}.wp-block-freeform.block-library-rich-text__tinymce>:first-child{margin-top:0}.wp-block-freeform.block-library-rich-text__tinymce>:last-child{margin-bottom:0}.wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce a{color:var(--wp-admin-theme-color)}.wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected]{background:#e5f5fa;border-radius:2px;box-shadow:0 0 0 1px #e5f5fa;margin:0 -2px;padding:0 2px}.wp-block-freeform.block-library-rich-text__tinymce code{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:14px;padding:2px}.wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected]{background:#ddd}.wp-block-freeform.block-library-rich-text__tinymce .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-freeform.block-library-rich-text__tinymce .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-freeform.block-library-rich-text__tinymce .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;background-size:1900px 20px;cursor:default;display:block;height:20px;margin:15px auto;outline:0;width:96%}.wp-block-freeform.block-library-rich-text__tinymce img::selection{background-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp{-ms-user-select:element}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption{margin:0;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img{display:block}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption *{-webkit-user-drag:none}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd{margin:0;padding-top:.5em}.wp-block-freeform.block-library-rich-text__tinymce .wpview{border:1px solid transparent;clear:both;margin-bottom:16px;position:relative;width:99.99%}.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe{background:transparent;display:block;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim{display:none}.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder{border:1px dashed #ddd;padding:10px}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error{word-wrap:break-word;border:1px solid #ddd;margin:0;padding:1em 0}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p{margin:0;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error{border-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons{display:block;font-size:32px;height:32px;margin:0 auto;width:32px}.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery:after{clear:both;content:"";display:table}.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce .gallery a{cursor:default}.wp-block-freeform.block-library-rich-text__tinymce .gallery{line-height:1;margin:auto -6px;overflow-x:hidden;padding:6px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item{box-sizing:border-box;float:right;margin:0;padding:6px;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon{margin:0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption{font-size:13px;margin:4px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item{width:100%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item{width:50%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item{width:33.3333333333%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item{width:25%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item{width:20%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item{width:16.6666666667%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item{width:14.2857142857%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item{width:12.5%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item{width:11.1111111111%}.wp-block-freeform.block-library-rich-text__tinymce .gallery img{border:none;height:auto;max-width:100%;padding:0}div[data-type="core/freeform"]:before{border:1px solid #ddd;outline:1px solid transparent;transition:border-color .1s linear,box-shadow .1s linear}@media (prefers-reduced-motion:reduce){div[data-type="core/freeform"]:before{transition-delay:0s;transition-duration:0s}}div[data-type="core/freeform"].is-selected:before{border-color:#1e1e1e}div[data-type="core/freeform"] .block-editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce:after{clear:both;content:"";display:table}.mce-toolbar-grp .mce-btn.mce-active button,.mce-toolbar-grp .mce-btn.mce-active i,.mce-toolbar-grp .mce-btn.mce-active:hover button,.mce-toolbar-grp .mce-btn.mce-active:hover i{color:#1e1e1e}.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last{margin-left:0;margin-right:8px}.mce-toolbar-grp .mce-btn i{font-style:normal}.block-library-classic__toolbar{border:1px solid #ddd;border-bottom:none;border-radius:2px;display:none;margin:0 0 8px;padding:0;position:sticky;top:0;width:auto;z-index:31}div[data-type="core/freeform"].is-selected .block-library-classic__toolbar{border-color:#1e1e1e;display:block}.block-library-classic__toolbar .mce-tinymce{box-shadow:none}@media (min-width:600px){.block-library-classic__toolbar{padding:0}}.block-library-classic__toolbar:empty{background:#f5f5f5;border-bottom:1px solid #e2e4e7;display:block}.block-library-classic__toolbar:empty:before{color:#555d66;content:attr(data-placeholder);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:37px;padding:14px}.block-library-classic__toolbar div.mce-toolbar-grp{border-bottom:1px solid #1e1e1e}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar .mce-menubar>div,.block-library-classic__toolbar .mce-tinymce-inline,.block-library-classic__toolbar .mce-tinymce-inline>div,.block-library-classic__toolbar div.mce-toolbar-grp,.block-library-classic__toolbar div.mce-toolbar-grp>div{height:auto!important;width:100%!important}.block-library-classic__toolbar .mce-container-body.mce-abs-layout{overflow:visible}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar div.mce-toolbar-grp{position:static}.block-library-classic__toolbar .mce-toolbar-grp>div{padding:1px 3px}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px}figure.wp-block-gallery{display:block}figure.wp-block-gallery>.blocks-gallery-caption{flex:0 0 100%}figure.wp-block-gallery>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}figure.wp-block-gallery .wp-block-image .components-notice.is-error{display:block}figure.wp-block-gallery .wp-block-image .components-notice__content{margin:4px 0}figure.wp-block-gallery .wp-block-image .components-notice__dismiss{left:5px;position:absolute;top:0}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}figure.wp-block-gallery .block-editor-media-placeholder{margin:0}figure.wp-block-gallery .block-editor-media-placeholder .components-placeholder__label{display:flex}figure.wp-block-gallery .block-editor-media-placeholder figcaption{z-index:2}figure.wp-block-gallery .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.gallery-settings-buttons .components-button:first-child{margin-left:8px}.gallery-image-sizes .components-base-control__label{display:block;margin-bottom:4px}.gallery-image-sizes .gallery-image-sizes__loading{align-items:center;color:#757575;display:flex;font-size:12px}.gallery-image-sizes .components-spinner{margin:0 4px 0 8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu{display:inline-flex}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.block-library-gallery-item__inline-menu{background:#fff;border:1px solid #1e1e1e;border-radius:2px;display:none;margin:8px;position:absolute;top:-2px;transition:box-shadow .2s ease-out;z-index:20}@media (prefers-reduced-motion:reduce){.block-library-gallery-item__inline-menu{transition-delay:0s;transition-duration:0s}}.block-library-gallery-item__inline-menu:hover{box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu,.columns-8 .block-library-gallery-item__inline-menu{padding:2px}}.block-library-gallery-item__inline-menu .components-button.has-icon:not(:focus){border:none;box-shadow:none}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,.columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon{height:inherit;padding:0;width:inherit}}.block-library-gallery-item__inline-menu.is-left{right:-2px}.block-library-gallery-item__inline-menu.is-right{left:-2px}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;content:"";display:flex;flex:1 0 48px;min-height:46px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all}.wp-block-group__placeholder .wp-block-group-placeholder__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;width:100%}.wp-block-group__placeholder .components-placeholder__instructions{margin-bottom:18px;text-align:center}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg{fill:#ccc!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover{fill:var(--wp-admin-theme-color)!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations>li{align-items:center;display:flex;flex-direction:column;margin:0 12px 12px;width:auto}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button{height:32px;padding:0;width:44px}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button:hover{box-shadow:none}.wp-block-group__placeholder .components-placeholder{min-height:auto;padding:24px}.wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations>li,.wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations>li{margin:12px}.block-library-html__edit .block-library-html__preview-overlay{height:100%;position:absolute;right:0;top:0;width:100%}.block-library-html__edit .block-editor-plain-text{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important}@media (min-width:600px){.block-library-html__edit .block-editor-plain-text{font-size:13px!important}}.block-library-html__edit .block-editor-plain-text:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-latest-posts{padding-right:2.5em}.wp-block-latest-posts.is-grid{padding-right:0}.wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}.edit-post-visual-editor .wp-block-latest-posts.is-grid li{margin-bottom:20px}.editor-latest-posts-image-alignment-control .components-base-control__label{display:block}.editor-latest-posts-image-alignment-control .components-toolbar{border-radius:2px}.wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more input[type=text]{background:#fff;border:none;border-radius:4px;box-shadow:none;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;margin:0;max-width:100%;padding:6px 8px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more input[type=text]:focus{box-shadow:none}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:right;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{left:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px}.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px 16px 16px auto}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:var(--wp-admin-theme-color);background-image:linear-gradient(-45deg,transparent 20%,var(--wp-underline-color) 30%,var(--wp-underline-color) 36%,transparent 46%),linear-gradient(-135deg,transparent 54%,var(--wp-underline-color) 64%,var(--wp-underline-color) 70%,transparent 80%);background-position:100% 100%;background-repeat:repeat-x;background-size:6px 3px;padding-bottom:.1em}.is-dark-theme .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:#fff}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;position:absolute;right:-1px;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}}.block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px}.block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote .wp-block-pullquote__citation{color:inherit}.wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.wp-block-rss__placeholder-form>*{margin-bottom:0}}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1;min-width:80%}.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__components-button-group{margin-top:10px}.block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px}.block-editor-block-list__block[data-type="core/separator"].wp-block-separator.is-style-dots{background:none!important;border:none}[data-type="core/shortcode"].components-placeholder{min-height:0}.blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo .custom-logo-link.is-transient img{opacity:.3}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-upload-container{position:relative}.block-library-site-logo__inspector-upload-container .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button,.block-library-site-logo__inspector-upload-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover,.block-library-site-logo__inspector-upload-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus,.block-library-site-logo__inspector-upload-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title,.block-library-site-logo__inspector-upload-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px}.wp-block-site-tagline__placeholder,.wp-block-site-title__placeholder{border:1px dashed;padding:1em 0}.editor-styles-wrapper .wp-block-site-title a{color:inherit}.wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-links .wp-social-link button{color:currentColor;font-size:inherit;height:auto;line-height:0;opacity:1;padding:.25em}.wp-block-social-links.is-style-pill-shape .wp-social-link button{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links.is-style-logos-only .wp-social-link button{padding:0}.wp-block-social-links div.block-editor-url-input{display:inline-block;margin-right:8px}.wp-block-social-links.wp-block-social-links{background:none}.wp-social-link:hover{transform:none}.editor-styles-wrapper .wp-block-social-links{padding:0}.wp-block-social-links__social-placeholder{display:flex;list-style:none;opacity:.8}.wp-block-social-links__social-placeholder>.wp-social-link{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;visibility:hidden;width:0!important}.wp-block-social-links__social-placeholder>.wp-block-social-links__social-placeholder-icons{display:flex}.wp-block-social-links__social-placeholder .wp-social-link{padding:.25em}.is-style-pill-shape .wp-block-social-links__social-placeholder .wp-social-link{padding-left:.66667em;padding-right:.66667em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link{padding:0}.wp-block-social-links__social-placeholder .wp-social-link:before{border-radius:50%;content:"";display:block;height:1em;width:1em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link:before{background:currentColor}.wp-block-social-links .wp-block-social-links__social-prompt{cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:24px;list-style:none;margin-bottom:auto;margin-top:auto;min-height:24px;order:2;padding-left:8px}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}@media (prefers-reduced-motion:reduce){.wp-social-link.wp-social-link__is-incomplete{transition-delay:0s;transition-duration:0s}}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{margin-bottom:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px}.block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd}.wp-block-video.wp-block-video.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e}.wp-block-video.wp-block-video.is-selected .components-placeholder>svg{opacity:0}.wp-block-video.wp-block-video.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-video.wp-block-video.is-selected .components-placeholder:before{opacity:0}.wp-block-video.wp-block-video .components-button,.wp-block-video.wp-block-video .components-placeholder__instructions,.wp-block-video.wp-block-video .components-placeholder__label{transition:none}.wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.editor-video-poster-control .components-base-control__label{display:block}.editor-video-poster-control .components-button{margin-left:8px}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-right:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{padding:0;width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__add-tracks-container,.block-library-video-tracks-editor__single-track-editor,.block-library-video-tracks-editor__track-list{padding:12px}.editor-styles-wrapper ul.wp-block-post-template{list-style:none;margin-right:0;padding-right:0}.block-library-query-toolbar__popover .components-popover__content{min-width:230px}.wp-block-query__create-new-link{padding:0 52px 16px 16px}.block-library-query__pattern-selection-content .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr 1fr}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{max-height:250px}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:2px;padding:16px 0;position:sticky;top:0;z-index:2}.block-library-query-toolspanel__filters .components-form-token-field__help{margin-bottom:0}.block-library-query-toolspanel__filters .block-library-query-inspector__taxonomy-control:not(:last-child){margin-bottom:24px}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.wp-block-query__enhanced-pagination-notice{margin:0}.wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}.editor-styles-wrapper .wp-block-query-pagination{max-width:100%}.editor-styles-wrapper .wp-block-query-pagination.block-editor-block-list__layout{margin:0}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em;margin-top:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-left:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{cursor:default}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%}.wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto}.wp-element-button{cursor:revert}.wp-element-button[role=textbox]{cursor:text}:root .editor-styles-wrapper .has-very-light-gray-background-color{background-color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-background-color{background-color:#313131}:root .editor-styles-wrapper .has-very-light-gray-color{color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-color{color:#313131}:root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(-135deg,#00d084,#0693e3)}:root .editor-styles-wrapper .has-purple-crush-gradient-background{background:linear-gradient(-135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .editor-styles-wrapper .has-hazy-dawn-gradient-background{background:linear-gradient(-135deg,#faaca8,#dad0ec)}:root .editor-styles-wrapper .has-subdued-olive-gradient-background{background:linear-gradient(-135deg,#fafae1,#67a671)}:root .editor-styles-wrapper .has-atomic-cream-gradient-background{background:linear-gradient(-135deg,#fdd79a,#004a59)}:root .editor-styles-wrapper .has-nightshade-gradient-background{background:linear-gradient(-135deg,#330968,#31cdcf)}:root .editor-styles-wrapper .has-midnight-gradient-background{background:linear-gradient(-135deg,#020381,#2874fc)}:where(.editor-styles-wrapper){--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:where(.editor-styles-wrapper) .has-regular-font-size{font-size:16px}:where(.editor-styles-wrapper) .has-larger-font-size{font-size:42px}:where(.editor-styles-wrapper) .has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}:where(.editor-styles-wrapper) .has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:where(.editor-styles-wrapper) iframe:not([frameborder]){border:0} \ No newline at end of file +ul.wp-block-archives{padding-right:2.5em}.wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto}.edit-post-visual-editor .block-library-block__reusable-block-container .is-root-container{padding-left:0;padding-right:0}.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow{display:block}.edit-post-visual-editor .block-library-block__reusable-block-container .components-disabled .block-list-appender{display:none}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}.wp-block-button__inline-link{color:#757575;height:0;max-width:290px;overflow:hidden}.wp-block-button__inline-link-input__suggestions{max-width:290px}@media (min-width:782px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:260px}}@media (min-width:960px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:290px}}.is-selected .wp-block-button__inline-link{height:auto;overflow:visible}.wp-button-label__width .components-button-group{display:block}.wp-button-label__width .components-base-control__field{margin-bottom:12px}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium}.wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.editor-styles-wrapper .wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end}.wp-block-categories ul{padding-right:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-code code{background:none}.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}.wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:right}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:left}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none}.wp-block-comment-author-avatar__placeholder{stroke:currentColor;stroke-dasharray:3;border:1px dashed;height:100%;width:100%}.wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}.editor-styles-wrapper .wp-block-comments-pagination{max-width:100%}.editor-styles-wrapper .wp-block-comments-pagination.block-editor-block-list__layout{margin:0}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em;margin-top:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-left:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-comments-title.has-background{padding:inherit}.editor-styles-wrapper .wp-block-cover{box-sizing:border-box}.wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient:before{background-color:#fff;opacity:.3}.wp-block-cover .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);z-index:1}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:right}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-right:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.wp-block-cover>.components-drop-zone .components-drop-zone__content{opacity:.8!important}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px}.wp-block-cover:after{min-height:auto}.wp-block-details summary div{display:inline}.wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-embed .components-placeholder__learn-more{margin-top:1em}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-right:.75em}.wp-block-freeform.block-library-rich-text__tinymce{height:auto}.wp-block-freeform.block-library-rich-text__tinymce li,.wp-block-freeform.block-library-rich-text__tinymce p{line-height:1.8}.wp-block-freeform.block-library-rich-text__tinymce ol,.wp-block-freeform.block-library-rich-text__tinymce ul{margin-right:0;padding-right:2.5em}.wp-block-freeform.block-library-rich-text__tinymce blockquote{border-right:4px solid #000;box-shadow:inset 0 0 0 0 #ddd;margin:0;padding-right:1em}.wp-block-freeform.block-library-rich-text__tinymce pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;white-space:pre-wrap}.wp-block-freeform.block-library-rich-text__tinymce>:first-child{margin-top:0}.wp-block-freeform.block-library-rich-text__tinymce>:last-child{margin-bottom:0}.wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce a{color:var(--wp-admin-theme-color)}.wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected]{background:#e5f5fa;border-radius:2px;box-shadow:0 0 0 1px #e5f5fa;margin:0 -2px;padding:0 2px}.wp-block-freeform.block-library-rich-text__tinymce code{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:14px;padding:2px}.wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected]{background:#ddd}.wp-block-freeform.block-library-rich-text__tinymce .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-freeform.block-library-rich-text__tinymce .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-freeform.block-library-rich-text__tinymce .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;background-size:1900px 20px;cursor:default;display:block;height:20px;margin:15px auto;outline:0;width:96%}.wp-block-freeform.block-library-rich-text__tinymce img::selection{background-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp{-ms-user-select:element}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption{margin:0;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img{display:block}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption *{-webkit-user-drag:none}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd{margin:0;padding-top:.5em}.wp-block-freeform.block-library-rich-text__tinymce .wpview{border:1px solid transparent;clear:both;margin-bottom:16px;position:relative;width:99.99%}.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe{background:transparent;display:block;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim{display:none}.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder{border:1px dashed #ddd;padding:10px}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error{word-wrap:break-word;border:1px solid #ddd;margin:0;padding:1em 0}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p{margin:0;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error{border-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons{display:block;font-size:32px;height:32px;margin:0 auto;width:32px}.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery:after{clear:both;content:"";display:table}.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce .gallery a{cursor:default}.wp-block-freeform.block-library-rich-text__tinymce .gallery{line-height:1;margin:auto -6px;overflow-x:hidden;padding:6px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item{box-sizing:border-box;float:right;margin:0;padding:6px;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon{margin:0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption{font-size:13px;margin:4px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item{width:100%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item{width:50%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item{width:33.3333333333%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item{width:25%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item{width:20%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item{width:16.6666666667%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item{width:14.2857142857%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item{width:12.5%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item{width:11.1111111111%}.wp-block-freeform.block-library-rich-text__tinymce .gallery img{border:none;height:auto;max-width:100%;padding:0}div[data-type="core/freeform"]:before{border:1px solid #ddd;outline:1px solid transparent;transition:border-color .1s linear,box-shadow .1s linear}@media (prefers-reduced-motion:reduce){div[data-type="core/freeform"]:before{transition-delay:0s;transition-duration:0s}}div[data-type="core/freeform"].is-selected:before{border-color:#1e1e1e}div[data-type="core/freeform"] .block-editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce:after{clear:both;content:"";display:table}.mce-toolbar-grp .mce-btn.mce-active button,.mce-toolbar-grp .mce-btn.mce-active i,.mce-toolbar-grp .mce-btn.mce-active:hover button,.mce-toolbar-grp .mce-btn.mce-active:hover i{color:#1e1e1e}.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last{margin-left:0;margin-right:8px}.mce-toolbar-grp .mce-btn i{font-style:normal}.block-library-classic__toolbar{border:1px solid #ddd;border-bottom:none;border-radius:2px;display:none;margin:0 0 8px;padding:0;position:sticky;top:0;width:auto;z-index:31}div[data-type="core/freeform"].is-selected .block-library-classic__toolbar{border-color:#1e1e1e;display:block}.block-library-classic__toolbar .mce-tinymce{box-shadow:none}@media (min-width:600px){.block-library-classic__toolbar{padding:0}}.block-library-classic__toolbar:empty{background:#f5f5f5;border-bottom:1px solid #e2e4e7;display:block}.block-library-classic__toolbar:empty:before{color:#555d66;content:attr(data-placeholder);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:37px;padding:14px}.block-library-classic__toolbar div.mce-toolbar-grp{border-bottom:1px solid #1e1e1e}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar .mce-menubar>div,.block-library-classic__toolbar .mce-tinymce-inline,.block-library-classic__toolbar .mce-tinymce-inline>div,.block-library-classic__toolbar div.mce-toolbar-grp,.block-library-classic__toolbar div.mce-toolbar-grp>div{height:auto!important;width:100%!important}.block-library-classic__toolbar .mce-container-body.mce-abs-layout{overflow:visible}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar div.mce-toolbar-grp{position:static}.block-library-classic__toolbar .mce-toolbar-grp>div{padding:1px 3px}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px}figure.wp-block-gallery{display:block}figure.wp-block-gallery>.blocks-gallery-caption{flex:0 0 100%}figure.wp-block-gallery>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}figure.wp-block-gallery .wp-block-image .components-notice.is-error{display:block}figure.wp-block-gallery .wp-block-image .components-notice__content{margin:4px 0}figure.wp-block-gallery .wp-block-image .components-notice__dismiss{left:5px;position:absolute;top:0}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}figure.wp-block-gallery .block-editor-media-placeholder{margin:0}figure.wp-block-gallery .block-editor-media-placeholder .components-placeholder__label{display:flex}figure.wp-block-gallery .block-editor-media-placeholder figcaption{z-index:2}figure.wp-block-gallery .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.gallery-settings-buttons .components-button:first-child{margin-left:8px}.gallery-image-sizes .components-base-control__label{display:block;margin-bottom:4px}.gallery-image-sizes .gallery-image-sizes__loading{align-items:center;color:#757575;display:flex;font-size:12px}.gallery-image-sizes .components-spinner{margin:0 4px 0 8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu{display:inline-flex}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.block-library-gallery-item__inline-menu{background:#fff;border:1px solid #1e1e1e;border-radius:2px;display:none;margin:8px;position:absolute;top:-2px;transition:box-shadow .2s ease-out;z-index:20}@media (prefers-reduced-motion:reduce){.block-library-gallery-item__inline-menu{transition-delay:0s;transition-duration:0s}}.block-library-gallery-item__inline-menu:hover{box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu,.columns-8 .block-library-gallery-item__inline-menu{padding:2px}}.block-library-gallery-item__inline-menu .components-button.has-icon:not(:focus){border:none;box-shadow:none}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,.columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon{height:inherit;padding:0;width:inherit}}.block-library-gallery-item__inline-menu.is-left{right:-2px}.block-library-gallery-item__inline-menu.is-right{left:-2px}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;content:"";display:flex;flex:1 0 48px;min-height:46px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all}.wp-block-group__placeholder .wp-block-group-placeholder__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;width:100%}.wp-block-group__placeholder .components-placeholder__instructions{margin-bottom:18px;text-align:center}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg{fill:#ccc!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover{fill:var(--wp-admin-theme-color)!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations>li{align-items:center;display:flex;flex-direction:column;margin:0 12px 12px;width:auto}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button{height:32px;padding:0;width:44px}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button:hover{box-shadow:none}.wp-block-group__placeholder .components-placeholder{min-height:auto;padding:24px}.wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations>li,.wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations>li{margin:12px}.block-library-html__edit .block-library-html__preview-overlay{height:100%;position:absolute;right:0;top:0;width:100%}.block-library-html__edit .block-editor-plain-text{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important}@media (min-width:600px){.block-library-html__edit .block-editor-plain-text{font-size:13px!important}}.block-library-html__edit .block-editor-plain-text:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-latest-posts{padding-right:2.5em}.wp-block-latest-posts.is-grid{padding-right:0}.wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}.edit-post-visual-editor .wp-block-latest-posts.is-grid li{margin-bottom:20px}.editor-latest-posts-image-alignment-control .components-base-control__label{display:block}.editor-latest-posts-image-alignment-control .components-toolbar{border-radius:2px}.wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more input[type=text]{background:#fff;border:none;border-radius:4px;box-shadow:none;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;margin:0;max-width:100%;padding:6px 8px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more input[type=text]:focus{box-shadow:none}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:right;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{left:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px}.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px 16px 16px auto}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:var(--wp-admin-theme-color);background-image:linear-gradient(-45deg,transparent 20%,var(--wp-underline-color) 30%,var(--wp-underline-color) 36%,transparent 46%),linear-gradient(-135deg,transparent 54%,var(--wp-underline-color) 64%,var(--wp-underline-color) 70%,transparent 80%);background-position:100% 100%;background-repeat:repeat-x;background-size:6px 3px;padding-bottom:.1em}.is-dark-theme .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:#fff}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;position:absolute;right:-1px;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}}.block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list .components-notice{margin-right:0}.wp-block-page-list__loading-indicator-container{padding:8px 12px}.block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote .wp-block-pullquote__citation{color:inherit}.wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.wp-block-rss__placeholder-form>*{margin-bottom:0}}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1;min-width:80%}.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center}.wp-block-search__components-button-group{margin-top:10px}.block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px}.block-editor-block-list__block[data-type="core/separator"].wp-block-separator.is-style-dots{background:none!important;border:none}[data-type="core/shortcode"].components-placeholder{min-height:0}.blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo .custom-logo-link.is-transient img{opacity:.3}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-upload-container{position:relative}.block-library-site-logo__inspector-upload-container .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button,.block-library-site-logo__inspector-upload-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover,.block-library-site-logo__inspector-upload-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus,.block-library-site-logo__inspector-upload-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title,.block-library-site-logo__inspector-upload-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px}.wp-block-site-tagline__placeholder,.wp-block-site-title__placeholder{border:1px dashed;padding:1em 0}.editor-styles-wrapper .wp-block-site-title a{color:inherit}.wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-links .wp-social-link button{color:currentColor;font-size:inherit;height:auto;line-height:0;opacity:1;padding:.25em}.wp-block-social-links.is-style-pill-shape .wp-social-link button{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links.is-style-logos-only .wp-social-link button{padding:0}.wp-block-social-links div.block-editor-url-input{display:inline-block;margin-right:8px}.wp-block-social-links.wp-block-social-links{background:none}.wp-social-link:hover{transform:none}.editor-styles-wrapper .wp-block-social-links{padding:0}.wp-block-social-links__social-placeholder{display:flex;list-style:none;opacity:.8}.wp-block-social-links__social-placeholder>.wp-social-link{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;visibility:hidden;width:0!important}.wp-block-social-links__social-placeholder>.wp-block-social-links__social-placeholder-icons{display:flex}.wp-block-social-links__social-placeholder .wp-social-link{padding:.25em}.is-style-pill-shape .wp-block-social-links__social-placeholder .wp-social-link{padding-left:.66667em;padding-right:.66667em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link{padding:0}.wp-block-social-links__social-placeholder .wp-social-link:before{border-radius:50%;content:"";display:block;height:1em;width:1em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link:before{background:currentColor}.wp-block-social-links .wp-block-social-links__social-prompt{cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:24px;list-style:none;margin-bottom:auto;margin-top:auto;min-height:24px;order:2;padding-left:8px}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}@media (prefers-reduced-motion:reduce){.wp-social-link.wp-social-link__is-incomplete{transition-delay:0s;transition-duration:0s}}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{margin-bottom:0}.wp-block-table{margin:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:0}}.blocks-table__placeholder-input{margin-bottom:0;margin-left:8px;width:112px}.blocks-table__placeholder-input input{height:36px}.block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd}.wp-block-video.wp-block-video.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e}.wp-block-video.wp-block-video.is-selected .components-placeholder>svg{opacity:0}.wp-block-video.wp-block-video.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-video.wp-block-video.is-selected .components-placeholder:before{opacity:0}.wp-block-video.wp-block-video .components-button,.wp-block-video.wp-block-video .components-placeholder__instructions,.wp-block-video.wp-block-video .components-placeholder__label{transition:none}.wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.editor-video-poster-control .components-base-control__label{display:block}.editor-video-poster-control .components-button{margin-left:8px}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-right:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{padding:0;width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__add-tracks-container,.block-library-video-tracks-editor__single-track-editor,.block-library-video-tracks-editor__track-list{padding:12px}.editor-styles-wrapper ul.wp-block-post-template{list-style:none;margin-right:0;padding-right:0}.block-library-query-toolbar__popover .components-popover__content{min-width:230px}.wp-block-query__create-new-link{padding:0 52px 16px 16px}.block-library-query__pattern-selection-content .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr 1fr}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{max-height:250px}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:2px;padding:16px 0;position:sticky;top:0;z-index:2}.block-library-query-toolspanel__filters .components-form-token-field__help{margin-bottom:0}.block-library-query-toolspanel__filters .block-library-query-inspector__taxonomy-control:not(:last-child){margin-bottom:24px}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.wp-block-query__enhanced-pagination-notice{margin:0}.wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}.editor-styles-wrapper .wp-block-query-pagination{max-width:100%}.editor-styles-wrapper .wp-block-query-pagination.block-editor-block-list__layout{margin:0}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em;margin-top:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-left:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%}.wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto}.wp-element-button{cursor:revert}.wp-element-button[role=textbox]{cursor:text}:root .editor-styles-wrapper .has-very-light-gray-background-color{background-color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-background-color{background-color:#313131}:root .editor-styles-wrapper .has-very-light-gray-color{color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-color{color:#313131}:root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(-135deg,#00d084,#0693e3)}:root .editor-styles-wrapper .has-purple-crush-gradient-background{background:linear-gradient(-135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .editor-styles-wrapper .has-hazy-dawn-gradient-background{background:linear-gradient(-135deg,#faaca8,#dad0ec)}:root .editor-styles-wrapper .has-subdued-olive-gradient-background{background:linear-gradient(-135deg,#fafae1,#67a671)}:root .editor-styles-wrapper .has-atomic-cream-gradient-background{background:linear-gradient(-135deg,#fdd79a,#004a59)}:root .editor-styles-wrapper .has-nightshade-gradient-background{background:linear-gradient(-135deg,#330968,#31cdcf)}:root .editor-styles-wrapper .has-midnight-gradient-background{background:linear-gradient(-135deg,#020381,#2874fc)}.editor-styles-wrapper{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.editor-styles-wrapper .has-regular-font-size{font-size:16px}.editor-styles-wrapper .has-larger-font-size{font-size:42px}.editor-styles-wrapper .has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.editor-styles-wrapper .has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.editor-styles-wrapper iframe:not([frameborder]){border:0} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.css index 5a3efcb1cd..b8db807b64 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.css @@ -70,6 +70,37 @@ ul.wp-block-archives{ opacity:.8; } +.wp-block-button__inline-link{ + color:#757575; + height:0; + max-width:290px; + overflow:hidden; +} +.wp-block-button__inline-link-input__suggestions{ + max-width:290px; +} +@media (min-width:782px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:260px; + } +} +@media (min-width:960px){ + .wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{ + max-width:290px; + } +} +.is-selected .wp-block-button__inline-link{ + height:auto; + overflow:visible; +} + +.wp-button-label__width .components-button-group{ + display:block; +} +.wp-button-label__width .components-base-control__field{ + margin-bottom:12px; +} + div[data-type="core/button"]{ display:table; } @@ -480,56 +511,6 @@ html :where(.wp-block-column){ margin-left:.75em; } -.wp-block-form-input .is-input-hidden{ - background:repeating-linear-gradient(45deg, transparent, transparent 5px, currentColor 0, currentColor 6px); - border:1px dashed; - box-sizing:border-box; - font-size:.85em; - opacity:.3; - padding:.5em; -} -.wp-block-form-input .is-input-hidden input[type=text]{ - background:transparent; -} -.wp-block-form-input.is-selected .is-input-hidden{ - background:none; - opacity:1; -} -.wp-block-form-input.is-selected .is-input-hidden input[type=text]{ - background:unset; -} - -.wp-block-form-submission-notification>*{ - background:repeating-linear-gradient(45deg, transparent, transparent 5px, currentColor 0, currentColor 6px); - border:1px dashed; - box-sizing:border-box; - opacity:.25; -} -.wp-block-form-submission-notification.is-selected>*,.wp-block-form-submission-notification:has(.is-selected)>*{ - background:none; - opacity:1; -} -.wp-block-form-submission-notification.is-selected:after,.wp-block-form-submission-notification:has(.is-selected):after{ - display:none !important; -} -.wp-block-form-submission-notification:after{ - align-items:center; - display:flex; - font-size:1.1em; - height:100%; - justify-content:center; - left:0; - position:absolute; - top:0; - width:100%; -} -.wp-block-form-submission-notification.form-notification-type-success:after{ - content:attr(data-message-success); -} -.wp-block-form-submission-notification.form-notification-type-error:after{ - content:attr(data-message-error); -} - .wp-block-freeform.block-library-rich-text__tinymce{ height:auto; } @@ -1148,12 +1129,9 @@ figure.wp-block-gallery .components-spinner{ .wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{ display:none; } -.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ +.wp-block-image.wp-block-image.is-selected .components-placeholder:before{ opacity:0; } -.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{ - opacity:1; -} .wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{ transition:none; } @@ -1641,8 +1619,10 @@ figure.wp-block-image:not(.wp-block){ min-height:1px; min-width:1px; } -.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{ + display:none; + } } .wp-block-navigation__responsive-container.is-menu-open{ @@ -2018,6 +1998,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op width:auto; } +.wp-block-page-list .components-notice{ + margin-left:0; +} + .wp-block-page-list__loading-indicator-container{ padding:8px 12px; } @@ -2081,7 +2065,6 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op display:flex; height:auto; justify-content:center; - text-align:center; } .wp-block-search__components-button-group{ margin-top:10px; @@ -2380,6 +2363,9 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op margin-bottom:0; } +.wp-block-table{ + margin:0; +} .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{ height:auto; } @@ -2412,18 +2398,28 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op align-items:flex-start; display:flex; flex-direction:column; - gap:8px; +} +.blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:8px; } @media (min-width:782px){ .blocks-table__placeholder-form.blocks-table__placeholder-form{ align-items:flex-end; flex-direction:row; } + .blocks-table__placeholder-form.blocks-table__placeholder-form>*{ + margin-bottom:0; + } } .blocks-table__placeholder-input{ + margin-bottom:0; + margin-right:8px; width:112px; } +.blocks-table__placeholder-input input{ + height:36px; +} .block-editor-template-part__selection-modal{ z-index:1000001; @@ -2702,13 +2698,6 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op min-width:48px; width:100%; } -.wp-block-post-featured-image>a{ - cursor:default; -} -.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{ - opacity:1; - pointer-events:auto; -} div[data-type="core/post-featured-image"] img{ display:block; @@ -2762,26 +2751,26 @@ div[data-type="core/post-featured-image"] img{ background:linear-gradient(135deg, #020381, #2874fc); } -:where(.editor-styles-wrapper){ +.editor-styles-wrapper{ --wp--preset--font-size--normal:16px; --wp--preset--font-size--huge:42px; } -:where(.editor-styles-wrapper) .has-regular-font-size{ +.editor-styles-wrapper .has-regular-font-size{ font-size:16px; } -:where(.editor-styles-wrapper) .has-larger-font-size{ +.editor-styles-wrapper .has-larger-font-size{ font-size:42px; } -:where(.editor-styles-wrapper) .has-normal-font-size{ +.editor-styles-wrapper .has-normal-font-size{ font-size:var(--wp--preset--font-size--normal); } -:where(.editor-styles-wrapper) .has-huge-font-size{ +.editor-styles-wrapper .has-huge-font-size{ font-size:var(--wp--preset--font-size--huge); } -:where(.editor-styles-wrapper) iframe:not([frameborder]){ +.editor-styles-wrapper iframe:not([frameborder]){ border:0; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.min.css index 1f633eb2f9..de41f238de 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/editor.min.css @@ -1,2 +1,2 @@ ul.wp-block-archives{padding-left:2.5em}.wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto}.edit-post-visual-editor .block-library-block__reusable-block-container .is-root-container{padding-left:0;padding-right:0}.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow{display:block}.edit-post-visual-editor .block-library-block__reusable-block-container .components-disabled .block-list-appender{display:none}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .edit-post-visual-editor .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{ - /*!rtl:ignore*/text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium}.wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.editor-styles-wrapper .wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end}.wp-block-categories ul{padding-left:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-code code{background:none}.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}.wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:left}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:right}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none}.wp-block-comment-author-avatar__placeholder{stroke:currentColor;stroke-dasharray:3;border:1px dashed;height:100%;width:100%}.wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}.editor-styles-wrapper .wp-block-comments-pagination{max-width:100%}.editor-styles-wrapper .wp-block-comments-pagination.block-editor-block-list__layout{margin:0}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin:.5em .5em .5em 0}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-right:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-comments-title.has-background{padding:inherit}.editor-styles-wrapper .wp-block-cover{box-sizing:border-box}.wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient:before{background-color:#fff;opacity:.3}.wp-block-cover .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:left}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-left:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.wp-block-cover>.components-drop-zone .components-drop-zone__content{opacity:.8!important}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px}.wp-block-cover:after{min-height:auto}.wp-block-details summary div{display:inline}.wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-embed .components-placeholder__learn-more{margin-top:1em}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-left:.75em}.wp-block-form-input .is-input-hidden{background:repeating-linear-gradient(45deg,transparent,transparent 5px,currentColor 0,currentColor 6px);border:1px dashed;box-sizing:border-box;font-size:.85em;opacity:.3;padding:.5em}.wp-block-form-input .is-input-hidden input[type=text]{background:transparent}.wp-block-form-input.is-selected .is-input-hidden{background:none;opacity:1}.wp-block-form-input.is-selected .is-input-hidden input[type=text]{background:unset}.wp-block-form-submission-notification>*{background:repeating-linear-gradient(45deg,transparent,transparent 5px,currentColor 0,currentColor 6px);border:1px dashed;box-sizing:border-box;opacity:.25}.wp-block-form-submission-notification.is-selected>*,.wp-block-form-submission-notification:has(.is-selected)>*{background:none;opacity:1}.wp-block-form-submission-notification.is-selected:after,.wp-block-form-submission-notification:has(.is-selected):after{display:none!important}.wp-block-form-submission-notification:after{align-items:center;display:flex;font-size:1.1em;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.wp-block-form-submission-notification.form-notification-type-success:after{content:attr(data-message-success)}.wp-block-form-submission-notification.form-notification-type-error:after{content:attr(data-message-error)}.wp-block-freeform.block-library-rich-text__tinymce{height:auto}.wp-block-freeform.block-library-rich-text__tinymce li,.wp-block-freeform.block-library-rich-text__tinymce p{line-height:1.8}.wp-block-freeform.block-library-rich-text__tinymce ol,.wp-block-freeform.block-library-rich-text__tinymce ul{margin-left:0;padding-left:2.5em}.wp-block-freeform.block-library-rich-text__tinymce blockquote{border-left:4px solid #000;box-shadow:inset 0 0 0 0 #ddd;margin:0;padding-left:1em}.wp-block-freeform.block-library-rich-text__tinymce pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;white-space:pre-wrap}.wp-block-freeform.block-library-rich-text__tinymce>:first-child{margin-top:0}.wp-block-freeform.block-library-rich-text__tinymce>:last-child{margin-bottom:0}.wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce a{color:var(--wp-admin-theme-color)}.wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected]{background:#e5f5fa;border-radius:2px;box-shadow:0 0 0 1px #e5f5fa;margin:0 -2px;padding:0 2px}.wp-block-freeform.block-library-rich-text__tinymce code{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:14px;padding:2px}.wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected]{background:#ddd}.wp-block-freeform.block-library-rich-text__tinymce .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-freeform.block-library-rich-text__tinymce .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-freeform.block-library-rich-text__tinymce .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;background-size:1900px 20px;cursor:default;display:block;height:20px;margin:15px auto;outline:0;width:96%}.wp-block-freeform.block-library-rich-text__tinymce img::selection{background-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp{-ms-user-select:element}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption{margin:0;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img{display:block}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption *{-webkit-user-drag:none}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd{margin:0;padding-top:.5em}.wp-block-freeform.block-library-rich-text__tinymce .wpview{border:1px solid transparent;clear:both;margin-bottom:16px;position:relative;width:99.99%}.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe{background:transparent;display:block;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim{display:none}.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder{border:1px dashed #ddd;padding:10px}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error{word-wrap:break-word;border:1px solid #ddd;margin:0;padding:1em 0}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p{margin:0;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error{border-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons{display:block;font-size:32px;height:32px;margin:0 auto;width:32px}.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery:after{clear:both;content:"";display:table}.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce .gallery a{cursor:default}.wp-block-freeform.block-library-rich-text__tinymce .gallery{line-height:1;margin:auto -6px;overflow-x:hidden;padding:6px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item{box-sizing:border-box;float:left;margin:0;padding:6px;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon{margin:0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption{font-size:13px;margin:4px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item{width:100%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item{width:50%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item{width:33.3333333333%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item{width:25%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item{width:20%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item{width:16.6666666667%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item{width:14.2857142857%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item{width:12.5%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item{width:11.1111111111%}.wp-block-freeform.block-library-rich-text__tinymce .gallery img{border:none;height:auto;max-width:100%;padding:0}div[data-type="core/freeform"]:before{border:1px solid #ddd;outline:1px solid transparent;transition:border-color .1s linear,box-shadow .1s linear}@media (prefers-reduced-motion:reduce){div[data-type="core/freeform"]:before{transition-delay:0s;transition-duration:0s}}div[data-type="core/freeform"].is-selected:before{border-color:#1e1e1e}div[data-type="core/freeform"] .block-editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce:after{clear:both;content:"";display:table}.mce-toolbar-grp .mce-btn.mce-active button,.mce-toolbar-grp .mce-btn.mce-active i,.mce-toolbar-grp .mce-btn.mce-active:hover button,.mce-toolbar-grp .mce-btn.mce-active:hover i{color:#1e1e1e}.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last{margin-left:8px;margin-right:0}.mce-toolbar-grp .mce-btn i{font-style:normal}.block-library-classic__toolbar{border:1px solid #ddd;border-bottom:none;border-radius:2px;display:none;margin:0 0 8px;padding:0;position:sticky;top:0;width:auto;z-index:31}div[data-type="core/freeform"].is-selected .block-library-classic__toolbar{border-color:#1e1e1e;display:block}.block-library-classic__toolbar .mce-tinymce{box-shadow:none}@media (min-width:600px){.block-library-classic__toolbar{padding:0}}.block-library-classic__toolbar:empty{background:#f5f5f5;border-bottom:1px solid #e2e4e7;display:block}.block-library-classic__toolbar:empty:before{color:#555d66;content:attr(data-placeholder);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:37px;padding:14px}.block-library-classic__toolbar div.mce-toolbar-grp{border-bottom:1px solid #1e1e1e}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar .mce-menubar>div,.block-library-classic__toolbar .mce-tinymce-inline,.block-library-classic__toolbar .mce-tinymce-inline>div,.block-library-classic__toolbar div.mce-toolbar-grp,.block-library-classic__toolbar div.mce-toolbar-grp>div{height:auto!important;width:100%!important}.block-library-classic__toolbar .mce-container-body.mce-abs-layout{overflow:visible}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar div.mce-toolbar-grp{position:static}.block-library-classic__toolbar .mce-toolbar-grp>div{padding:1px 3px}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px}figure.wp-block-gallery{display:block}figure.wp-block-gallery>.blocks-gallery-caption{flex:0 0 100%}figure.wp-block-gallery>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}figure.wp-block-gallery .wp-block-image .components-notice.is-error{display:block}figure.wp-block-gallery .wp-block-image .components-notice__content{margin:4px 0}figure.wp-block-gallery .wp-block-image .components-notice__dismiss{position:absolute;right:5px;top:0}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}figure.wp-block-gallery .block-editor-media-placeholder{margin:0}figure.wp-block-gallery .block-editor-media-placeholder .components-placeholder__label{display:flex}figure.wp-block-gallery .block-editor-media-placeholder figcaption{z-index:2}figure.wp-block-gallery .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.gallery-settings-buttons .components-button:first-child{margin-right:8px}.gallery-image-sizes .components-base-control__label{display:block;margin-bottom:4px}.gallery-image-sizes .gallery-image-sizes__loading{align-items:center;color:#757575;display:flex;font-size:12px}.gallery-image-sizes .components-spinner{margin:0 8px 0 4px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu{display:inline-flex}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.block-library-gallery-item__inline-menu{background:#fff;border:1px solid #1e1e1e;border-radius:2px;display:none;margin:8px;position:absolute;top:-2px;transition:box-shadow .2s ease-out;z-index:20}@media (prefers-reduced-motion:reduce){.block-library-gallery-item__inline-menu{transition-delay:0s;transition-duration:0s}}.block-library-gallery-item__inline-menu:hover{box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu,.columns-8 .block-library-gallery-item__inline-menu{padding:2px}}.block-library-gallery-item__inline-menu .components-button.has-icon:not(:focus){border:none;box-shadow:none}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,.columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon{height:inherit;padding:0;width:inherit}}.block-library-gallery-item__inline-menu.is-left{left:-2px}.block-library-gallery-item__inline-menu.is-right{right:-2px}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;content:"";display:flex;flex:1 0 48px;min-height:46px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all}.wp-block-group__placeholder .wp-block-group-placeholder__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;width:100%}.wp-block-group__placeholder .components-placeholder__instructions{margin-bottom:18px;text-align:center}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg{fill:#ccc!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover{fill:var(--wp-admin-theme-color)!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations>li{align-items:center;display:flex;flex-direction:column;margin:0 12px 12px;width:auto}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button{height:32px;padding:0;width:44px}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button:hover{box-shadow:none}.wp-block-group__placeholder .components-placeholder{min-height:auto;padding:24px}.wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations>li,.wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations>li{margin:12px}.block-library-html__edit .block-library-html__preview-overlay{height:100%;left:0;position:absolute;top:0;width:100%}.block-library-html__edit .block-editor-plain-text{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important}@media (min-width:600px){.block-library-html__edit .block-editor-plain-text{font-size:13px!important}}.block-library-html__edit .block-editor-plain-text:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-latest-posts{padding-left:2.5em}.wp-block-latest-posts.is-grid{padding-left:0}.wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}.edit-post-visual-editor .wp-block-latest-posts.is-grid li{margin-bottom:20px}.editor-latest-posts-image-alignment-control .components-base-control__label{display:block}.editor-latest-posts-image-alignment-control .components-toolbar{border-radius:2px}.wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more input[type=text]{background:#fff;border:none;border-radius:4px;box-shadow:none;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;margin:0;max-width:100%;padding:6px 8px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more input[type=text]:focus{box-shadow:none}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:left;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{right:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px}.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px auto 16px 16px}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:var(--wp-admin-theme-color);background-image:linear-gradient(45deg,transparent 20%,var(--wp-underline-color) 30%,var(--wp-underline-color) 36%,transparent 46%),linear-gradient(135deg,transparent 54%,var(--wp-underline-color) 64%,var(--wp-underline-color) 70%,transparent 80%);background-position:0 100%;background-repeat:repeat-x;background-size:6px 3px;padding-bottom:.1em}.is-dark-theme .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:#fff}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;left:-1px;min-width:200px!important;opacity:1!important;position:absolute;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}}.block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px}.block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote .wp-block-pullquote__citation{color:inherit}.wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.wp-block-rss__placeholder-form>*{margin-bottom:0}}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1;min-width:80%}.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__components-button-group{margin-top:10px}.block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px}.block-editor-block-list__block[data-type="core/separator"].wp-block-separator.is-style-dots{background:none!important;border:none}[data-type="core/shortcode"].components-placeholder{min-height:0}.blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo .custom-logo-link.is-transient img{opacity:.3}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-upload-container{position:relative}.block-library-site-logo__inspector-upload-container .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button,.block-library-site-logo__inspector-upload-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover,.block-library-site-logo__inspector-upload-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus,.block-library-site-logo__inspector-upload-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title,.block-library-site-logo__inspector-upload-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px}.wp-block-site-tagline__placeholder,.wp-block-site-title__placeholder{border:1px dashed;padding:1em 0}.editor-styles-wrapper .wp-block-site-title a{color:inherit}.wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-links .wp-social-link button{color:currentColor;font-size:inherit;height:auto;line-height:0;opacity:1;padding:.25em}.wp-block-social-links.is-style-pill-shape .wp-social-link button{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links.is-style-logos-only .wp-social-link button{padding:0}.wp-block-social-links div.block-editor-url-input{display:inline-block;margin-left:8px}.wp-block-social-links.wp-block-social-links{background:none}.wp-social-link:hover{transform:none}.editor-styles-wrapper .wp-block-social-links{padding:0}.wp-block-social-links__social-placeholder{display:flex;list-style:none;opacity:.8}.wp-block-social-links__social-placeholder>.wp-social-link{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;visibility:hidden;width:0!important}.wp-block-social-links__social-placeholder>.wp-block-social-links__social-placeholder-icons{display:flex}.wp-block-social-links__social-placeholder .wp-social-link{padding:.25em}.is-style-pill-shape .wp-block-social-links__social-placeholder .wp-social-link{padding-left:.66667em;padding-right:.66667em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link{padding:0}.wp-block-social-links__social-placeholder .wp-social-link:before{border-radius:50%;content:"";display:block;height:1em;width:1em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link:before{background:currentColor}.wp-block-social-links .wp-block-social-links__social-prompt{cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:24px;list-style:none;margin-bottom:auto;margin-top:auto;min-height:24px;order:2;padding-right:8px}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}@media (prefers-reduced-motion:reduce){.wp-social-link.wp-social-link__is-incomplete{transition-delay:0s;transition-duration:0s}}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{margin-bottom:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px}.block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd}.wp-block-video.wp-block-video.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e}.wp-block-video.wp-block-video.is-selected .components-placeholder>svg{opacity:0}.wp-block-video.wp-block-video.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-video.wp-block-video.is-selected .components-placeholder:before{opacity:0}.wp-block-video.wp-block-video .components-button,.wp-block-video.wp-block-video .components-placeholder__instructions,.wp-block-video.wp-block-video .components-placeholder__label{transition:none}.wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.editor-video-poster-control .components-base-control__label{display:block}.editor-video-poster-control .components-button{margin-right:8px}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-left:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{padding:0;width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__add-tracks-container,.block-library-video-tracks-editor__single-track-editor,.block-library-video-tracks-editor__track-list{padding:12px}.editor-styles-wrapper ul.wp-block-post-template{list-style:none;margin-left:0;padding-left:0}.block-library-query-toolbar__popover .components-popover__content{min-width:230px}.wp-block-query__create-new-link{padding:0 16px 16px 52px}.block-library-query__pattern-selection-content .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr 1fr}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{max-height:250px}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:2px;padding:16px 0;position:sticky;top:0;z-index:2}.block-library-query-toolspanel__filters .components-form-token-field__help{margin-bottom:0}.block-library-query-toolspanel__filters .block-library-query-inspector__taxonomy-control:not(:last-child){margin-bottom:24px}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.wp-block-query__enhanced-pagination-notice{margin:0}.wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}.editor-styles-wrapper .wp-block-query-pagination{max-width:100%}.editor-styles-wrapper .wp-block-query-pagination.block-editor-block-list__layout{margin:0}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin:.5em .5em .5em 0}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-right:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{cursor:default}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%}.wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto}.wp-element-button{cursor:revert}.wp-element-button[role=textbox]{cursor:text}:root .editor-styles-wrapper .has-very-light-gray-background-color{background-color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-background-color{background-color:#313131}:root .editor-styles-wrapper .has-very-light-gray-color{color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-color{color:#313131}:root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .editor-styles-wrapper .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .editor-styles-wrapper .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .editor-styles-wrapper .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .editor-styles-wrapper .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .editor-styles-wrapper .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .editor-styles-wrapper .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:where(.editor-styles-wrapper){--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:where(.editor-styles-wrapper) .has-regular-font-size{font-size:16px}:where(.editor-styles-wrapper) .has-larger-font-size{font-size:42px}:where(.editor-styles-wrapper) .has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}:where(.editor-styles-wrapper) .has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:where(.editor-styles-wrapper) iframe:not([frameborder]){border:0} \ No newline at end of file + /*!rtl:ignore*/text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}.wp-block-button__inline-link{color:#757575;height:0;max-width:290px;overflow:hidden}.wp-block-button__inline-link-input__suggestions{max-width:290px}@media (min-width:782px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:260px}}@media (min-width:960px){.wp-block-button__inline-link,.wp-block-button__inline-link-input__suggestions{max-width:290px}}.is-selected .wp-block-button__inline-link{height:auto;overflow:visible}.wp-button-label__width .components-button-group{display:block}.wp-button-label__width .components-base-control__field{margin-bottom:12px}div[data-type="core/button"]{display:table}.editor-styles-wrapper .wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.editor-styles-wrapper .wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium}.wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.editor-styles-wrapper .wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end}.wp-block-categories ul{padding-left:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-code code{background:none}.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}.wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:left}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:right}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none}.wp-block-comment-author-avatar__placeholder{stroke:currentColor;stroke-dasharray:3;border:1px dashed;height:100%;width:100%}.wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}.editor-styles-wrapper .wp-block-comments-pagination{max-width:100%}.editor-styles-wrapper .wp-block-comments-pagination.block-editor-block-list__layout{margin:0}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin:.5em .5em .5em 0}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-right:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-comments-title.has-background{padding:inherit}.editor-styles-wrapper .wp-block-cover{box-sizing:border-box}.wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient:before{background-color:#fff;opacity:.3}.wp-block-cover .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:left}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-left:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.wp-block-cover>.components-drop-zone .components-drop-zone__content{opacity:.8!important}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px}.wp-block-cover:after{min-height:auto}.wp-block-details summary div{display:inline}.wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-embed .components-placeholder__learn-more{margin-top:1em}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-left:.75em}.wp-block-freeform.block-library-rich-text__tinymce{height:auto}.wp-block-freeform.block-library-rich-text__tinymce li,.wp-block-freeform.block-library-rich-text__tinymce p{line-height:1.8}.wp-block-freeform.block-library-rich-text__tinymce ol,.wp-block-freeform.block-library-rich-text__tinymce ul{margin-left:0;padding-left:2.5em}.wp-block-freeform.block-library-rich-text__tinymce blockquote{border-left:4px solid #000;box-shadow:inset 0 0 0 0 #ddd;margin:0;padding-left:1em}.wp-block-freeform.block-library-rich-text__tinymce pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:15px;white-space:pre-wrap}.wp-block-freeform.block-library-rich-text__tinymce>:first-child{margin-top:0}.wp-block-freeform.block-library-rich-text__tinymce>:last-child{margin-bottom:0}.wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce a{color:var(--wp-admin-theme-color)}.wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected]{background:#e5f5fa;border-radius:2px;box-shadow:0 0 0 1px #e5f5fa;margin:0 -2px;padding:0 2px}.wp-block-freeform.block-library-rich-text__tinymce code{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:14px;padding:2px}.wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected]{background:#ddd}.wp-block-freeform.block-library-rich-text__tinymce .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-freeform.block-library-rich-text__tinymce .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-freeform.block-library-rich-text__tinymce .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;background-size:1900px 20px;cursor:default;display:block;height:20px;margin:15px auto;outline:0;width:96%}.wp-block-freeform.block-library-rich-text__tinymce img::selection{background-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp{-ms-user-select:element}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption{margin:0;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img{display:block}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption *{-webkit-user-drag:none}.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd{margin:0;padding-top:.5em}.wp-block-freeform.block-library-rich-text__tinymce .wpview{border:1px solid transparent;clear:both;margin-bottom:16px;position:relative;width:99.99%}.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe{background:transparent;display:block;max-width:100%}.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim{display:none}.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder{border:1px dashed #ddd;padding:10px}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error{word-wrap:break-word;border:1px solid #ddd;margin:0;padding:1em 0}.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p{margin:0;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error{border-color:transparent}.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons{display:block;font-size:32px;height:32px;margin:0 auto;width:32px}.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery:after{clear:both;content:"";display:table}.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus{outline:none}.wp-block-freeform.block-library-rich-text__tinymce .gallery a{cursor:default}.wp-block-freeform.block-library-rich-text__tinymce .gallery{line-height:1;margin:auto -6px;overflow-x:hidden;padding:6px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item{box-sizing:border-box;float:left;margin:0;padding:6px;text-align:center}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon{margin:0}.wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption{font-size:13px;margin:4px 0}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item{width:100%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item{width:50%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item{width:33.3333333333%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item{width:25%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item{width:20%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item{width:16.6666666667%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item{width:14.2857142857%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item{width:12.5%}.wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item{width:11.1111111111%}.wp-block-freeform.block-library-rich-text__tinymce .gallery img{border:none;height:auto;max-width:100%;padding:0}div[data-type="core/freeform"]:before{border:1px solid #ddd;outline:1px solid transparent;transition:border-color .1s linear,box-shadow .1s linear}@media (prefers-reduced-motion:reduce){div[data-type="core/freeform"]:before{transition-delay:0s;transition-duration:0s}}div[data-type="core/freeform"].is-selected:before{border-color:#1e1e1e}div[data-type="core/freeform"] .block-editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce:after{clear:both;content:"";display:table}.mce-toolbar-grp .mce-btn.mce-active button,.mce-toolbar-grp .mce-btn.mce-active i,.mce-toolbar-grp .mce-btn.mce-active:hover button,.mce-toolbar-grp .mce-btn.mce-active:hover i{color:#1e1e1e}.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last{margin-left:8px;margin-right:0}.mce-toolbar-grp .mce-btn i{font-style:normal}.block-library-classic__toolbar{border:1px solid #ddd;border-bottom:none;border-radius:2px;display:none;margin:0 0 8px;padding:0;position:sticky;top:0;width:auto;z-index:31}div[data-type="core/freeform"].is-selected .block-library-classic__toolbar{border-color:#1e1e1e;display:block}.block-library-classic__toolbar .mce-tinymce{box-shadow:none}@media (min-width:600px){.block-library-classic__toolbar{padding:0}}.block-library-classic__toolbar:empty{background:#f5f5f5;border-bottom:1px solid #e2e4e7;display:block}.block-library-classic__toolbar:empty:before{color:#555d66;content:attr(data-placeholder);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:37px;padding:14px}.block-library-classic__toolbar div.mce-toolbar-grp{border-bottom:1px solid #1e1e1e}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar .mce-menubar>div,.block-library-classic__toolbar .mce-tinymce-inline,.block-library-classic__toolbar .mce-tinymce-inline>div,.block-library-classic__toolbar div.mce-toolbar-grp,.block-library-classic__toolbar div.mce-toolbar-grp>div{height:auto!important;width:100%!important}.block-library-classic__toolbar .mce-container-body.mce-abs-layout{overflow:visible}.block-library-classic__toolbar .mce-menubar,.block-library-classic__toolbar div.mce-toolbar-grp{position:static}.block-library-classic__toolbar .mce-toolbar-grp>div{padding:1px 3px}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px}figure.wp-block-gallery{display:block}figure.wp-block-gallery>.blocks-gallery-caption{flex:0 0 100%}figure.wp-block-gallery>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}figure.wp-block-gallery .wp-block-image .components-notice.is-error{display:block}figure.wp-block-gallery .wp-block-image .components-notice__content{margin:4px 0}figure.wp-block-gallery .wp-block-image .components-notice__dismiss{position:absolute;right:5px;top:0}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}figure.wp-block-gallery .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}figure.wp-block-gallery .block-editor-media-placeholder{margin:0}figure.wp-block-gallery .block-editor-media-placeholder .components-placeholder__label{display:flex}figure.wp-block-gallery .block-editor-media-placeholder figcaption{z-index:2}figure.wp-block-gallery .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.gallery-settings-buttons .components-button:first-child{margin-right:8px}.gallery-image-sizes .components-base-control__label{display:block;margin-bottom:4px}.gallery-image-sizes .gallery-image-sizes__loading{align-items:center;color:#757575;display:flex;font-size:12px}.gallery-image-sizes .components-spinner{margin:0 8px 0 4px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu{display:inline-flex}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.block-library-gallery-item__inline-menu{background:#fff;border:1px solid #1e1e1e;border-radius:2px;display:none;margin:8px;position:absolute;top:-2px;transition:box-shadow .2s ease-out;z-index:20}@media (prefers-reduced-motion:reduce){.block-library-gallery-item__inline-menu{transition-delay:0s;transition-duration:0s}}.block-library-gallery-item__inline-menu:hover{box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1)}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu,.columns-8 .block-library-gallery-item__inline-menu{padding:2px}}.block-library-gallery-item__inline-menu .components-button.has-icon:not(:focus){border:none;box-shadow:none}@media (min-width:600px){.columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,.columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon{height:inherit;padding:0;width:inherit}}.block-library-gallery-item__inline-menu.is-left{left:-2px}.block-library-gallery-item__inline-menu.is-right{right:-2px}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;border-radius:2px;content:"";display:flex;flex:1 0 48px;min-height:46px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all}.wp-block-group__placeholder .wp-block-group-placeholder__variations{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;width:100%}.wp-block-group__placeholder .components-placeholder__instructions{margin-bottom:18px;text-align:center}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg{fill:#ccc!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations svg:hover{fill:var(--wp-admin-theme-color)!important}.wp-block-group__placeholder .wp-block-group-placeholder__variations>li{align-items:center;display:flex;flex-direction:column;margin:0 12px 12px;width:auto}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button{height:32px;padding:0;width:44px}.wp-block-group__placeholder .wp-block-group-placeholder__variations li>.wp-block-group-placeholder__variation-button:hover{box-shadow:none}.wp-block-group__placeholder .components-placeholder{min-height:auto;padding:24px}.wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations>li,.wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations>li{margin:12px}.block-library-html__edit .block-library-html__preview-overlay{height:100%;left:0;position:absolute;top:0;width:100%}.block-library-html__edit .block-editor-plain-text{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important}@media (min-width:600px){.block-library-html__edit .block-editor-plain-text{font-size:13px!important}}.block-library-html__edit .block-editor-plain-text:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-latest-posts{padding-left:2.5em}.wp-block-latest-posts.is-grid{padding-left:0}.wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}.edit-post-visual-editor .wp-block-latest-posts.is-grid li{margin-bottom:20px}.editor-latest-posts-image-alignment-control .components-base-control__label{display:block}.editor-latest-posts-image-alignment-control .components-toolbar{border-radius:2px}.wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more input[type=text]{background:#fff;border:none;border-radius:4px;box-shadow:none;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;margin:0;max-width:100%;padding:6px 8px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more input[type=text]:focus{box-shadow:none}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;border-radius:2px;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;color:inherit;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;background:transparent;color:currentColor;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:2px;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview:before:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;float:left;position:relative;width:100%;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px;height:100%}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:155px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:93px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}@media (min-width:782px){.has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:141px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:141px}.is-sidebar-opened .wp-block-navigation__responsive-container.is-menu-open{right:280px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:155px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:61px}.is-fullscreen-mode .has-fixed-toolbar .wp-block-navigation__responsive-container.is-menu-open{top:109px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:109px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;height:64px;justify-content:space-between;margin-bottom:12px;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid transparent}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls{overflow-x:auto;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;will-change:transform}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar{height:12px;width:12px}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-track{background-color:transparent}.wp-block-navigation__menu-inspector-controls::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-navigation__menu-inspector-controls:focus-within::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:focus::-webkit-scrollbar-thumb,.wp-block-navigation__menu-inspector-controls:hover::-webkit-scrollbar-thumb{background-color:#949494}.wp-block-navigation__menu-inspector-controls:focus,.wp-block-navigation__menu-inspector-controls:focus-within,.wp-block-navigation__menu-inspector-controls:hover{scrollbar-color:#949494 transparent}@media (hover:none){.wp-block-navigation__menu-inspector-controls{scrollbar-color:#949494 transparent}}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px}.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px auto 16px 16px}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:var(--wp-admin-theme-color);background-image:linear-gradient(45deg,transparent 20%,var(--wp-underline-color) 30%,var(--wp-underline-color) 36%,transparent 46%),linear-gradient(135deg,transparent 54%,var(--wp-underline-color) 64%,var(--wp-underline-color) 70%,transparent 80%);background-position:0 100%;background-repeat:repeat-x;background-size:6px 3px;padding-bottom:.1em}.is-dark-theme .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{--wp-underline-color:#fff}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;left:-1px;min-width:200px!important;opacity:1!important;position:absolute;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}}.block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%}.wp-block-navigation .wp-block-page-list,.wp-block-navigation .wp-block-page-list>div{background-color:inherit}.wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list .components-notice{margin-left:0}.wp-block-page-list__loading-indicator-container{padding:8px 12px}.block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote .wp-block-pullquote__citation{color:inherit}.wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.wp-block-rss__placeholder-form>*{margin-bottom:0}}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1;min-width:80%}.wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search .wp-block-search__button{align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center}.wp-block-search__components-button-group{margin-top:10px}.block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px}.block-editor-block-list__block[data-type="core/separator"].wp-block-separator.is-style-dots{background:none!important;border:none}[data-type="core/shortcode"].components-placeholder{min-height:0}.blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important}.wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo .custom-logo-link.is-transient img{opacity:.3}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-upload-container{position:relative}.block-library-site-logo__inspector-upload-container .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button,.block-library-site-logo__inspector-upload-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover,.block-library-site-logo__inspector-upload-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus,.block-library-site-logo__inspector-upload-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title,.block-library-site-logo__inspector-upload-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px}.wp-block-site-tagline__placeholder,.wp-block-site-title__placeholder{border:1px dashed;padding:1em 0}.editor-styles-wrapper .wp-block-site-title a{color:inherit}.wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-links .wp-social-link button{color:currentColor;font-size:inherit;height:auto;line-height:0;opacity:1;padding:.25em}.wp-block-social-links.is-style-pill-shape .wp-social-link button{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links.is-style-logos-only .wp-social-link button{padding:0}.wp-block-social-links div.block-editor-url-input{display:inline-block;margin-left:8px}.wp-block-social-links.wp-block-social-links{background:none}.wp-social-link:hover{transform:none}.editor-styles-wrapper .wp-block-social-links{padding:0}.wp-block-social-links__social-placeholder{display:flex;list-style:none;opacity:.8}.wp-block-social-links__social-placeholder>.wp-social-link{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;visibility:hidden;width:0!important}.wp-block-social-links__social-placeholder>.wp-block-social-links__social-placeholder-icons{display:flex}.wp-block-social-links__social-placeholder .wp-social-link{padding:.25em}.is-style-pill-shape .wp-block-social-links__social-placeholder .wp-social-link{padding-left:.66667em;padding-right:.66667em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link{padding:0}.wp-block-social-links__social-placeholder .wp-social-link:before{border-radius:50%;content:"";display:block;height:1em;width:1em}.is-style-logos-only .wp-block-social-links__social-placeholder .wp-social-link:before{background:currentColor}.wp-block-social-links .wp-block-social-links__social-prompt{cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:24px;list-style:none;margin-bottom:auto;margin-top:auto;min-height:24px;order:2;padding-right:8px}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}@media (prefers-reduced-motion:reduce){.wp-social-link.wp-social-link__is-incomplete{transition-delay:0s;transition-duration:0s}}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{margin-bottom:0}.wp-block-table{margin:0}.wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}.blocks-table__placeholder-form.blocks-table__placeholder-form>*{margin-bottom:0}}.blocks-table__placeholder-input{margin-bottom:0;margin-right:8px;width:112px}.blocks-table__placeholder-input input{height:36px}.block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-block-synced-color)}.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.is-dark-theme .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff}.wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd}.wp-block-video.wp-block-video.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e}.wp-block-video.wp-block-video.is-selected .components-placeholder>svg{opacity:0}.wp-block-video.wp-block-video.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-video.wp-block-video.is-selected .components-placeholder:before{opacity:0}.wp-block-video.wp-block-video .components-button,.wp-block-video.wp-block-video .components-placeholder__instructions,.wp-block-video.wp-block-video .components-placeholder__label{transition:none}.wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.editor-video-poster-control .components-base-control__label{display:block}.editor-video-poster-control .components-button{margin-right:8px}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-left:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{padding:0;width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__add-tracks-container,.block-library-video-tracks-editor__single-track-editor,.block-library-video-tracks-editor__track-list{padding:12px}.editor-styles-wrapper ul.wp-block-post-template{list-style:none;margin-left:0;padding-left:0}.block-library-query-toolbar__popover .components-popover__content{min-width:230px}.wp-block-query__create-new-link{padding:0 16px 16px 52px}.block-library-query__pattern-selection-content .block-editor-block-patterns-list{grid-gap:8px;display:grid;grid-template-columns:1fr 1fr 1fr}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{margin-bottom:0}.block-library-query__pattern-selection-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{max-height:250px}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:2px;padding:16px 0;position:sticky;top:0;z-index:2}.block-library-query-toolspanel__filters .components-form-token-field__help{margin-bottom:0}.block-library-query-toolspanel__filters .block-library-query-inspector__taxonomy-control:not(:last-child){margin-bottom:24px}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.wp-block-query__enhanced-pagination-notice{margin:0}.wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}.editor-styles-wrapper .wp-block-query-pagination{max-width:100%}.editor-styles-wrapper .wp-block-query-pagination.block-editor-block-list__layout{margin:0}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin:.5em .5em .5em 0}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-right:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0}.wp-block-post-featured-image .block-editor-media-placeholder{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;min-height:200px;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%}.wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto}.wp-element-button{cursor:revert}.wp-element-button[role=textbox]{cursor:text}:root .editor-styles-wrapper .has-very-light-gray-background-color{background-color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-background-color{background-color:#313131}:root .editor-styles-wrapper .has-very-light-gray-color{color:#eee}:root .editor-styles-wrapper .has-very-dark-gray-color{color:#313131}:root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .editor-styles-wrapper .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .editor-styles-wrapper .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .editor-styles-wrapper .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .editor-styles-wrapper .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .editor-styles-wrapper .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .editor-styles-wrapper .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.editor-styles-wrapper{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.editor-styles-wrapper .has-regular-font-size{font-size:16px}.editor-styles-wrapper .has-larger-font-size{font-size:42px}.editor-styles-wrapper .has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.editor-styles-wrapper .has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.editor-styles-wrapper iframe:not([frameborder]){border:0} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.css index 8edd9b44e0..3f52a5243e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.css @@ -96,16 +96,16 @@ border-radius:0 !important; } -.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{ +.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{ border:2px solid; padding:.667em 1.333em; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){ color:currentColor; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){ background-color:transparent; background-image:none; } @@ -482,7 +482,8 @@ display:flex; justify-content:center; min-height:430px; - overflow-x:clip; + overflow:hidden; + overflow:clip; padding:1em; position:relative; } @@ -827,47 +828,6 @@ text-decoration:none; } -.wp-block-form-input__label{ - display:flex; - flex-direction:column; - gap:.25em; - margin-bottom:.5em; - width:100%; -} -.wp-block-form-input__label.is-label-inline{ - align-items:center; - flex-direction:row; - gap:.5em; -} -.wp-block-form-input__label.is-label-inline .wp-block-form-input__label-content{ - margin-bottom:.5em; -} -.wp-block-form-input__label:has(input[type=checkbox]){ - flex-direction:row-reverse; - width:-moz-fit-content; - width:fit-content; -} - -.wp-block-form-input__label-content{ - width:-moz-fit-content; - width:fit-content; -} - -.wp-block-form-input__input{ - font-size:1em; - margin-bottom:.5em; - padding:0 .5em; -} -.wp-block-form-input__input[type=date],.wp-block-form-input__input[type=datetime-local],.wp-block-form-input__input[type=datetime],.wp-block-form-input__input[type=email],.wp-block-form-input__input[type=month],.wp-block-form-input__input[type=number],.wp-block-form-input__input[type=password],.wp-block-form-input__input[type=search],.wp-block-form-input__input[type=tel],.wp-block-form-input__input[type=text],.wp-block-form-input__input[type=time],.wp-block-form-input__input[type=url],.wp-block-form-input__input[type=week]{ - border:1px solid; - line-height:2; - min-height:2em; -} - -textarea.wp-block-form-input__input{ - min-height:10em; -} - .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){ display:flex; flex-wrap:wrap; @@ -1015,36 +975,8 @@ figure.wp-block-gallery.has-nested-images{ padding:0 8px 8px; position:absolute; right:0; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-width:thin; text-align:center; width:100%; - will-change:transform; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{ - height:12px; - width:12px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{ - background-color:transparent; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{ - background-color:hsla(0,0%,100%,.8); -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; -} -@media (hover:none){ - .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; - } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{ display:inline; @@ -1290,7 +1222,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t right:0; top:0; visibility:hidden; - width:100%; + width:100vw; z-index:100000; } .wp-lightbox-overlay .close-button{ @@ -1420,7 +1352,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t } @keyframes lightbox-zoom-in{ 0%{ - transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } to{ transform:translate(50%, -50%) scale(1); @@ -1435,7 +1367,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t visibility:visible; } to{ - transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); visibility:hidden; } } @@ -1882,16 +1814,11 @@ button.wp-block-navigation-item__content{ .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{ padding-left:.85em; - padding-right:0; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{ margin-right:-.6em; pointer-events:none; } - -.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){ - padding:0; -} .wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{ gap:inherit; } @@ -2043,18 +1970,20 @@ button.wp-block-navigation-item__content{ left:auto; right:auto; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){ - background-color:inherit; - display:block; - position:relative; - width:100%; - z-index:auto; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{ - display:none; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ - right:0; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){ + background-color:inherit; + display:block; + position:relative; + width:100%; + z-index:auto; + } + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{ + display:none; + } + .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ + right:0; + } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{ @@ -2096,8 +2025,10 @@ button.wp-block-navigation-item__content{ font-size:inherit; font-weight:inherit; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container-open:not(.always-shown){ + display:none; + } } .wp-block-navigation__responsive-container-close{ @@ -2434,21 +2365,12 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ .wp-block-pullquote{ box-sizing:border-box; overflow-wrap:break-word; - padding:4em 0; + padding:3em 0; text-align:center; } .wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{ color:inherit; } -.wp-block-pullquote blockquote{ - margin:0; -} -.wp-block-pullquote p{ - margin-top:0; -} -.wp-block-pullquote p:last-child{ - margin-bottom:0; -} .wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{ max-width:420px; } @@ -2537,20 +2459,26 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ } } .wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{ + -webkit-margin-start:2em; + -webkit-margin-end:0; float:left; - margin-inline-end:0; - margin-inline-start:2em; + margin-inline-end:0; + margin-inline-start:2em; } .wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{ + -webkit-margin-start:0; + -webkit-margin-end:2em; float:right; - margin-inline-end:2em; - margin-inline-start:0; + margin-inline-end:2em; + margin-inline-start:0; } .wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{ - margin-inline-end:auto; - margin-inline-start:auto; + -webkit-margin-start:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; + margin-inline-start:auto; } .wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{ @@ -2561,10 +2489,12 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ margin-right:0; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{ - margin-inline-start:auto; + -webkit-margin-start:auto; + margin-inline-start:auto; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{ - margin-inline-end:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow{ display:inline-block; @@ -2604,19 +2534,13 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ font-size:1.125em; text-align:left; } -.wp-block-quote>cite{ - display:block; -} .wp-block-read-more{ display:block; width:-moz-fit-content; width:fit-content; } -.wp-block-read-more:where(:not([style*=text-decoration])){ - text-decoration:none; -} -.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{ +.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{ text-decoration:none; } @@ -2711,33 +2635,8 @@ ul.wp-block-rss.is-grid li{ .wp-block-search.wp-block-search__button-only .wp-block-search__button{ flex-shrink:0; margin-right:0; - max-width:100%; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{ max-width:calc(100% - 100px); } -.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ - min-width:0 !important; - transition-property:width; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__input{ - flex-basis:100%; - transition-duration:.3s; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ - overflow:hidden; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{ - border-left-width:0 !important; - border-right-width:0 !important; - flex-basis:0; - flex-grow:0; - margin:0; - min-width:0 !important; - padding-left:0 !important; - padding-right:0 !important; - width:0 !important; -} :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){ border:1px solid #949494; @@ -2760,7 +2659,30 @@ ul.wp-block-rss.is-grid li{ margin:auto; } -.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ +.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ + min-width:0 !important; + transition-property:width; +} +.wp-block-search__button-behavior-expand .wp-block-search__input{ + flex-basis:100%; + transition-duration:.3s; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ + overflow:hidden; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{ + border-left-width:0 !important; + border-right-width:0 !important; + flex-basis:0; + flex-grow:0; + margin:0; + min-width:0 !important; + padding-left:0 !important; + padding-right:0 !important; + width:0 !important; +} + +.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ float:left; } @@ -2884,12 +2806,7 @@ ul.wp-block-rss.is-grid li{ transform:scale(1.1); } -.wp-block-social-links .wp-block-social-link.wp-social-link{ - display:inline-block; - margin:0; - padding:0; -} -.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{ +.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{ fill:currentColor; color:currentColor; } @@ -2958,10 +2875,6 @@ ul.wp-block-rss.is-grid li{ background-color:#ea4434; color:#fff; } -.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{ - background-color:#1d4fc4; - color:#fff; -} .wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{ background-color:#f00075; color:#fff; @@ -3123,9 +3036,6 @@ ul.wp-block-rss.is-grid li{ .wp-block-social-links.is-style-logos-only .wp-social-link-google{ color:#ea4434; } -.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{ - color:#1d4fc4; -} .wp-block-social-links.is-style-logos-only .wp-social-link-instagram{ color:#f00075; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.min.css index aca3b6baa9..a6722c64f6 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style-rtl.min.css @@ -1 +1 @@ -@charset "UTF-8";.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}.wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center}.wp-block-audio{box-sizing:border-box}.wp-block-audio figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%}.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter,.wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table:where(:not(.has-text-color)){color:#40464d}.wp-block-calendar table:where(:not(.has-text-color)) td,.wp-block-calendar table:where(:not(.has-text-color)) th{border-color:#ddd}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd}.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-code{box-sizing:border-box}.wp-block-code code{display:block;font-family:inherit;overflow-wrap:break-word;white-space:pre-wrap}.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}.wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:right}.wp-block-post-comments .alignright{float:left}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination.aligncenter{justify-content:center}.wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-right:2rem}.wp-block-comment-template.alignleft{float:right}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:left}.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow-x:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}.wp-block-details{box-sizing:border-box;overflow:hidden}.wp-block-details summary{cursor:pointer}.wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%}.wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-right:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):is(a):active,:where(.wp-block-file__button):is(a):focus,:where(.wp-block-file__button):is(a):hover,:where(.wp-block-file__button):is(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none}.wp-block-form-input__label{display:flex;flex-direction:column;gap:.25em;margin-bottom:.5em;width:100%}.wp-block-form-input__label.is-label-inline{align-items:center;flex-direction:row;gap:.5em}.wp-block-form-input__label.is-label-inline .wp-block-form-input__label-content{margin-bottom:.5em}.wp-block-form-input__label:has(input[type=checkbox]){flex-direction:row-reverse;width:-moz-fit-content;width:fit-content}.wp-block-form-input__label-content{width:-moz-fit-content;width:fit-content}.wp-block-form-input__input{font-size:1em;margin-bottom:.5em;padding:0 .5em}.wp-block-form-input__input[type=date],.wp-block-form-input__input[type=datetime-local],.wp-block-form-input__input[type=datetime],.wp-block-form-input__input[type=email],.wp-block-form-input__input[type=month],.wp-block-form-input__input[type=number],.wp-block-form-input__input[type=password],.wp-block-form-input__input[type=search],.wp-block-form-input__input[type=tel],.wp-block-form-input__input[type=text],.wp-block-form-input__input[type=time],.wp-block-form-input__input[type=url],.wp-block-form-input__input[type=week]{border:1px solid;line-height:2;min-height:2em}textarea.wp-block-form-input__input{min-height:10em}.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;right:0;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;text-align:center;width:100%;will-change:transform}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center}.wp-block-group{box-sizing:border-box}h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-right-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-right-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);min-height:40px;min-width:40px;padding:0;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}ol.wp-block-latest-comments{box-sizing:border-box;margin-right:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-right:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-right:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none;padding-right:0}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap;padding:0}.wp-block-latest-posts.is-grid li{margin:0 0 1.25em 1.25em;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-left:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-left:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-left:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-left:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-left:0}}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}ol,ul{box-sizing:border-box}ol.has-background,ul.has-background{padding:1.25em 2.375em}.wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__media{align-self:start}.wp-block-media-text .wp-block-media-text__content,.wp-block-media-text .wp-block-media-text__media,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__media{align-self:end}.wp-block-media-text .wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text .wp-block-media-text__content{direction:rtl;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill .wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content{grid-column:1;grid-row:2}}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;opacity:0;overflow:hidden;position:absolute;right:-1px;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em;padding-right:0}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{display:none}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden}.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:right;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em 0 0 .1em;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em}p.has-drop-cap.has-background{overflow:hidden}p.has-background{padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}.wp-block-post-author{display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-left:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form input[type=submit]{box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form input:not([type=submit]),.wp-block-post-comments-form textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments-form textarea{padding:calc(.667em + 2px)}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-date{box-sizing:border-box}:where(.wp-block-post-excerpt){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block}.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap}.wp-block-post-time-to-read,.wp-block-post-title{box-sizing:border-box}.wp-block-post-title{word-break:break-word}.wp-block-post-title a{display:inline-block}.wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em}.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit}.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center}.wp-block-query-title,.wp-block-quote{box-sizing:border-box}.wp-block-quote{overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left}.wp-block-quote>cite{display:block}.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none}ul.wp-block-rss{list-style:none;padding:0}ul.wp-block-rss.wp-block-rss{box-sizing:border-box}ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;list-style:none;padding:0}ul.wp-block-rss.is-grid li{margin:0 0 1em 1em;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-right:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{max-width:calc(100% - 100px)}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:left}.wp-block-separator{border:1px solid;border-left:none;border-right:none}.wp-block-separator.is-style-dots{background:none!important;border:none;height:auto;line-height:1;text-align:center}.wp-block-separator.is-style-dots:before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}.wp-block-site-logo.is-style-rounded{border-radius:9999px}.wp-block-site-title a{color:inherit}.wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{color:#1d4fc4}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}.wp-block-spacer{clear:both}.wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud.alignfull{padding-left:1em;padding-right:1em}.wp-block-tag-cloud a{display:inline-block;margin-left:5px}.wp-block-tag-cloud span{display:inline-block;margin-right:5px;text-decoration:none}.wp-block-tag-cloud.is-style-outline{display:flex;flex-wrap:wrap;gap:1ch}.wp-block-tag-cloud.is-style-outline a{border:1px solid;font-size:unset!important;margin-left:0;padding:1ch 2ch;text-decoration:none!important}.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-bottom:1px solid #f0f0f0;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}:where(.wp-block-term-description){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0}.wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-right:0}.wp-block-text-columns .wp-block-column:last-child{margin-left:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.33333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%}pre.wp-block-verse{overflow:auto;white-space:pre-wrap}:where(pre.wp-block-verse){font-family:inherit}.wp-block-video{box-sizing:border-box}.wp-block-video video{vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video figcaption{margin-bottom:1em;margin-top:.5em}.editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:right;text-indent:0}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(-135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(-135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(-135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(-135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(-135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(-135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(-135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;line-height:normal;padding:15px 23px 14px;right:5px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-left-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-right-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-left-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-right-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} \ No newline at end of file +@charset "UTF-8";.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}.wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center}.wp-block-audio{box-sizing:border-box}.wp-block-audio figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%}.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-right-width:medium}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter,.wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table:where(:not(.has-text-color)){color:#40464d}.wp-block-calendar table:where(:not(.has-text-color)) td,.wp-block-calendar table:where(:not(.has-text-color)) th{border-color:#ddd}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd}.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-code{box-sizing:border-box}.wp-block-code code{display:block;font-family:inherit;overflow-wrap:break-word;white-space:pre-wrap}.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}.wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:right}.wp-block-post-comments .alignright{float:left}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination.aligncenter{justify-content:center}.wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-right:2rem}.wp-block-comment-template.alignleft{float:right}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:left}.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}.wp-block-details{box-sizing:border-box;overflow:hidden}.wp-block-details summary{cursor:pointer}.wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%}.wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-right:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):is(a):active,:where(.wp-block-file__button):is(a):focus,:where(.wp-block-file__button):is(a):hover,:where(.wp-block-file__button):is(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none}.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;right:0;text-align:center;width:100%}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center}.wp-block-group{box-sizing:border-box}h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-right-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-left-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-right-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100vw;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);min-height:40px;min-width:40px;padding:0;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-50vw + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}ol.wp-block-latest-comments{box-sizing:border-box;margin-right:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-right:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-right:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none;padding-right:0}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap;padding:0}.wp-block-latest-posts.is-grid li{margin:0 0 1.25em 1.25em;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-left:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-left:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-left:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-left:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-left:0}}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}ol,ul{box-sizing:border-box}ol.has-background,ul.has-background{padding:1.25em 2.375em}.wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__media{align-self:start}.wp-block-media-text .wp-block-media-text__content,.wp-block-media-text .wp-block-media-text__media,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__media{align-self:end}.wp-block-media-text .wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text .wp-block-media-text__content{direction:rtl;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill .wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content{grid-column:1;grid-row:2}}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;opacity:0;overflow:hidden;position:absolute;right:-1px;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden}.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:right;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em 0 0 .1em;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em}p.has-drop-cap.has-background{overflow:hidden}p.has-background{padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}.wp-block-post-author{display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-left:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form input[type=submit]{box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form input:not([type=submit]),.wp-block-post-comments-form textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments-form textarea{padding:calc(.667em + 2px)}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-date{box-sizing:border-box}:where(.wp-block-post-excerpt){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block}.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap}.wp-block-post-time-to-read,.wp-block-post-title{box-sizing:border-box}.wp-block-post-title{word-break:break-word}.wp-block-post-title a{display:inline-block}.wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em}.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:3em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit}.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{-webkit-margin-start:auto;margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{-webkit-margin-end:auto;margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center}.wp-block-query-title,.wp-block-quote{box-sizing:border-box}.wp-block-quote{overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left}.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{text-decoration:none}ul.wp-block-rss{list-style:none;padding:0}ul.wp-block-rss.wp-block-rss{box-sizing:border-box}ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;list-style:none;padding:0}ul.wp-block-rss.is-grid li{margin:0 0 1em 1em;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-right:0;max-width:calc(100% - 100px)}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search__button-behavior-expand .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{float:left}.wp-block-separator{border:1px solid;border-left:none;border-right:none}.wp-block-separator.is-style-dots{background:none!important;border:none;height:auto;line-height:1;text-align:center}.wp-block-separator.is-style-dots:before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}.wp-block-site-logo.is-style-rounded{border-radius:9999px}.wp-block-site-title a{color:inherit}.wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}.wp-block-spacer{clear:both}.wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud.alignfull{padding-left:1em;padding-right:1em}.wp-block-tag-cloud a{display:inline-block;margin-left:5px}.wp-block-tag-cloud span{display:inline-block;margin-right:5px;text-decoration:none}.wp-block-tag-cloud.is-style-outline{display:flex;flex-wrap:wrap;gap:1ch}.wp-block-tag-cloud.is-style-outline a{border:1px solid;font-size:unset!important;margin-left:0;padding:1ch 2ch;text-decoration:none!important}.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-bottom:1px solid #f0f0f0;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}:where(.wp-block-term-description){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0}.wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-right:0}.wp-block-text-columns .wp-block-column:last-child{margin-left:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.33333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%}pre.wp-block-verse{overflow:auto;white-space:pre-wrap}:where(pre.wp-block-verse){font-family:inherit}.wp-block-video{box-sizing:border-box}.wp-block-video video{vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video figcaption{margin-bottom:1em;margin-top:.5em}.editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:right;text-indent:0}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(-135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(-135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(-135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(-135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(-135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(-135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(-135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;line-height:normal;padding:15px 23px 14px;right:5px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-left-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-right-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-left-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-right-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.css index ead532b313..a289ba497e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.css @@ -96,16 +96,16 @@ border-radius:0 !important; } -.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{ +.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{ border:2px solid; padding:.667em 1.333em; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){ color:currentColor; } -.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){ +.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){ background-color:transparent; background-image:none; } @@ -482,7 +482,8 @@ display:flex; justify-content:center; min-height:430px; - overflow-x:clip; + overflow:hidden; + overflow:clip; padding:1em; position:relative; } @@ -827,47 +828,6 @@ text-decoration:none; } -.wp-block-form-input__label{ - display:flex; - flex-direction:column; - gap:.25em; - margin-bottom:.5em; - width:100%; -} -.wp-block-form-input__label.is-label-inline{ - align-items:center; - flex-direction:row; - gap:.5em; -} -.wp-block-form-input__label.is-label-inline .wp-block-form-input__label-content{ - margin-bottom:.5em; -} -.wp-block-form-input__label:has(input[type=checkbox]){ - flex-direction:row-reverse; - width:-moz-fit-content; - width:fit-content; -} - -.wp-block-form-input__label-content{ - width:-moz-fit-content; - width:fit-content; -} - -.wp-block-form-input__input{ - font-size:1em; - margin-bottom:.5em; - padding:0 .5em; -} -.wp-block-form-input__input[type=date],.wp-block-form-input__input[type=datetime-local],.wp-block-form-input__input[type=datetime],.wp-block-form-input__input[type=email],.wp-block-form-input__input[type=month],.wp-block-form-input__input[type=number],.wp-block-form-input__input[type=password],.wp-block-form-input__input[type=search],.wp-block-form-input__input[type=tel],.wp-block-form-input__input[type=text],.wp-block-form-input__input[type=time],.wp-block-form-input__input[type=url],.wp-block-form-input__input[type=week]{ - border:1px solid; - line-height:2; - min-height:2em; -} - -textarea.wp-block-form-input__input{ - min-height:10em; -} - .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){ display:flex; flex-wrap:wrap; @@ -1015,36 +975,8 @@ figure.wp-block-gallery.has-nested-images{ overflow:auto; padding:0 8px 8px; position:absolute; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-width:thin; text-align:center; width:100%; - will-change:transform; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{ - height:12px; - width:12px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{ - background-color:transparent; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{ - background-color:hsla(0,0%,100%,.8); -} -.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; -} -@media (hover:none){ - .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{ - scrollbar-color:hsla(0,0%,100%,.8) transparent; - } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{ display:inline; @@ -1290,7 +1222,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t position:fixed; top:0; visibility:hidden; - width:100%; + width:100vw; z-index:100000; } .wp-lightbox-overlay .close-button{ @@ -1420,7 +1352,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t } @keyframes lightbox-zoom-in{ 0%{ - transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } to{ transform:translate(-50%, -50%) scale(1); @@ -1435,7 +1367,7 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t visibility:visible; } to{ - transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); + transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); visibility:hidden; } } @@ -1881,17 +1813,12 @@ button.wp-block-navigation-item__content{ } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{ - padding-left:0; padding-right:.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{ margin-left:-.6em; pointer-events:none; } - -.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){ - padding:0; -} .wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{ gap:inherit; } @@ -2043,18 +1970,20 @@ button.wp-block-navigation-item__content{ left:auto; right:auto; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){ - background-color:inherit; - display:block; - position:relative; - width:100%; - z-index:auto; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{ - display:none; -} -:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ - left:0; +@media (min-width:600px){ + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){ + background-color:inherit; + display:block; + position:relative; + width:100%; + z-index:auto; + } + .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{ + display:none; + } + .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{ + left:0; + } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{ @@ -2096,8 +2025,10 @@ button.wp-block-navigation-item__content{ font-size:inherit; font-weight:inherit; } -:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{ - display:none; +@media (min-width:600px){ + .wp-block-navigation__responsive-container-open:not(.always-shown){ + display:none; + } } .wp-block-navigation__responsive-container-close{ @@ -2434,21 +2365,12 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ .wp-block-pullquote{ box-sizing:border-box; overflow-wrap:break-word; - padding:4em 0; + padding:3em 0; text-align:center; } .wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{ color:inherit; } -.wp-block-pullquote blockquote{ - margin:0; -} -.wp-block-pullquote p{ - margin-top:0; -} -.wp-block-pullquote p:last-child{ - margin-bottom:0; -} .wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{ max-width:420px; } @@ -2537,20 +2459,26 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ } } .wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{ + -webkit-margin-start:2em; + -webkit-margin-end:0; float:right; - margin-inline-end:0; - margin-inline-start:2em; + margin-inline-end:0; + margin-inline-start:2em; } .wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{ + -webkit-margin-start:0; + -webkit-margin-end:2em; float:left; - margin-inline-end:2em; - margin-inline-start:0; + margin-inline-end:2em; + margin-inline-start:0; } .wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{ - margin-inline-end:auto; - margin-inline-start:auto; + -webkit-margin-start:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; + margin-inline-start:auto; } .wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{ @@ -2561,10 +2489,12 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ margin-right:0; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{ - margin-inline-start:auto; + -webkit-margin-start:auto; + margin-inline-start:auto; } .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{ - margin-inline-end:auto; + -webkit-margin-end:auto; + margin-inline-end:auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow{ display:inline-block; @@ -2604,19 +2534,13 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[ font-size:1.125em; text-align:right; } -.wp-block-quote>cite{ - display:block; -} .wp-block-read-more{ display:block; width:-moz-fit-content; width:fit-content; } -.wp-block-read-more:where(:not([style*=text-decoration])){ - text-decoration:none; -} -.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{ +.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{ text-decoration:none; } @@ -2711,33 +2635,8 @@ ul.wp-block-rss.is-grid li{ .wp-block-search.wp-block-search__button-only .wp-block-search__button{ flex-shrink:0; margin-left:0; - max-width:100%; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{ max-width:calc(100% - 100px); } -.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ - min-width:0 !important; - transition-property:width; -} -.wp-block-search.wp-block-search__button-only .wp-block-search__input{ - flex-basis:100%; - transition-duration:.3s; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ - overflow:hidden; -} -.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{ - border-left-width:0 !important; - border-right-width:0 !important; - flex-basis:0; - flex-grow:0; - margin:0; - min-width:0 !important; - padding-left:0 !important; - padding-right:0 !important; - width:0 !important; -} :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){ border:1px solid #949494; @@ -2760,7 +2659,30 @@ ul.wp-block-rss.is-grid li{ margin:auto; } -.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{ +.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ + min-width:0 !important; + transition-property:width; +} +.wp-block-search__button-behavior-expand .wp-block-search__input{ + flex-basis:100%; + transition-duration:.3s; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{ + overflow:hidden; +} +.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{ + border-left-width:0 !important; + border-right-width:0 !important; + flex-basis:0; + flex-grow:0; + margin:0; + min-width:0 !important; + padding-left:0 !important; + padding-right:0 !important; + width:0 !important; +} + +.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{ float:right; } @@ -2884,12 +2806,7 @@ ul.wp-block-rss.is-grid li{ transform:scale(1.1); } -.wp-block-social-links .wp-block-social-link.wp-social-link{ - display:inline-block; - margin:0; - padding:0; -} -.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{ +.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{ fill:currentColor; color:currentColor; } @@ -2958,10 +2875,6 @@ ul.wp-block-rss.is-grid li{ background-color:#ea4434; color:#fff; } -.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{ - background-color:#1d4fc4; - color:#fff; -} .wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{ background-color:#f00075; color:#fff; @@ -3123,9 +3036,6 @@ ul.wp-block-rss.is-grid li{ .wp-block-social-links.is-style-logos-only .wp-social-link-google{ color:#ea4434; } -.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{ - color:#1d4fc4; -} .wp-block-social-links.is-style-logos-only .wp-social-link-instagram{ color:#f00075; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.min.css index 24a54dbbef..797e8e250d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/block-library/style.min.css @@ -1,4 +1,4 @@ -@charset "UTF-8";.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}.wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center}.wp-block-audio{box-sizing:border-box}.wp-block-audio figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%}.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link:where(.is-style-outline),.wp-block-button:where(.is-style-outline)>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background),.wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter,.wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table:where(:not(.has-text-color)){color:#40464d}.wp-block-calendar table:where(:not(.has-text-color)) td,.wp-block-calendar table:where(:not(.has-text-color)) th{border-color:#ddd}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd}.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-code{box-sizing:border-box}.wp-block-code code{display:block;font-family:inherit;overflow-wrap:break-word;white-space:pre-wrap}.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}.wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination.aligncenter{justify-content:center}.wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-left:2rem}.wp-block-comment-template.alignleft{float:left}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:right}.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow-x:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}.wp-block-details{box-sizing:border-box;overflow:hidden}.wp-block-details summary{cursor:pointer}.wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%}.wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-left:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):is(a):active,:where(.wp-block-file__button):is(a):focus,:where(.wp-block-file__button):is(a):hover,:where(.wp-block-file__button):is(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none}.wp-block-form-input__label{display:flex;flex-direction:column;gap:.25em;margin-bottom:.5em;width:100%}.wp-block-form-input__label.is-label-inline{align-items:center;flex-direction:row;gap:.5em}.wp-block-form-input__label.is-label-inline .wp-block-form-input__label-content{margin-bottom:.5em}.wp-block-form-input__label:has(input[type=checkbox]){flex-direction:row-reverse;width:-moz-fit-content;width:fit-content}.wp-block-form-input__label-content{width:-moz-fit-content;width:fit-content}.wp-block-form-input__input{font-size:1em;margin-bottom:.5em;padding:0 .5em}.wp-block-form-input__input[type=date],.wp-block-form-input__input[type=datetime-local],.wp-block-form-input__input[type=datetime],.wp-block-form-input__input[type=email],.wp-block-form-input__input[type=month],.wp-block-form-input__input[type=number],.wp-block-form-input__input[type=password],.wp-block-form-input__input[type=search],.wp-block-form-input__input[type=tel],.wp-block-form-input__input[type=text],.wp-block-form-input__input[type=time],.wp-block-form-input__input[type=url],.wp-block-form-input__input[type=week]{border:1px solid;line-height:2;min-height:2em}textarea.wp-block-form-input__input{min-height:10em}.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;left:0;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;text-align:center;width:100%;will-change:transform}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center}.wp-block-group{box-sizing:border-box}h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-left-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-left-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-left:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none;padding-left:0}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap;padding:0}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}ol,ul{box-sizing:border-box}ol.has-background,ul.has-background{padding:1.25em 2.375em}.wp-block-media-text{box-sizing:border-box; +@charset "UTF-8";.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}.wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center}.wp-block-audio{box-sizing:border-box}.wp-block-audio figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%}.wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}.wp-block-button .wp-block-button__link.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{border:2px solid;padding:.667em 1.333em}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){color:currentColor}.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background){background-color:transparent;background-image:none}.wp-block-button .wp-block-button__link:where(.has-border-color){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-color]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-color]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-color]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-color]){border-left-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-style]){border-width:initial}.wp-block-button .wp-block-button__link:where([style*=border-top-style]){border-top-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-right-style]){border-right-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-bottom-style]){border-bottom-width:medium}.wp-block-button .wp-block-button__link:where([style*=border-left-style]){border-left-width:medium}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter,.wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table:where(:not(.has-text-color)){color:#40464d}.wp-block-calendar table:where(:not(.has-text-color)) td,.wp-block-calendar table:where(:not(.has-text-color)) th{border-color:#ddd}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd}.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-code{box-sizing:border-box}.wp-block-code code{display:block;font-family:inherit;overflow-wrap:break-word;white-space:pre-wrap}.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}.wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination.aligncenter{justify-content:center}.wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-left:2rem}.wp-block-comment-template.alignleft{float:left}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:right}.wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0;z-index:1}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image:after,.wp-block-cover:after{content:"";display:block;font-size:0;min-height:inherit}@supports (position:sticky){.wp-block-cover-image:after,.wp-block-cover:after{content:none}}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;width:100%;z-index:1}.wp-block-cover h1:where(:not(.has-text-color)),.wp-block-cover h2:where(:not(.has-text-color)),.wp-block-cover h3:where(:not(.has-text-color)),.wp-block-cover h4:where(:not(.has-text-color)),.wp-block-cover h5:where(:not(.has-text-color)),.wp-block-cover h6:where(:not(.has-text-color)),.wp-block-cover p:where(:not(.has-text-color)),.wp-block-cover-image h1:where(:not(.has-text-color)),.wp-block-cover-image h2:where(:not(.has-text-color)),.wp-block-cover-image h3:where(:not(.has-text-color)),.wp-block-cover-image h4:where(:not(.has-text-color)),.wp-block-cover-image h5:where(:not(.has-text-color)),.wp-block-cover-image h6:where(:not(.has-text-color)),.wp-block-cover-image p:where(:not(.has-text-color)){color:inherit}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover__image-background,.wp-block-cover__video-background{z-index:0}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}.wp-block-details{box-sizing:border-box;overflow:hidden}.wp-block-details summary{cursor:pointer}.wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%}.wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-left:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):is(a):active,:where(.wp-block-file__button):is(a):focus,:where(.wp-block-file__button):is(a):hover,:where(.wp-block-file__button):is(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none}.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:13px;left:0;margin-bottom:0;max-height:60%;overflow:auto;padding:0 8px 8px;position:absolute;text-align:center;width:100%}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center}.wp-block-group{box-sizing:border-box}h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image figcaption{margin-bottom:1em;margin-top:.5em}.wp-block-image .is-style-rounded img,.wp-block-image.is-style-circle-mask img,.wp-block-image.is-style-rounded img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}.wp-block-image :where(.has-border-color){border-style:solid}.wp-block-image :where([style*=border-top-color]){border-top-style:solid}.wp-block-image :where([style*=border-right-color]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-color]){border-left-style:solid}.wp-block-image :where([style*=border-width]){border-style:solid}.wp-block-image :where([style*=border-top-width]){border-top-style:solid}.wp-block-image :where([style*=border-right-width]){border-right-style:solid}.wp-block-image :where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-image :where([style*=border-left-width]){border-left-style:solid}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;transition:opacity .2s ease;width:20px;z-index:100}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100vw;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both;visibility:visible}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.hideanimationenabled:not(.active) img{animation:turn-off-visibility .25s both}@media (prefers-reduced-motion:no-preference){.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active){animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.hideanimationenabled:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(-50vw + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-left:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none;padding-left:0}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap;padding:0}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}ol,ul{box-sizing:border-box}ol.has-background,ul.has-background{padding:1.25em 2.375em}.wp-block-media-text{box-sizing:border-box; /*!rtl:begin:ignore*/direction:ltr; /*!rtl:end:ignore*/display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__media{align-self:start}.wp-block-media-text .wp-block-media-text__content,.wp-block-media-text .wp-block-media-text__media,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__media{align-self:end}.wp-block-media-text .wp-block-media-text__media{ /*!rtl:begin:ignore*/grid-column:1;grid-row:1; @@ -8,4 +8,4 @@ /*!rtl:begin:ignore*/grid-column:2;grid-row:1 /*!rtl:end:ignore*/}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{ /*!rtl:begin:ignore*/grid-column:1;grid-row:1 - /*!rtl:end:ignore*/}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill .wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content{grid-column:1;grid-row:2}}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;left:-1px;opacity:0;overflow:hidden;position:absolute;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:0;padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{display:none}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden}.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}p.has-background{padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}.wp-block-post-author{display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form input[type=submit]{box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form input:not([type=submit]),.wp-block-post-comments-form textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments-form textarea{padding:calc(.667em + 2px)}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-date{box-sizing:border-box}:where(.wp-block-post-excerpt){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block}.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap}.wp-block-post-time-to-read,.wp-block-post-title{box-sizing:border-box}.wp-block-post-title{word-break:break-word}.wp-block-post-title a{display:inline-block}.wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em}.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit}.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center}.wp-block-query-title,.wp-block-quote{box-sizing:border-box}.wp-block-quote{overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none}ul.wp-block-rss{list-style:none;padding:0}ul.wp-block-rss.wp-block-rss{box-sizing:border-box}ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;list-style:none;padding:0}ul.wp-block-rss.is-grid li{margin:0 1em 1em 0;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button[aria-expanded=true]{max-width:calc(100% - 100px)}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}.wp-block-separator{border:1px solid;border-left:none;border-right:none}.wp-block-separator.is-style-dots{background:none!important;border:none;height:auto;line-height:1;text-align:center}.wp-block-separator.is-style-dots:before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}.wp-block-site-logo.is-style-rounded{border-radius:9999px}.wp-block-site-title a{color:inherit}.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-gravatar{color:#1d4fc4}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}.wp-block-spacer{clear:both}.wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud.alignfull{padding-left:1em;padding-right:1em}.wp-block-tag-cloud a{display:inline-block;margin-right:5px}.wp-block-tag-cloud span{display:inline-block;margin-left:5px;text-decoration:none}.wp-block-tag-cloud.is-style-outline{display:flex;flex-wrap:wrap;gap:1ch}.wp-block-tag-cloud.is-style-outline a{border:1px solid;font-size:unset!important;margin-right:0;padding:1ch 2ch;text-decoration:none!important}.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-bottom:1px solid #f0f0f0;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}:where(.wp-block-term-description){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0}.wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-left:0}.wp-block-text-columns .wp-block-column:last-child{margin-right:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.33333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%}pre.wp-block-verse{overflow:auto;white-space:pre-wrap}:where(pre.wp-block-verse){font-family:inherit}.wp-block-video{box-sizing:border-box}.wp-block-video video{vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video figcaption{margin-bottom:1em;margin-top:.5em}.editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:left;text-indent:0}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} \ No newline at end of file + /*!rtl:end:ignore*/}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill .wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill .wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content{grid-column:1;grid-row:2}}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation:where(:not([class*=has-text-decoration])) a{text-decoration:none}.wp-block-navigation:where(:not([class*=has-text-decoration])) a:active,.wp-block-navigation:where(:not([class*=has-text-decoration])) a:focus{text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;height:0;left:-1px;opacity:0;overflow:hidden;position:absolute;top:100%;transition:opacity .1s linear;visibility:hidden;width:0;z-index:2}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards;background-color:inherit;display:flex;flex-direction:column;overflow:auto;padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20em);z-index:100000}@media (prefers-reduced-motion:reduce){.wp-block-navigation__responsive-container.is-menu-open{animation-delay:0s;animation-duration:1ms}}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible;padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open{color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden}.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}p.has-background{padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}.wp-block-post-author{display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form input[type=submit]{box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form input:not([type=submit]),.wp-block-post-comments-form textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments-form textarea{padding:calc(.667em + 2px)}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-date{box-sizing:border-box}:where(.wp-block-post-excerpt){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block}.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap}.wp-block-post-time-to-read,.wp-block-post-title{box-sizing:border-box}.wp-block-post-title{word-break:break-word}.wp-block-post-title a{display:inline-block}.wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em}.wp-block-pullquote{box-sizing:border-box;overflow-wrap:break-word;padding:3em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote cite,.wp-block-pullquote p{color:inherit}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}:where(.wp-block-pullquote){margin:0 0 1em}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote cite{color:inherit}.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto}.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-query-pagination>.wp-block-query-pagination-next:last-child,.wp-block-query-pagination>.wp-block-query-pagination-numbers:last-child,.wp-block-query-pagination>.wp-block-query-pagination-previous:last-child{margin-right:0}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{-webkit-margin-start:auto;margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{-webkit-margin-end:auto;margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center}.wp-block-query-title,.wp-block-quote{box-sizing:border-box}.wp-block-quote{overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:not([style*=text-decoration]),.wp-block-read-more:not([style*=text-decoration]):active,.wp-block-read-more:not([style*=text-decoration]):focus{text-decoration:none}ul.wp-block-rss{list-style:none;padding:0}ul.wp-block-rss.wp-block-rss{box-sizing:border-box}ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;list-style:none;padding:0}ul.wp-block-rss.is-grid li{margin:0 1em 1em 0;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;min-height:24px;min-width:24px;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search__input{-webkit-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.wp-block-search.wp-block-search__button-only .wp-block-search__button{flex-shrink:0;margin-left:0;max-width:calc(100% - 100px)}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search__button-behavior-expand .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden,.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search__button-behavior-expand.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}.wp-block[data-align=right] .wp-block-search__button-behavior-expand .wp-block-search__inside-wrapper{float:right}.wp-block-separator{border:1px solid;border-left:none;border-right:none}.wp-block-separator.is-style-dots{background:none!important;border:none;height:auto;line-height:1;text-align:center}.wp-block-separator.is-style-dots:before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}.wp-block-site-logo.is-style-rounded{border-radius:9999px}.wp-block-site-title a{color:inherit}.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link a{padding:.25em}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block;height:auto;transition:transform .1s ease}@media (prefers-reduced-motion:reduce){.wp-block-social-link{transition-delay:0s;transition-duration:0s}}.wp-block-social-link a{align-items:center;display:flex;line-height:0;transition:transform .1s ease}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link{background-color:#f0f0f0;color:#444}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon{background-color:#f90;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance{background-color:#0757fe;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy{background-color:#f45800;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook{background-color:#1778f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr{background-color:#0461dd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare{background-color:#e65678;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github{background-color:#24292d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google{background-color:#ea4434;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram{background-color:#f00075;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium{background-color:#02ab6c;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup{background-color:#f6405f;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-patreon{background-color:#ff424d;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest{background-color:#e60122;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket{background-color:#ef4155;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit{background-color:#ff4500;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype{background-color:#0478d7;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify{background-color:#1bd760;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-telegram{background-color:#2aabee;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-threads,.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tiktok{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr{background-color:#011835;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch{background-color:#6440a4;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk{background-color:#4680c2;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-x{background-color:#000;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp{background-color:#d32422;color:#fff}.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube{background-color:red;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link{background:none}.wp-block-social-links.is-style-logos-only .wp-social-link a{padding:0}.wp-block-social-links.is-style-logos-only .wp-social-link svg{height:1.25em;width:1.25em}.wp-block-social-links.is-style-logos-only .wp-social-link-amazon{color:#f90}.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp{color:#1ea0c3}.wp-block-social-links.is-style-logos-only .wp-social-link-behance{color:#0757fe}.wp-block-social-links.is-style-logos-only .wp-social-link-codepen{color:#1e1f26}.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart{color:#02e49b}.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble{color:#e94c89}.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox{color:#4280ff}.wp-block-social-links.is-style-logos-only .wp-social-link-etsy{color:#f45800}.wp-block-social-links.is-style-logos-only .wp-social-link-facebook{color:#1778f2}.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-flickr{color:#0461dd}.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare{color:#e65678}.wp-block-social-links.is-style-logos-only .wp-social-link-github{color:#24292d}.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads{color:#382110}.wp-block-social-links.is-style-logos-only .wp-social-link-google{color:#ea4434}.wp-block-social-links.is-style-logos-only .wp-social-link-instagram{color:#f00075}.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm{color:#e21b24}.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin{color:#0d66c2}.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon{color:#3288d4}.wp-block-social-links.is-style-logos-only .wp-social-link-medium{color:#02ab6c}.wp-block-social-links.is-style-logos-only .wp-social-link-meetup{color:#f6405f}.wp-block-social-links.is-style-logos-only .wp-social-link-patreon{color:#ff424d}.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest{color:#e60122}.wp-block-social-links.is-style-logos-only .wp-social-link-pocket{color:#ef4155}.wp-block-social-links.is-style-logos-only .wp-social-link-reddit{color:#ff4500}.wp-block-social-links.is-style-logos-only .wp-social-link-skype{color:#0478d7}.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat{stroke:#000;color:#fff}.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud{color:#ff5600}.wp-block-social-links.is-style-logos-only .wp-social-link-spotify{color:#1bd760}.wp-block-social-links.is-style-logos-only .wp-social-link-telegram{color:#2aabee}.wp-block-social-links.is-style-logos-only .wp-social-link-threads,.wp-block-social-links.is-style-logos-only .wp-social-link-tiktok{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr{color:#011835}.wp-block-social-links.is-style-logos-only .wp-social-link-twitch{color:#6440a4}.wp-block-social-links.is-style-logos-only .wp-social-link-twitter{color:#1da1f2}.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo{color:#1eb7ea}.wp-block-social-links.is-style-logos-only .wp-social-link-vk{color:#4680c2}.wp-block-social-links.is-style-logos-only .wp-social-link-whatsapp{color:#25d366}.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress{color:#3499cd}.wp-block-social-links.is-style-logos-only .wp-social-link-x{color:#000}.wp-block-social-links.is-style-logos-only .wp-social-link-yelp{color:#d32422}.wp-block-social-links.is-style-logos-only .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}.wp-block-social-links.is-style-pill-shape .wp-social-link a{padding-left:.66667em;padding-right:.66667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}.wp-block-spacer{clear:both}.wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud.alignfull{padding-left:1em;padding-right:1em}.wp-block-tag-cloud a{display:inline-block;margin-right:5px}.wp-block-tag-cloud span{display:inline-block;margin-left:5px;text-decoration:none}.wp-block-tag-cloud.is-style-outline{display:flex;flex-wrap:wrap;gap:1ch}.wp-block-tag-cloud.is-style-outline a{border:1px solid;font-size:unset!important;margin-right:0;padding:1ch 2ch;text-decoration:none!important}.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-bottom:1px solid #f0f0f0;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}:where(.wp-block-term-description){margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0}.wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-left:0}.wp-block-text-columns .wp-block-column:last-child{margin-right:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.33333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%}pre.wp-block-verse{overflow:auto;white-space:pre-wrap}:where(pre.wp-block-verse){font-family:inherit}.wp-block-video{box-sizing:border-box}.wp-block-video video{vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video figcaption{margin-bottom:1em;margin-top:.5em}.editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:left;text-indent:0}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.css index 3f82a8c288..28e5bf323b 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.css @@ -206,13 +206,11 @@ } .components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{ background:transparent; + box-shadow:none; color:#949494; opacity:1; - transform:none; -} -.components-button.is-secondary:disabled:not(:focus),.components-button.is-secondary[aria-disabled=true]:hover:not(:focus),.components-button.is-secondary[aria-disabled=true]:not(:focus),.components-button.is-tertiary:disabled:not(:focus),.components-button.is-tertiary[aria-disabled=true]:hover:not(:focus),.components-button.is-tertiary[aria-disabled=true]:not(:focus){ - box-shadow:none; outline:none; + transform:none; } .components-button.is-secondary{ background:transparent; @@ -221,7 +219,7 @@ outline:1px solid transparent; white-space:nowrap; } -.components-button.is-secondary:hover:not(:disabled,[aria-disabled=true]){ +.components-button.is-secondary:hover:not(:disabled){ box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #2145e6)); } .components-button.is-tertiary{ @@ -293,11 +291,6 @@ p+.components-button.is-tertiary{ background-size:100px 100%; opacity:1; } -@media (prefers-reduced-motion:reduce){ - .components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{ - animation-duration:0s; - } -} .components-button.is-compact{ height:32px; } @@ -595,13 +588,13 @@ svg.components-checkbox-control__checked,svg.components-checkbox-control__indete .components-circular-option-picker__option:hover{ box-shadow:inset 0 0 0 14px !important; } -.components-circular-option-picker__option[aria-pressed=true],.components-circular-option-picker__option[aria-selected=true]{ +.components-circular-option-picker__option.is-pressed{ box-shadow:inset 0 0 0 4px; overflow:visible; position:relative; z-index:1; } -.components-circular-option-picker__option[aria-pressed=true]+svg,.components-circular-option-picker__option[aria-selected=true]+svg{ +.components-circular-option-picker__option.is-pressed+svg{ border-radius:50%; pointer-events:none; position:absolute; @@ -653,7 +646,7 @@ svg.components-checkbox-control__checked,svg.components-checkbox-control__indete .components-palette-edit__popover-gradient-picker{ padding:8px; - width:260px; + width:280px; } .components-dropdown-menu__menu .components-palette-edit__menu-button{ @@ -942,7 +935,7 @@ input.components-combobox-control__input[type=text]:focus{ list-style-type:none; padding:8px 16px; } -.components-custom-select-control__item:not(.is-next-40px-default-size){ +.components-custom-select-control__item:not(.is-next-36px-default-size){ padding:8px; } .components-custom-select-control__item.has-hint{ @@ -1060,10 +1053,6 @@ body.is-dragging-components-draggable{ white-space:nowrap; } -.components-dropdown-menu__toggle{ - vertical-align:top; -} - .components-dropdown-menu__menu{ font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:13px; @@ -1167,9 +1156,7 @@ body.is-dragging-components-draggable{ content:""; display:inline-block; height:18px; - overflow:hidden; - position:relative; - transition:background-color .2s ease,border-color .2s ease; + transition:background .2s ease; vertical-align:top; width:36px; } @@ -1179,24 +1166,9 @@ body.is-dragging-components-draggable{ transition-duration:0s; } } -.components-form-toggle .components-form-toggle__track:after{ - border-top:18px solid transparent; - box-sizing:border-box; - content:""; - inset:0; - opacity:0; - position:absolute; - transition:opacity .2s ease; -} -@media (prefers-reduced-motion:reduce){ - .components-form-toggle .components-form-toggle__track:after{ - transition-delay:0s; - transition-duration:0s; - } -} .components-form-toggle .components-form-toggle__thumb{ background-color:#1e1e1e; - border:6px solid transparent; + border:5px solid #1e1e1e; border-radius:50%; box-sizing:border-box; display:block; @@ -1204,7 +1176,7 @@ body.is-dragging-components-draggable{ position:absolute; right:3px; top:3px; - transition:transform .2s ease,background-color .2s ease-out; + transition:transform .1s ease; width:12px; } @media (prefers-reduced-motion:reduce){ @@ -1215,10 +1187,7 @@ body.is-dragging-components-draggable{ } .components-form-toggle.is-checked .components-form-toggle__track{ background-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - border-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-form-toggle.is-checked .components-form-toggle__track:after{ - opacity:1; + border:9px solid transparent; } .components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{ box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff, 0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); @@ -1421,7 +1390,6 @@ body.is-dragging-components-draggable{ max-height:128px; min-width:100%; overflow-y:auto; - padding:0; transition:all .15s ease-in-out; } @media (prefers-reduced-motion:reduce){ @@ -1432,7 +1400,6 @@ body.is-dragging-components-draggable{ } .components-form-token-field__suggestion{ - box-sizing:border-box; color:#1e1e1e; cursor:pointer; display:block; @@ -1718,20 +1685,6 @@ body.is-dragging-components-draggable{ width:calc(100% - 80px); } } -@media (min-width:600px){ - .components-modal__frame.has-size-large,.components-modal__frame.has-size-medium,.components-modal__frame.has-size-small{ - width:100%; - } - .components-modal__frame.has-size-small{ - max-width:384px; - } - .components-modal__frame.has-size-medium{ - max-width:512px; - } - .components-modal__frame.has-size-large{ - max-width:840px; - } -} @media (min-width:960px){ .components-modal__frame{ max-height:70%; @@ -1820,6 +1773,7 @@ body.is-dragging-components-draggable{ display:flex; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:13px; + margin:5px 15px 2px; padding:8px 12px; } .components-notice.is-dismissible{ @@ -2358,33 +2312,18 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right stroke:#1e1e1e; } -.components-popover-pointer-events-trap{ - background-color:transparent; - inset:0; - position:fixed; - z-index:1000000; -} - -.components-radio-control__option{ - align-items:center; - display:flex; -} - .components-radio-control__input[type=radio]{ - -webkit-appearance:none; - appearance:none; border:1px solid #1e1e1e; border-radius:2px; border-radius:50%; box-shadow:0 0 0 transparent; - cursor:pointer; - display:inline-flex; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:16px; height:24px; line-height:normal; - margin:0 0 0 6px; - padding:0; + margin-left:6px; + margin-top:0; + padding:6px 8px; transition:box-shadow .1s linear; transition:none; width:24px; @@ -2443,21 +2382,6 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right background:var(--wp-admin-theme-color); border-color:var(--wp-admin-theme-color); } -.components-radio-control__input[type=radio]:focus{ - box-shadow:0 0 0 2px var(--wp-components-color-background, #fff), 0 0 0 4px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-radio-control__input[type=radio]:checked{ - background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - border-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-radio-control__input[type=radio]:checked:before{ - border-radius:50%; - content:""; -} - -.components-radio-control__label{ - cursor:pointer; -} .components-resizable-box__handle{ display:none; @@ -2684,8 +2608,6 @@ body.lockscroll,html.lockscroll{ } .components-search-control.is-size-compact input[type=search].components-search-control__input{ height:32px; - padding-left:32px; - padding-right:8px; } .components-search-control__icon{ @@ -2698,9 +2620,6 @@ body.lockscroll,html.lockscroll{ transform:translateY(-50%); width:24px; } -.is-size-compact .components-search-control__icon{ - left:4px; -} .components-search-control__input-wrapper{ position:relative; @@ -2745,13 +2664,12 @@ body.lockscroll,html.lockscroll{ cursor:default; } .components-snackbar .components-snackbar__content-with-icon{ - padding-right:24px; - position:relative; + margin-right:24px; } .components-snackbar .components-snackbar__icon{ position:absolute; - right:-8px; - top:-2.9px; + right:28px; + top:24px; } .components-snackbar .components-snackbar__dismiss-button{ cursor:pointer; @@ -2878,7 +2796,6 @@ body.lockscroll,html.lockscroll{ box-shadow:0 0 0 transparent; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:16px; - height:32px; line-height:normal; padding:6px 8px; transition:box-shadow .1s linear; @@ -2911,9 +2828,6 @@ body.lockscroll,html.lockscroll{ .components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{ color:rgba(30,30,30,.62); } -.components-text-control__input.is-next-40px-default-size,.components-text-control__input[type=color].is-next-40px-default-size,.components-text-control__input[type=date].is-next-40px-default-size,.components-text-control__input[type=datetime-local].is-next-40px-default-size,.components-text-control__input[type=datetime].is-next-40px-default-size,.components-text-control__input[type=email].is-next-40px-default-size,.components-text-control__input[type=month].is-next-40px-default-size,.components-text-control__input[type=number].is-next-40px-default-size,.components-text-control__input[type=password].is-next-40px-default-size,.components-text-control__input[type=tel].is-next-40px-default-size,.components-text-control__input[type=text].is-next-40px-default-size,.components-text-control__input[type=time].is-next-40px-default-size,.components-text-control__input[type=url].is-next-40px-default-size,.components-text-control__input[type=week].is-next-40px-default-size{ - height:40px; -} .components-tip{ color:#757575; @@ -2938,12 +2852,6 @@ body.lockscroll,html.lockscroll{ .components-accessible-toolbar>.components-toolbar-group:last-child{ border-left:none; } -.components-accessible-toolbar.is-unstyled{ - border:none; -} -.components-accessible-toolbar.is-unstyled>.components-toolbar-group{ - border-left:none; -} .components-accessible-toolbar .components-button,.components-toolbar .components-button{ height:48px; @@ -2986,7 +2894,7 @@ body.lockscroll,html.lockscroll{ background:#1e1e1e; } .components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } .components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{ @@ -3028,6 +2936,9 @@ body.lockscroll,html.lockscroll{ line-height:12px; position:absolute; } +.components-toolbar__control.components-button:active:before{ + display:none; +} .components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{ color:#fff; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.min.css index b63d82afe7..cc7a56459a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style-rtl.min.css @@ -1 +1 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-animate__appear{animation:components-animate__appear-animation .1s cubic-bezier(0,0,.2,1) 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__appear{animation-delay:0s;animation-duration:1ms}}.components-animate__appear.is-from-top,.components-animate__appear.is-from-top.is-from-left{transform-origin:top right}.components-animate__appear.is-from-top.is-from-right{transform-origin:top left}.components-animate__appear.is-from-bottom,.components-animate__appear.is-from-bottom.is-from-left{transform-origin:bottom right}.components-animate__appear.is-from-bottom.is-from-right{transform-origin:bottom left}@keyframes components-animate__appear-animation{0%{transform:translateY(-2em) scaleY(0) scaleX(0)}to{transform:translateY(0) scaleY(1) scaleX(1)}}.components-animate__slide-in{animation:components-animate__slide-in-animation .1s cubic-bezier(0,0,.2,1);animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__slide-in{animation-delay:0s;animation-duration:1ms}}.components-animate__slide-in.is-from-left{transform:translateX(-100%)}.components-animate__slide-in.is-from-right{transform:translateX(100%)}@keyframes components-animate__slide-in-animation{to{transform:translateX(0)}}.components-animate__loading{animation:components-animate__loading 1.6s ease-in-out infinite}@keyframes components-animate__loading{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.components-autocomplete__popover .components-popover__content{min-width:220px;padding:16px}.components-autocomplete__result.components-button{display:flex;height:auto;min-height:36px;text-align:right;width:100%}.components-autocomplete__result.components-button.is-selected{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button-group{display:inline-block}.components-button-group .components-button{border-radius:0;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:inline-flex}.components-button-group .components-button+.components-button{margin-right:-1px}.components-button-group .components-button:first-child{border-radius:0 2px 2px 0}.components-button-group .components-button:last-child{border-radius:2px 0 0 2px}.components-button-group .components-button.is-primary,.components-button-group .components-button:focus{position:relative;z-index:1}.components-button-group .components-button.is-primary{box-shadow:inset 0 0 0 1px #1e1e1e}.components-button{align-items:center;-webkit-appearance:none;background:none;border:0;border-radius:2px;box-sizing:border-box;color:var(--wp-components-color-foreground,#1e1e1e);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:400;height:36px;margin:0;padding:6px 12px;text-decoration:none;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-button{transition-delay:0s;transition-duration:0s}}.components-button.is-next-40px-default-size{height:40px}.components-button:hover,.components-button[aria-expanded=true]{color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button:disabled:hover,.components-button[aria-disabled=true]:hover{color:initial}.components-button:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:3px solid transparent}.components-button.is-primary{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff);outline:1px solid transparent;text-decoration:none;text-shadow:none;white-space:nowrap}.components-button.is-primary:hover:not(:disabled){background:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:active:not(:disabled){background:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));border-color:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary:disabled,.components-button.is-primary:disabled:active:enabled,.components-button.is-primary[aria-disabled=true],.components-button.is-primary[aria-disabled=true]:active:enabled,.components-button.is-primary[aria-disabled=true]:enabled{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:hsla(0,0%,100%,.4);opacity:1;outline:none}.components-button.is-primary:disabled:active:enabled:focus:enabled,.components-button.is-primary:disabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:focus:enabled{box-shadow:0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 3px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(45deg,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 70%,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 70%);background-size:100px 100%;border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-secondary,.components-button.is-tertiary{outline:1px solid transparent}.components-button.is-secondary:active:not(:disabled),.components-button.is-tertiary:active:not(:disabled){box-shadow:none}.components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{background:transparent;color:#949494;opacity:1;transform:none}.components-button.is-secondary:disabled:not(:focus),.components-button.is-secondary[aria-disabled=true]:hover:not(:focus),.components-button.is-secondary[aria-disabled=true]:not(:focus),.components-button.is-tertiary:disabled:not(:focus),.components-button.is-tertiary[aria-disabled=true]:hover:not(:focus),.components-button.is-tertiary[aria-disabled=true]:not(:focus){box-shadow:none;outline:none}.components-button.is-secondary{background:transparent;box-shadow:inset 0 0 0 1px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:1px solid transparent;white-space:nowrap}.components-button.is-secondary:hover:not(:disabled,[aria-disabled=true]){box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6))}.components-button.is-tertiary{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));white-space:nowrap}.components-button.is-tertiary:hover:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.components-button.is-tertiary:active:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.08)}p+.components-button.is-tertiary{margin-right:-6px}.components-button.is-destructive{--wp-components-color-accent:#cc1818;--wp-components-color-accent-darker-10:#9e1313;--wp-components-color-accent-darker-20:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link){color:#cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):hover:not(:disabled){color:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) #cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):active:not(:disabled){background:#ccc}.components-button.is-link{background:none;border:0;border-radius:0;box-shadow:none;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));height:auto;margin:0;outline:none;padding:0;text-align:right;text-decoration:underline;transition-duration:.05s;transition-property:border,background,color;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.components-button.is-link{transition-delay:0s;transition-duration:0s}}.components-button.is-link:focus{border-radius:2px}.components-button:not(:disabled,[aria-disabled=true]):active{color:var(--wp-components-color-foreground,#1e1e1e)}.components-button:disabled,.components-button[aria-disabled=true]{cursor:default;opacity:.3}.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation:components-button__busy-animation 2.5s linear infinite;background-image:linear-gradient(45deg,#fafafa 33%,#e0e0e0 0,#e0e0e0 70%,#fafafa 0);background-size:100px 100%;opacity:1}@media (prefers-reduced-motion:reduce){.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation-duration:0s}}.components-button.is-compact{height:32px}.components-button.is-compact.has-icon:not(.has-text){min-width:32px;padding:0;width:32px}.components-button.is-small{font-size:11px;height:24px;line-height:22px;padding:0 8px}.components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0;width:24px}.components-button.has-icon{justify-content:center;min-width:36px;padding:6px}.components-button.has-icon.is-next-40px-default-size{min-width:40px}.components-button.has-icon .dashicon{align-items:center;box-sizing:content-box;display:inline-flex;justify-content:center;padding:2px}.components-button.has-icon.has-text{gap:4px;justify-content:start;padding-left:12px;padding-right:8px}.components-button.is-pressed{background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-button.is-pressed:hover:not(:disabled){background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button svg{fill:currentColor;outline:none}@media (forced-colors:active){.components-button svg{fill:CanvasText}}.components-button .components-visually-hidden{height:auto}@keyframes components-button__busy-animation{0%{background-position:right 200px top 0}}.components-checkbox-control__input[type=checkbox]{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:0 0 0 transparent;clear:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;line-height:0;margin:0 0 0 4px;outline:0;padding:6px 8px;padding:0!important;text-align:center;transition:box-shadow .1s linear;transition:none;transition:border-color .1s ease-in-out;vertical-align:top;width:24px}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{font-size:13px;line-height:normal}}.components-checkbox-control__input[type=checkbox]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-checkbox-control__input[type=checkbox]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{color:#fff;margin:-3px -5px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{margin:-4px -5px 0 0}}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;float:right;font:normal 30px/1 dashicons;vertical-align:middle;width:16px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{float:none;font-size:21px}}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{height:20px;width:20px}}@media (prefers-reduced-motion:reduce){.components-checkbox-control__input[type=checkbox]{transition-delay:0s;transition-duration:0s}}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.components-checkbox-control__input[type=checkbox]:checked,.components-checkbox-control__input[type=checkbox]:indeterminate{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-checkbox-control__input[type=checkbox]:checked::-ms-check,.components-checkbox-control__input[type=checkbox]:indeterminate::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before{content:none}.components-checkbox-control__input-container{display:inline-block;height:24px;margin-left:12px;position:relative;vertical-align:middle;width:24px}@media (min-width:600px){.components-checkbox-control__input-container{height:20px;width:20px}}svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{fill:#fff;cursor:pointer;height:24px;pointer-events:none;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none;width:24px}@media (min-width:600px){svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{right:-2px;top:-2px}}.components-circular-option-picker{display:inline-block;min-width:188px;width:100%}.components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper{display:flex;justify-content:flex-end;margin-top:12px}.components-circular-option-picker .components-circular-option-picker__swatches{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.components-circular-option-picker>:not(.components-circular-option-picker__swatches){position:relative;z-index:0}.components-circular-option-picker__option-wrapper{display:inline-block;height:28px;transform:scale(1);transition:transform .1s ease;vertical-align:top;width:28px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option-wrapper{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option-wrapper:hover{transform:scale(1.2)}.components-circular-option-picker__option-wrapper>div{height:100%;width:100%}.components-circular-option-picker__option-wrapper:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'%3E%3Cpath fill='%23555D65' d='M6 8V6H4v2h2zm2 0V6h2v2H8zm2 8H8v-2h2v2zm2 0v-2h2v2h-2zm0 2v-2h-2v2H8v2h2v-2h2zm2 0v2h-2v-2h2zm2 0h-2v-2h2v2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' d='M18 18v2h-2v-2h2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z' clip-rule='evenodd'/%3E%3C/svg%3E");border-radius:50%;bottom:1px;content:"";left:1px;position:absolute;right:1px;top:1px;z-index:-1}.components-circular-option-picker__option{background:transparent;border:none;border-radius:50%;box-shadow:inset 0 0 0 14px;cursor:pointer;display:inline-block;height:100%;transition:box-shadow .1s ease;vertical-align:top;width:100%}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option:hover{box-shadow:inset 0 0 0 14px!important}.components-circular-option-picker__option[aria-pressed=true],.components-circular-option-picker__option[aria-selected=true]{box-shadow:inset 0 0 0 4px;overflow:visible;position:relative;z-index:1}.components-circular-option-picker__option[aria-pressed=true]+svg,.components-circular-option-picker__option[aria-selected=true]+svg{border-radius:50%;pointer-events:none;position:absolute;right:2px;top:2px;z-index:2}.components-circular-option-picker__option:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.components-circular-option-picker__option:focus:after{border:2px solid #757575;border-radius:50%;box-shadow:inset 0 0 0 2px #fff;content:"";height:calc(100% + 4px);position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:calc(100% + 4px)}.components-circular-option-picker__option.components-button:focus{background-color:transparent;box-shadow:inset 0 0 0 14px;outline:none}.components-circular-option-picker__button-action .components-circular-option-picker__option{background:#fff;color:#fff}.components-circular-option-picker__dropdown-link-action{margin-left:16px}.components-circular-option-picker__dropdown-link-action .components-button{line-height:22px}.components-palette-edit__popover-gradient-picker{padding:8px;width:260px}.components-dropdown-menu__menu .components-palette-edit__menu-button{width:100%}.component-color-indicator{background:#fff linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:inline-block;height:20px;padding:0;width:20px}.components-combobox-control{width:100%}input.components-combobox-control__input[type=text]{border:none;box-shadow:none;font-family:inherit;font-size:16px;line-height:inherit;margin:0;min-height:auto;padding:2px;width:100%}@media (min-width:600px){input.components-combobox-control__input[type=text]{font-size:13px}}input.components-combobox-control__input[type=text]:focus{box-shadow:none;outline:none}.components-combobox-control__suggestions-container{align-items:flex-start;border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-combobox-control__suggestions-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-combobox-control__suggestions-container{font-size:13px;line-height:normal}}.components-combobox-control__suggestions-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__suggestions-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-combobox-control__suggestions-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container:focus-within{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__reset.components-button{display:flex;height:16px;min-width:16px;padding:0}.components-color-palette__custom-color-wrapper{position:relative;z-index:0}.components-color-palette__custom-color-button{background:none;border:none;border-radius:2px 2px 0 0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:border-box;cursor:pointer;height:64px;outline:1px solid transparent;position:relative;width:100%}.components-color-palette__custom-color-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-width:2px}.components-color-palette__custom-color-button:after{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,24px 24px;background-size:48px 48px;content:"";height:100%;position:absolute;right:0;top:0;width:100%;z-index:-1}.components-color-palette__custom-color-text-wrapper{border-radius:0 0 2px 2px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.2),inset -1px 0 0 0 rgba(0,0,0,.2),inset 1px 0 0 0 rgba(0,0,0,.2);font-size:13px;padding:12px 16px;position:relative}.components-color-palette__custom-color-name{color:var(--wp-components-color-foreground,#1e1e1e);margin:0 1px}.components-color-palette__custom-color-value{color:#757575}.components-color-palette__custom-color-value--is-hex{text-transform:uppercase}.components-color-palette__custom-color-value:empty:after{content:"​";visibility:hidden}.components-custom-gradient-picker:not(.is-next-has-no-margin){margin-bottom:24px;margin-top:12px}.components-custom-gradient-picker__gradient-bar{border-radius:2px;height:48px;position:relative;width:100%;z-index:1}.components-custom-gradient-picker__gradient-bar.has-gradient{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,12px 12px;background-size:24px 24px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__gradient-bar-background{inset:0;position:absolute}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container{margin-left:auto;margin-right:auto;position:relative;width:calc(100% - 48px)}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown{display:flex;height:16px;position:absolute;top:16px;width:16px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown{background:#fff;border-radius:50%;color:#1e1e1e;height:inherit;min-width:16px;padding:2px;position:relative;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown svg{height:100%;width:100%}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button{border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 2px 0 rgba(0,0,0,.25);height:inherit;outline:2px solid transparent;padding:0;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active,.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button:focus{box-shadow:inset 0 0 0 calc(var(--wp-admin-border-width-focus)*2) #fff,0 0 2px 0 rgba(0,0,0,.25);outline:1.5px solid transparent}.components-custom-gradient-picker__remove-control-point-wrapper{padding-bottom:8px}.components-custom-gradient-picker__inserter{direction:ltr}.components-custom-gradient-picker__liner-gradient-indicator{display:inline-block;flex:0 auto;height:20px;width:20px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar{border:none}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar>div+div{margin-right:1px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed>svg{background:#fff;border:1px solid #949494;border-radius:2px}.components-custom-gradient-picker__ui-line{position:relative;z-index:0}.components-custom-select-control{font-size:13px;position:relative}.components-custom-select-control__button{outline:0;position:relative;text-align:right}.components-custom-select-control__hint{color:#949494;margin-right:10px}.components-custom-select-control__menu{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;max-height:400px;min-width:100%;outline:none;overflow:auto;padding:0;position:absolute;transition:none;z-index:1000000}.components-custom-select-control__menu[aria-hidden=true]{display:none}.components-custom-select-control__item{align-items:center;cursor:default;display:grid;grid-template-columns:auto auto;line-height:28px;list-style-type:none;padding:8px 16px}.components-custom-select-control__item:not(.is-next-40px-default-size){padding:8px}.components-custom-select-control__item.has-hint{grid-template-columns:auto auto 30px}.components-custom-select-control__item.is-highlighted{background:#ddd}.components-custom-select-control__item .components-custom-select-control__item-hint{color:#949494;padding-left:4px;text-align:left}.components-custom-select-control__item .components-custom-select-control__item-icon{margin-right:auto}.components-custom-select-control__item:last-child{margin-bottom:0}.block-editor-dimension-control .components-base-control__field{align-items:center;display:flex}.block-editor-dimension-control .components-base-control__label{align-items:center;display:flex;margin-bottom:0;margin-left:1em}.block-editor-dimension-control .components-base-control__label .dashicon{margin-left:.5em}.block-editor-dimension-control.is-manual .components-base-control__label{width:10em}body.is-dragging-components-draggable{cursor:move;cursor:grabbing!important}.components-draggable__invisible-drag-image{height:50px;position:fixed;right:-1000px;width:50px}.components-draggable__clone{background:transparent;padding:0;pointer-events:none;position:fixed;z-index:1000000000}.components-drop-zone{border-radius:2px;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;visibility:hidden;z-index:40}.components-drop-zone.is-active{opacity:1;visibility:visible}.components-drop-zone__content{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));bottom:0;color:#fff;display:flex;height:100%;justify-content:center;left:0;position:absolute;right:0;text-align:center;top:0;width:100%;z-index:50}.components-drop-zone__content-icon,.components-drop-zone__content-text{display:block}.components-drop-zone__content-icon{fill:currentColor;line-height:0;margin:0 auto 8px;pointer-events:none}.components-drop-zone__content-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-dropdown{display:inline-block}.components-dropdown__content .components-popover__content{padding:8px}.components-dropdown__content [role=menuitem]{white-space:nowrap}.components-dropdown-menu__toggle{vertical-align:top}.components-dropdown-menu__menu{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item,.components-dropdown-menu__menu .components-menu-item{cursor:pointer;outline:none;padding:6px;white-space:nowrap;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,.components-dropdown-menu__menu .components-menu-item.has-separator{margin-top:6px;overflow:visible;position:relative}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator:before,.components-dropdown-menu__menu .components-menu-item.has-separator:before{background-color:#ddd;box-sizing:content-box;content:"";display:block;height:1px;left:0;position:absolute;right:0;top:-3px}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,.components-dropdown-menu__menu .components-menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-menu-item.is-active svg{background:#1e1e1e;border-radius:1px;box-shadow:0 0 0 1px #1e1e1e;color:#fff}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-icon-only,.components-dropdown-menu__menu .components-menu-item.is-icon-only{width:auto}.components-dropdown-menu__menu .components-menu-item__button,.components-dropdown-menu__menu .components-menu-item__button.components-button{height:auto;min-height:36px;padding-left:8px;padding-right:8px;text-align:right}.components-dropdown-menu__menu .components-menu-group{margin:0 -8px;padding:8px}.components-dropdown-menu__menu .components-menu-group:first-child{margin-top:-8px}.components-dropdown-menu__menu .components-menu-group:last-child{margin-bottom:-8px}.components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-top:1px solid #ccc;margin-top:0;padding:8px}.is-alternate .components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-color:#1e1e1e}.components-duotone-picker__color-indicator:before{background:transparent}.components-duotone-picker__color-indicator>.components-button,.components-duotone-picker__color-indicator>.components-button.is-pressed:hover:not(:disabled){background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);color:transparent}.components-duotone-picker__color-indicator>.components-button:not([aria-disabled=true]):active{color:transparent}.components-color-list-picker,.components-color-list-picker__swatch-button{width:100%}.components-color-list-picker__color-picker{margin:8px 0}.components-color-list-picker__swatch-button{padding:6px}.components-color-list-picker__swatch-color{margin:2px}.components-form-toggle{display:inline-block;position:relative}.components-form-toggle .components-form-toggle__track{background-color:#fff;border:1px solid #1e1e1e;border-radius:9px;box-sizing:border-box;content:"";display:inline-block;height:18px;overflow:hidden;position:relative;transition:background-color .2s ease,border-color .2s ease;vertical-align:top;width:36px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__track:after{border-top:18px solid transparent;box-sizing:border-box;content:"";inset:0;opacity:0;position:absolute;transition:opacity .2s ease}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track:after{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__thumb{background-color:#1e1e1e;border:6px solid transparent;border-radius:50%;box-sizing:border-box;display:block;height:12px;position:absolute;right:3px;top:3px;transition:transform .2s ease,background-color .2s ease-out;width:12px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__thumb{transition-delay:0s;transition-duration:0s}}.components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-toggle.is-checked .components-form-toggle__track:after{opacity:1}.components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;outline-offset:2px}.components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(-18px)}.components-disabled .components-form-toggle,.components-form-toggle.is-disabled{opacity:.3}.components-form-toggle input.components-form-toggle__input[type=checkbox]{border:none;height:100%;margin:0;opacity:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:none}.components-form-toggle input.components-form-toggle__input[type=checkbox]:before{content:""}.components-form-token-field__input-container{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;cursor:text;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-form-token-field__input-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-form-token-field__input-container{font-size:13px;line-height:normal}}.components-form-token-field__input-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-form-token-field__input-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container.is-disabled{background:#ddd;border-color:#ddd}.components-form-token-field__input-container.is-active{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container input[type=text].components-form-token-field__input{background:inherit;border:0;box-shadow:none;color:#1e1e1e;display:inline-block;flex:1;font-family:inherit;font-size:16px;margin-right:4px;max-width:100%;min-height:24px;min-width:50px;padding:0;width:100%}@media (min-width:600px){.components-form-token-field__input-container input[type=text].components-form-token-field__input{font-size:13px}}.components-form-token-field.is-active .components-form-token-field__input-container input[type=text].components-form-token-field__input,.components-form-token-field__input-container input[type=text].components-form-token-field__input:focus{box-shadow:none;outline:none}.components-form-token-field__input-container .components-form-token-field__token+input[type=text].components-form-token-field__input{width:auto}.components-form-token-field__token{color:#1e1e1e;display:flex;font-size:13px;max-width:100%}.components-form-token-field__token.is-success .components-form-token-field__remove-token,.components-form-token-field__token.is-success .components-form-token-field__token-text{background:#4ab866}.components-form-token-field__token.is-error .components-form-token-field__remove-token,.components-form-token-field__token.is-error .components-form-token-field__token-text{background:#cc1818}.components-form-token-field__token.is-validating .components-form-token-field__remove-token,.components-form-token-field__token.is-validating .components-form-token-field__token-text{color:#757575}.components-form-token-field__token.is-borderless{padding:0 0 0 24px;position:relative}.components-form-token-field__token.is-borderless .components-form-token-field__token-text{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-token-field__token.is-borderless .components-form-token-field__remove-token{background:transparent;color:#757575;left:0;padding:0;position:absolute;top:1px}.components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text{color:#4ab866}.components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text{border-radius:0 4px 4px 0;color:#cc1818;padding:0 6px 0 4px}.components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text{color:#1e1e1e}.components-form-token-field__token.is-disabled .components-form-token-field__remove-token{cursor:default}.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{background:#ddd;display:inline-block;height:auto;line-height:24px;min-width:unset;transition:all .2s cubic-bezier(.4,1,.4,1)}@media (prefers-reduced-motion:reduce){.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.components-form-token-field__token-text{border-radius:0 2px 2px 0;overflow:hidden;padding:0 8px 0 0;text-overflow:ellipsis;white-space:nowrap}.components-form-token-field__remove-token.components-button{border-radius:2px 0 0 2px;color:#1e1e1e;cursor:pointer;line-height:10px;overflow:initial;padding:0 2px}.components-form-token-field__remove-token.components-button:hover{color:#1e1e1e}.components-form-token-field__suggestions-list{box-shadow:inset 0 1px 0 0 #949494;flex:1 0 100%;list-style:none;margin:0;max-height:128px;min-width:100%;overflow-y:auto;padding:0;transition:all .15s ease-in-out}@media (prefers-reduced-motion:reduce){.components-form-token-field__suggestions-list{transition-delay:0s;transition-duration:0s}}.components-form-token-field__suggestion{box-sizing:border-box;color:#1e1e1e;cursor:pointer;display:block;font-size:13px;margin:0;min-height:32px;padding:8px 12px}.components-form-token-field__suggestion.is-selected{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:#fff}@media (min-width:600px){.components-guide{width:600px}}.components-guide .components-modal__content{border-radius:2px;margin-top:0;padding:0}.components-guide .components-modal__content:before{content:none}.components-guide .components-modal__header{border-bottom:none;height:60px;padding:0;position:sticky}.components-guide .components-modal__header .components-button{align-self:flex-start;margin:8px 0 0 8px;position:static}.components-guide .components-modal__header .components-button:hover svg{fill:#fff}.components-guide__container{display:flex;flex-direction:column;justify-content:space-between;margin-top:-60px;min-height:100%}.components-guide__page{display:flex;flex-direction:column;justify-content:center;position:relative}@media (min-width:600px){.components-guide__page{min-height:300px}}.components-guide__footer{align-content:center;display:flex;height:36px;justify-content:center;margin:0 0 24px;padding:0 32px;position:relative;width:100%}.components-guide__page-control{margin:0;text-align:center}.components-guide__page-control li{display:inline-block;margin:0}.components-guide__page-control .components-button{color:#e0e0e0;height:30px;margin:-6px 0;min-width:20px}.components-guide__page-control li[aria-current=step] .components-button{color:var(--wp-components-color-accent,var(--wp-admin-theme-color))}.components-modal__frame.components-guide{border:none;max-height:575px;min-width:312px}@media (max-width:600px){.components-modal__frame.components-guide{margin:auto;max-width:calc(100vw - 32px)}}.components-button.components-guide__back-button,.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{position:absolute}.components-button.components-guide__back-button{right:32px}.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{left:32px}[role=region]{position:relative}.is-focusing-regions [role=region]:focus:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1000000}.is-focusing-regions .editor-post-publish-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-entities-saved-states-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-publish-panel,.is-focusing-regions .interface-interface-skeleton__sidebar .edit-post-layout__toggle-sidebar-panel,.is-focusing-regions [role=region]:focus:after,.is-focusing-regions.is-distraction-free .interface-interface-skeleton__header .edit-post-header{outline:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-offset:-4px}.components-menu-group+.components-menu-group{border-top:1px solid #1e1e1e;margin-top:8px;padding-top:8px}.components-menu-group+.components-menu-group.has-hidden-separator{border-top:none;margin-top:0;padding-top:0}.components-menu-group__label{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;padding:0 8px;text-transform:uppercase;white-space:nowrap}.components-menu-item__button,.components-menu-item__button.components-button{width:100%}.components-menu-item__button.components-button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button.components-button[role=menuitemradio] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemradio] .components-menu-item__item:only-child{box-sizing:initial;padding-left:48px}.components-menu-item__button .components-menu-items__item-icon,.components-menu-item__button.components-button .components-menu-items__item-icon{display:inline-block;flex:0 0 auto}.components-menu-item__button .components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-items__item-icon.has-icon-right{margin-left:-2px;margin-right:24px}.components-menu-item__button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right{margin-right:8px}.components-menu-item__button .block-editor-block-icon,.components-menu-item__button.components-button .block-editor-block-icon{margin-left:8px;margin-right:-2px}.components-menu-item__button.components-button.is-primary,.components-menu-item__button.is-primary{justify-content:center}.components-menu-item__button.components-button.is-primary .components-menu-item__item,.components-menu-item__button.is-primary .components-menu-item__item{margin-left:0}.components-menu-item__button.components-button:disabled.is-tertiary,.components-menu-item__button.components-button[aria-disabled=true].is-tertiary,.components-menu-item__button:disabled.is-tertiary,.components-menu-item__button[aria-disabled=true].is-tertiary{background:none;color:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));opacity:.3}.components-menu-item__info-wrapper{display:flex;flex-direction:column;margin-left:auto}.components-menu-item__info{color:#757575;font-size:12px;margin-top:4px;white-space:normal}.components-menu-item__item{align-items:center;display:inline-flex;margin-left:auto;min-width:160px;white-space:nowrap}.components-menu-item__shortcut{align-self:center;color:currentColor;display:none;margin-left:0;margin-right:auto;padding-right:24px}@media (min-width:480px){.components-menu-item__shortcut{display:inline}}.components-menu-items-choice svg,.components-menu-items-choice.components-button svg{margin-left:12px}.components-menu-items-choice.components-button.has-icon,.components-menu-items-choice.has-icon{padding-right:12px}.components-modal__screen-overlay{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;background-color:rgba(0,0,0,.35);bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:100000}@media (prefers-reduced-motion:reduce){.components-modal__screen-overlay{animation-delay:0s;animation-duration:1ms}}.components-modal__frame{animation:components-modal__appear-animation .1s ease-out;animation-fill-mode:forwards;background:#fff;border-radius:4px 4px 0 0;box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);display:flex;margin:40px 0 0;overflow:hidden;width:100%}@media (prefers-reduced-motion:reduce){.components-modal__frame{animation-delay:0s;animation-duration:1ms}}@media (min-width:600px){.components-modal__frame{border-radius:4px;margin:auto;max-height:calc(100% - 120px);max-width:calc(100% - 32px);min-width:350px;width:auto}}@media (min-width:600px) and (min-width:600px){.components-modal__frame.is-full-screen{height:calc(100% - 32px);max-height:none;width:calc(100% - 32px)}}@media (min-width:600px) and (min-width:782px){.components-modal__frame.is-full-screen{height:calc(100% - 80px);max-width:none;width:calc(100% - 80px)}}@media (min-width:600px){.components-modal__frame.has-size-large,.components-modal__frame.has-size-medium,.components-modal__frame.has-size-small{width:100%}.components-modal__frame.has-size-small{max-width:384px}.components-modal__frame.has-size-medium{max-width:512px}.components-modal__frame.has-size-large{max-width:840px}}@media (min-width:960px){.components-modal__frame{max-height:70%}}@keyframes components-modal__appear-animation{0%{transform:translateY(32px)}to{transform:translateY(0)}}.components-modal__header{align-items:center;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;flex-direction:row;height:72px;justify-content:space-between;padding:24px 32px 8px;position:absolute;right:0;top:0;width:100%;z-index:10}.components-modal__header .components-modal__header-heading{font-size:1.2rem;font-weight:600}.components-modal__header h1{line-height:1;margin:0}.components-modal__header .components-button{position:relative;right:8px}.components-modal__content.has-scrolled-content:not(.hide-header) .components-modal__header{border-bottom-color:#ddd}.components-modal__header+p{margin-top:0}.components-modal__header-heading-container{align-items:center;display:flex;flex-direction:row;flex-grow:1;justify-content:right}.components-modal__header-icon-container{display:inline-block}.components-modal__header-icon-container svg{max-height:36px;max-width:36px;padding:8px}.components-modal__content{flex:1;margin-top:72px;overflow:auto;padding:4px 32px 32px}.components-modal__content.hide-header{margin-top:0;padding-top:32px}.components-modal__content.is-scrollable:focus-visible{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.components-notice{align-items:center;background-color:#fff;border-right:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:8px 12px}.components-notice.is-dismissible{position:relative}.components-notice.is-success{background-color:#eff9f1;border-right-color:#4ab866}.components-notice.is-warning{background-color:#fef8ee;border-right-color:#f0b849}.components-notice.is-error{background-color:#f4a2a2;border-right-color:#cc1818}.components-notice__content{flex-grow:1;margin:4px 0 4px 25px}.components-notice__actions{display:flex;flex-wrap:wrap}.components-notice__action.components-button{margin-left:8px}.components-notice__action.components-button,.components-notice__action.components-button.is-link{margin-right:12px}.components-notice__action.components-button.is-secondary{vertical-align:initial}.components-notice__dismiss{align-self:flex-start;color:#757575;flex-shrink:0}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{background-color:transparent;color:#1e1e1e}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}.components-notice-list{box-sizing:border-box;max-width:100vw}.components-notice-list .components-notice__content{line-height:2;margin-bottom:12px;margin-top:12px}.components-notice-list .components-notice__action.components-button{display:block;margin-right:0;margin-top:8px}.components-panel{background:#fff;border:1px solid #e0e0e0}.components-panel>.components-panel__body:first-child,.components-panel>.components-panel__header:first-child{margin-top:-1px}.components-panel>.components-panel__body:last-child,.components-panel>.components-panel__header:last-child{border-bottom-width:0}.components-panel+.components-panel{margin-top:-1px}.components-panel__body{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.components-panel__body h3{margin:0 0 .5em}.components-panel__body.is-opened{padding:16px}.components-panel__header{align-items:center;border-bottom:1px solid #ddd;box-sizing:content-box;display:flex;height:47px;justify-content:space-between;padding:0 16px}.components-panel__header h2{color:inherit;font-size:inherit;margin:0}.components-panel__body+.components-panel__body,.components-panel__body+.components-panel__header,.components-panel__header+.components-panel__body,.components-panel__header+.components-panel__header{margin-top:-1px}.components-panel__body>.components-panel__body-title{display:block;font-size:inherit;margin-bottom:0;margin-top:0;padding:0;transition:background .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body>.components-panel__body-title{transition-delay:0s;transition-duration:0s}}.components-panel__body.is-opened>.components-panel__body-title{margin:-16px -16px 5px}.components-panel__body>.components-panel__body-title:hover{background:#f0f0f0;border:none}.components-panel__body-toggle.components-button{border:none;box-shadow:none;color:#1e1e1e;font-weight:500;height:auto;outline:none;padding:16px 16px 16px 48px;position:relative;text-align:right;transition:background .1s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button{transition-delay:0s;transition-duration:0s}}.components-panel__body-toggle.components-button:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-panel__body-toggle.components-button .components-panel__arrow{fill:currentColor;color:#1e1e1e;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button .components-panel__arrow{transition-delay:0s;transition-duration:0s}}body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right{-ms-filter:fliph;filter:FlipH;margin-top:-10px;transform:scaleX(-1)}.components-panel__icon{color:#757575;margin:-2px 6px -2px 0}.components-panel__body-toggle-icon{margin-left:-5px}.components-panel__color-title{float:right;height:19px}.components-panel__row{align-items:center;display:flex;justify-content:space-between;margin-top:8px;min-height:36px}.components-panel__row select{min-width:0}.components-panel__row label{flex-shrink:0;margin-left:12px;max-width:75%}.components-panel__row:empty,.components-panel__row:first-of-type{margin-top:0}.components-panel .circle-picker{padding-bottom:20px}.components-placeholder.components-placeholder{-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;box-sizing:border-box;color:#1e1e1e;margin:0;outline:1px solid transparent;padding:1em;position:relative;text-align:right;width:100%}@supports (position:sticky){.components-placeholder.components-placeholder{align-items:flex-start;display:flex;flex-direction:column;justify-content:top}}.components-placeholder__error,.components-placeholder__fieldset,.components-placeholder__instructions,.components-placeholder__label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__label{align-items:center;display:flex;font-weight:600;margin-bottom:16px}.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:currentColor;margin-left:12px}@media (forced-colors:active){.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:CanvasText}}.components-placeholder__label:empty{display:none}.components-placeholder__fieldset,.components-placeholder__fieldset form{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.components-placeholder__fieldset form p,.components-placeholder__fieldset p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__fieldset.is-column-layout,.components-placeholder__fieldset.is-column-layout form{flex-direction:column}.components-placeholder__input[type=url]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;flex:1 1 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin:0 0 0 8px;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder__input[type=url]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-placeholder__input[type=url]{font-size:13px;line-height:normal}}.components-placeholder__input[type=url]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-placeholder__input[type=url]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__input[type=url]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-placeholder__input[type=url]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__instructions{margin-bottom:1em}.components-placeholder__error{margin-top:1em;width:100%}.components-placeholder__fieldset .components-button{margin-bottom:12px;margin-left:12px}.components-placeholder__fieldset .components-button:last-child{margin-bottom:0;margin-left:0}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link{margin-left:10px;margin-right:10px}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link:last-child{margin-left:0}.components-placeholder.is-large .components-placeholder__label{font-size:18pt;font-weight:400}.components-placeholder.is-medium .components-placeholder__instructions,.components-placeholder.is-small .components-placeholder__instructions{display:none}.components-placeholder.is-medium .components-placeholder__fieldset,.components-placeholder.is-medium .components-placeholder__fieldset form,.components-placeholder.is-small .components-placeholder__fieldset,.components-placeholder.is-small .components-placeholder__fieldset form{flex-direction:column}.components-placeholder.is-medium .components-placeholder__fieldset .components-button,.components-placeholder.is-small .components-placeholder__fieldset .components-button{margin-left:auto}.components-placeholder.is-small .components-button{padding:0 8px 2px}.components-placeholder .components-placeholder__learn-more .components-external-link{color:var(--wp-admin-theme-color)}.components-placeholder.has-illustration{-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);backface-visibility:hidden;background-color:transparent;border-radius:2px;box-shadow:none;color:inherit;display:flex;overflow:auto}.is-dark-theme .components-placeholder.has-illustration{background-color:rgba(0,0,0,.1)}.components-placeholder.has-illustration .components-placeholder__fieldset{margin-left:0;margin-right:0;width:auto}.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{opacity:0;pointer-events:none;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{transition-delay:0s;transition-duration:0s}}.is-selected>.components-placeholder.has-illustration .components-button,.is-selected>.components-placeholder.has-illustration .components-placeholder__instructions,.is-selected>.components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.components-placeholder.has-illustration:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.components-placeholder__preview{display:flex;justify-content:center}.components-placeholder__illustration{stroke:currentColor;box-sizing:content-box;height:100%;opacity:.25;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:100%}.components-popover{will-change:transform;z-index:1000000}.components-popover.is-expanded{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000000!important}.components-popover__content{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #ccc,0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;width:min-content}.is-alternate .components-popover__content{box-shadow:0 0 0 1px #1e1e1e}.is-unstyled .components-popover__content{background:none;border-radius:0;box-shadow:none}.components-popover.is-expanded .components-popover__content{box-shadow:0 -1px 0 0 #ccc;height:calc(100% - 48px);overflow-y:visible;position:static;width:auto}.components-popover.is-expanded.is-alternate .components-popover__content{box-shadow:0 -1px 0 #1e1e1e}.components-popover__header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;padding:0 16px 0 8px}.components-popover__header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.components-popover__close.components-button{z-index:5}.components-popover__arrow{display:flex;height:14px;pointer-events:none;position:absolute;width:14px}.components-popover__arrow:before{background-color:#fff;content:"";height:2px;left:1px;position:absolute;right:1px;top:-1px}.components-popover__arrow.is-top{bottom:-14px!important;transform:rotate(0)}.components-popover__arrow.is-right{left:-14px!important;transform:rotate(90deg)}.components-popover__arrow.is-bottom{top:-14px!important;transform:rotate(180deg)}.components-popover__arrow.is-left{right:-14px!important;transform:rotate(-90deg)}.components-popover__triangle{display:block;flex:1}.components-popover__triangle-bg{fill:#fff}.components-popover__triangle-border{fill:transparent;stroke-width:1px;stroke:#ccc}.is-alternate .components-popover__triangle-border{stroke:#1e1e1e}.components-popover-pointer-events-trap{background-color:transparent;inset:0;position:fixed;z-index:1000000}.components-radio-control__option{align-items:center;display:flex}.components-radio-control__input[type=radio]{-webkit-appearance:none;appearance:none;border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin:0 0 0 6px;padding:0;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.components-radio-control__input[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-radio-control__input[type=radio]{font-size:13px;line-height:normal}}.components-radio-control__input[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-radio-control__input[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-radio-control__input[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-radio-control__input[type=radio]{height:20px;width:20px}}.components-radio-control__input[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(-7px,7px);width:8px}@media (min-width:600px){.components-radio-control__input[type=radio]:checked:before{transform:translate(-5px,5px)}}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.components-radio-control__input[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px var(--wp-components-color-background,#fff),0 0 0 4px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-radio-control__input[type=radio]:checked{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-radio-control__input[type=radio]:checked:before{border-radius:50%;content:""}.components-radio-control__label{cursor:pointer}.components-resizable-box__handle{display:none;height:23px;width:23px;z-index:2}.components-resizable-box__container.has-show-handle .components-resizable-box__handle{display:block}.components-resizable-box__container>img{width:inherit}.components-resizable-box__handle:after{background:#fff;border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));content:"";cursor:inherit;display:block;height:15px;left:calc(50% - 8px);outline:2px solid transparent;position:absolute;top:calc(50% - 8px);width:15px}.components-resizable-box__side-handle:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:2px;content:"";cursor:inherit;display:block;height:3px;left:calc(50% - 1px);opacity:0;position:absolute;top:calc(50% - 1px);transition:transform .1s ease-in;width:3px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle:before{transition-delay:0s;transition-duration:0s}}.components-resizable-box__corner-handle,.components-resizable-box__side-handle{z-index:2}.components-resizable-box__side-handle.components-resizable-box__handle-bottom,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:before,.components-resizable-box__side-handle.components-resizable-box__handle-top,.components-resizable-box__side-handle.components-resizable-box__handle-top:before{border-left:0;border-right:0;right:0;width:100%}.components-resizable-box__side-handle.components-resizable-box__handle-left,.components-resizable-box__side-handle.components-resizable-box__handle-left:before,.components-resizable-box__side-handle.components-resizable-box__handle-right,.components-resizable-box__side-handle.components-resizable-box__handle-right:before{border-bottom:0;border-top:0;height:100%;top:0}.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:components-resizable-box__top-bottom-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation-delay:0s;animation-duration:1ms}}.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation:components-resizable-box__left-right-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation-delay:0s;animation-duration:1ms}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:none}}}@keyframes components-resizable-box__top-bottom-animation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes components-resizable-box__left-right-animation{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.components-resizable-box__handle-right{right:-11.5px}.components-resizable-box__handle-left{left:-11.5px}.components-resizable-box__handle-top{top:-11.5px}.components-resizable-box__handle-bottom{bottom:-11.5px}.components-responsive-wrapper{align-items:center;display:flex;justify-content:center;max-width:100%;position:relative}.components-responsive-wrapper__content{display:block;max-width:100%;width:100%}.components-sandbox{overflow:hidden}iframe.components-sandbox{width:100%}body.lockscroll,html.lockscroll{overflow:hidden}.components-search-control{position:relative}.components-search-control input[type=search].components-search-control__input{background:#f0f0f0;border:none;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:48px;line-height:normal;margin-left:0;margin-right:0;padding:0 16px 0 48px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-search-control input[type=search].components-search-control__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px;line-height:normal}}.components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-search-control input[type=search].components-search-control__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-search-control input[type=search].components-search-control__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-search-control input[type=search].components-search-control__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px}}.components-search-control input[type=search].components-search-control__input:focus{background:#fff;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-search-control input[type=search].components-search-control__input::placeholder{color:#757575}.components-search-control input[type=search].components-search-control__input::-webkit-search-cancel-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-decoration,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-decoration{-webkit-appearance:none}.components-search-control.is-next-40px-default-size input[type=search].components-search-control__input{height:40px}.components-search-control.is-size-compact input[type=search].components-search-control__input{height:32px;padding-left:32px;padding-right:8px}.components-search-control__icon{align-items:center;display:flex;justify-content:center;left:12px;position:absolute;top:50%;transform:translateY(-50%);width:24px}.is-size-compact .components-search-control__icon{left:4px}.components-search-control__input-wrapper{position:relative}.components-select-control__input{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;outline:0}@media (max-width:782px){.components-base-control .components-base-control__field .components-select-control__input{font-size:16px}}.components-snackbar{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:rgba(0,0,0,.85);border-radius:2px;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;max-width:600px;padding:12px 20px;pointer-events:auto;width:100%}@media (min-width:600px){.components-snackbar{width:-moz-fit-content;width:fit-content}}.components-snackbar:focus{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-snackbar.components-snackbar-explicit-dismiss{cursor:default}.components-snackbar .components-snackbar__content-with-icon{padding-right:24px;position:relative}.components-snackbar .components-snackbar__icon{position:absolute;right:-8px;top:-2.9px}.components-snackbar .components-snackbar__dismiss-button{cursor:pointer;margin-right:24px}.components-snackbar__action.components-button{color:#fff;flex-shrink:0;height:auto;line-height:1.4;margin-right:32px;padding:0}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary){background-color:transparent;text-decoration:underline}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):focus{box-shadow:none;color:#fff;outline:1px dotted #fff}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff;text-decoration:none}.components-snackbar__content{align-items:baseline;display:flex;justify-content:space-between;line-height:1.4}.components-snackbar-list{box-sizing:border-box;pointer-events:none;position:absolute;width:100%;z-index:100000}.components-snackbar-list__notice-container{padding-top:8px;position:relative}.components-tab-panel__tabs{align-items:stretch;display:flex;flex-direction:row}.components-tab-panel__tabs[aria-orientation=vertical]{flex-direction:column}.components-tab-panel__tabs-item{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-tab-panel__tabs-item:after{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:after{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-tab-panel__tabs-item:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:before{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:32px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{font-size:13px;line-height:normal}}.components-text-control__input:focus,.components-text-control__input[type=color]:focus,.components-text-control__input[type=date]:focus,.components-text-control__input[type=datetime-local]:focus,.components-text-control__input[type=datetime]:focus,.components-text-control__input[type=email]:focus,.components-text-control__input[type=month]:focus,.components-text-control__input[type=number]:focus,.components-text-control__input[type=password]:focus,.components-text-control__input[type=tel]:focus,.components-text-control__input[type=text]:focus,.components-text-control__input[type=time]:focus,.components-text-control__input[type=url]:focus,.components-text-control__input[type=week]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-text-control__input::-webkit-input-placeholder,.components-text-control__input[type=color]::-webkit-input-placeholder,.components-text-control__input[type=date]::-webkit-input-placeholder,.components-text-control__input[type=datetime-local]::-webkit-input-placeholder,.components-text-control__input[type=datetime]::-webkit-input-placeholder,.components-text-control__input[type=email]::-webkit-input-placeholder,.components-text-control__input[type=month]::-webkit-input-placeholder,.components-text-control__input[type=number]::-webkit-input-placeholder,.components-text-control__input[type=password]::-webkit-input-placeholder,.components-text-control__input[type=tel]::-webkit-input-placeholder,.components-text-control__input[type=text]::-webkit-input-placeholder,.components-text-control__input[type=time]::-webkit-input-placeholder,.components-text-control__input[type=url]::-webkit-input-placeholder,.components-text-control__input[type=week]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input::-moz-placeholder,.components-text-control__input[type=color]::-moz-placeholder,.components-text-control__input[type=date]::-moz-placeholder,.components-text-control__input[type=datetime-local]::-moz-placeholder,.components-text-control__input[type=datetime]::-moz-placeholder,.components-text-control__input[type=email]::-moz-placeholder,.components-text-control__input[type=month]::-moz-placeholder,.components-text-control__input[type=number]::-moz-placeholder,.components-text-control__input[type=password]::-moz-placeholder,.components-text-control__input[type=tel]::-moz-placeholder,.components-text-control__input[type=text]::-moz-placeholder,.components-text-control__input[type=time]::-moz-placeholder,.components-text-control__input[type=url]::-moz-placeholder,.components-text-control__input[type=week]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input.is-next-40px-default-size,.components-text-control__input[type=color].is-next-40px-default-size,.components-text-control__input[type=date].is-next-40px-default-size,.components-text-control__input[type=datetime-local].is-next-40px-default-size,.components-text-control__input[type=datetime].is-next-40px-default-size,.components-text-control__input[type=email].is-next-40px-default-size,.components-text-control__input[type=month].is-next-40px-default-size,.components-text-control__input[type=number].is-next-40px-default-size,.components-text-control__input[type=password].is-next-40px-default-size,.components-text-control__input[type=tel].is-next-40px-default-size,.components-text-control__input[type=text].is-next-40px-default-size,.components-text-control__input[type=time].is-next-40px-default-size,.components-text-control__input[type=url].is-next-40px-default-size,.components-text-control__input[type=week].is-next-40px-default-size{height:40px}.components-tip{color:#757575;display:flex}.components-tip svg{fill:#f0b849;align-self:center;flex-shrink:0;margin-left:16px}.components-tip p{margin:0}.components-accessible-toolbar{border:1px solid #1e1e1e;border-radius:2px;display:inline-flex;flex-shrink:0}.components-accessible-toolbar>.components-toolbar-group:last-child{border-left:none}.components-accessible-toolbar.is-unstyled{border:none}.components-accessible-toolbar.is-unstyled>.components-toolbar-group{border-left:none}.components-accessible-toolbar .components-button,.components-toolbar .components-button{height:48px;padding-left:16px;padding-right:16px;position:relative;z-index:1}.components-accessible-toolbar .components-button:focus:not(:disabled),.components-toolbar .components-button:focus:not(:disabled){box-shadow:none;outline:none}.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation-delay:0s;animation-duration:1ms}}.components-accessible-toolbar .components-button svg,.components-toolbar .components-button svg{margin-left:auto;margin-right:auto;position:relative}.components-accessible-toolbar .components-button.is-pressed,.components-accessible-toolbar .components-button.is-pressed:hover,.components-toolbar .components-button.is-pressed,.components-toolbar .components-button.is-pressed:hover{background:transparent}.components-accessible-toolbar .components-button.is-pressed:before,.components-toolbar .components-button.is-pressed:before{background:#1e1e1e}.components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{min-width:48px;padding-left:12px;padding-right:12px}.components-accessible-toolbar .components-button.components-tab-button,.components-toolbar .components-button.components-tab-button{font-weight:500}.components-accessible-toolbar .components-button.components-tab-button span,.components-toolbar .components-button.components-tab-button span{display:inline-block;padding-left:0;padding-right:0;position:relative}@keyframes components-button__appear-animation{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.components-toolbar__control.components-button{position:relative}.components-toolbar__control.components-button[data-subscript] svg{padding:5px 0 5px 10px}.components-toolbar__control.components-button[data-subscript]:after{bottom:10px;content:attr(data-subscript);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;left:8px;line-height:12px;position:absolute}.components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{color:#fff}.components-toolbar-group{background-color:#fff;border-left:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;line-height:0;min-height:48px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-toolbar-group.components-toolbar-group{border-width:0;margin:0}.components-toolbar-group .components-button.components-button,.components-toolbar-group .components-button.has-icon.has-icon{min-width:36px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-button.components-button svg,.components-toolbar-group .components-button.has-icon.has-icon svg{min-width:24px}.components-toolbar-group .components-button.components-button:before,.components-toolbar-group .components-button.has-icon.has-icon:before{left:2px;right:2px}.components-toolbar{background-color:#fff;border:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;margin:0;min-height:48px}.components-toolbar .components-toolbar.components-toolbar{border-width:0;margin:0}div.components-toolbar>div{display:block;margin:0}@supports (position:sticky){div.components-toolbar>div{display:flex}}div.components-toolbar>div+div.has-left-divider{margin-right:6px;overflow:visible;position:relative}div.components-toolbar>div+div.has-left-divider:before{background-color:#ddd;box-sizing:content-box;content:"";display:inline-block;height:20px;position:absolute;right:-3px;top:8px;width:1px}.components-tooltip{background:#000;border-radius:2px;color:#f0f0f0;font-size:12px;line-height:1.4;padding:4px 8px;text-align:center;z-index:1000002}.components-tooltip__shortcut{margin-right:8px} \ No newline at end of file +@charset "UTF-8";:root{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-animate__appear{animation:components-animate__appear-animation .1s cubic-bezier(0,0,.2,1) 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__appear{animation-delay:0s;animation-duration:1ms}}.components-animate__appear.is-from-top,.components-animate__appear.is-from-top.is-from-left{transform-origin:top right}.components-animate__appear.is-from-top.is-from-right{transform-origin:top left}.components-animate__appear.is-from-bottom,.components-animate__appear.is-from-bottom.is-from-left{transform-origin:bottom right}.components-animate__appear.is-from-bottom.is-from-right{transform-origin:bottom left}@keyframes components-animate__appear-animation{0%{transform:translateY(-2em) scaleY(0) scaleX(0)}to{transform:translateY(0) scaleY(1) scaleX(1)}}.components-animate__slide-in{animation:components-animate__slide-in-animation .1s cubic-bezier(0,0,.2,1);animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__slide-in{animation-delay:0s;animation-duration:1ms}}.components-animate__slide-in.is-from-left{transform:translateX(-100%)}.components-animate__slide-in.is-from-right{transform:translateX(100%)}@keyframes components-animate__slide-in-animation{to{transform:translateX(0)}}.components-animate__loading{animation:components-animate__loading 1.6s ease-in-out infinite}@keyframes components-animate__loading{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.components-autocomplete__popover .components-popover__content{min-width:220px;padding:16px}.components-autocomplete__result.components-button{display:flex;height:auto;min-height:36px;text-align:right;width:100%}.components-autocomplete__result.components-button.is-selected{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button-group{display:inline-block}.components-button-group .components-button{border-radius:0;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:inline-flex}.components-button-group .components-button+.components-button{margin-right:-1px}.components-button-group .components-button:first-child{border-radius:0 2px 2px 0}.components-button-group .components-button:last-child{border-radius:2px 0 0 2px}.components-button-group .components-button.is-primary,.components-button-group .components-button:focus{position:relative;z-index:1}.components-button-group .components-button.is-primary{box-shadow:inset 0 0 0 1px #1e1e1e}.components-button{align-items:center;-webkit-appearance:none;background:none;border:0;border-radius:2px;box-sizing:border-box;color:var(--wp-components-color-foreground,#1e1e1e);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:400;height:36px;margin:0;padding:6px 12px;text-decoration:none;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-button{transition-delay:0s;transition-duration:0s}}.components-button.is-next-40px-default-size{height:40px}.components-button:hover,.components-button[aria-expanded=true]{color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button:disabled:hover,.components-button[aria-disabled=true]:hover{color:initial}.components-button:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:3px solid transparent}.components-button.is-primary{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff);outline:1px solid transparent;text-decoration:none;text-shadow:none;white-space:nowrap}.components-button.is-primary:hover:not(:disabled){background:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:active:not(:disabled){background:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));border-color:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary:disabled,.components-button.is-primary:disabled:active:enabled,.components-button.is-primary[aria-disabled=true],.components-button.is-primary[aria-disabled=true]:active:enabled,.components-button.is-primary[aria-disabled=true]:enabled{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:hsla(0,0%,100%,.4);opacity:1;outline:none}.components-button.is-primary:disabled:active:enabled:focus:enabled,.components-button.is-primary:disabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:focus:enabled{box-shadow:0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 3px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(45deg,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 70%,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 70%);background-size:100px 100%;border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-secondary,.components-button.is-tertiary{outline:1px solid transparent}.components-button.is-secondary:active:not(:disabled),.components-button.is-tertiary:active:not(:disabled){box-shadow:none}.components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{background:transparent;box-shadow:none;color:#949494;opacity:1;outline:none;transform:none}.components-button.is-secondary{background:transparent;box-shadow:inset 0 0 0 1px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:1px solid transparent;white-space:nowrap}.components-button.is-secondary:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6))}.components-button.is-tertiary{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));white-space:nowrap}.components-button.is-tertiary:hover:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.components-button.is-tertiary:active:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.08)}p+.components-button.is-tertiary{margin-right:-6px}.components-button.is-destructive{--wp-components-color-accent:#cc1818;--wp-components-color-accent-darker-10:#9e1313;--wp-components-color-accent-darker-20:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link){color:#cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):hover:not(:disabled){color:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) #cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):active:not(:disabled){background:#ccc}.components-button.is-link{background:none;border:0;border-radius:0;box-shadow:none;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));height:auto;margin:0;outline:none;padding:0;text-align:right;text-decoration:underline;transition-duration:.05s;transition-property:border,background,color;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.components-button.is-link{transition-delay:0s;transition-duration:0s}}.components-button.is-link:focus{border-radius:2px}.components-button:not(:disabled,[aria-disabled=true]):active{color:var(--wp-components-color-foreground,#1e1e1e)}.components-button:disabled,.components-button[aria-disabled=true]{cursor:default;opacity:.3}.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation:components-button__busy-animation 2.5s linear infinite;background-image:linear-gradient(45deg,#fafafa 33%,#e0e0e0 0,#e0e0e0 70%,#fafafa 0);background-size:100px 100%;opacity:1}.components-button.is-compact{height:32px}.components-button.is-compact.has-icon:not(.has-text){min-width:32px;padding:0;width:32px}.components-button.is-small{font-size:11px;height:24px;line-height:22px;padding:0 8px}.components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0;width:24px}.components-button.has-icon{justify-content:center;min-width:36px;padding:6px}.components-button.has-icon.is-next-40px-default-size{min-width:40px}.components-button.has-icon .dashicon{align-items:center;box-sizing:content-box;display:inline-flex;justify-content:center;padding:2px}.components-button.has-icon.has-text{gap:4px;justify-content:start;padding-left:12px;padding-right:8px}.components-button.is-pressed{background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-button.is-pressed:hover:not(:disabled){background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button svg{fill:currentColor;outline:none}@media (forced-colors:active){.components-button svg{fill:CanvasText}}.components-button .components-visually-hidden{height:auto}@keyframes components-button__busy-animation{0%{background-position:right 200px top 0}}.components-checkbox-control__input[type=checkbox]{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:0 0 0 transparent;clear:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;line-height:0;margin:0 0 0 4px;outline:0;padding:6px 8px;padding:0!important;text-align:center;transition:box-shadow .1s linear;transition:none;transition:border-color .1s ease-in-out;vertical-align:top;width:24px}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{font-size:13px;line-height:normal}}.components-checkbox-control__input[type=checkbox]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-checkbox-control__input[type=checkbox]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{color:#fff;margin:-3px -5px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{margin:-4px -5px 0 0}}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;float:right;font:normal 30px/1 dashicons;vertical-align:middle;width:16px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{float:none;font-size:21px}}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{height:20px;width:20px}}@media (prefers-reduced-motion:reduce){.components-checkbox-control__input[type=checkbox]{transition-delay:0s;transition-duration:0s}}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.components-checkbox-control__input[type=checkbox]:checked,.components-checkbox-control__input[type=checkbox]:indeterminate{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-checkbox-control__input[type=checkbox]:checked::-ms-check,.components-checkbox-control__input[type=checkbox]:indeterminate::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before{content:none}.components-checkbox-control__input-container{display:inline-block;height:24px;margin-left:12px;position:relative;vertical-align:middle;width:24px}@media (min-width:600px){.components-checkbox-control__input-container{height:20px;width:20px}}svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{fill:#fff;cursor:pointer;height:24px;pointer-events:none;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none;width:24px}@media (min-width:600px){svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{right:-2px;top:-2px}}.components-circular-option-picker{display:inline-block;min-width:188px;width:100%}.components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper{display:flex;justify-content:flex-end;margin-top:12px}.components-circular-option-picker .components-circular-option-picker__swatches{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.components-circular-option-picker>:not(.components-circular-option-picker__swatches){position:relative;z-index:0}.components-circular-option-picker__option-wrapper{display:inline-block;height:28px;transform:scale(1);transition:transform .1s ease;vertical-align:top;width:28px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option-wrapper{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option-wrapper:hover{transform:scale(1.2)}.components-circular-option-picker__option-wrapper>div{height:100%;width:100%}.components-circular-option-picker__option-wrapper:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'%3E%3Cpath fill='%23555D65' d='M6 8V6H4v2h2zm2 0V6h2v2H8zm2 8H8v-2h2v2zm2 0v-2h2v2h-2zm0 2v-2h-2v2H8v2h2v-2h2zm2 0v2h-2v-2h2zm2 0h-2v-2h2v2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' d='M18 18v2h-2v-2h2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z' clip-rule='evenodd'/%3E%3C/svg%3E");border-radius:50%;bottom:1px;content:"";left:1px;position:absolute;right:1px;top:1px;z-index:-1}.components-circular-option-picker__option{background:transparent;border:none;border-radius:50%;box-shadow:inset 0 0 0 14px;cursor:pointer;display:inline-block;height:100%;transition:box-shadow .1s ease;vertical-align:top;width:100%}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option:hover{box-shadow:inset 0 0 0 14px!important}.components-circular-option-picker__option.is-pressed{box-shadow:inset 0 0 0 4px;overflow:visible;position:relative;z-index:1}.components-circular-option-picker__option.is-pressed+svg{border-radius:50%;pointer-events:none;position:absolute;right:2px;top:2px;z-index:2}.components-circular-option-picker__option:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.components-circular-option-picker__option:focus:after{border:2px solid #757575;border-radius:50%;box-shadow:inset 0 0 0 2px #fff;content:"";height:calc(100% + 4px);position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:calc(100% + 4px)}.components-circular-option-picker__option.components-button:focus{background-color:transparent;box-shadow:inset 0 0 0 14px;outline:none}.components-circular-option-picker__button-action .components-circular-option-picker__option{background:#fff;color:#fff}.components-circular-option-picker__dropdown-link-action{margin-left:16px}.components-circular-option-picker__dropdown-link-action .components-button{line-height:22px}.components-palette-edit__popover-gradient-picker{padding:8px;width:280px}.components-dropdown-menu__menu .components-palette-edit__menu-button{width:100%}.component-color-indicator{background:#fff linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:inline-block;height:20px;padding:0;width:20px}.components-combobox-control{width:100%}input.components-combobox-control__input[type=text]{border:none;box-shadow:none;font-family:inherit;font-size:16px;line-height:inherit;margin:0;min-height:auto;padding:2px;width:100%}@media (min-width:600px){input.components-combobox-control__input[type=text]{font-size:13px}}input.components-combobox-control__input[type=text]:focus{box-shadow:none;outline:none}.components-combobox-control__suggestions-container{align-items:flex-start;border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-combobox-control__suggestions-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-combobox-control__suggestions-container{font-size:13px;line-height:normal}}.components-combobox-control__suggestions-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__suggestions-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-combobox-control__suggestions-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container:focus-within{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__reset.components-button{display:flex;height:16px;min-width:16px;padding:0}.components-color-palette__custom-color-wrapper{position:relative;z-index:0}.components-color-palette__custom-color-button{background:none;border:none;border-radius:2px 2px 0 0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:border-box;cursor:pointer;height:64px;outline:1px solid transparent;position:relative;width:100%}.components-color-palette__custom-color-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-width:2px}.components-color-palette__custom-color-button:after{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,24px 24px;background-size:48px 48px;content:"";height:100%;position:absolute;right:0;top:0;width:100%;z-index:-1}.components-color-palette__custom-color-text-wrapper{border-radius:0 0 2px 2px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.2),inset -1px 0 0 0 rgba(0,0,0,.2),inset 1px 0 0 0 rgba(0,0,0,.2);font-size:13px;padding:12px 16px;position:relative}.components-color-palette__custom-color-name{color:var(--wp-components-color-foreground,#1e1e1e);margin:0 1px}.components-color-palette__custom-color-value{color:#757575}.components-color-palette__custom-color-value--is-hex{text-transform:uppercase}.components-color-palette__custom-color-value:empty:after{content:"​";visibility:hidden}.components-custom-gradient-picker:not(.is-next-has-no-margin){margin-bottom:24px;margin-top:12px}.components-custom-gradient-picker__gradient-bar{border-radius:2px;height:48px;position:relative;width:100%;z-index:1}.components-custom-gradient-picker__gradient-bar.has-gradient{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,12px 12px;background-size:24px 24px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__gradient-bar-background{inset:0;position:absolute}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container{margin-left:auto;margin-right:auto;position:relative;width:calc(100% - 48px)}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown{display:flex;height:16px;position:absolute;top:16px;width:16px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown{background:#fff;border-radius:50%;color:#1e1e1e;height:inherit;min-width:16px;padding:2px;position:relative;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown svg{height:100%;width:100%}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button{border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 2px 0 rgba(0,0,0,.25);height:inherit;outline:2px solid transparent;padding:0;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active,.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button:focus{box-shadow:inset 0 0 0 calc(var(--wp-admin-border-width-focus)*2) #fff,0 0 2px 0 rgba(0,0,0,.25);outline:1.5px solid transparent}.components-custom-gradient-picker__remove-control-point-wrapper{padding-bottom:8px}.components-custom-gradient-picker__inserter{direction:ltr}.components-custom-gradient-picker__liner-gradient-indicator{display:inline-block;flex:0 auto;height:20px;width:20px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar{border:none}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar>div+div{margin-right:1px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed>svg{background:#fff;border:1px solid #949494;border-radius:2px}.components-custom-gradient-picker__ui-line{position:relative;z-index:0}.components-custom-select-control{font-size:13px;position:relative}.components-custom-select-control__button{outline:0;position:relative;text-align:right}.components-custom-select-control__hint{color:#949494;margin-right:10px}.components-custom-select-control__menu{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;max-height:400px;min-width:100%;outline:none;overflow:auto;padding:0;position:absolute;transition:none;z-index:1000000}.components-custom-select-control__menu[aria-hidden=true]{display:none}.components-custom-select-control__item{align-items:center;cursor:default;display:grid;grid-template-columns:auto auto;line-height:28px;list-style-type:none;padding:8px 16px}.components-custom-select-control__item:not(.is-next-36px-default-size){padding:8px}.components-custom-select-control__item.has-hint{grid-template-columns:auto auto 30px}.components-custom-select-control__item.is-highlighted{background:#ddd}.components-custom-select-control__item .components-custom-select-control__item-hint{color:#949494;padding-left:4px;text-align:left}.components-custom-select-control__item .components-custom-select-control__item-icon{margin-right:auto}.components-custom-select-control__item:last-child{margin-bottom:0}.block-editor-dimension-control .components-base-control__field{align-items:center;display:flex}.block-editor-dimension-control .components-base-control__label{align-items:center;display:flex;margin-bottom:0;margin-left:1em}.block-editor-dimension-control .components-base-control__label .dashicon{margin-left:.5em}.block-editor-dimension-control.is-manual .components-base-control__label{width:10em}body.is-dragging-components-draggable{cursor:move;cursor:grabbing!important}.components-draggable__invisible-drag-image{height:50px;position:fixed;right:-1000px;width:50px}.components-draggable__clone{background:transparent;padding:0;pointer-events:none;position:fixed;z-index:1000000000}.components-drop-zone{border-radius:2px;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;visibility:hidden;z-index:40}.components-drop-zone.is-active{opacity:1;visibility:visible}.components-drop-zone__content{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));bottom:0;color:#fff;display:flex;height:100%;justify-content:center;left:0;position:absolute;right:0;text-align:center;top:0;width:100%;z-index:50}.components-drop-zone__content-icon,.components-drop-zone__content-text{display:block}.components-drop-zone__content-icon{fill:currentColor;line-height:0;margin:0 auto 8px;pointer-events:none}.components-drop-zone__content-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-dropdown{display:inline-block}.components-dropdown__content .components-popover__content{padding:8px}.components-dropdown__content [role=menuitem]{white-space:nowrap}.components-dropdown-menu__menu{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item,.components-dropdown-menu__menu .components-menu-item{cursor:pointer;outline:none;padding:6px;white-space:nowrap;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,.components-dropdown-menu__menu .components-menu-item.has-separator{margin-top:6px;overflow:visible;position:relative}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator:before,.components-dropdown-menu__menu .components-menu-item.has-separator:before{background-color:#ddd;box-sizing:content-box;content:"";display:block;height:1px;left:0;position:absolute;right:0;top:-3px}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,.components-dropdown-menu__menu .components-menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-menu-item.is-active svg{background:#1e1e1e;border-radius:1px;box-shadow:0 0 0 1px #1e1e1e;color:#fff}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-icon-only,.components-dropdown-menu__menu .components-menu-item.is-icon-only{width:auto}.components-dropdown-menu__menu .components-menu-item__button,.components-dropdown-menu__menu .components-menu-item__button.components-button{height:auto;min-height:36px;padding-left:8px;padding-right:8px;text-align:right}.components-dropdown-menu__menu .components-menu-group{margin:0 -8px;padding:8px}.components-dropdown-menu__menu .components-menu-group:first-child{margin-top:-8px}.components-dropdown-menu__menu .components-menu-group:last-child{margin-bottom:-8px}.components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-top:1px solid #ccc;margin-top:0;padding:8px}.is-alternate .components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-color:#1e1e1e}.components-duotone-picker__color-indicator:before{background:transparent}.components-duotone-picker__color-indicator>.components-button,.components-duotone-picker__color-indicator>.components-button.is-pressed:hover:not(:disabled){background:linear-gradient(45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);color:transparent}.components-duotone-picker__color-indicator>.components-button:not([aria-disabled=true]):active{color:transparent}.components-color-list-picker,.components-color-list-picker__swatch-button{width:100%}.components-color-list-picker__color-picker{margin:8px 0}.components-color-list-picker__swatch-button{padding:6px}.components-color-list-picker__swatch-color{margin:2px}.components-form-toggle{display:inline-block;position:relative}.components-form-toggle .components-form-toggle__track{background-color:#fff;border:1px solid #1e1e1e;border-radius:9px;box-sizing:border-box;content:"";display:inline-block;height:18px;transition:background .2s ease;vertical-align:top;width:36px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__thumb{background-color:#1e1e1e;border:5px solid #1e1e1e;border-radius:50%;box-sizing:border-box;display:block;height:12px;position:absolute;right:3px;top:3px;transition:transform .1s ease;width:12px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__thumb{transition-delay:0s;transition-duration:0s}}.components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border:9px solid transparent}.components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;outline-offset:2px}.components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(-18px)}.components-disabled .components-form-toggle,.components-form-toggle.is-disabled{opacity:.3}.components-form-toggle input.components-form-toggle__input[type=checkbox]{border:none;height:100%;margin:0;opacity:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:none}.components-form-toggle input.components-form-toggle__input[type=checkbox]:before{content:""}.components-form-token-field__input-container{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;cursor:text;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-form-token-field__input-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-form-token-field__input-container{font-size:13px;line-height:normal}}.components-form-token-field__input-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-form-token-field__input-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container.is-disabled{background:#ddd;border-color:#ddd}.components-form-token-field__input-container.is-active{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container input[type=text].components-form-token-field__input{background:inherit;border:0;box-shadow:none;color:#1e1e1e;display:inline-block;flex:1;font-family:inherit;font-size:16px;margin-right:4px;max-width:100%;min-height:24px;min-width:50px;padding:0;width:100%}@media (min-width:600px){.components-form-token-field__input-container input[type=text].components-form-token-field__input{font-size:13px}}.components-form-token-field.is-active .components-form-token-field__input-container input[type=text].components-form-token-field__input,.components-form-token-field__input-container input[type=text].components-form-token-field__input:focus{box-shadow:none;outline:none}.components-form-token-field__input-container .components-form-token-field__token+input[type=text].components-form-token-field__input{width:auto}.components-form-token-field__token{color:#1e1e1e;display:flex;font-size:13px;max-width:100%}.components-form-token-field__token.is-success .components-form-token-field__remove-token,.components-form-token-field__token.is-success .components-form-token-field__token-text{background:#4ab866}.components-form-token-field__token.is-error .components-form-token-field__remove-token,.components-form-token-field__token.is-error .components-form-token-field__token-text{background:#cc1818}.components-form-token-field__token.is-validating .components-form-token-field__remove-token,.components-form-token-field__token.is-validating .components-form-token-field__token-text{color:#757575}.components-form-token-field__token.is-borderless{padding:0 0 0 24px;position:relative}.components-form-token-field__token.is-borderless .components-form-token-field__token-text{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-token-field__token.is-borderless .components-form-token-field__remove-token{background:transparent;color:#757575;left:0;padding:0;position:absolute;top:1px}.components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text{color:#4ab866}.components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text{border-radius:0 4px 4px 0;color:#cc1818;padding:0 6px 0 4px}.components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text{color:#1e1e1e}.components-form-token-field__token.is-disabled .components-form-token-field__remove-token{cursor:default}.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{background:#ddd;display:inline-block;height:auto;line-height:24px;min-width:unset;transition:all .2s cubic-bezier(.4,1,.4,1)}@media (prefers-reduced-motion:reduce){.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.components-form-token-field__token-text{border-radius:0 2px 2px 0;overflow:hidden;padding:0 8px 0 0;text-overflow:ellipsis;white-space:nowrap}.components-form-token-field__remove-token.components-button{border-radius:2px 0 0 2px;color:#1e1e1e;cursor:pointer;line-height:10px;overflow:initial;padding:0 2px}.components-form-token-field__remove-token.components-button:hover{color:#1e1e1e}.components-form-token-field__suggestions-list{box-shadow:inset 0 1px 0 0 #949494;flex:1 0 100%;list-style:none;margin:0;max-height:128px;min-width:100%;overflow-y:auto;transition:all .15s ease-in-out}@media (prefers-reduced-motion:reduce){.components-form-token-field__suggestions-list{transition-delay:0s;transition-duration:0s}}.components-form-token-field__suggestion{color:#1e1e1e;cursor:pointer;display:block;font-size:13px;margin:0;min-height:32px;padding:8px 12px}.components-form-token-field__suggestion.is-selected{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:#fff}@media (min-width:600px){.components-guide{width:600px}}.components-guide .components-modal__content{border-radius:2px;margin-top:0;padding:0}.components-guide .components-modal__content:before{content:none}.components-guide .components-modal__header{border-bottom:none;height:60px;padding:0;position:sticky}.components-guide .components-modal__header .components-button{align-self:flex-start;margin:8px 0 0 8px;position:static}.components-guide .components-modal__header .components-button:hover svg{fill:#fff}.components-guide__container{display:flex;flex-direction:column;justify-content:space-between;margin-top:-60px;min-height:100%}.components-guide__page{display:flex;flex-direction:column;justify-content:center;position:relative}@media (min-width:600px){.components-guide__page{min-height:300px}}.components-guide__footer{align-content:center;display:flex;height:36px;justify-content:center;margin:0 0 24px;padding:0 32px;position:relative;width:100%}.components-guide__page-control{margin:0;text-align:center}.components-guide__page-control li{display:inline-block;margin:0}.components-guide__page-control .components-button{color:#e0e0e0;height:30px;margin:-6px 0;min-width:20px}.components-guide__page-control li[aria-current=step] .components-button{color:var(--wp-components-color-accent,var(--wp-admin-theme-color))}.components-modal__frame.components-guide{border:none;max-height:575px;min-width:312px}@media (max-width:600px){.components-modal__frame.components-guide{margin:auto;max-width:calc(100vw - 32px)}}.components-button.components-guide__back-button,.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{position:absolute}.components-button.components-guide__back-button{right:32px}.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{left:32px}[role=region]{position:relative}.is-focusing-regions [role=region]:focus:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1000000}.is-focusing-regions .editor-post-publish-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-entities-saved-states-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-publish-panel,.is-focusing-regions .interface-interface-skeleton__sidebar .edit-post-layout__toggle-sidebar-panel,.is-focusing-regions [role=region]:focus:after,.is-focusing-regions.is-distraction-free .interface-interface-skeleton__header .edit-post-header{outline:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-offset:-4px}.components-menu-group+.components-menu-group{border-top:1px solid #1e1e1e;margin-top:8px;padding-top:8px}.components-menu-group+.components-menu-group.has-hidden-separator{border-top:none;margin-top:0;padding-top:0}.components-menu-group__label{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;padding:0 8px;text-transform:uppercase;white-space:nowrap}.components-menu-item__button,.components-menu-item__button.components-button{width:100%}.components-menu-item__button.components-button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button.components-button[role=menuitemradio] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemradio] .components-menu-item__item:only-child{box-sizing:initial;padding-left:48px}.components-menu-item__button .components-menu-items__item-icon,.components-menu-item__button.components-button .components-menu-items__item-icon{display:inline-block;flex:0 0 auto}.components-menu-item__button .components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-items__item-icon.has-icon-right{margin-left:-2px;margin-right:24px}.components-menu-item__button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right{margin-right:8px}.components-menu-item__button .block-editor-block-icon,.components-menu-item__button.components-button .block-editor-block-icon{margin-left:8px;margin-right:-2px}.components-menu-item__button.components-button.is-primary,.components-menu-item__button.is-primary{justify-content:center}.components-menu-item__button.components-button.is-primary .components-menu-item__item,.components-menu-item__button.is-primary .components-menu-item__item{margin-left:0}.components-menu-item__button.components-button:disabled.is-tertiary,.components-menu-item__button.components-button[aria-disabled=true].is-tertiary,.components-menu-item__button:disabled.is-tertiary,.components-menu-item__button[aria-disabled=true].is-tertiary{background:none;color:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));opacity:.3}.components-menu-item__info-wrapper{display:flex;flex-direction:column;margin-left:auto}.components-menu-item__info{color:#757575;font-size:12px;margin-top:4px;white-space:normal}.components-menu-item__item{align-items:center;display:inline-flex;margin-left:auto;min-width:160px;white-space:nowrap}.components-menu-item__shortcut{align-self:center;color:currentColor;display:none;margin-left:0;margin-right:auto;padding-right:24px}@media (min-width:480px){.components-menu-item__shortcut{display:inline}}.components-menu-items-choice svg,.components-menu-items-choice.components-button svg{margin-left:12px}.components-menu-items-choice.components-button.has-icon,.components-menu-items-choice.has-icon{padding-right:12px}.components-modal__screen-overlay{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;background-color:rgba(0,0,0,.35);bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:100000}@media (prefers-reduced-motion:reduce){.components-modal__screen-overlay{animation-delay:0s;animation-duration:1ms}}.components-modal__frame{animation:components-modal__appear-animation .1s ease-out;animation-fill-mode:forwards;background:#fff;border-radius:4px 4px 0 0;box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);display:flex;margin:40px 0 0;overflow:hidden;width:100%}@media (prefers-reduced-motion:reduce){.components-modal__frame{animation-delay:0s;animation-duration:1ms}}@media (min-width:600px){.components-modal__frame{border-radius:4px;margin:auto;max-height:calc(100% - 120px);max-width:calc(100% - 32px);min-width:350px;width:auto}}@media (min-width:600px) and (min-width:600px){.components-modal__frame.is-full-screen{height:calc(100% - 32px);max-height:none;width:calc(100% - 32px)}}@media (min-width:600px) and (min-width:782px){.components-modal__frame.is-full-screen{height:calc(100% - 80px);max-width:none;width:calc(100% - 80px)}}@media (min-width:960px){.components-modal__frame{max-height:70%}}@keyframes components-modal__appear-animation{0%{transform:translateY(32px)}to{transform:translateY(0)}}.components-modal__header{align-items:center;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;flex-direction:row;height:72px;justify-content:space-between;padding:24px 32px 8px;position:absolute;right:0;top:0;width:100%;z-index:10}.components-modal__header .components-modal__header-heading{font-size:1.2rem;font-weight:600}.components-modal__header h1{line-height:1;margin:0}.components-modal__header .components-button{position:relative;right:8px}.components-modal__content.has-scrolled-content:not(.hide-header) .components-modal__header{border-bottom-color:#ddd}.components-modal__header+p{margin-top:0}.components-modal__header-heading-container{align-items:center;display:flex;flex-direction:row;flex-grow:1;justify-content:right}.components-modal__header-icon-container{display:inline-block}.components-modal__header-icon-container svg{max-height:36px;max-width:36px;padding:8px}.components-modal__content{flex:1;margin-top:72px;overflow:auto;padding:4px 32px 32px}.components-modal__content.hide-header{margin-top:0;padding-top:32px}.components-modal__content.is-scrollable:focus-visible{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.components-notice{align-items:center;background-color:#fff;border-right:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:5px 15px 2px;padding:8px 12px}.components-notice.is-dismissible{position:relative}.components-notice.is-success{background-color:#eff9f1;border-right-color:#4ab866}.components-notice.is-warning{background-color:#fef8ee;border-right-color:#f0b849}.components-notice.is-error{background-color:#f4a2a2;border-right-color:#cc1818}.components-notice__content{flex-grow:1;margin:4px 0 4px 25px}.components-notice__actions{display:flex;flex-wrap:wrap}.components-notice__action.components-button{margin-left:8px}.components-notice__action.components-button,.components-notice__action.components-button.is-link{margin-right:12px}.components-notice__action.components-button.is-secondary{vertical-align:initial}.components-notice__dismiss{align-self:flex-start;color:#757575;flex-shrink:0}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{background-color:transparent;color:#1e1e1e}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}.components-notice-list{box-sizing:border-box;max-width:100vw}.components-notice-list .components-notice__content{line-height:2;margin-bottom:12px;margin-top:12px}.components-notice-list .components-notice__action.components-button{display:block;margin-right:0;margin-top:8px}.components-panel{background:#fff;border:1px solid #e0e0e0}.components-panel>.components-panel__body:first-child,.components-panel>.components-panel__header:first-child{margin-top:-1px}.components-panel>.components-panel__body:last-child,.components-panel>.components-panel__header:last-child{border-bottom-width:0}.components-panel+.components-panel{margin-top:-1px}.components-panel__body{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.components-panel__body h3{margin:0 0 .5em}.components-panel__body.is-opened{padding:16px}.components-panel__header{align-items:center;border-bottom:1px solid #ddd;box-sizing:content-box;display:flex;height:47px;justify-content:space-between;padding:0 16px}.components-panel__header h2{color:inherit;font-size:inherit;margin:0}.components-panel__body+.components-panel__body,.components-panel__body+.components-panel__header,.components-panel__header+.components-panel__body,.components-panel__header+.components-panel__header{margin-top:-1px}.components-panel__body>.components-panel__body-title{display:block;font-size:inherit;margin-bottom:0;margin-top:0;padding:0;transition:background .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body>.components-panel__body-title{transition-delay:0s;transition-duration:0s}}.components-panel__body.is-opened>.components-panel__body-title{margin:-16px -16px 5px}.components-panel__body>.components-panel__body-title:hover{background:#f0f0f0;border:none}.components-panel__body-toggle.components-button{border:none;box-shadow:none;color:#1e1e1e;font-weight:500;height:auto;outline:none;padding:16px 16px 16px 48px;position:relative;text-align:right;transition:background .1s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button{transition-delay:0s;transition-duration:0s}}.components-panel__body-toggle.components-button:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-panel__body-toggle.components-button .components-panel__arrow{fill:currentColor;color:#1e1e1e;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button .components-panel__arrow{transition-delay:0s;transition-duration:0s}}body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right{-ms-filter:fliph;filter:FlipH;margin-top:-10px;transform:scaleX(-1)}.components-panel__icon{color:#757575;margin:-2px 6px -2px 0}.components-panel__body-toggle-icon{margin-left:-5px}.components-panel__color-title{float:right;height:19px}.components-panel__row{align-items:center;display:flex;justify-content:space-between;margin-top:8px;min-height:36px}.components-panel__row select{min-width:0}.components-panel__row label{flex-shrink:0;margin-left:12px;max-width:75%}.components-panel__row:empty,.components-panel__row:first-of-type{margin-top:0}.components-panel .circle-picker{padding-bottom:20px}.components-placeholder.components-placeholder{-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;box-sizing:border-box;color:#1e1e1e;margin:0;outline:1px solid transparent;padding:1em;position:relative;text-align:right;width:100%}@supports (position:sticky){.components-placeholder.components-placeholder{align-items:flex-start;display:flex;flex-direction:column;justify-content:top}}.components-placeholder__error,.components-placeholder__fieldset,.components-placeholder__instructions,.components-placeholder__label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__label{align-items:center;display:flex;font-weight:600;margin-bottom:16px}.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:currentColor;margin-left:12px}@media (forced-colors:active){.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:CanvasText}}.components-placeholder__label:empty{display:none}.components-placeholder__fieldset,.components-placeholder__fieldset form{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.components-placeholder__fieldset form p,.components-placeholder__fieldset p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__fieldset.is-column-layout,.components-placeholder__fieldset.is-column-layout form{flex-direction:column}.components-placeholder__input[type=url]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;flex:1 1 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin:0 0 0 8px;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder__input[type=url]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-placeholder__input[type=url]{font-size:13px;line-height:normal}}.components-placeholder__input[type=url]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-placeholder__input[type=url]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__input[type=url]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-placeholder__input[type=url]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__instructions{margin-bottom:1em}.components-placeholder__error{margin-top:1em;width:100%}.components-placeholder__fieldset .components-button{margin-bottom:12px;margin-left:12px}.components-placeholder__fieldset .components-button:last-child{margin-bottom:0;margin-left:0}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link{margin-left:10px;margin-right:10px}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link:last-child{margin-left:0}.components-placeholder.is-large .components-placeholder__label{font-size:18pt;font-weight:400}.components-placeholder.is-medium .components-placeholder__instructions,.components-placeholder.is-small .components-placeholder__instructions{display:none}.components-placeholder.is-medium .components-placeholder__fieldset,.components-placeholder.is-medium .components-placeholder__fieldset form,.components-placeholder.is-small .components-placeholder__fieldset,.components-placeholder.is-small .components-placeholder__fieldset form{flex-direction:column}.components-placeholder.is-medium .components-placeholder__fieldset .components-button,.components-placeholder.is-small .components-placeholder__fieldset .components-button{margin-left:auto}.components-placeholder.is-small .components-button{padding:0 8px 2px}.components-placeholder .components-placeholder__learn-more .components-external-link{color:var(--wp-admin-theme-color)}.components-placeholder.has-illustration{-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);backface-visibility:hidden;background-color:transparent;border-radius:2px;box-shadow:none;color:inherit;display:flex;overflow:auto}.is-dark-theme .components-placeholder.has-illustration{background-color:rgba(0,0,0,.1)}.components-placeholder.has-illustration .components-placeholder__fieldset{margin-left:0;margin-right:0;width:auto}.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{opacity:0;pointer-events:none;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{transition-delay:0s;transition-duration:0s}}.is-selected>.components-placeholder.has-illustration .components-button,.is-selected>.components-placeholder.has-illustration .components-placeholder__instructions,.is-selected>.components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.components-placeholder.has-illustration:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.components-placeholder__preview{display:flex;justify-content:center}.components-placeholder__illustration{stroke:currentColor;box-sizing:content-box;height:100%;opacity:.25;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:100%}.components-popover{will-change:transform;z-index:1000000}.components-popover.is-expanded{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000000!important}.components-popover__content{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #ccc,0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;width:min-content}.is-alternate .components-popover__content{box-shadow:0 0 0 1px #1e1e1e}.is-unstyled .components-popover__content{background:none;border-radius:0;box-shadow:none}.components-popover.is-expanded .components-popover__content{box-shadow:0 -1px 0 0 #ccc;height:calc(100% - 48px);overflow-y:visible;position:static;width:auto}.components-popover.is-expanded.is-alternate .components-popover__content{box-shadow:0 -1px 0 #1e1e1e}.components-popover__header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;padding:0 16px 0 8px}.components-popover__header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.components-popover__close.components-button{z-index:5}.components-popover__arrow{display:flex;height:14px;pointer-events:none;position:absolute;width:14px}.components-popover__arrow:before{background-color:#fff;content:"";height:2px;left:1px;position:absolute;right:1px;top:-1px}.components-popover__arrow.is-top{bottom:-14px!important;transform:rotate(0)}.components-popover__arrow.is-right{left:-14px!important;transform:rotate(90deg)}.components-popover__arrow.is-bottom{top:-14px!important;transform:rotate(180deg)}.components-popover__arrow.is-left{right:-14px!important;transform:rotate(-90deg)}.components-popover__triangle{display:block;flex:1}.components-popover__triangle-bg{fill:#fff}.components-popover__triangle-border{fill:transparent;stroke-width:1px;stroke:#ccc}.is-alternate .components-popover__triangle-border{stroke:#1e1e1e}.components-radio-control__input[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-left:6px;margin-top:0;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.components-radio-control__input[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-radio-control__input[type=radio]{font-size:13px;line-height:normal}}.components-radio-control__input[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-radio-control__input[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-radio-control__input[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-radio-control__input[type=radio]{height:20px;width:20px}}.components-radio-control__input[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(-7px,7px);width:8px}@media (min-width:600px){.components-radio-control__input[type=radio]:checked:before{transform:translate(-5px,5px)}}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.components-radio-control__input[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-resizable-box__handle{display:none;height:23px;width:23px;z-index:2}.components-resizable-box__container.has-show-handle .components-resizable-box__handle{display:block}.components-resizable-box__container>img{width:inherit}.components-resizable-box__handle:after{background:#fff;border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));content:"";cursor:inherit;display:block;height:15px;left:calc(50% - 8px);outline:2px solid transparent;position:absolute;top:calc(50% - 8px);width:15px}.components-resizable-box__side-handle:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:2px;content:"";cursor:inherit;display:block;height:3px;left:calc(50% - 1px);opacity:0;position:absolute;top:calc(50% - 1px);transition:transform .1s ease-in;width:3px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle:before{transition-delay:0s;transition-duration:0s}}.components-resizable-box__corner-handle,.components-resizable-box__side-handle{z-index:2}.components-resizable-box__side-handle.components-resizable-box__handle-bottom,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:before,.components-resizable-box__side-handle.components-resizable-box__handle-top,.components-resizable-box__side-handle.components-resizable-box__handle-top:before{border-left:0;border-right:0;right:0;width:100%}.components-resizable-box__side-handle.components-resizable-box__handle-left,.components-resizable-box__side-handle.components-resizable-box__handle-left:before,.components-resizable-box__side-handle.components-resizable-box__handle-right,.components-resizable-box__side-handle.components-resizable-box__handle-right:before{border-bottom:0;border-top:0;height:100%;top:0}.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:components-resizable-box__top-bottom-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation-delay:0s;animation-duration:1ms}}.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation:components-resizable-box__left-right-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation-delay:0s;animation-duration:1ms}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:none}}}@keyframes components-resizable-box__top-bottom-animation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes components-resizable-box__left-right-animation{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.components-resizable-box__handle-right{right:-11.5px}.components-resizable-box__handle-left{left:-11.5px}.components-resizable-box__handle-top{top:-11.5px}.components-resizable-box__handle-bottom{bottom:-11.5px}.components-responsive-wrapper{align-items:center;display:flex;justify-content:center;max-width:100%;position:relative}.components-responsive-wrapper__content{display:block;max-width:100%;width:100%}.components-sandbox{overflow:hidden}iframe.components-sandbox{width:100%}body.lockscroll,html.lockscroll{overflow:hidden}.components-search-control{position:relative}.components-search-control input[type=search].components-search-control__input{background:#f0f0f0;border:none;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:48px;line-height:normal;margin-left:0;margin-right:0;padding:0 16px 0 48px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-search-control input[type=search].components-search-control__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px;line-height:normal}}.components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-search-control input[type=search].components-search-control__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-search-control input[type=search].components-search-control__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-search-control input[type=search].components-search-control__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px}}.components-search-control input[type=search].components-search-control__input:focus{background:#fff;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-search-control input[type=search].components-search-control__input::placeholder{color:#757575}.components-search-control input[type=search].components-search-control__input::-webkit-search-cancel-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-decoration,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-decoration{-webkit-appearance:none}.components-search-control.is-next-40px-default-size input[type=search].components-search-control__input{height:40px}.components-search-control.is-size-compact input[type=search].components-search-control__input{height:32px}.components-search-control__icon{align-items:center;display:flex;justify-content:center;left:12px;position:absolute;top:50%;transform:translateY(-50%);width:24px}.components-search-control__input-wrapper{position:relative}.components-select-control__input{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;outline:0}@media (max-width:782px){.components-base-control .components-base-control__field .components-select-control__input{font-size:16px}}.components-snackbar{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:rgba(0,0,0,.85);border-radius:2px;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;max-width:600px;padding:12px 20px;pointer-events:auto;width:100%}@media (min-width:600px){.components-snackbar{width:-moz-fit-content;width:fit-content}}.components-snackbar:focus{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-snackbar.components-snackbar-explicit-dismiss{cursor:default}.components-snackbar .components-snackbar__content-with-icon{margin-right:24px}.components-snackbar .components-snackbar__icon{position:absolute;right:28px;top:24px}.components-snackbar .components-snackbar__dismiss-button{cursor:pointer;margin-right:24px}.components-snackbar__action.components-button{color:#fff;flex-shrink:0;height:auto;line-height:1.4;margin-right:32px;padding:0}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary){background-color:transparent;text-decoration:underline}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):focus{box-shadow:none;color:#fff;outline:1px dotted #fff}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff;text-decoration:none}.components-snackbar__content{align-items:baseline;display:flex;justify-content:space-between;line-height:1.4}.components-snackbar-list{box-sizing:border-box;pointer-events:none;position:absolute;width:100%;z-index:100000}.components-snackbar-list__notice-container{padding-top:8px;position:relative}.components-tab-panel__tabs{align-items:stretch;display:flex;flex-direction:row}.components-tab-panel__tabs[aria-orientation=vertical]{flex-direction:column}.components-tab-panel__tabs-item{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-tab-panel__tabs-item:after{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:after{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-tab-panel__tabs-item:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:before{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{font-size:13px;line-height:normal}}.components-text-control__input:focus,.components-text-control__input[type=color]:focus,.components-text-control__input[type=date]:focus,.components-text-control__input[type=datetime-local]:focus,.components-text-control__input[type=datetime]:focus,.components-text-control__input[type=email]:focus,.components-text-control__input[type=month]:focus,.components-text-control__input[type=number]:focus,.components-text-control__input[type=password]:focus,.components-text-control__input[type=tel]:focus,.components-text-control__input[type=text]:focus,.components-text-control__input[type=time]:focus,.components-text-control__input[type=url]:focus,.components-text-control__input[type=week]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-text-control__input::-webkit-input-placeholder,.components-text-control__input[type=color]::-webkit-input-placeholder,.components-text-control__input[type=date]::-webkit-input-placeholder,.components-text-control__input[type=datetime-local]::-webkit-input-placeholder,.components-text-control__input[type=datetime]::-webkit-input-placeholder,.components-text-control__input[type=email]::-webkit-input-placeholder,.components-text-control__input[type=month]::-webkit-input-placeholder,.components-text-control__input[type=number]::-webkit-input-placeholder,.components-text-control__input[type=password]::-webkit-input-placeholder,.components-text-control__input[type=tel]::-webkit-input-placeholder,.components-text-control__input[type=text]::-webkit-input-placeholder,.components-text-control__input[type=time]::-webkit-input-placeholder,.components-text-control__input[type=url]::-webkit-input-placeholder,.components-text-control__input[type=week]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input::-moz-placeholder,.components-text-control__input[type=color]::-moz-placeholder,.components-text-control__input[type=date]::-moz-placeholder,.components-text-control__input[type=datetime-local]::-moz-placeholder,.components-text-control__input[type=datetime]::-moz-placeholder,.components-text-control__input[type=email]::-moz-placeholder,.components-text-control__input[type=month]::-moz-placeholder,.components-text-control__input[type=number]::-moz-placeholder,.components-text-control__input[type=password]::-moz-placeholder,.components-text-control__input[type=tel]::-moz-placeholder,.components-text-control__input[type=text]::-moz-placeholder,.components-text-control__input[type=time]::-moz-placeholder,.components-text-control__input[type=url]::-moz-placeholder,.components-text-control__input[type=week]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-tip{color:#757575;display:flex}.components-tip svg{fill:#f0b849;align-self:center;flex-shrink:0;margin-left:16px}.components-tip p{margin:0}.components-accessible-toolbar{border:1px solid #1e1e1e;border-radius:2px;display:inline-flex;flex-shrink:0}.components-accessible-toolbar>.components-toolbar-group:last-child{border-left:none}.components-accessible-toolbar .components-button,.components-toolbar .components-button{height:48px;padding-left:16px;padding-right:16px;position:relative;z-index:1}.components-accessible-toolbar .components-button:focus:not(:disabled),.components-toolbar .components-button:focus:not(:disabled){box-shadow:none;outline:none}.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation-delay:0s;animation-duration:1ms}}.components-accessible-toolbar .components-button svg,.components-toolbar .components-button svg{margin-left:auto;margin-right:auto;position:relative}.components-accessible-toolbar .components-button.is-pressed,.components-accessible-toolbar .components-button.is-pressed:hover,.components-toolbar .components-button.is-pressed,.components-toolbar .components-button.is-pressed:hover{background:transparent}.components-accessible-toolbar .components-button.is-pressed:before,.components-toolbar .components-button.is-pressed:before{background:#1e1e1e}.components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{min-width:48px;padding-left:12px;padding-right:12px}.components-accessible-toolbar .components-button.components-tab-button,.components-toolbar .components-button.components-tab-button{font-weight:500}.components-accessible-toolbar .components-button.components-tab-button span,.components-toolbar .components-button.components-tab-button span{display:inline-block;padding-left:0;padding-right:0;position:relative}@keyframes components-button__appear-animation{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.components-toolbar__control.components-button{position:relative}.components-toolbar__control.components-button[data-subscript] svg{padding:5px 0 5px 10px}.components-toolbar__control.components-button[data-subscript]:after{bottom:10px;content:attr(data-subscript);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;left:8px;line-height:12px;position:absolute}.components-toolbar__control.components-button:active:before{display:none}.components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{color:#fff}.components-toolbar-group{background-color:#fff;border-left:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;line-height:0;min-height:48px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-toolbar-group.components-toolbar-group{border-width:0;margin:0}.components-toolbar-group .components-button.components-button,.components-toolbar-group .components-button.has-icon.has-icon{min-width:36px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-button.components-button svg,.components-toolbar-group .components-button.has-icon.has-icon svg{min-width:24px}.components-toolbar-group .components-button.components-button:before,.components-toolbar-group .components-button.has-icon.has-icon:before{left:2px;right:2px}.components-toolbar{background-color:#fff;border:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;margin:0;min-height:48px}.components-toolbar .components-toolbar.components-toolbar{border-width:0;margin:0}div.components-toolbar>div{display:block;margin:0}@supports (position:sticky){div.components-toolbar>div{display:flex}}div.components-toolbar>div+div.has-left-divider{margin-right:6px;overflow:visible;position:relative}div.components-toolbar>div+div.has-left-divider:before{background-color:#ddd;box-sizing:content-box;content:"";display:inline-block;height:20px;position:absolute;right:-3px;top:8px;width:1px}.components-tooltip{background:#000;border-radius:2px;color:#f0f0f0;font-size:12px;line-height:1.4;padding:4px 8px;text-align:center;z-index:1000002}.components-tooltip__shortcut{margin-right:8px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.css index 307d9880cb..e1c0c18c06 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.css @@ -206,13 +206,11 @@ } .components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{ background:transparent; + box-shadow:none; color:#949494; opacity:1; - transform:none; -} -.components-button.is-secondary:disabled:not(:focus),.components-button.is-secondary[aria-disabled=true]:hover:not(:focus),.components-button.is-secondary[aria-disabled=true]:not(:focus),.components-button.is-tertiary:disabled:not(:focus),.components-button.is-tertiary[aria-disabled=true]:hover:not(:focus),.components-button.is-tertiary[aria-disabled=true]:not(:focus){ - box-shadow:none; outline:none; + transform:none; } .components-button.is-secondary{ background:transparent; @@ -221,7 +219,7 @@ outline:1px solid transparent; white-space:nowrap; } -.components-button.is-secondary:hover:not(:disabled,[aria-disabled=true]){ +.components-button.is-secondary:hover:not(:disabled){ box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #2145e6)); } .components-button.is-tertiary{ @@ -293,11 +291,6 @@ p+.components-button.is-tertiary{ background-size:100px 100%; opacity:1; } -@media (prefers-reduced-motion:reduce){ - .components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{ - animation-duration:0s; - } -} .components-button.is-compact{ height:32px; } @@ -595,13 +588,13 @@ svg.components-checkbox-control__checked,svg.components-checkbox-control__indete .components-circular-option-picker__option:hover{ box-shadow:inset 0 0 0 14px !important; } -.components-circular-option-picker__option[aria-pressed=true],.components-circular-option-picker__option[aria-selected=true]{ +.components-circular-option-picker__option.is-pressed{ box-shadow:inset 0 0 0 4px; overflow:visible; position:relative; z-index:1; } -.components-circular-option-picker__option[aria-pressed=true]+svg,.components-circular-option-picker__option[aria-selected=true]+svg{ +.components-circular-option-picker__option.is-pressed+svg{ border-radius:50%; left:2px; pointer-events:none; @@ -653,7 +646,7 @@ svg.components-checkbox-control__checked,svg.components-checkbox-control__indete .components-palette-edit__popover-gradient-picker{ padding:8px; - width:260px; + width:280px; } .components-dropdown-menu__menu .components-palette-edit__menu-button{ @@ -942,7 +935,7 @@ input.components-combobox-control__input[type=text]:focus{ list-style-type:none; padding:8px 16px; } -.components-custom-select-control__item:not(.is-next-40px-default-size){ +.components-custom-select-control__item:not(.is-next-36px-default-size){ padding:8px; } .components-custom-select-control__item.has-hint{ @@ -1060,10 +1053,6 @@ body.is-dragging-components-draggable{ white-space:nowrap; } -.components-dropdown-menu__toggle{ - vertical-align:top; -} - .components-dropdown-menu__menu{ font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:13px; @@ -1167,9 +1156,7 @@ body.is-dragging-components-draggable{ content:""; display:inline-block; height:18px; - overflow:hidden; - position:relative; - transition:background-color .2s ease,border-color .2s ease; + transition:background .2s ease; vertical-align:top; width:36px; } @@ -1179,24 +1166,9 @@ body.is-dragging-components-draggable{ transition-duration:0s; } } -.components-form-toggle .components-form-toggle__track:after{ - border-top:18px solid transparent; - box-sizing:border-box; - content:""; - inset:0; - opacity:0; - position:absolute; - transition:opacity .2s ease; -} -@media (prefers-reduced-motion:reduce){ - .components-form-toggle .components-form-toggle__track:after{ - transition-delay:0s; - transition-duration:0s; - } -} .components-form-toggle .components-form-toggle__thumb{ background-color:#1e1e1e; - border:6px solid transparent; + border:5px solid #1e1e1e; border-radius:50%; box-sizing:border-box; display:block; @@ -1204,7 +1176,7 @@ body.is-dragging-components-draggable{ left:3px; position:absolute; top:3px; - transition:transform .2s ease,background-color .2s ease-out; + transition:transform .1s ease; width:12px; } @media (prefers-reduced-motion:reduce){ @@ -1215,10 +1187,7 @@ body.is-dragging-components-draggable{ } .components-form-toggle.is-checked .components-form-toggle__track{ background-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - border-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-form-toggle.is-checked .components-form-toggle__track:after{ - opacity:1; + border:9px solid transparent; } .components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{ box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff, 0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); @@ -1421,7 +1390,6 @@ body.is-dragging-components-draggable{ max-height:128px; min-width:100%; overflow-y:auto; - padding:0; transition:all .15s ease-in-out; } @media (prefers-reduced-motion:reduce){ @@ -1432,7 +1400,6 @@ body.is-dragging-components-draggable{ } .components-form-token-field__suggestion{ - box-sizing:border-box; color:#1e1e1e; cursor:pointer; display:block; @@ -1718,20 +1685,6 @@ body.is-dragging-components-draggable{ width:calc(100% - 80px); } } -@media (min-width:600px){ - .components-modal__frame.has-size-large,.components-modal__frame.has-size-medium,.components-modal__frame.has-size-small{ - width:100%; - } - .components-modal__frame.has-size-small{ - max-width:384px; - } - .components-modal__frame.has-size-medium{ - max-width:512px; - } - .components-modal__frame.has-size-large{ - max-width:840px; - } -} @media (min-width:960px){ .components-modal__frame{ max-height:70%; @@ -1820,6 +1773,7 @@ body.is-dragging-components-draggable{ display:flex; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:13px; + margin:5px 15px 2px; padding:8px 12px; } .components-notice.is-dismissible{ @@ -2358,33 +2312,18 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right stroke:#1e1e1e; } -.components-popover-pointer-events-trap{ - background-color:transparent; - inset:0; - position:fixed; - z-index:1000000; -} - -.components-radio-control__option{ - align-items:center; - display:flex; -} - .components-radio-control__input[type=radio]{ - -webkit-appearance:none; - appearance:none; border:1px solid #1e1e1e; border-radius:2px; border-radius:50%; box-shadow:0 0 0 transparent; - cursor:pointer; - display:inline-flex; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:16px; height:24px; line-height:normal; - margin:0 6px 0 0; - padding:0; + margin-right:6px; + margin-top:0; + padding:6px 8px; transition:box-shadow .1s linear; transition:none; width:24px; @@ -2443,21 +2382,6 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right background:var(--wp-admin-theme-color); border-color:var(--wp-admin-theme-color); } -.components-radio-control__input[type=radio]:focus{ - box-shadow:0 0 0 2px var(--wp-components-color-background, #fff), 0 0 0 4px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-radio-control__input[type=radio]:checked{ - background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); - border-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); -} -.components-radio-control__input[type=radio]:checked:before{ - border-radius:50%; - content:""; -} - -.components-radio-control__label{ - cursor:pointer; -} .components-resizable-box__handle{ display:none; @@ -2684,8 +2608,6 @@ body.lockscroll,html.lockscroll{ } .components-search-control.is-size-compact input[type=search].components-search-control__input{ height:32px; - padding-left:8px; - padding-right:32px; } .components-search-control__icon{ @@ -2698,9 +2620,6 @@ body.lockscroll,html.lockscroll{ transform:translateY(-50%); width:24px; } -.is-size-compact .components-search-control__icon{ - right:4px; -} .components-search-control__input-wrapper{ position:relative; @@ -2745,13 +2664,12 @@ body.lockscroll,html.lockscroll{ cursor:default; } .components-snackbar .components-snackbar__content-with-icon{ - padding-left:24px; - position:relative; + margin-left:24px; } .components-snackbar .components-snackbar__icon{ - left:-8px; + left:28px; position:absolute; - top:-2.9px; + top:24px; } .components-snackbar .components-snackbar__dismiss-button{ cursor:pointer; @@ -2878,7 +2796,6 @@ body.lockscroll,html.lockscroll{ box-shadow:0 0 0 transparent; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif; font-size:16px; - height:32px; line-height:normal; padding:6px 8px; transition:box-shadow .1s linear; @@ -2911,9 +2828,6 @@ body.lockscroll,html.lockscroll{ .components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{ color:rgba(30,30,30,.62); } -.components-text-control__input.is-next-40px-default-size,.components-text-control__input[type=color].is-next-40px-default-size,.components-text-control__input[type=date].is-next-40px-default-size,.components-text-control__input[type=datetime-local].is-next-40px-default-size,.components-text-control__input[type=datetime].is-next-40px-default-size,.components-text-control__input[type=email].is-next-40px-default-size,.components-text-control__input[type=month].is-next-40px-default-size,.components-text-control__input[type=number].is-next-40px-default-size,.components-text-control__input[type=password].is-next-40px-default-size,.components-text-control__input[type=tel].is-next-40px-default-size,.components-text-control__input[type=text].is-next-40px-default-size,.components-text-control__input[type=time].is-next-40px-default-size,.components-text-control__input[type=url].is-next-40px-default-size,.components-text-control__input[type=week].is-next-40px-default-size{ - height:40px; -} .components-tip{ color:#757575; @@ -2938,12 +2852,6 @@ body.lockscroll,html.lockscroll{ .components-accessible-toolbar>.components-toolbar-group:last-child{ border-right:none; } -.components-accessible-toolbar.is-unstyled{ - border:none; -} -.components-accessible-toolbar.is-unstyled>.components-toolbar-group{ - border-right:none; -} .components-accessible-toolbar .components-button,.components-toolbar .components-button{ height:48px; @@ -2986,7 +2894,7 @@ body.lockscroll,html.lockscroll{ background:#1e1e1e; } .components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{ - box-shadow:inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)); + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff; outline:2px solid transparent; } .components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{ @@ -3028,6 +2936,9 @@ body.lockscroll,html.lockscroll{ position:absolute; right:8px; } +.components-toolbar__control.components-button:active:before{ + display:none; +} .components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{ color:#fff; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.min.css index 2dc0bce615..47838fafb8 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/components/style.min.css @@ -1,4 +1,4 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-animate__appear{animation:components-animate__appear-animation .1s cubic-bezier(0,0,.2,1) 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__appear{animation-delay:0s;animation-duration:1ms}}.components-animate__appear.is-from-top,.components-animate__appear.is-from-top.is-from-left{transform-origin:top left}.components-animate__appear.is-from-top.is-from-right{transform-origin:top right}.components-animate__appear.is-from-bottom,.components-animate__appear.is-from-bottom.is-from-left{transform-origin:bottom left}.components-animate__appear.is-from-bottom.is-from-right{transform-origin:bottom right}@keyframes components-animate__appear-animation{0%{transform:translateY(-2em) scaleY(0) scaleX(0)}to{transform:translateY(0) scaleY(1) scaleX(1)}}.components-animate__slide-in{animation:components-animate__slide-in-animation .1s cubic-bezier(0,0,.2,1);animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__slide-in{animation-delay:0s;animation-duration:1ms}}.components-animate__slide-in.is-from-left{transform:translateX(100%)}.components-animate__slide-in.is-from-right{transform:translateX(-100%)}@keyframes components-animate__slide-in-animation{to{transform:translateX(0)}}.components-animate__loading{animation:components-animate__loading 1.6s ease-in-out infinite}@keyframes components-animate__loading{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.components-autocomplete__popover .components-popover__content{min-width:220px;padding:16px}.components-autocomplete__result.components-button{display:flex;height:auto;min-height:36px;text-align:left;width:100%}.components-autocomplete__result.components-button.is-selected{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button-group{display:inline-block}.components-button-group .components-button{border-radius:0;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:inline-flex}.components-button-group .components-button+.components-button{margin-left:-1px}.components-button-group .components-button:first-child{border-radius:2px 0 0 2px}.components-button-group .components-button:last-child{border-radius:0 2px 2px 0}.components-button-group .components-button.is-primary,.components-button-group .components-button:focus{position:relative;z-index:1}.components-button-group .components-button.is-primary{box-shadow:inset 0 0 0 1px #1e1e1e}.components-button{align-items:center;-webkit-appearance:none;background:none;border:0;border-radius:2px;box-sizing:border-box;color:var(--wp-components-color-foreground,#1e1e1e);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:400;height:36px;margin:0;padding:6px 12px;text-decoration:none;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-button{transition-delay:0s;transition-duration:0s}}.components-button.is-next-40px-default-size{height:40px}.components-button:hover,.components-button[aria-expanded=true]{color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button:disabled:hover,.components-button[aria-disabled=true]:hover{color:initial}.components-button:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:3px solid transparent}.components-button.is-primary{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff);outline:1px solid transparent;text-decoration:none;text-shadow:none;white-space:nowrap}.components-button.is-primary:hover:not(:disabled){background:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:active:not(:disabled){background:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));border-color:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary:disabled,.components-button.is-primary:disabled:active:enabled,.components-button.is-primary[aria-disabled=true],.components-button.is-primary[aria-disabled=true]:active:enabled,.components-button.is-primary[aria-disabled=true]:enabled{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:hsla(0,0%,100%,.4);opacity:1;outline:none}.components-button.is-primary:disabled:active:enabled:focus:enabled,.components-button.is-primary:disabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:focus:enabled{box-shadow:0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 3px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(-45deg,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 70%,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 70%);background-size:100px 100%;border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-secondary,.components-button.is-tertiary{outline:1px solid transparent}.components-button.is-secondary:active:not(:disabled),.components-button.is-tertiary:active:not(:disabled){box-shadow:none}.components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{background:transparent;color:#949494;opacity:1;transform:none}.components-button.is-secondary:disabled:not(:focus),.components-button.is-secondary[aria-disabled=true]:hover:not(:focus),.components-button.is-secondary[aria-disabled=true]:not(:focus),.components-button.is-tertiary:disabled:not(:focus),.components-button.is-tertiary[aria-disabled=true]:hover:not(:focus),.components-button.is-tertiary[aria-disabled=true]:not(:focus){box-shadow:none;outline:none}.components-button.is-secondary{background:transparent;box-shadow:inset 0 0 0 1px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:1px solid transparent;white-space:nowrap}.components-button.is-secondary:hover:not(:disabled,[aria-disabled=true]){box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6))}.components-button.is-tertiary{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));white-space:nowrap}.components-button.is-tertiary:hover:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.components-button.is-tertiary:active:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.08)}p+.components-button.is-tertiary{margin-left:-6px}.components-button.is-destructive{--wp-components-color-accent:#cc1818;--wp-components-color-accent-darker-10:#9e1313;--wp-components-color-accent-darker-20:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link){color:#cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):hover:not(:disabled){color:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) #cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):active:not(:disabled){background:#ccc}.components-button.is-link{background:none;border:0;border-radius:0;box-shadow:none;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));height:auto;margin:0;outline:none;padding:0;text-align:left;text-decoration:underline;transition-duration:.05s;transition-property:border,background,color;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.components-button.is-link{transition-delay:0s;transition-duration:0s}}.components-button.is-link:focus{border-radius:2px}.components-button:not(:disabled,[aria-disabled=true]):active{color:var(--wp-components-color-foreground,#1e1e1e)}.components-button:disabled,.components-button[aria-disabled=true]{cursor:default;opacity:.3}.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation:components-button__busy-animation 2.5s linear infinite;background-image:linear-gradient(-45deg,#fafafa 33%,#e0e0e0 0,#e0e0e0 70%,#fafafa 0);background-size:100px 100%;opacity:1}@media (prefers-reduced-motion:reduce){.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation-duration:0s}}.components-button.is-compact{height:32px}.components-button.is-compact.has-icon:not(.has-text){min-width:32px;padding:0;width:32px}.components-button.is-small{font-size:11px;height:24px;line-height:22px;padding:0 8px}.components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0;width:24px}.components-button.has-icon{justify-content:center;min-width:36px;padding:6px}.components-button.has-icon.is-next-40px-default-size{min-width:40px}.components-button.has-icon .dashicon{align-items:center;box-sizing:content-box;display:inline-flex;justify-content:center;padding:2px}.components-button.has-icon.has-text{gap:4px;justify-content:start;padding-left:8px;padding-right:12px}.components-button.is-pressed{background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-button.is-pressed:hover:not(:disabled){background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button svg{fill:currentColor;outline:none}@media (forced-colors:active){.components-button svg{fill:CanvasText}}.components-button .components-visually-hidden{height:auto}@keyframes components-button__busy-animation{0%{background-position:200px 0}}.components-checkbox-control__input[type=checkbox]{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:0 0 0 transparent;clear:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;line-height:0;margin:0 4px 0 0;outline:0;padding:6px 8px;padding:0!important;text-align:center;transition:box-shadow .1s linear;transition:none;transition:border-color .1s ease-in-out;vertical-align:top;width:24px}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{font-size:13px;line-height:normal}}.components-checkbox-control__input[type=checkbox]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-checkbox-control__input[type=checkbox]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{color:#fff;margin:-3px -5px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{margin:-4px 0 0 -5px}}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;float:left;font:normal 30px/1 dashicons;vertical-align:middle;width:16px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{float:none;font-size:21px}}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{height:20px;width:20px}}@media (prefers-reduced-motion:reduce){.components-checkbox-control__input[type=checkbox]{transition-delay:0s;transition-duration:0s}}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.components-checkbox-control__input[type=checkbox]:checked,.components-checkbox-control__input[type=checkbox]:indeterminate{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-checkbox-control__input[type=checkbox]:checked::-ms-check,.components-checkbox-control__input[type=checkbox]:indeterminate::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before{content:none}.components-checkbox-control__input-container{display:inline-block;height:24px;margin-right:12px;position:relative;vertical-align:middle;width:24px}@media (min-width:600px){.components-checkbox-control__input-container{height:20px;width:20px}}svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{fill:#fff;cursor:pointer;height:24px;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:24px}@media (min-width:600px){svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{left:-2px;top:-2px}}.components-circular-option-picker{display:inline-block;min-width:188px;width:100%}.components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper{display:flex;justify-content:flex-end;margin-top:12px}.components-circular-option-picker .components-circular-option-picker__swatches{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.components-circular-option-picker>:not(.components-circular-option-picker__swatches){position:relative;z-index:0}.components-circular-option-picker__option-wrapper{display:inline-block;height:28px;transform:scale(1);transition:transform .1s ease;vertical-align:top;width:28px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option-wrapper{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option-wrapper:hover{transform:scale(1.2)}.components-circular-option-picker__option-wrapper>div{height:100%;width:100%}.components-circular-option-picker__option-wrapper:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'%3E%3Cpath fill='%23555D65' d='M6 8V6H4v2h2zm2 0V6h2v2H8zm2 8H8v-2h2v2zm2 0v-2h2v2h-2zm0 2v-2h-2v2H8v2h2v-2h2zm2 0v2h-2v-2h2zm2 0h-2v-2h2v2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' d='M18 18v2h-2v-2h2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z' clip-rule='evenodd'/%3E%3C/svg%3E");border-radius:50%;bottom:1px;content:"";left:1px;position:absolute;right:1px;top:1px;z-index:-1}.components-circular-option-picker__option{background:transparent;border:none;border-radius:50%;box-shadow:inset 0 0 0 14px;cursor:pointer;display:inline-block;height:100%;transition:box-shadow .1s ease;vertical-align:top;width:100%}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option:hover{box-shadow:inset 0 0 0 14px!important}.components-circular-option-picker__option[aria-pressed=true],.components-circular-option-picker__option[aria-selected=true]{box-shadow:inset 0 0 0 4px;overflow:visible;position:relative;z-index:1}.components-circular-option-picker__option[aria-pressed=true]+svg,.components-circular-option-picker__option[aria-selected=true]+svg{border-radius:50%;left:2px;pointer-events:none;position:absolute;top:2px;z-index:2}.components-circular-option-picker__option:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.components-circular-option-picker__option:focus:after{border:2px solid #757575;border-radius:50%;box-shadow:inset 0 0 0 2px #fff;content:"";height:calc(100% + 4px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:calc(100% + 4px)}.components-circular-option-picker__option.components-button:focus{background-color:transparent;box-shadow:inset 0 0 0 14px;outline:none}.components-circular-option-picker__button-action .components-circular-option-picker__option{background:#fff;color:#fff}.components-circular-option-picker__dropdown-link-action{margin-right:16px}.components-circular-option-picker__dropdown-link-action .components-button{line-height:22px}.components-palette-edit__popover-gradient-picker{padding:8px;width:260px}.components-dropdown-menu__menu .components-palette-edit__menu-button{width:100%}.component-color-indicator{background:#fff linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:inline-block;height:20px;padding:0;width:20px}.components-combobox-control{width:100%}input.components-combobox-control__input[type=text]{border:none;box-shadow:none;font-family:inherit;font-size:16px;line-height:inherit;margin:0;min-height:auto;padding:2px;width:100%}@media (min-width:600px){input.components-combobox-control__input[type=text]{font-size:13px}}input.components-combobox-control__input[type=text]:focus{box-shadow:none;outline:none}.components-combobox-control__suggestions-container{align-items:flex-start;border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-combobox-control__suggestions-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-combobox-control__suggestions-container{font-size:13px;line-height:normal}}.components-combobox-control__suggestions-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__suggestions-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-combobox-control__suggestions-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container:focus-within{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__reset.components-button{display:flex;height:16px;min-width:16px;padding:0}.components-color-palette__custom-color-wrapper{position:relative;z-index:0}.components-color-palette__custom-color-button{background:none;border:none;border-radius:2px 2px 0 0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:border-box;cursor:pointer;height:64px;outline:1px solid transparent;position:relative;width:100%}.components-color-palette__custom-color-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-width:2px}.components-color-palette__custom-color-button:after{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,24px 24px;background-size:48px 48px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.components-color-palette__custom-color-text-wrapper{border-radius:0 0 2px 2px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.2),inset 1px 0 0 0 rgba(0,0,0,.2),inset -1px 0 0 0 rgba(0,0,0,.2);font-size:13px;padding:12px 16px;position:relative}.components-color-palette__custom-color-name{color:var(--wp-components-color-foreground,#1e1e1e);margin:0 1px}.components-color-palette__custom-color-value{color:#757575}.components-color-palette__custom-color-value--is-hex{text-transform:uppercase}.components-color-palette__custom-color-value:empty:after{content:"​";visibility:hidden}.components-custom-gradient-picker:not(.is-next-has-no-margin){margin-bottom:24px;margin-top:12px}.components-custom-gradient-picker__gradient-bar{border-radius:2px;height:48px;position:relative;width:100%;z-index:1}.components-custom-gradient-picker__gradient-bar.has-gradient{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,12px 12px;background-size:24px 24px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__gradient-bar-background{inset:0;position:absolute}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container{margin-left:auto;margin-right:auto;position:relative;width:calc(100% - 48px)}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown{display:flex;height:16px;position:absolute;top:16px;width:16px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown{background:#fff;border-radius:50%;color:#1e1e1e;height:inherit;min-width:16px;padding:2px;position:relative;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown svg{height:100%;width:100%}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button{border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 2px 0 rgba(0,0,0,.25);height:inherit;outline:2px solid transparent;padding:0;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active,.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button:focus{box-shadow:inset 0 0 0 calc(var(--wp-admin-border-width-focus)*2) #fff,0 0 2px 0 rgba(0,0,0,.25);outline:1.5px solid transparent}.components-custom-gradient-picker__remove-control-point-wrapper{padding-bottom:8px}.components-custom-gradient-picker__inserter{direction:ltr}.components-custom-gradient-picker__liner-gradient-indicator{display:inline-block;flex:0 auto;height:20px;width:20px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar{border:none}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar>div+div{margin-left:1px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed>svg{background:#fff;border:1px solid #949494;border-radius:2px}.components-custom-gradient-picker__ui-line{position:relative;z-index:0}.components-custom-select-control{font-size:13px;position:relative}.components-custom-select-control__button{outline:0;position:relative;text-align:left}.components-custom-select-control__hint{color:#949494;margin-left:10px}.components-custom-select-control__menu{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;max-height:400px;min-width:100%;outline:none;overflow:auto;padding:0;position:absolute;transition:none;z-index:1000000}.components-custom-select-control__menu[aria-hidden=true]{display:none}.components-custom-select-control__item{align-items:center;cursor:default;display:grid;grid-template-columns:auto auto;line-height:28px;list-style-type:none;padding:8px 16px}.components-custom-select-control__item:not(.is-next-40px-default-size){padding:8px}.components-custom-select-control__item.has-hint{grid-template-columns:auto auto 30px}.components-custom-select-control__item.is-highlighted{background:#ddd}.components-custom-select-control__item .components-custom-select-control__item-hint{color:#949494;padding-right:4px;text-align:right}.components-custom-select-control__item .components-custom-select-control__item-icon{margin-left:auto}.components-custom-select-control__item:last-child{margin-bottom:0}.block-editor-dimension-control .components-base-control__field{align-items:center;display:flex}.block-editor-dimension-control .components-base-control__label{align-items:center;display:flex;margin-bottom:0;margin-right:1em}.block-editor-dimension-control .components-base-control__label .dashicon{margin-right:.5em}.block-editor-dimension-control.is-manual .components-base-control__label{width:10em}body.is-dragging-components-draggable{cursor:move;cursor:grabbing!important}.components-draggable__invisible-drag-image{height:50px;left:-1000px;position:fixed;width:50px}.components-draggable__clone{background:transparent;padding:0;pointer-events:none;position:fixed;z-index:1000000000}.components-drop-zone{border-radius:2px;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;visibility:hidden;z-index:40}.components-drop-zone.is-active{opacity:1;visibility:visible}.components-drop-zone__content{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));bottom:0;color:#fff;display:flex;height:100%;justify-content:center;left:0;position:absolute;right:0;text-align:center;top:0;width:100%;z-index:50}.components-drop-zone__content-icon,.components-drop-zone__content-text{display:block}.components-drop-zone__content-icon{fill:currentColor;line-height:0;margin:0 auto 8px;pointer-events:none}.components-drop-zone__content-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-dropdown{display:inline-block}.components-dropdown__content .components-popover__content{padding:8px}.components-dropdown__content [role=menuitem]{white-space:nowrap}.components-dropdown-menu__toggle{vertical-align:top}.components-dropdown-menu__menu{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item,.components-dropdown-menu__menu .components-menu-item{cursor:pointer;outline:none;padding:6px;white-space:nowrap;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,.components-dropdown-menu__menu .components-menu-item.has-separator{margin-top:6px;overflow:visible;position:relative}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator:before,.components-dropdown-menu__menu .components-menu-item.has-separator:before{background-color:#ddd;box-sizing:content-box;content:"";display:block;height:1px;left:0;position:absolute;right:0;top:-3px}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,.components-dropdown-menu__menu .components-menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-menu-item.is-active svg{background:#1e1e1e;border-radius:1px;box-shadow:0 0 0 1px #1e1e1e;color:#fff}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-icon-only,.components-dropdown-menu__menu .components-menu-item.is-icon-only{width:auto}.components-dropdown-menu__menu .components-menu-item__button,.components-dropdown-menu__menu .components-menu-item__button.components-button{height:auto;min-height:36px;padding-left:8px;padding-right:8px;text-align:left}.components-dropdown-menu__menu .components-menu-group{margin:0 -8px;padding:8px}.components-dropdown-menu__menu .components-menu-group:first-child{margin-top:-8px}.components-dropdown-menu__menu .components-menu-group:last-child{margin-bottom:-8px}.components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-top:1px solid #ccc;margin-top:0;padding:8px}.is-alternate .components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-color:#1e1e1e}.components-duotone-picker__color-indicator:before{background:transparent}.components-duotone-picker__color-indicator>.components-button,.components-duotone-picker__color-indicator>.components-button.is-pressed:hover:not(:disabled){background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);color:transparent}.components-duotone-picker__color-indicator>.components-button:not([aria-disabled=true]):active{color:transparent}.components-color-list-picker,.components-color-list-picker__swatch-button{width:100%}.components-color-list-picker__color-picker{margin:8px 0}.components-color-list-picker__swatch-button{padding:6px}.components-color-list-picker__swatch-color{margin:2px}.components-form-toggle{display:inline-block;position:relative}.components-form-toggle .components-form-toggle__track{background-color:#fff;border:1px solid #1e1e1e;border-radius:9px;box-sizing:border-box;content:"";display:inline-block;height:18px;overflow:hidden;position:relative;transition:background-color .2s ease,border-color .2s ease;vertical-align:top;width:36px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__track:after{border-top:18px solid transparent;box-sizing:border-box;content:"";inset:0;opacity:0;position:absolute;transition:opacity .2s ease}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track:after{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__thumb{background-color:#1e1e1e;border:6px solid transparent;border-radius:50%;box-sizing:border-box;display:block;height:12px;left:3px;position:absolute;top:3px;transition:transform .2s ease,background-color .2s ease-out;width:12px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__thumb{transition-delay:0s;transition-duration:0s}}.components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-toggle.is-checked .components-form-toggle__track:after{opacity:1}.components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;outline-offset:2px}.components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(18px)}.components-disabled .components-form-toggle,.components-form-toggle.is-disabled{opacity:.3}.components-form-toggle input.components-form-toggle__input[type=checkbox]{border:none;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:none}.components-form-toggle input.components-form-toggle__input[type=checkbox]:before{content:""}.components-form-token-field__input-container{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;cursor:text;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-form-token-field__input-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-form-token-field__input-container{font-size:13px;line-height:normal}}.components-form-token-field__input-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-form-token-field__input-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container.is-disabled{background:#ddd;border-color:#ddd}.components-form-token-field__input-container.is-active{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container input[type=text].components-form-token-field__input{background:inherit;border:0;box-shadow:none;color:#1e1e1e;display:inline-block;flex:1;font-family:inherit;font-size:16px;margin-left:4px;max-width:100%;min-height:24px;min-width:50px;padding:0;width:100%}@media (min-width:600px){.components-form-token-field__input-container input[type=text].components-form-token-field__input{font-size:13px}}.components-form-token-field.is-active .components-form-token-field__input-container input[type=text].components-form-token-field__input,.components-form-token-field__input-container input[type=text].components-form-token-field__input:focus{box-shadow:none;outline:none}.components-form-token-field__input-container .components-form-token-field__token+input[type=text].components-form-token-field__input{width:auto}.components-form-token-field__token{color:#1e1e1e;display:flex;font-size:13px;max-width:100%}.components-form-token-field__token.is-success .components-form-token-field__remove-token,.components-form-token-field__token.is-success .components-form-token-field__token-text{background:#4ab866}.components-form-token-field__token.is-error .components-form-token-field__remove-token,.components-form-token-field__token.is-error .components-form-token-field__token-text{background:#cc1818}.components-form-token-field__token.is-validating .components-form-token-field__remove-token,.components-form-token-field__token.is-validating .components-form-token-field__token-text{color:#757575}.components-form-token-field__token.is-borderless{padding:0 24px 0 0;position:relative}.components-form-token-field__token.is-borderless .components-form-token-field__token-text{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-token-field__token.is-borderless .components-form-token-field__remove-token{background:transparent;color:#757575;padding:0;position:absolute;right:0;top:1px}.components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text{color:#4ab866}.components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text{border-radius:4px 0 0 4px;color:#cc1818;padding:0 4px 0 6px}.components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text{color:#1e1e1e}.components-form-token-field__token.is-disabled .components-form-token-field__remove-token{cursor:default}.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{background:#ddd;display:inline-block;height:auto;line-height:24px;min-width:unset;transition:all .2s cubic-bezier(.4,1,.4,1)}@media (prefers-reduced-motion:reduce){.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.components-form-token-field__token-text{border-radius:2px 0 0 2px;overflow:hidden;padding:0 0 0 8px;text-overflow:ellipsis;white-space:nowrap}.components-form-token-field__remove-token.components-button{border-radius:0 2px 2px 0;color:#1e1e1e;cursor:pointer;line-height:10px;overflow:initial;padding:0 2px}.components-form-token-field__remove-token.components-button:hover{color:#1e1e1e}.components-form-token-field__suggestions-list{box-shadow:inset 0 1px 0 0 #949494;flex:1 0 100%;list-style:none;margin:0;max-height:128px;min-width:100%;overflow-y:auto;padding:0;transition:all .15s ease-in-out}@media (prefers-reduced-motion:reduce){.components-form-token-field__suggestions-list{transition-delay:0s;transition-duration:0s}}.components-form-token-field__suggestion{box-sizing:border-box;color:#1e1e1e;cursor:pointer;display:block;font-size:13px;margin:0;min-height:32px;padding:8px 12px}.components-form-token-field__suggestion.is-selected{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:#fff}@media (min-width:600px){.components-guide{width:600px}}.components-guide .components-modal__content{border-radius:2px;margin-top:0;padding:0}.components-guide .components-modal__content:before{content:none}.components-guide .components-modal__header{border-bottom:none;height:60px;padding:0;position:sticky}.components-guide .components-modal__header .components-button{align-self:flex-start;margin:8px 8px 0 0;position:static}.components-guide .components-modal__header .components-button:hover svg{fill:#fff}.components-guide__container{display:flex;flex-direction:column;justify-content:space-between;margin-top:-60px;min-height:100%}.components-guide__page{display:flex;flex-direction:column;justify-content:center;position:relative}@media (min-width:600px){.components-guide__page{min-height:300px}}.components-guide__footer{align-content:center;display:flex;height:36px;justify-content:center;margin:0 0 24px;padding:0 32px;position:relative;width:100%}.components-guide__page-control{margin:0;text-align:center}.components-guide__page-control li{display:inline-block;margin:0}.components-guide__page-control .components-button{color:#e0e0e0;height:30px;margin:-6px 0;min-width:20px}.components-guide__page-control li[aria-current=step] .components-button{color:var(--wp-components-color-accent,var(--wp-admin-theme-color))}.components-modal__frame.components-guide{border:none;max-height:575px;min-width:312px}@media (max-width:600px){.components-modal__frame.components-guide{margin:auto;max-width:calc(100vw - 32px)}}.components-button.components-guide__back-button,.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{position:absolute}.components-button.components-guide__back-button{left:32px}.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{right:32px}[role=region]{position:relative}.is-focusing-regions [role=region]:focus:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1000000}.is-focusing-regions .editor-post-publish-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-entities-saved-states-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-publish-panel,.is-focusing-regions .interface-interface-skeleton__sidebar .edit-post-layout__toggle-sidebar-panel,.is-focusing-regions [role=region]:focus:after,.is-focusing-regions.is-distraction-free .interface-interface-skeleton__header .edit-post-header{outline:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-offset:-4px}.components-menu-group+.components-menu-group{border-top:1px solid #1e1e1e;margin-top:8px;padding-top:8px}.components-menu-group+.components-menu-group.has-hidden-separator{border-top:none;margin-top:0;padding-top:0}.components-menu-group__label{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;padding:0 8px;text-transform:uppercase;white-space:nowrap}.components-menu-item__button,.components-menu-item__button.components-button{width:100%}.components-menu-item__button.components-button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button.components-button[role=menuitemradio] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemradio] .components-menu-item__item:only-child{box-sizing:initial;padding-right:48px}.components-menu-item__button .components-menu-items__item-icon,.components-menu-item__button.components-button .components-menu-items__item-icon{display:inline-block;flex:0 0 auto}.components-menu-item__button .components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-items__item-icon.has-icon-right{margin-left:24px;margin-right:-2px}.components-menu-item__button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right{margin-left:8px}.components-menu-item__button .block-editor-block-icon,.components-menu-item__button.components-button .block-editor-block-icon{margin-left:-2px;margin-right:8px}.components-menu-item__button.components-button.is-primary,.components-menu-item__button.is-primary{justify-content:center}.components-menu-item__button.components-button.is-primary .components-menu-item__item,.components-menu-item__button.is-primary .components-menu-item__item{margin-right:0}.components-menu-item__button.components-button:disabled.is-tertiary,.components-menu-item__button.components-button[aria-disabled=true].is-tertiary,.components-menu-item__button:disabled.is-tertiary,.components-menu-item__button[aria-disabled=true].is-tertiary{background:none;color:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));opacity:.3}.components-menu-item__info-wrapper{display:flex;flex-direction:column;margin-right:auto}.components-menu-item__info{color:#757575;font-size:12px;margin-top:4px;white-space:normal}.components-menu-item__item{align-items:center;display:inline-flex;margin-right:auto;min-width:160px;white-space:nowrap}.components-menu-item__shortcut{align-self:center;color:currentColor;display:none;margin-left:auto;margin-right:0;padding-left:24px}@media (min-width:480px){.components-menu-item__shortcut{display:inline}}.components-menu-items-choice svg,.components-menu-items-choice.components-button svg{margin-right:12px}.components-menu-items-choice.components-button.has-icon,.components-menu-items-choice.has-icon{padding-left:12px}.components-modal__screen-overlay{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;background-color:rgba(0,0,0,.35);bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:100000}@media (prefers-reduced-motion:reduce){.components-modal__screen-overlay{animation-delay:0s;animation-duration:1ms}}.components-modal__frame{animation:components-modal__appear-animation .1s ease-out;animation-fill-mode:forwards;background:#fff;border-radius:4px 4px 0 0;box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);display:flex;margin:40px 0 0;overflow:hidden;width:100%}@media (prefers-reduced-motion:reduce){.components-modal__frame{animation-delay:0s;animation-duration:1ms}}@media (min-width:600px){.components-modal__frame{border-radius:4px;margin:auto;max-height:calc(100% - 120px);max-width:calc(100% - 32px);min-width:350px;width:auto}}@media (min-width:600px) and (min-width:600px){.components-modal__frame.is-full-screen{height:calc(100% - 32px);max-height:none;width:calc(100% - 32px)}}@media (min-width:600px) and (min-width:782px){.components-modal__frame.is-full-screen{height:calc(100% - 80px);max-width:none;width:calc(100% - 80px)}}@media (min-width:600px){.components-modal__frame.has-size-large,.components-modal__frame.has-size-medium,.components-modal__frame.has-size-small{width:100%}.components-modal__frame.has-size-small{max-width:384px}.components-modal__frame.has-size-medium{max-width:512px}.components-modal__frame.has-size-large{max-width:840px}}@media (min-width:960px){.components-modal__frame{max-height:70%}}@keyframes components-modal__appear-animation{0%{transform:translateY(32px)}to{transform:translateY(0)}}.components-modal__header{align-items:center;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;flex-direction:row;height:72px;justify-content:space-between;left:0;padding:24px 32px 8px;position:absolute;top:0;width:100%;z-index:10}.components-modal__header .components-modal__header-heading{font-size:1.2rem;font-weight:600}.components-modal__header h1{line-height:1;margin:0}.components-modal__header .components-button{left:8px;position:relative}.components-modal__content.has-scrolled-content:not(.hide-header) .components-modal__header{border-bottom-color:#ddd}.components-modal__header+p{margin-top:0}.components-modal__header-heading-container{align-items:center;display:flex;flex-direction:row;flex-grow:1;justify-content:left}.components-modal__header-icon-container{display:inline-block}.components-modal__header-icon-container svg{max-height:36px;max-width:36px;padding:8px}.components-modal__content{flex:1;margin-top:72px;overflow:auto;padding:4px 32px 32px}.components-modal__content.hide-header{margin-top:0;padding-top:32px}.components-modal__content.is-scrollable:focus-visible{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.components-notice{align-items:center;background-color:#fff;border-left:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:8px 12px}.components-notice.is-dismissible{position:relative}.components-notice.is-success{background-color:#eff9f1;border-left-color:#4ab866}.components-notice.is-warning{background-color:#fef8ee;border-left-color:#f0b849}.components-notice.is-error{background-color:#f4a2a2;border-left-color:#cc1818}.components-notice__content{flex-grow:1;margin:4px 25px 4px 0}.components-notice__actions{display:flex;flex-wrap:wrap}.components-notice__action.components-button{margin-right:8px}.components-notice__action.components-button,.components-notice__action.components-button.is-link{margin-left:12px}.components-notice__action.components-button.is-secondary{vertical-align:initial}.components-notice__dismiss{align-self:flex-start;color:#757575;flex-shrink:0}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{background-color:transparent;color:#1e1e1e}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}.components-notice-list{box-sizing:border-box;max-width:100vw}.components-notice-list .components-notice__content{line-height:2;margin-bottom:12px;margin-top:12px}.components-notice-list .components-notice__action.components-button{display:block;margin-left:0;margin-top:8px}.components-panel{background:#fff;border:1px solid #e0e0e0}.components-panel>.components-panel__body:first-child,.components-panel>.components-panel__header:first-child{margin-top:-1px}.components-panel>.components-panel__body:last-child,.components-panel>.components-panel__header:last-child{border-bottom-width:0}.components-panel+.components-panel{margin-top:-1px}.components-panel__body{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.components-panel__body h3{margin:0 0 .5em}.components-panel__body.is-opened{padding:16px}.components-panel__header{align-items:center;border-bottom:1px solid #ddd;box-sizing:content-box;display:flex;height:47px;justify-content:space-between;padding:0 16px}.components-panel__header h2{color:inherit;font-size:inherit;margin:0}.components-panel__body+.components-panel__body,.components-panel__body+.components-panel__header,.components-panel__header+.components-panel__body,.components-panel__header+.components-panel__header{margin-top:-1px}.components-panel__body>.components-panel__body-title{display:block;font-size:inherit;margin-bottom:0;margin-top:0;padding:0;transition:background .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body>.components-panel__body-title{transition-delay:0s;transition-duration:0s}}.components-panel__body.is-opened>.components-panel__body-title{margin:-16px -16px 5px}.components-panel__body>.components-panel__body-title:hover{background:#f0f0f0;border:none}.components-panel__body-toggle.components-button{border:none;box-shadow:none;color:#1e1e1e;font-weight:500;height:auto;outline:none;padding:16px 48px 16px 16px;position:relative;text-align:left;transition:background .1s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button{transition-delay:0s;transition-duration:0s}}.components-panel__body-toggle.components-button:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-panel__body-toggle.components-button .components-panel__arrow{fill:currentColor;color:#1e1e1e;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button .components-panel__arrow{transition-delay:0s;transition-duration:0s}}body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right{-ms-filter:fliph;filter:FlipH;margin-top:-10px;transform:scaleX(-1)}.components-panel__icon{color:#757575;margin:-2px 0 -2px 6px}.components-panel__body-toggle-icon{margin-right:-5px}.components-panel__color-title{float:left;height:19px}.components-panel__row{align-items:center;display:flex;justify-content:space-between;margin-top:8px;min-height:36px}.components-panel__row select{min-width:0}.components-panel__row label{flex-shrink:0;margin-right:12px;max-width:75%}.components-panel__row:empty,.components-panel__row:first-of-type{margin-top:0}.components-panel .circle-picker{padding-bottom:20px}.components-placeholder.components-placeholder{-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;box-sizing:border-box;color:#1e1e1e;margin:0;outline:1px solid transparent;padding:1em;position:relative;text-align:left;width:100%}@supports (position:sticky){.components-placeholder.components-placeholder{align-items:flex-start;display:flex;flex-direction:column;justify-content:top}}.components-placeholder__error,.components-placeholder__fieldset,.components-placeholder__instructions,.components-placeholder__label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__label{align-items:center;display:flex;font-weight:600;margin-bottom:16px}.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:currentColor;margin-right:12px}@media (forced-colors:active){.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:CanvasText}}.components-placeholder__label:empty{display:none}.components-placeholder__fieldset,.components-placeholder__fieldset form{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.components-placeholder__fieldset form p,.components-placeholder__fieldset p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__fieldset.is-column-layout,.components-placeholder__fieldset.is-column-layout form{flex-direction:column}.components-placeholder__input[type=url]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;flex:1 1 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin:0 8px 0 0;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder__input[type=url]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-placeholder__input[type=url]{font-size:13px;line-height:normal}}.components-placeholder__input[type=url]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-placeholder__input[type=url]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__input[type=url]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-placeholder__input[type=url]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__instructions{margin-bottom:1em}.components-placeholder__error{margin-top:1em;width:100%}.components-placeholder__fieldset .components-button{margin-bottom:12px;margin-right:12px}.components-placeholder__fieldset .components-button:last-child{margin-bottom:0;margin-right:0}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link{margin-left:10px;margin-right:10px}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link:last-child{margin-right:0}.components-placeholder.is-large .components-placeholder__label{font-size:18pt;font-weight:400}.components-placeholder.is-medium .components-placeholder__instructions,.components-placeholder.is-small .components-placeholder__instructions{display:none}.components-placeholder.is-medium .components-placeholder__fieldset,.components-placeholder.is-medium .components-placeholder__fieldset form,.components-placeholder.is-small .components-placeholder__fieldset,.components-placeholder.is-small .components-placeholder__fieldset form{flex-direction:column}.components-placeholder.is-medium .components-placeholder__fieldset .components-button,.components-placeholder.is-small .components-placeholder__fieldset .components-button{margin-right:auto}.components-placeholder.is-small .components-button{padding:0 8px 2px}.components-placeholder .components-placeholder__learn-more .components-external-link{color:var(--wp-admin-theme-color)}.components-placeholder.has-illustration{-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);backface-visibility:hidden;background-color:transparent;border-radius:2px;box-shadow:none;color:inherit;display:flex;overflow:auto}.is-dark-theme .components-placeholder.has-illustration{background-color:rgba(0,0,0,.1)}.components-placeholder.has-illustration .components-placeholder__fieldset{margin-left:0;margin-right:0;width:auto}.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{opacity:0;pointer-events:none;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{transition-delay:0s;transition-duration:0s}}.is-selected>.components-placeholder.has-illustration .components-button,.is-selected>.components-placeholder.has-illustration .components-placeholder__instructions,.is-selected>.components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.components-placeholder.has-illustration:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.components-placeholder__preview{display:flex;justify-content:center}.components-placeholder__illustration{stroke:currentColor;box-sizing:content-box;height:100%;left:50%;opacity:.25;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.components-popover{will-change:transform;z-index:1000000}.components-popover.is-expanded{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000000!important}.components-popover__content{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #ccc,0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;width:min-content}.is-alternate .components-popover__content{box-shadow:0 0 0 1px #1e1e1e}.is-unstyled .components-popover__content{background:none;border-radius:0;box-shadow:none}.components-popover.is-expanded .components-popover__content{box-shadow:0 -1px 0 0 #ccc;height:calc(100% - 48px);overflow-y:visible;position:static;width:auto}.components-popover.is-expanded.is-alternate .components-popover__content{box-shadow:0 -1px 0 #1e1e1e}.components-popover__header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;padding:0 8px 0 16px}.components-popover__header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.components-popover__close.components-button{z-index:5}.components-popover__arrow{display:flex;height:14px;pointer-events:none;position:absolute;width:14px}.components-popover__arrow:before{background-color:#fff;content:"";height:2px;left:1px;position:absolute;right:1px;top:-1px}.components-popover__arrow.is-top{bottom:-14px!important;transform:rotate(0)}.components-popover__arrow.is-right{left:-14px!important;transform:rotate(90deg)}.components-popover__arrow.is-bottom{top:-14px!important;transform:rotate(180deg)}.components-popover__arrow.is-left{right:-14px!important;transform:rotate(-90deg)}.components-popover__triangle{display:block;flex:1}.components-popover__triangle-bg{fill:#fff}.components-popover__triangle-border{fill:transparent;stroke-width:1px;stroke:#ccc}.is-alternate .components-popover__triangle-border{stroke:#1e1e1e}.components-popover-pointer-events-trap{background-color:transparent;inset:0;position:fixed;z-index:1000000}.components-radio-control__option{align-items:center;display:flex}.components-radio-control__input[type=radio]{-webkit-appearance:none;appearance:none;border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin:0 6px 0 0;padding:0;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.components-radio-control__input[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-radio-control__input[type=radio]{font-size:13px;line-height:normal}}.components-radio-control__input[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-radio-control__input[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-radio-control__input[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-radio-control__input[type=radio]{height:20px;width:20px}}.components-radio-control__input[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(7px,7px);width:8px}@media (min-width:600px){.components-radio-control__input[type=radio]:checked:before{transform:translate(5px,5px)}}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.components-radio-control__input[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px var(--wp-components-color-background,#fff),0 0 0 4px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-radio-control__input[type=radio]:checked{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-radio-control__input[type=radio]:checked:before{border-radius:50%;content:""}.components-radio-control__label{cursor:pointer}.components-resizable-box__handle{display:none;height:23px;width:23px;z-index:2}.components-resizable-box__container.has-show-handle .components-resizable-box__handle{display:block}.components-resizable-box__container>img{width:inherit}.components-resizable-box__handle:after{background:#fff;border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));content:"";cursor:inherit;display:block;height:15px;outline:2px solid transparent;position:absolute;right:calc(50% - 8px);top:calc(50% - 8px);width:15px}.components-resizable-box__side-handle:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:2px;content:"";cursor:inherit;display:block;height:3px;opacity:0;position:absolute;right:calc(50% - 1px);top:calc(50% - 1px);transition:transform .1s ease-in;width:3px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle:before{transition-delay:0s;transition-duration:0s}}.components-resizable-box__corner-handle,.components-resizable-box__side-handle{z-index:2}.components-resizable-box__side-handle.components-resizable-box__handle-bottom,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:before,.components-resizable-box__side-handle.components-resizable-box__handle-top,.components-resizable-box__side-handle.components-resizable-box__handle-top:before{border-left:0;border-right:0;left:0;width:100%}.components-resizable-box__side-handle.components-resizable-box__handle-left,.components-resizable-box__side-handle.components-resizable-box__handle-left:before,.components-resizable-box__side-handle.components-resizable-box__handle-right,.components-resizable-box__side-handle.components-resizable-box__handle-right:before{border-bottom:0;border-top:0;height:100%;top:0}.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:components-resizable-box__top-bottom-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation-delay:0s;animation-duration:1ms}}.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation:components-resizable-box__left-right-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation-delay:0s;animation-duration:1ms}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:none}}}@keyframes components-resizable-box__top-bottom-animation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes components-resizable-box__left-right-animation{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}} +@charset "UTF-8";:root{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-animate__appear{animation:components-animate__appear-animation .1s cubic-bezier(0,0,.2,1) 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__appear{animation-delay:0s;animation-duration:1ms}}.components-animate__appear.is-from-top,.components-animate__appear.is-from-top.is-from-left{transform-origin:top left}.components-animate__appear.is-from-top.is-from-right{transform-origin:top right}.components-animate__appear.is-from-bottom,.components-animate__appear.is-from-bottom.is-from-left{transform-origin:bottom left}.components-animate__appear.is-from-bottom.is-from-right{transform-origin:bottom right}@keyframes components-animate__appear-animation{0%{transform:translateY(-2em) scaleY(0) scaleX(0)}to{transform:translateY(0) scaleY(1) scaleX(1)}}.components-animate__slide-in{animation:components-animate__slide-in-animation .1s cubic-bezier(0,0,.2,1);animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-animate__slide-in{animation-delay:0s;animation-duration:1ms}}.components-animate__slide-in.is-from-left{transform:translateX(100%)}.components-animate__slide-in.is-from-right{transform:translateX(-100%)}@keyframes components-animate__slide-in-animation{to{transform:translateX(0)}}.components-animate__loading{animation:components-animate__loading 1.6s ease-in-out infinite}@keyframes components-animate__loading{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.components-autocomplete__popover .components-popover__content{min-width:220px;padding:16px}.components-autocomplete__result.components-button{display:flex;height:auto;min-height:36px;text-align:left;width:100%}.components-autocomplete__result.components-button.is-selected{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button-group{display:inline-block}.components-button-group .components-button{border-radius:0;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;display:inline-flex}.components-button-group .components-button+.components-button{margin-left:-1px}.components-button-group .components-button:first-child{border-radius:2px 0 0 2px}.components-button-group .components-button:last-child{border-radius:0 2px 2px 0}.components-button-group .components-button.is-primary,.components-button-group .components-button:focus{position:relative;z-index:1}.components-button-group .components-button.is-primary{box-shadow:inset 0 0 0 1px #1e1e1e}.components-button{align-items:center;-webkit-appearance:none;background:none;border:0;border-radius:2px;box-sizing:border-box;color:var(--wp-components-color-foreground,#1e1e1e);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:400;height:36px;margin:0;padding:6px 12px;text-decoration:none;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-button{transition-delay:0s;transition-duration:0s}}.components-button.is-next-40px-default-size{height:40px}.components-button:hover,.components-button[aria-expanded=true]{color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button:disabled:hover,.components-button[aria-disabled=true]:hover{color:initial}.components-button:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:3px solid transparent}.components-button.is-primary{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff);outline:1px solid transparent;text-decoration:none;text-shadow:none;white-space:nowrap}.components-button.is-primary:hover:not(:disabled){background:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:active:not(:disabled){background:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));border-color:var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary:disabled,.components-button.is-primary:disabled:active:enabled,.components-button.is-primary[aria-disabled=true],.components-button.is-primary[aria-disabled=true]:active:enabled,.components-button.is-primary[aria-disabled=true]:enabled{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:hsla(0,0%,100%,.4);opacity:1;outline:none}.components-button.is-primary:disabled:active:enabled:focus:enabled,.components-button.is-primary:disabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:enabled:focus:enabled,.components-button.is-primary[aria-disabled=true]:focus:enabled{box-shadow:0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 3px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(-45deg,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 33%,var(--wp-components-color-accent-darker-20,var(--wp-admin-theme-color-darker-20,#183ad6)) 70%,var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9)) 70%);background-size:100px 100%;border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent-inverted,#fff)}.components-button.is-secondary,.components-button.is-tertiary{outline:1px solid transparent}.components-button.is-secondary:active:not(:disabled),.components-button.is-tertiary:active:not(:disabled){box-shadow:none}.components-button.is-secondary:disabled,.components-button.is-secondary[aria-disabled=true],.components-button.is-secondary[aria-disabled=true]:hover,.components-button.is-tertiary:disabled,.components-button.is-tertiary[aria-disabled=true],.components-button.is-tertiary[aria-disabled=true]:hover{background:transparent;box-shadow:none;color:#949494;opacity:1;outline:none;transform:none}.components-button.is-secondary{background:transparent;box-shadow:inset 0 0 0 1px var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:1px solid transparent;white-space:nowrap}.components-button.is-secondary:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6))}.components-button.is-tertiary{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));white-space:nowrap}.components-button.is-tertiary:hover:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.04)}.components-button.is-tertiary:active:not(:disabled,[aria-disabled=true]){background:rgba(var(--wp-admin-theme-color--rgb),.08)}p+.components-button.is-tertiary{margin-left:-6px}.components-button.is-destructive{--wp-components-color-accent:#cc1818;--wp-components-color-accent-darker-10:#9e1313;--wp-components-color-accent-darker-20:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link){color:#cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):hover:not(:disabled){color:#710d0d}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) #cc1818}.components-button.is-destructive:not(.is-primary):not(.is-secondary):not(.is-tertiary):not(.is-link):active:not(:disabled){background:#ccc}.components-button.is-link{background:none;border:0;border-radius:0;box-shadow:none;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));height:auto;margin:0;outline:none;padding:0;text-align:left;text-decoration:underline;transition-duration:.05s;transition-property:border,background,color;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.components-button.is-link{transition-delay:0s;transition-duration:0s}}.components-button.is-link:focus{border-radius:2px}.components-button:not(:disabled,[aria-disabled=true]):active{color:var(--wp-components-color-foreground,#1e1e1e)}.components-button:disabled,.components-button[aria-disabled=true]{cursor:default;opacity:.3}.components-button.is-busy,.components-button.is-secondary.is-busy,.components-button.is-secondary.is-busy:disabled,.components-button.is-secondary.is-busy[aria-disabled=true]{animation:components-button__busy-animation 2.5s linear infinite;background-image:linear-gradient(-45deg,#fafafa 33%,#e0e0e0 0,#e0e0e0 70%,#fafafa 0);background-size:100px 100%;opacity:1}.components-button.is-compact{height:32px}.components-button.is-compact.has-icon:not(.has-text){min-width:32px;padding:0;width:32px}.components-button.is-small{font-size:11px;height:24px;line-height:22px;padding:0 8px}.components-button.is-small.has-icon:not(.has-text){min-width:24px;padding:0;width:24px}.components-button.has-icon{justify-content:center;min-width:36px;padding:6px}.components-button.has-icon.is-next-40px-default-size{min-width:40px}.components-button.has-icon .dashicon{align-items:center;box-sizing:content-box;display:inline-flex;justify-content:center;padding:2px}.components-button.has-icon.has-text{gap:4px;justify-content:start;padding-left:8px;padding-right:12px}.components-button.is-pressed{background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-button.is-pressed:hover:not(:disabled){background:var(--wp-components-color-foreground,#1e1e1e);color:var(--wp-components-color-foreground-inverted,#fff)}.components-button svg{fill:currentColor;outline:none}@media (forced-colors:active){.components-button svg{fill:CanvasText}}.components-button .components-visually-hidden{height:auto}@keyframes components-button__busy-animation{0%{background-position:200px 0}}.components-checkbox-control__input[type=checkbox]{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #1e1e1e;border-radius:2px;box-shadow:0 0 0 transparent;clear:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;line-height:0;margin:0 4px 0 0;outline:0;padding:6px 8px;padding:0!important;text-align:center;transition:box-shadow .1s linear;transition:none;transition:border-color .1s ease-in-out;vertical-align:top;width:24px}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{font-size:13px;line-height:normal}}.components-checkbox-control__input[type=checkbox]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-checkbox-control__input[type=checkbox]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox]:checked::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{color:#fff;margin:-3px -5px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox]:checked:before,.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{margin:-4px 0 0 -5px}}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;float:left;font:normal 30px/1 dashicons;vertical-align:middle;width:16px}@media (min-width:782px){.components-checkbox-control__input[type=checkbox][aria-checked=mixed]:before{float:none;font-size:21px}}@media (min-width:600px){.components-checkbox-control__input[type=checkbox]{height:20px;width:20px}}@media (prefers-reduced-motion:reduce){.components-checkbox-control__input[type=checkbox]{transition-delay:0s;transition-duration:0s}}.components-checkbox-control__input[type=checkbox]:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:2px}.components-checkbox-control__input[type=checkbox]:checked,.components-checkbox-control__input[type=checkbox]:indeterminate{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-checkbox-control__input[type=checkbox]:checked::-ms-check,.components-checkbox-control__input[type=checkbox]:indeterminate::-ms-check{opacity:0}.components-checkbox-control__input[type=checkbox]:checked:before{content:none}.components-checkbox-control__input-container{display:inline-block;height:24px;margin-right:12px;position:relative;vertical-align:middle;width:24px}@media (min-width:600px){.components-checkbox-control__input-container{height:20px;width:20px}}svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{fill:#fff;cursor:pointer;height:24px;left:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:24px}@media (min-width:600px){svg.components-checkbox-control__checked,svg.components-checkbox-control__indeterminate{left:-2px;top:-2px}}.components-circular-option-picker{display:inline-block;min-width:188px;width:100%}.components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper{display:flex;justify-content:flex-end;margin-top:12px}.components-circular-option-picker .components-circular-option-picker__swatches{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.components-circular-option-picker>:not(.components-circular-option-picker__swatches){position:relative;z-index:0}.components-circular-option-picker__option-wrapper{display:inline-block;height:28px;transform:scale(1);transition:transform .1s ease;vertical-align:top;width:28px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option-wrapper{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option-wrapper:hover{transform:scale(1.2)}.components-circular-option-picker__option-wrapper>div{height:100%;width:100%}.components-circular-option-picker__option-wrapper:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'%3E%3Cpath fill='%23555D65' d='M6 8V6H4v2h2zm2 0V6h2v2H8zm2 8H8v-2h2v2zm2 0v-2h2v2h-2zm0 2v-2h-2v2H8v2h2v-2h2zm2 0v2h-2v-2h2zm2 0h-2v-2h2v2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' d='M18 18v2h-2v-2h2z'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z' clip-rule='evenodd'/%3E%3Cpath fill='%23555D65' fill-rule='evenodd' d='M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z' clip-rule='evenodd'/%3E%3C/svg%3E");border-radius:50%;bottom:1px;content:"";left:1px;position:absolute;right:1px;top:1px;z-index:-1}.components-circular-option-picker__option{background:transparent;border:none;border-radius:50%;box-shadow:inset 0 0 0 14px;cursor:pointer;display:inline-block;height:100%;transition:box-shadow .1s ease;vertical-align:top;width:100%}@media (prefers-reduced-motion:reduce){.components-circular-option-picker__option{transition-delay:0s;transition-duration:0s}}.components-circular-option-picker__option:hover{box-shadow:inset 0 0 0 14px!important}.components-circular-option-picker__option.is-pressed{box-shadow:inset 0 0 0 4px;overflow:visible;position:relative;z-index:1}.components-circular-option-picker__option.is-pressed+svg{border-radius:50%;left:2px;pointer-events:none;position:absolute;top:2px;z-index:2}.components-circular-option-picker__option:after{border:1px solid transparent;border-radius:50%;bottom:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:inherit;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.components-circular-option-picker__option:focus:after{border:2px solid #757575;border-radius:50%;box-shadow:inset 0 0 0 2px #fff;content:"";height:calc(100% + 4px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:calc(100% + 4px)}.components-circular-option-picker__option.components-button:focus{background-color:transparent;box-shadow:inset 0 0 0 14px;outline:none}.components-circular-option-picker__button-action .components-circular-option-picker__option{background:#fff;color:#fff}.components-circular-option-picker__dropdown-link-action{margin-right:16px}.components-circular-option-picker__dropdown-link-action .components-button{line-height:22px}.components-palette-edit__popover-gradient-picker{padding:8px;width:280px}.components-dropdown-menu__menu .components-palette-edit__menu-button{width:100%}.component-color-indicator{background:#fff linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);display:inline-block;height:20px;padding:0;width:20px}.components-combobox-control{width:100%}input.components-combobox-control__input[type=text]{border:none;box-shadow:none;font-family:inherit;font-size:16px;line-height:inherit;margin:0;min-height:auto;padding:2px;width:100%}@media (min-width:600px){input.components-combobox-control__input[type=text]{font-size:13px}}input.components-combobox-control__input[type=text]:focus{box-shadow:none;outline:none}.components-combobox-control__suggestions-container{align-items:flex-start;border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-combobox-control__suggestions-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-combobox-control__suggestions-container{font-size:13px;line-height:normal}}.components-combobox-control__suggestions-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__suggestions-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-combobox-control__suggestions-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-combobox-control__suggestions-container:focus-within{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-combobox-control__reset.components-button{display:flex;height:16px;min-width:16px;padding:0}.components-color-palette__custom-color-wrapper{position:relative;z-index:0}.components-color-palette__custom-color-button{background:none;border:none;border-radius:2px 2px 0 0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-sizing:border-box;cursor:pointer;height:64px;outline:1px solid transparent;position:relative;width:100%}.components-color-palette__custom-color-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-width:2px}.components-color-palette__custom-color-button:after{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,24px 24px;background-size:48px 48px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.components-color-palette__custom-color-text-wrapper{border-radius:0 0 2px 2px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.2),inset 1px 0 0 0 rgba(0,0,0,.2),inset -1px 0 0 0 rgba(0,0,0,.2);font-size:13px;padding:12px 16px;position:relative}.components-color-palette__custom-color-name{color:var(--wp-components-color-foreground,#1e1e1e);margin:0 1px}.components-color-palette__custom-color-value{color:#757575}.components-color-palette__custom-color-value--is-hex{text-transform:uppercase}.components-color-palette__custom-color-value:empty:after{content:"​";visibility:hidden}.components-custom-gradient-picker:not(.is-next-has-no-margin){margin-bottom:24px;margin-top:12px}.components-custom-gradient-picker__gradient-bar{border-radius:2px;height:48px;position:relative;width:100%;z-index:1}.components-custom-gradient-picker__gradient-bar.has-gradient{background-image:repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0),repeating-linear-gradient(45deg,#e0e0e0 25%,transparent 0,transparent 75%,#e0e0e0 0,#e0e0e0);background-position:0 0,12px 12px;background-size:24px 24px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__gradient-bar-background{inset:0;position:absolute}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container{margin-left:auto;margin-right:auto;position:relative;width:calc(100% - 48px)}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown{display:flex;height:16px;position:absolute;top:16px;width:16px}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown{background:#fff;border-radius:50%;color:#1e1e1e;height:inherit;min-width:16px;padding:2px;position:relative;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown svg{height:100%;width:100%}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button{border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 2px 0 rgba(0,0,0,.25);height:inherit;outline:2px solid transparent;padding:0;width:inherit}.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active,.components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button:focus{box-shadow:inset 0 0 0 calc(var(--wp-admin-border-width-focus)*2) #fff,0 0 2px 0 rgba(0,0,0,.25);outline:1.5px solid transparent}.components-custom-gradient-picker__remove-control-point-wrapper{padding-bottom:8px}.components-custom-gradient-picker__inserter{direction:ltr}.components-custom-gradient-picker__liner-gradient-indicator{display:inline-block;flex:0 auto;height:20px;width:20px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar{border:none}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar>div+div{margin-left:1px}.components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed>svg{background:#fff;border:1px solid #949494;border-radius:2px}.components-custom-gradient-picker__ui-line{position:relative;z-index:0}.components-custom-select-control{font-size:13px;position:relative}.components-custom-select-control__button{outline:0;position:relative;text-align:left}.components-custom-select-control__hint{color:#949494;margin-left:10px}.components-custom-select-control__menu{background-color:#fff;border:1px solid #1e1e1e;border-radius:2px;max-height:400px;min-width:100%;outline:none;overflow:auto;padding:0;position:absolute;transition:none;z-index:1000000}.components-custom-select-control__menu[aria-hidden=true]{display:none}.components-custom-select-control__item{align-items:center;cursor:default;display:grid;grid-template-columns:auto auto;line-height:28px;list-style-type:none;padding:8px 16px}.components-custom-select-control__item:not(.is-next-36px-default-size){padding:8px}.components-custom-select-control__item.has-hint{grid-template-columns:auto auto 30px}.components-custom-select-control__item.is-highlighted{background:#ddd}.components-custom-select-control__item .components-custom-select-control__item-hint{color:#949494;padding-right:4px;text-align:right}.components-custom-select-control__item .components-custom-select-control__item-icon{margin-left:auto}.components-custom-select-control__item:last-child{margin-bottom:0}.block-editor-dimension-control .components-base-control__field{align-items:center;display:flex}.block-editor-dimension-control .components-base-control__label{align-items:center;display:flex;margin-bottom:0;margin-right:1em}.block-editor-dimension-control .components-base-control__label .dashicon{margin-right:.5em}.block-editor-dimension-control.is-manual .components-base-control__label{width:10em}body.is-dragging-components-draggable{cursor:move;cursor:grabbing!important}.components-draggable__invisible-drag-image{height:50px;left:-1000px;position:fixed;width:50px}.components-draggable__clone{background:transparent;padding:0;pointer-events:none;position:fixed;z-index:1000000000}.components-drop-zone{border-radius:2px;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;visibility:hidden;z-index:40}.components-drop-zone.is-active{opacity:1;visibility:visible}.components-drop-zone__content{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));bottom:0;color:#fff;display:flex;height:100%;justify-content:center;left:0;position:absolute;right:0;text-align:center;top:0;width:100%;z-index:50}.components-drop-zone__content-icon,.components-drop-zone__content-text{display:block}.components-drop-zone__content-icon{fill:currentColor;line-height:0;margin:0 auto 8px;pointer-events:none}.components-drop-zone__content-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-dropdown{display:inline-block}.components-dropdown__content .components-popover__content{padding:8px}.components-dropdown__content [role=menuitem]{white-space:nowrap}.components-dropdown-menu__menu{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item,.components-dropdown-menu__menu .components-menu-item{cursor:pointer;outline:none;padding:6px;white-space:nowrap;width:100%}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,.components-dropdown-menu__menu .components-menu-item.has-separator{margin-top:6px;overflow:visible;position:relative}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator:before,.components-dropdown-menu__menu .components-menu-item.has-separator:before{background-color:#ddd;box-sizing:content-box;content:"";display:block;height:1px;left:0;position:absolute;right:0;top:-3px}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,.components-dropdown-menu__menu .components-menu-item.is-active .dashicon,.components-dropdown-menu__menu .components-menu-item.is-active svg{background:#1e1e1e;border-radius:1px;box-shadow:0 0 0 1px #1e1e1e;color:#fff}.components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-icon-only,.components-dropdown-menu__menu .components-menu-item.is-icon-only{width:auto}.components-dropdown-menu__menu .components-menu-item__button,.components-dropdown-menu__menu .components-menu-item__button.components-button{height:auto;min-height:36px;padding-left:8px;padding-right:8px;text-align:left}.components-dropdown-menu__menu .components-menu-group{margin:0 -8px;padding:8px}.components-dropdown-menu__menu .components-menu-group:first-child{margin-top:-8px}.components-dropdown-menu__menu .components-menu-group:last-child{margin-bottom:-8px}.components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-top:1px solid #ccc;margin-top:0;padding:8px}.is-alternate .components-dropdown-menu__menu .components-menu-group+.components-menu-group{border-color:#1e1e1e}.components-duotone-picker__color-indicator:before{background:transparent}.components-duotone-picker__color-indicator>.components-button,.components-duotone-picker__color-indicator>.components-button.is-pressed:hover:not(:disabled){background:linear-gradient(-45deg,transparent 48%,#ddd 0,#ddd 52%,transparent 0);color:transparent}.components-duotone-picker__color-indicator>.components-button:not([aria-disabled=true]):active{color:transparent}.components-color-list-picker,.components-color-list-picker__swatch-button{width:100%}.components-color-list-picker__color-picker{margin:8px 0}.components-color-list-picker__swatch-button{padding:6px}.components-color-list-picker__swatch-color{margin:2px}.components-form-toggle{display:inline-block;position:relative}.components-form-toggle .components-form-toggle__track{background-color:#fff;border:1px solid #1e1e1e;border-radius:9px;box-sizing:border-box;content:"";display:inline-block;height:18px;transition:background .2s ease;vertical-align:top;width:36px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__track{transition-delay:0s;transition-duration:0s}}.components-form-toggle .components-form-toggle__thumb{background-color:#1e1e1e;border:5px solid #1e1e1e;border-radius:50%;box-sizing:border-box;display:block;height:12px;left:3px;position:absolute;top:3px;transition:transform .1s ease;width:12px}@media (prefers-reduced-motion:reduce){.components-form-toggle .components-form-toggle__thumb{transition-delay:0s;transition-duration:0s}}.components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border:9px solid transparent}.components-form-toggle .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 0 calc(var(--wp-admin-border-width-focus)*2) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent;outline-offset:2px}.components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(18px)}.components-disabled .components-form-toggle,.components-form-toggle.is-disabled{opacity:.3}.components-form-toggle input.components-form-toggle__input[type=checkbox]{border:none;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:none}.components-form-toggle input.components-form-toggle__input[type=checkbox]:before{content:""}.components-form-token-field__input-container{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;cursor:text;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:0;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-form-token-field__input-container{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-form-token-field__input-container{font-size:13px;line-height:normal}}.components-form-token-field__input-container:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-form-token-field__input-container:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-form-token-field__input-container.is-disabled{background:#ddd;border-color:#ddd}.components-form-token-field__input-container.is-active{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-form-token-field__input-container input[type=text].components-form-token-field__input{background:inherit;border:0;box-shadow:none;color:#1e1e1e;display:inline-block;flex:1;font-family:inherit;font-size:16px;margin-left:4px;max-width:100%;min-height:24px;min-width:50px;padding:0;width:100%}@media (min-width:600px){.components-form-token-field__input-container input[type=text].components-form-token-field__input{font-size:13px}}.components-form-token-field.is-active .components-form-token-field__input-container input[type=text].components-form-token-field__input,.components-form-token-field__input-container input[type=text].components-form-token-field__input:focus{box-shadow:none;outline:none}.components-form-token-field__input-container .components-form-token-field__token+input[type=text].components-form-token-field__input{width:auto}.components-form-token-field__token{color:#1e1e1e;display:flex;font-size:13px;max-width:100%}.components-form-token-field__token.is-success .components-form-token-field__remove-token,.components-form-token-field__token.is-success .components-form-token-field__token-text{background:#4ab866}.components-form-token-field__token.is-error .components-form-token-field__remove-token,.components-form-token-field__token.is-error .components-form-token-field__token-text{background:#cc1818}.components-form-token-field__token.is-validating .components-form-token-field__remove-token,.components-form-token-field__token.is-validating .components-form-token-field__token-text{color:#757575}.components-form-token-field__token.is-borderless{padding:0 24px 0 0;position:relative}.components-form-token-field__token.is-borderless .components-form-token-field__token-text{background:transparent;color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-form-token-field__token.is-borderless .components-form-token-field__remove-token{background:transparent;color:#757575;padding:0;position:absolute;right:0;top:1px}.components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text{color:#4ab866}.components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text{border-radius:4px 0 0 4px;color:#cc1818;padding:0 4px 0 6px}.components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text{color:#1e1e1e}.components-form-token-field__token.is-disabled .components-form-token-field__remove-token{cursor:default}.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{background:#ddd;display:inline-block;height:auto;line-height:24px;min-width:unset;transition:all .2s cubic-bezier(.4,1,.4,1)}@media (prefers-reduced-motion:reduce){.components-form-token-field__remove-token.components-button,.components-form-token-field__token-text{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.components-form-token-field__token-text{border-radius:2px 0 0 2px;overflow:hidden;padding:0 0 0 8px;text-overflow:ellipsis;white-space:nowrap}.components-form-token-field__remove-token.components-button{border-radius:0 2px 2px 0;color:#1e1e1e;cursor:pointer;line-height:10px;overflow:initial;padding:0 2px}.components-form-token-field__remove-token.components-button:hover{color:#1e1e1e}.components-form-token-field__suggestions-list{box-shadow:inset 0 1px 0 0 #949494;flex:1 0 100%;list-style:none;margin:0;max-height:128px;min-width:100%;overflow-y:auto;transition:all .15s ease-in-out}@media (prefers-reduced-motion:reduce){.components-form-token-field__suggestions-list{transition-delay:0s;transition-duration:0s}}.components-form-token-field__suggestion{color:#1e1e1e;cursor:pointer;display:block;font-size:13px;margin:0;min-height:32px;padding:8px 12px}.components-form-token-field__suggestion.is-selected{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));color:#fff}@media (min-width:600px){.components-guide{width:600px}}.components-guide .components-modal__content{border-radius:2px;margin-top:0;padding:0}.components-guide .components-modal__content:before{content:none}.components-guide .components-modal__header{border-bottom:none;height:60px;padding:0;position:sticky}.components-guide .components-modal__header .components-button{align-self:flex-start;margin:8px 8px 0 0;position:static}.components-guide .components-modal__header .components-button:hover svg{fill:#fff}.components-guide__container{display:flex;flex-direction:column;justify-content:space-between;margin-top:-60px;min-height:100%}.components-guide__page{display:flex;flex-direction:column;justify-content:center;position:relative}@media (min-width:600px){.components-guide__page{min-height:300px}}.components-guide__footer{align-content:center;display:flex;height:36px;justify-content:center;margin:0 0 24px;padding:0 32px;position:relative;width:100%}.components-guide__page-control{margin:0;text-align:center}.components-guide__page-control li{display:inline-block;margin:0}.components-guide__page-control .components-button{color:#e0e0e0;height:30px;margin:-6px 0;min-width:20px}.components-guide__page-control li[aria-current=step] .components-button{color:var(--wp-components-color-accent,var(--wp-admin-theme-color))}.components-modal__frame.components-guide{border:none;max-height:575px;min-width:312px}@media (max-width:600px){.components-modal__frame.components-guide{margin:auto;max-width:calc(100vw - 32px)}}.components-button.components-guide__back-button,.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{position:absolute}.components-button.components-guide__back-button{left:32px}.components-button.components-guide__finish-button,.components-button.components-guide__forward-button{right:32px}[role=region]{position:relative}.is-focusing-regions [role=region]:focus:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1000000}.is-focusing-regions .editor-post-publish-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-entities-saved-states-panel,.is-focusing-regions .interface-interface-skeleton__actions .edit-post-layout__toggle-publish-panel,.is-focusing-regions .interface-interface-skeleton__sidebar .edit-post-layout__toggle-sidebar-panel,.is-focusing-regions [role=region]:focus:after,.is-focusing-regions.is-distraction-free .interface-interface-skeleton__header .edit-post-header{outline:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline-offset:-4px}.components-menu-group+.components-menu-group{border-top:1px solid #1e1e1e;margin-top:8px;padding-top:8px}.components-menu-group+.components-menu-group.has-hidden-separator{border-top:none;margin-top:0;padding-top:0}.components-menu-group__label{color:#757575;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;padding:0 8px;text-transform:uppercase;white-space:nowrap}.components-menu-item__button,.components-menu-item__button.components-button{width:100%}.components-menu-item__button.components-button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button.components-button[role=menuitemradio] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemcheckbox] .components-menu-item__item:only-child,.components-menu-item__button[role=menuitemradio] .components-menu-item__item:only-child{box-sizing:initial;padding-right:48px}.components-menu-item__button .components-menu-items__item-icon,.components-menu-item__button.components-button .components-menu-items__item-icon{display:inline-block;flex:0 0 auto}.components-menu-item__button .components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-items__item-icon.has-icon-right{margin-left:24px;margin-right:-2px}.components-menu-item__button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right,.components-menu-item__button.components-button .components-menu-item__shortcut+.components-menu-items__item-icon.has-icon-right{margin-left:8px}.components-menu-item__button .block-editor-block-icon,.components-menu-item__button.components-button .block-editor-block-icon{margin-left:-2px;margin-right:8px}.components-menu-item__button.components-button.is-primary,.components-menu-item__button.is-primary{justify-content:center}.components-menu-item__button.components-button.is-primary .components-menu-item__item,.components-menu-item__button.is-primary .components-menu-item__item{margin-right:0}.components-menu-item__button.components-button:disabled.is-tertiary,.components-menu-item__button.components-button[aria-disabled=true].is-tertiary,.components-menu-item__button:disabled.is-tertiary,.components-menu-item__button[aria-disabled=true].is-tertiary{background:none;color:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));opacity:.3}.components-menu-item__info-wrapper{display:flex;flex-direction:column;margin-right:auto}.components-menu-item__info{color:#757575;font-size:12px;margin-top:4px;white-space:normal}.components-menu-item__item{align-items:center;display:inline-flex;margin-right:auto;min-width:160px;white-space:nowrap}.components-menu-item__shortcut{align-self:center;color:currentColor;display:none;margin-left:auto;margin-right:0;padding-left:24px}@media (min-width:480px){.components-menu-item__shortcut{display:inline}}.components-menu-items-choice svg,.components-menu-items-choice.components-button svg{margin-right:12px}.components-menu-items-choice.components-button.has-icon,.components-menu-items-choice.has-icon{padding-left:12px}.components-modal__screen-overlay{animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards;background-color:rgba(0,0,0,.35);bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:100000}@media (prefers-reduced-motion:reduce){.components-modal__screen-overlay{animation-delay:0s;animation-duration:1ms}}.components-modal__frame{animation:components-modal__appear-animation .1s ease-out;animation-fill-mode:forwards;background:#fff;border-radius:4px 4px 0 0;box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);display:flex;margin:40px 0 0;overflow:hidden;width:100%}@media (prefers-reduced-motion:reduce){.components-modal__frame{animation-delay:0s;animation-duration:1ms}}@media (min-width:600px){.components-modal__frame{border-radius:4px;margin:auto;max-height:calc(100% - 120px);max-width:calc(100% - 32px);min-width:350px;width:auto}}@media (min-width:600px) and (min-width:600px){.components-modal__frame.is-full-screen{height:calc(100% - 32px);max-height:none;width:calc(100% - 32px)}}@media (min-width:600px) and (min-width:782px){.components-modal__frame.is-full-screen{height:calc(100% - 80px);max-width:none;width:calc(100% - 80px)}}@media (min-width:960px){.components-modal__frame{max-height:70%}}@keyframes components-modal__appear-animation{0%{transform:translateY(32px)}to{transform:translateY(0)}}.components-modal__header{align-items:center;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;flex-direction:row;height:72px;justify-content:space-between;left:0;padding:24px 32px 8px;position:absolute;top:0;width:100%;z-index:10}.components-modal__header .components-modal__header-heading{font-size:1.2rem;font-weight:600}.components-modal__header h1{line-height:1;margin:0}.components-modal__header .components-button{left:8px;position:relative}.components-modal__content.has-scrolled-content:not(.hide-header) .components-modal__header{border-bottom-color:#ddd}.components-modal__header+p{margin-top:0}.components-modal__header-heading-container{align-items:center;display:flex;flex-direction:row;flex-grow:1;justify-content:left}.components-modal__header-icon-container{display:inline-block}.components-modal__header-icon-container svg{max-height:36px;max-width:36px;padding:8px}.components-modal__content{flex:1;margin-top:72px;overflow:auto;padding:4px 32px 32px}.components-modal__content.hide-header{margin-top:0;padding-top:32px}.components-modal__content.is-scrollable:focus-visible{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.components-notice{align-items:center;background-color:#fff;border-left:4px solid var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:5px 15px 2px;padding:8px 12px}.components-notice.is-dismissible{position:relative}.components-notice.is-success{background-color:#eff9f1;border-left-color:#4ab866}.components-notice.is-warning{background-color:#fef8ee;border-left-color:#f0b849}.components-notice.is-error{background-color:#f4a2a2;border-left-color:#cc1818}.components-notice__content{flex-grow:1;margin:4px 25px 4px 0}.components-notice__actions{display:flex;flex-wrap:wrap}.components-notice__action.components-button{margin-right:8px}.components-notice__action.components-button,.components-notice__action.components-button.is-link{margin-left:12px}.components-notice__action.components-button.is-secondary{vertical-align:initial}.components-notice__dismiss{align-self:flex-start;color:#757575;flex-shrink:0}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{background-color:transparent;color:#1e1e1e}.components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}.components-notice-list{box-sizing:border-box;max-width:100vw}.components-notice-list .components-notice__content{line-height:2;margin-bottom:12px;margin-top:12px}.components-notice-list .components-notice__action.components-button{display:block;margin-left:0;margin-top:8px}.components-panel{background:#fff;border:1px solid #e0e0e0}.components-panel>.components-panel__body:first-child,.components-panel>.components-panel__header:first-child{margin-top:-1px}.components-panel>.components-panel__body:last-child,.components-panel>.components-panel__header:last-child{border-bottom-width:0}.components-panel+.components-panel{margin-top:-1px}.components-panel__body{border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.components-panel__body h3{margin:0 0 .5em}.components-panel__body.is-opened{padding:16px}.components-panel__header{align-items:center;border-bottom:1px solid #ddd;box-sizing:content-box;display:flex;height:47px;justify-content:space-between;padding:0 16px}.components-panel__header h2{color:inherit;font-size:inherit;margin:0}.components-panel__body+.components-panel__body,.components-panel__body+.components-panel__header,.components-panel__header+.components-panel__body,.components-panel__header+.components-panel__header{margin-top:-1px}.components-panel__body>.components-panel__body-title{display:block;font-size:inherit;margin-bottom:0;margin-top:0;padding:0;transition:background .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body>.components-panel__body-title{transition-delay:0s;transition-duration:0s}}.components-panel__body.is-opened>.components-panel__body-title{margin:-16px -16px 5px}.components-panel__body>.components-panel__body-title:hover{background:#f0f0f0;border:none}.components-panel__body-toggle.components-button{border:none;box-shadow:none;color:#1e1e1e;font-weight:500;height:auto;outline:none;padding:16px 48px 16px 16px;position:relative;text-align:left;transition:background .1s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button{transition-delay:0s;transition-duration:0s}}.components-panel__body-toggle.components-button:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-panel__body-toggle.components-button .components-panel__arrow{fill:currentColor;color:#1e1e1e;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.components-panel__body-toggle.components-button .components-panel__arrow{transition-delay:0s;transition-duration:0s}}body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right{-ms-filter:fliph;filter:FlipH;margin-top:-10px;transform:scaleX(-1)}.components-panel__icon{color:#757575;margin:-2px 0 -2px 6px}.components-panel__body-toggle-icon{margin-right:-5px}.components-panel__color-title{float:left;height:19px}.components-panel__row{align-items:center;display:flex;justify-content:space-between;margin-top:8px;min-height:36px}.components-panel__row select{min-width:0}.components-panel__row label{flex-shrink:0;margin-right:12px;max-width:75%}.components-panel__row:empty,.components-panel__row:first-of-type{margin-top:0}.components-panel .circle-picker{padding-bottom:20px}.components-placeholder.components-placeholder{-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;box-sizing:border-box;color:#1e1e1e;margin:0;outline:1px solid transparent;padding:1em;position:relative;text-align:left;width:100%}@supports (position:sticky){.components-placeholder.components-placeholder{align-items:flex-start;display:flex;flex-direction:column;justify-content:top}}.components-placeholder__error,.components-placeholder__fieldset,.components-placeholder__instructions,.components-placeholder__label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__label{align-items:center;display:flex;font-weight:600;margin-bottom:16px}.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:currentColor;margin-right:12px}@media (forced-colors:active){.components-placeholder__label .block-editor-block-icon,.components-placeholder__label .dashicon,.components-placeholder__label>svg{fill:CanvasText}}.components-placeholder__label:empty{display:none}.components-placeholder__fieldset,.components-placeholder__fieldset form{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.components-placeholder__fieldset form p,.components-placeholder__fieldset p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.components-placeholder__fieldset.is-column-layout,.components-placeholder__fieldset.is-column-layout form{flex-direction:column}.components-placeholder__input[type=url]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;flex:1 1 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin:0 8px 0 0;padding:6px 8px;transition:box-shadow .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder__input[type=url]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-placeholder__input[type=url]{font-size:13px;line-height:normal}}.components-placeholder__input[type=url]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-placeholder__input[type=url]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__input[type=url]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-placeholder__input[type=url]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-placeholder__instructions{margin-bottom:1em}.components-placeholder__error{margin-top:1em;width:100%}.components-placeholder__fieldset .components-button{margin-bottom:12px;margin-right:12px}.components-placeholder__fieldset .components-button:last-child{margin-bottom:0;margin-right:0}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link{margin-left:10px;margin-right:10px}.components-placeholder__fieldset .components-button:not(.is-link)~.components-button.is-link:last-child{margin-right:0}.components-placeholder.is-large .components-placeholder__label{font-size:18pt;font-weight:400}.components-placeholder.is-medium .components-placeholder__instructions,.components-placeholder.is-small .components-placeholder__instructions{display:none}.components-placeholder.is-medium .components-placeholder__fieldset,.components-placeholder.is-medium .components-placeholder__fieldset form,.components-placeholder.is-small .components-placeholder__fieldset,.components-placeholder.is-small .components-placeholder__fieldset form{flex-direction:column}.components-placeholder.is-medium .components-placeholder__fieldset .components-button,.components-placeholder.is-small .components-placeholder__fieldset .components-button{margin-right:auto}.components-placeholder.is-small .components-button{padding:0 8px 2px}.components-placeholder .components-placeholder__learn-more .components-external-link{color:var(--wp-admin-theme-color)}.components-placeholder.has-illustration{-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);backface-visibility:hidden;background-color:transparent;border-radius:2px;box-shadow:none;color:inherit;display:flex;overflow:auto}.is-dark-theme .components-placeholder.has-illustration{background-color:rgba(0,0,0,.1)}.components-placeholder.has-illustration .components-placeholder__fieldset{margin-left:0;margin-right:0;width:auto}.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{opacity:0;pointer-events:none;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.components-placeholder.has-illustration .components-button,.components-placeholder.has-illustration .components-placeholder__instructions,.components-placeholder.has-illustration .components-placeholder__label{transition-delay:0s;transition-duration:0s}}.is-selected>.components-placeholder.has-illustration .components-button,.is-selected>.components-placeholder.has-illustration .components-placeholder__instructions,.is-selected>.components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.components-placeholder.has-illustration:before{background:currentColor;bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.components-placeholder__preview{display:flex;justify-content:center}.components-placeholder__illustration{stroke:currentColor;box-sizing:content-box;height:100%;left:50%;opacity:.25;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.components-popover{will-change:transform;z-index:1000000}.components-popover.is-expanded{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000000!important}.components-popover__content{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #ccc,0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;width:min-content}.is-alternate .components-popover__content{box-shadow:0 0 0 1px #1e1e1e}.is-unstyled .components-popover__content{background:none;border-radius:0;box-shadow:none}.components-popover.is-expanded .components-popover__content{box-shadow:0 -1px 0 0 #ccc;height:calc(100% - 48px);overflow-y:visible;position:static;width:auto}.components-popover.is-expanded.is-alternate .components-popover__content{box-shadow:0 -1px 0 #1e1e1e}.components-popover__header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;padding:0 8px 0 16px}.components-popover__header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.components-popover__close.components-button{z-index:5}.components-popover__arrow{display:flex;height:14px;pointer-events:none;position:absolute;width:14px}.components-popover__arrow:before{background-color:#fff;content:"";height:2px;left:1px;position:absolute;right:1px;top:-1px}.components-popover__arrow.is-top{bottom:-14px!important;transform:rotate(0)}.components-popover__arrow.is-right{left:-14px!important;transform:rotate(90deg)}.components-popover__arrow.is-bottom{top:-14px!important;transform:rotate(180deg)}.components-popover__arrow.is-left{right:-14px!important;transform:rotate(-90deg)}.components-popover__triangle{display:block;flex:1}.components-popover__triangle-bg{fill:#fff}.components-popover__triangle-border{fill:transparent;stroke-width:1px;stroke:#ccc}.is-alternate .components-popover__triangle-border{stroke:#1e1e1e}.components-radio-control__input[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-right:6px;margin-top:0;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.components-radio-control__input[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-radio-control__input[type=radio]{font-size:13px;line-height:normal}}.components-radio-control__input[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.components-radio-control__input[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-radio-control__input[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-radio-control__input[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-radio-control__input[type=radio]{height:20px;width:20px}}.components-radio-control__input[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(7px,7px);width:8px}@media (min-width:600px){.components-radio-control__input[type=radio]:checked:before{transform:translate(5px,5px)}}.components-radio-control__input[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.components-radio-control__input[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.components-resizable-box__handle{display:none;height:23px;width:23px;z-index:2}.components-resizable-box__container.has-show-handle .components-resizable-box__handle{display:block}.components-resizable-box__container>img{width:inherit}.components-resizable-box__handle:after{background:#fff;border-radius:50%;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));content:"";cursor:inherit;display:block;height:15px;outline:2px solid transparent;position:absolute;right:calc(50% - 8px);top:calc(50% - 8px);width:15px}.components-resizable-box__side-handle:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:2px;content:"";cursor:inherit;display:block;height:3px;opacity:0;position:absolute;right:calc(50% - 1px);top:calc(50% - 1px);transition:transform .1s ease-in;width:3px;will-change:transform}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle:before{transition-delay:0s;transition-duration:0s}}.components-resizable-box__corner-handle,.components-resizable-box__side-handle{z-index:2}.components-resizable-box__side-handle.components-resizable-box__handle-bottom,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:before,.components-resizable-box__side-handle.components-resizable-box__handle-top,.components-resizable-box__side-handle.components-resizable-box__handle-top:before{border-left:0;border-right:0;left:0;width:100%}.components-resizable-box__side-handle.components-resizable-box__handle-left,.components-resizable-box__side-handle.components-resizable-box__handle-left:before,.components-resizable-box__side-handle.components-resizable-box__handle-right,.components-resizable-box__side-handle.components-resizable-box__handle-right:before{border-bottom:0;border-top:0;height:100%;top:0}.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:components-resizable-box__top-bottom-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation-delay:0s;animation-duration:1ms}}.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation:components-resizable-box__left-right-animation .1s ease-out 0s;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before{animation-delay:0s;animation-duration:1ms}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-left:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-right:hover:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:active:before,.components-resizable-box__side-handle.components-resizable-box__handle-top:hover:before{animation:none}}}@keyframes components-resizable-box__top-bottom-animation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes components-resizable-box__left-right-animation{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}} /*!rtl:begin:ignore*/.components-resizable-box__handle-right{right:-11.5px}.components-resizable-box__handle-left{left:-11.5px}.components-resizable-box__handle-top{top:-11.5px}.components-resizable-box__handle-bottom{bottom:-11.5px} -/*!rtl:end:ignore*/.components-responsive-wrapper{align-items:center;display:flex;justify-content:center;max-width:100%;position:relative}.components-responsive-wrapper__content{display:block;max-width:100%;width:100%}.components-sandbox{overflow:hidden}iframe.components-sandbox{width:100%}body.lockscroll,html.lockscroll{overflow:hidden}.components-search-control{position:relative}.components-search-control input[type=search].components-search-control__input{background:#f0f0f0;border:none;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:48px;line-height:normal;margin-left:0;margin-right:0;padding:0 48px 0 16px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-search-control input[type=search].components-search-control__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px;line-height:normal}}.components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-search-control input[type=search].components-search-control__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-search-control input[type=search].components-search-control__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-search-control input[type=search].components-search-control__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px}}.components-search-control input[type=search].components-search-control__input:focus{background:#fff;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-search-control input[type=search].components-search-control__input::placeholder{color:#757575}.components-search-control input[type=search].components-search-control__input::-webkit-search-cancel-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-decoration,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-decoration{-webkit-appearance:none}.components-search-control.is-next-40px-default-size input[type=search].components-search-control__input{height:40px}.components-search-control.is-size-compact input[type=search].components-search-control__input{height:32px;padding-left:8px;padding-right:32px}.components-search-control__icon{align-items:center;display:flex;justify-content:center;position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px}.is-size-compact .components-search-control__icon{right:4px}.components-search-control__input-wrapper{position:relative}.components-select-control__input{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;outline:0}@media (max-width:782px){.components-base-control .components-base-control__field .components-select-control__input{font-size:16px}}.components-snackbar{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:rgba(0,0,0,.85);border-radius:2px;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;max-width:600px;padding:12px 20px;pointer-events:auto;width:100%}@media (min-width:600px){.components-snackbar{width:-moz-fit-content;width:fit-content}}.components-snackbar:focus{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-snackbar.components-snackbar-explicit-dismiss{cursor:default}.components-snackbar .components-snackbar__content-with-icon{padding-left:24px;position:relative}.components-snackbar .components-snackbar__icon{left:-8px;position:absolute;top:-2.9px}.components-snackbar .components-snackbar__dismiss-button{cursor:pointer;margin-left:24px}.components-snackbar__action.components-button{color:#fff;flex-shrink:0;height:auto;line-height:1.4;margin-left:32px;padding:0}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary){background-color:transparent;text-decoration:underline}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):focus{box-shadow:none;color:#fff;outline:1px dotted #fff}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff;text-decoration:none}.components-snackbar__content{align-items:baseline;display:flex;justify-content:space-between;line-height:1.4}.components-snackbar-list{box-sizing:border-box;pointer-events:none;position:absolute;width:100%;z-index:100000}.components-snackbar-list__notice-container{padding-top:8px;position:relative}.components-tab-panel__tabs{align-items:stretch;display:flex;flex-direction:row}.components-tab-panel__tabs[aria-orientation=vertical]{flex-direction:column}.components-tab-panel__tabs-item{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-tab-panel__tabs-item:after{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:after{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-tab-panel__tabs-item:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:before{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:32px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{font-size:13px;line-height:normal}}.components-text-control__input:focus,.components-text-control__input[type=color]:focus,.components-text-control__input[type=date]:focus,.components-text-control__input[type=datetime-local]:focus,.components-text-control__input[type=datetime]:focus,.components-text-control__input[type=email]:focus,.components-text-control__input[type=month]:focus,.components-text-control__input[type=number]:focus,.components-text-control__input[type=password]:focus,.components-text-control__input[type=tel]:focus,.components-text-control__input[type=text]:focus,.components-text-control__input[type=time]:focus,.components-text-control__input[type=url]:focus,.components-text-control__input[type=week]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-text-control__input::-webkit-input-placeholder,.components-text-control__input[type=color]::-webkit-input-placeholder,.components-text-control__input[type=date]::-webkit-input-placeholder,.components-text-control__input[type=datetime-local]::-webkit-input-placeholder,.components-text-control__input[type=datetime]::-webkit-input-placeholder,.components-text-control__input[type=email]::-webkit-input-placeholder,.components-text-control__input[type=month]::-webkit-input-placeholder,.components-text-control__input[type=number]::-webkit-input-placeholder,.components-text-control__input[type=password]::-webkit-input-placeholder,.components-text-control__input[type=tel]::-webkit-input-placeholder,.components-text-control__input[type=text]::-webkit-input-placeholder,.components-text-control__input[type=time]::-webkit-input-placeholder,.components-text-control__input[type=url]::-webkit-input-placeholder,.components-text-control__input[type=week]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input::-moz-placeholder,.components-text-control__input[type=color]::-moz-placeholder,.components-text-control__input[type=date]::-moz-placeholder,.components-text-control__input[type=datetime-local]::-moz-placeholder,.components-text-control__input[type=datetime]::-moz-placeholder,.components-text-control__input[type=email]::-moz-placeholder,.components-text-control__input[type=month]::-moz-placeholder,.components-text-control__input[type=number]::-moz-placeholder,.components-text-control__input[type=password]::-moz-placeholder,.components-text-control__input[type=tel]::-moz-placeholder,.components-text-control__input[type=text]::-moz-placeholder,.components-text-control__input[type=time]::-moz-placeholder,.components-text-control__input[type=url]::-moz-placeholder,.components-text-control__input[type=week]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input.is-next-40px-default-size,.components-text-control__input[type=color].is-next-40px-default-size,.components-text-control__input[type=date].is-next-40px-default-size,.components-text-control__input[type=datetime-local].is-next-40px-default-size,.components-text-control__input[type=datetime].is-next-40px-default-size,.components-text-control__input[type=email].is-next-40px-default-size,.components-text-control__input[type=month].is-next-40px-default-size,.components-text-control__input[type=number].is-next-40px-default-size,.components-text-control__input[type=password].is-next-40px-default-size,.components-text-control__input[type=tel].is-next-40px-default-size,.components-text-control__input[type=text].is-next-40px-default-size,.components-text-control__input[type=time].is-next-40px-default-size,.components-text-control__input[type=url].is-next-40px-default-size,.components-text-control__input[type=week].is-next-40px-default-size{height:40px}.components-tip{color:#757575;display:flex}.components-tip svg{fill:#f0b849;align-self:center;flex-shrink:0;margin-right:16px}.components-tip p{margin:0}.components-accessible-toolbar{border:1px solid #1e1e1e;border-radius:2px;display:inline-flex;flex-shrink:0}.components-accessible-toolbar>.components-toolbar-group:last-child{border-right:none}.components-accessible-toolbar.is-unstyled{border:none}.components-accessible-toolbar.is-unstyled>.components-toolbar-group{border-right:none}.components-accessible-toolbar .components-button,.components-toolbar .components-button{height:48px;padding-left:16px;padding-right:16px;position:relative;z-index:1}.components-accessible-toolbar .components-button:focus:not(:disabled),.components-toolbar .components-button:focus:not(:disabled){box-shadow:none;outline:none}.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation-delay:0s;animation-duration:1ms}}.components-accessible-toolbar .components-button svg,.components-toolbar .components-button svg{margin-left:auto;margin-right:auto;position:relative}.components-accessible-toolbar .components-button.is-pressed,.components-accessible-toolbar .components-button.is-pressed:hover,.components-toolbar .components-button.is-pressed,.components-toolbar .components-button.is-pressed:hover{background:transparent}.components-accessible-toolbar .components-button.is-pressed:before,.components-toolbar .components-button.is-pressed:before{background:#1e1e1e}.components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{box-shadow:inset 0 0 0 1px var(--wp-components-color-background,#fff),0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{min-width:48px;padding-left:12px;padding-right:12px}.components-accessible-toolbar .components-button.components-tab-button,.components-toolbar .components-button.components-tab-button{font-weight:500}.components-accessible-toolbar .components-button.components-tab-button span,.components-toolbar .components-button.components-tab-button span{display:inline-block;padding-left:0;padding-right:0;position:relative}@keyframes components-button__appear-animation{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.components-toolbar__control.components-button{position:relative}.components-toolbar__control.components-button[data-subscript] svg{padding:5px 10px 5px 0}.components-toolbar__control.components-button[data-subscript]:after{bottom:10px;content:attr(data-subscript);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;line-height:12px;position:absolute;right:8px}.components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{color:#fff}.components-toolbar-group{background-color:#fff;border-right:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;line-height:0;min-height:48px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-toolbar-group.components-toolbar-group{border-width:0;margin:0}.components-toolbar-group .components-button.components-button,.components-toolbar-group .components-button.has-icon.has-icon{min-width:36px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-button.components-button svg,.components-toolbar-group .components-button.has-icon.has-icon svg{min-width:24px}.components-toolbar-group .components-button.components-button:before,.components-toolbar-group .components-button.has-icon.has-icon:before{left:2px;right:2px}.components-toolbar{background-color:#fff;border:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;margin:0;min-height:48px}.components-toolbar .components-toolbar.components-toolbar{border-width:0;margin:0}div.components-toolbar>div{display:block;margin:0}@supports (position:sticky){div.components-toolbar>div{display:flex}}div.components-toolbar>div+div.has-left-divider{margin-left:6px;overflow:visible;position:relative}div.components-toolbar>div+div.has-left-divider:before{background-color:#ddd;box-sizing:content-box;content:"";display:inline-block;height:20px;left:-3px;position:absolute;top:8px;width:1px}.components-tooltip{background:#000;border-radius:2px;color:#f0f0f0;font-size:12px;line-height:1.4;padding:4px 8px;text-align:center;z-index:1000002}.components-tooltip__shortcut{margin-left:8px} \ No newline at end of file +/*!rtl:end:ignore*/.components-responsive-wrapper{align-items:center;display:flex;justify-content:center;max-width:100%;position:relative}.components-responsive-wrapper__content{display:block;max-width:100%;width:100%}.components-sandbox{overflow:hidden}iframe.components-sandbox{width:100%}body.lockscroll,html.lockscroll{overflow:hidden}.components-search-control{position:relative}.components-search-control input[type=search].components-search-control__input{background:#f0f0f0;border:none;border-radius:2px;box-shadow:0 0 0 transparent;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:48px;line-height:normal;margin-left:0;margin-right:0;padding:0 48px 0 16px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-search-control input[type=search].components-search-control__input{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px;line-height:normal}}.components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-search-control input[type=search].components-search-control__input::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-search-control input[type=search].components-search-control__input::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-search-control input[type=search].components-search-control__input:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.components-search-control input[type=search].components-search-control__input{font-size:13px}}.components-search-control input[type=search].components-search-control__input:focus{background:#fff;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-search-control input[type=search].components-search-control__input::placeholder{color:#757575}.components-search-control input[type=search].components-search-control__input::-webkit-search-cancel-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-decoration,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-button,.components-search-control input[type=search].components-search-control__input::-webkit-search-results-decoration{-webkit-appearance:none}.components-search-control.is-next-40px-default-size input[type=search].components-search-control__input{height:40px}.components-search-control.is-size-compact input[type=search].components-search-control__input{height:32px}.components-search-control__icon{align-items:center;display:flex;justify-content:center;position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px}.components-search-control__input-wrapper{position:relative}.components-select-control__input{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;outline:0}@media (max-width:782px){.components-base-control .components-base-control__field .components-select-control__input{font-size:16px}}.components-snackbar{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:rgba(0,0,0,.85);border-radius:2px;box-shadow:0 .7px 1px rgba(0,0,0,.1),0 1.2px 1.7px -.2px rgba(0,0,0,.1),0 2.3px 3.3px -.5px rgba(0,0,0,.1);box-sizing:border-box;color:#fff;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;max-width:600px;padding:12px 20px;pointer-events:auto;width:100%}@media (min-width:600px){.components-snackbar{width:-moz-fit-content;width:fit-content}}.components-snackbar:focus{box-shadow:inset 0 0 0 1px #fff,0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9))}.components-snackbar.components-snackbar-explicit-dismiss{cursor:default}.components-snackbar .components-snackbar__content-with-icon{margin-left:24px}.components-snackbar .components-snackbar__icon{left:28px;position:absolute;top:24px}.components-snackbar .components-snackbar__dismiss-button{cursor:pointer;margin-left:24px}.components-snackbar__action.components-button{color:#fff;flex-shrink:0;height:auto;line-height:1.4;margin-left:32px;padding:0}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary){background-color:transparent;text-decoration:underline}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):focus{box-shadow:none;color:#fff;outline:1px dotted #fff}.components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff;text-decoration:none}.components-snackbar__content{align-items:baseline;display:flex;justify-content:space-between;line-height:1.4}.components-snackbar-list{box-sizing:border-box;pointer-events:none;position:absolute;width:100%;z-index:100000}.components-snackbar-list__notice-container{padding-top:8px;position:relative}.components-tab-panel__tabs{align-items:stretch;display:flex;flex-direction:row}.components-tab-panel__tabs[aria-orientation=vertical]{flex-direction:column}.components-tab-panel__tabs-item{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-tab-panel__tabs-item:after{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:after{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-tab-panel__tabs-item:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-tab-panel__tabs-item:before{transition-delay:0s;transition-duration:0s}}.components-tab-panel__tabs-item:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));outline:2px solid transparent}.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;padding:6px 8px;transition:box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.components-text-control__input,.components-text-control__input[type=color],.components-text-control__input[type=date],.components-text-control__input[type=datetime-local],.components-text-control__input[type=datetime],.components-text-control__input[type=email],.components-text-control__input[type=month],.components-text-control__input[type=number],.components-text-control__input[type=password],.components-text-control__input[type=tel],.components-text-control__input[type=text],.components-text-control__input[type=time],.components-text-control__input[type=url],.components-text-control__input[type=week]{font-size:13px;line-height:normal}}.components-text-control__input:focus,.components-text-control__input[type=color]:focus,.components-text-control__input[type=date]:focus,.components-text-control__input[type=datetime-local]:focus,.components-text-control__input[type=datetime]:focus,.components-text-control__input[type=email]:focus,.components-text-control__input[type=month]:focus,.components-text-control__input[type=number]:focus,.components-text-control__input[type=password]:focus,.components-text-control__input[type=tel]:focus,.components-text-control__input[type=text]:focus,.components-text-control__input[type=time]:focus,.components-text-control__input[type=url]:focus,.components-text-control__input[type=week]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.components-text-control__input::-webkit-input-placeholder,.components-text-control__input[type=color]::-webkit-input-placeholder,.components-text-control__input[type=date]::-webkit-input-placeholder,.components-text-control__input[type=datetime-local]::-webkit-input-placeholder,.components-text-control__input[type=datetime]::-webkit-input-placeholder,.components-text-control__input[type=email]::-webkit-input-placeholder,.components-text-control__input[type=month]::-webkit-input-placeholder,.components-text-control__input[type=number]::-webkit-input-placeholder,.components-text-control__input[type=password]::-webkit-input-placeholder,.components-text-control__input[type=tel]::-webkit-input-placeholder,.components-text-control__input[type=text]::-webkit-input-placeholder,.components-text-control__input[type=time]::-webkit-input-placeholder,.components-text-control__input[type=url]::-webkit-input-placeholder,.components-text-control__input[type=week]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.components-text-control__input::-moz-placeholder,.components-text-control__input[type=color]::-moz-placeholder,.components-text-control__input[type=date]::-moz-placeholder,.components-text-control__input[type=datetime-local]::-moz-placeholder,.components-text-control__input[type=datetime]::-moz-placeholder,.components-text-control__input[type=email]::-moz-placeholder,.components-text-control__input[type=month]::-moz-placeholder,.components-text-control__input[type=number]::-moz-placeholder,.components-text-control__input[type=password]::-moz-placeholder,.components-text-control__input[type=tel]::-moz-placeholder,.components-text-control__input[type=text]::-moz-placeholder,.components-text-control__input[type=time]::-moz-placeholder,.components-text-control__input[type=url]::-moz-placeholder,.components-text-control__input[type=week]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.components-text-control__input:-ms-input-placeholder,.components-text-control__input[type=color]:-ms-input-placeholder,.components-text-control__input[type=date]:-ms-input-placeholder,.components-text-control__input[type=datetime-local]:-ms-input-placeholder,.components-text-control__input[type=datetime]:-ms-input-placeholder,.components-text-control__input[type=email]:-ms-input-placeholder,.components-text-control__input[type=month]:-ms-input-placeholder,.components-text-control__input[type=number]:-ms-input-placeholder,.components-text-control__input[type=password]:-ms-input-placeholder,.components-text-control__input[type=tel]:-ms-input-placeholder,.components-text-control__input[type=text]:-ms-input-placeholder,.components-text-control__input[type=time]:-ms-input-placeholder,.components-text-control__input[type=url]:-ms-input-placeholder,.components-text-control__input[type=week]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.components-tip{color:#757575;display:flex}.components-tip svg{fill:#f0b849;align-self:center;flex-shrink:0;margin-right:16px}.components-tip p{margin:0}.components-accessible-toolbar{border:1px solid #1e1e1e;border-radius:2px;display:inline-flex;flex-shrink:0}.components-accessible-toolbar>.components-toolbar-group:last-child{border-right:none}.components-accessible-toolbar .components-button,.components-toolbar .components-button{height:48px;padding-left:16px;padding-right:16px;position:relative;z-index:1}.components-accessible-toolbar .components-button:focus:not(:disabled),.components-toolbar .components-button:focus:not(:disabled){box-shadow:none;outline:none}.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation:components-button__appear-animation .1s ease;animation-fill-mode:forwards;border-radius:2px;content:"";display:block;height:32px;left:8px;position:absolute;right:8px;z-index:-1}@media (prefers-reduced-motion:reduce){.components-accessible-toolbar .components-button:before,.components-toolbar .components-button:before{animation-delay:0s;animation-duration:1ms}}.components-accessible-toolbar .components-button svg,.components-toolbar .components-button svg{margin-left:auto;margin-right:auto;position:relative}.components-accessible-toolbar .components-button.is-pressed,.components-accessible-toolbar .components-button.is-pressed:hover,.components-toolbar .components-button.is-pressed,.components-toolbar .components-button.is-pressed:hover{background:transparent}.components-accessible-toolbar .components-button.is-pressed:before,.components-toolbar .components-button.is-pressed:before{background:#1e1e1e}.components-accessible-toolbar .components-button:focus:before,.components-toolbar .components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 4px #fff;outline:2px solid transparent}.components-accessible-toolbar .components-button.has-icon.has-icon,.components-toolbar .components-button.has-icon.has-icon{min-width:48px;padding-left:12px;padding-right:12px}.components-accessible-toolbar .components-button.components-tab-button,.components-toolbar .components-button.components-tab-button{font-weight:500}.components-accessible-toolbar .components-button.components-tab-button span,.components-toolbar .components-button.components-tab-button span{display:inline-block;padding-left:0;padding-right:0;position:relative}@keyframes components-button__appear-animation{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.components-toolbar__control.components-button{position:relative}.components-toolbar__control.components-button[data-subscript] svg{padding:5px 10px 5px 0}.components-toolbar__control.components-button[data-subscript]:after{bottom:10px;content:attr(data-subscript);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;line-height:12px;position:absolute;right:8px}.components-toolbar__control.components-button:active:before{display:none}.components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]:after{color:#fff}.components-toolbar-group{background-color:#fff;border-right:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;line-height:0;min-height:48px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-toolbar-group.components-toolbar-group{border-width:0;margin:0}.components-toolbar-group .components-button.components-button,.components-toolbar-group .components-button.has-icon.has-icon{min-width:36px;padding-left:6px;padding-right:6px}.components-toolbar-group .components-button.components-button svg,.components-toolbar-group .components-button.has-icon.has-icon svg{min-width:24px}.components-toolbar-group .components-button.components-button:before,.components-toolbar-group .components-button.has-icon.has-icon:before{left:2px;right:2px}.components-toolbar{background-color:#fff;border:1px solid #1e1e1e;display:inline-flex;flex-shrink:0;flex-wrap:wrap;margin:0;min-height:48px}.components-toolbar .components-toolbar.components-toolbar{border-width:0;margin:0}div.components-toolbar>div{display:block;margin:0}@supports (position:sticky){div.components-toolbar>div{display:flex}}div.components-toolbar>div+div.has-left-divider{margin-left:6px;overflow:visible;position:relative}div.components-toolbar>div+div.has-left-divider:before{background-color:#ddd;box-sizing:content-box;content:"";display:inline-block;height:20px;left:-3px;position:absolute;top:8px;width:1px}.components-tooltip{background:#000;border-radius:2px;color:#f0f0f0;font-size:12px;line-height:1.4;padding:4px 8px;text-align:center;z-index:1000002}.components-tooltip__shortcut{margin-left:8px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.css index 9f37d88d77..827a0581d5 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.css @@ -41,7 +41,7 @@ margin:-15px -12px 0; z-index:8; } -@media (min-width:600px){ +@media (min-width:782px){ .customize-widgets-header{ margin-bottom:44px; } @@ -155,6 +155,17 @@ margin:0 .2rem 0 0; } +.block-editor-block-contextual-toolbar.is-fixed{ + margin-left:-12px; + margin-right:-12px; + overflow-y:auto; + width:calc(100% + 24px) !important; + z-index:7; +} +.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{ + display:none; +} + .customize-control-sidebar_block_editor .block-editor-block-list__block-popover{ position:fixed !important; z-index:7; @@ -214,4 +225,21 @@ } .customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{ box-sizing:inherit; +} +.block-editor-block-contextual-toolbar.is-fixed{ + border:none; + border-bottom:1px solid #e0e0e0; + border-radius:0; + overflow-y:hidden; + position:sticky; + right:0; + top:0; + width:calc(100% + 24px); + z-index:6; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-left-color:#e0e0e0; +} +.block-editor-block-contextual-toolbar.is-fixed.is-collapsed{ + margin-right:-12px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.min.css index 4b593814b7..cc1cd4d7d6 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector{background:#fff;box-sizing:border-box}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector *{box-sizing:inherit}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector{margin:-12px}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector h3{margin-bottom:0}#customize-theme-controls .customize-pane-child.control-section-sidebar.is-sub-section-open{transform:translateX(100%)}.customize-widgets-header{background:#f0f0f1;border-bottom:1px solid #e0e0e0;display:flex;justify-content:flex-end;margin:-15px -12px 0;z-index:8}@media (min-width:600px){.customize-widgets-header{margin-bottom:44px}}.customize-widgets-header.is-fixed-toolbar-active{margin-bottom:0}.customize-widgets-header-toolbar{align-items:center;border:none;display:flex;width:100%}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon{border-radius:2px;color:#fff;height:24px;margin:12px auto 12px 0;min-width:24px;padding:0}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon:before{content:none}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon.is-pressed{background:#1e1e1e}.customize-widgets-header-toolbar .components-button.has-icon.customize-widgets-editor-history-button.redo-button{margin-right:-12px}#customize-sidebar-outer-content{min-width:100%;width:auto}#customize-outer-theme-controls .widgets-inserter{padding:0}#customize-outer-theme-controls .widgets-inserter .customize-section-description-container{display:none}.customize-widgets-layout__inserter-panel{background:#fff}.customize-widgets-layout__inserter-panel-header{align-items:center;border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;height:46px;justify-content:space-between;padding:16px}.customize-widgets-layout__inserter-panel-header .customize-widgets-layout__inserter-panel-header-title{margin:0}.block-editor-inserter__quick-inserter .block-editor-inserter__panel-content{background:#fff}.customize-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.customize-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.customize-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.customize-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.customize-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.customize-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.customize-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.customize-control-sidebar_block_editor .block-editor-block-list__block-popover{position:fixed!important;z-index:7}.customize-control-sidebar_block_editor .components-popover,.customize-widgets-popover .components-popover{position:fixed!important}.customize-widgets-welcome-guide__image__wrapper{background:#00a0d2;margin-bottom:8px;text-align:center}.customize-widgets-welcome-guide__image{height:auto}.wrap .customize-widgets-welcome-guide__heading{font-size:18px;font-weight:600}.customize-widgets-welcome-guide__text{line-height:1.7}.customize-widgets-welcome-guide__button{justify-content:center;margin:1em 0;width:100%}.customize-widgets-welcome-guide__separator{margin:1em 0}.customize-widgets-welcome-guide__more-info{line-height:1.4}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section{background-color:#fff;min-height:100%;padding-top:12px!important}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section.open{overflow:unset}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section .customize-section-title{margin-top:-12px!important;position:static!important;width:unset!important}.components-modal__screen-overlay{z-index:999999}.customize-control-sidebar_block_editor,.customize-widgets-layout__inspector,.customize-widgets-popover{box-sizing:border-box}.customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{box-sizing:inherit} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector{background:#fff;box-sizing:border-box}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector *{box-sizing:inherit}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector{margin:-12px}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector h3{margin-bottom:0}#customize-theme-controls .customize-pane-child.control-section-sidebar.is-sub-section-open{transform:translateX(100%)}.customize-widgets-header{background:#f0f0f1;border-bottom:1px solid #e0e0e0;display:flex;justify-content:flex-end;margin:-15px -12px 0;z-index:8}@media (min-width:782px){.customize-widgets-header{margin-bottom:44px}}.customize-widgets-header.is-fixed-toolbar-active{margin-bottom:0}.customize-widgets-header-toolbar{align-items:center;border:none;display:flex;width:100%}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon{border-radius:2px;color:#fff;height:24px;margin:12px auto 12px 0;min-width:24px;padding:0}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon:before{content:none}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon.is-pressed{background:#1e1e1e}.customize-widgets-header-toolbar .components-button.has-icon.customize-widgets-editor-history-button.redo-button{margin-right:-12px}#customize-sidebar-outer-content{min-width:100%;width:auto}#customize-outer-theme-controls .widgets-inserter{padding:0}#customize-outer-theme-controls .widgets-inserter .customize-section-description-container{display:none}.customize-widgets-layout__inserter-panel{background:#fff}.customize-widgets-layout__inserter-panel-header{align-items:center;border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;height:46px;justify-content:space-between;padding:16px}.customize-widgets-layout__inserter-panel-header .customize-widgets-layout__inserter-panel-header-title{margin:0}.block-editor-inserter__quick-inserter .block-editor-inserter__panel-content{background:#fff}.customize-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.customize-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.customize-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.customize-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.customize-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.customize-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.customize-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.block-editor-block-contextual-toolbar.is-fixed{margin-left:-12px;margin-right:-12px;overflow-y:auto;width:calc(100% + 24px)!important;z-index:7}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{display:none}.customize-control-sidebar_block_editor .block-editor-block-list__block-popover{position:fixed!important;z-index:7}.customize-control-sidebar_block_editor .components-popover,.customize-widgets-popover .components-popover{position:fixed!important}.customize-widgets-welcome-guide__image__wrapper{background:#00a0d2;margin-bottom:8px;text-align:center}.customize-widgets-welcome-guide__image{height:auto}.wrap .customize-widgets-welcome-guide__heading{font-size:18px;font-weight:600}.customize-widgets-welcome-guide__text{line-height:1.7}.customize-widgets-welcome-guide__button{justify-content:center;margin:1em 0;width:100%}.customize-widgets-welcome-guide__separator{margin:1em 0}.customize-widgets-welcome-guide__more-info{line-height:1.4}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section{background-color:#fff;min-height:100%;padding-top:12px!important}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section.open{overflow:unset}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section .customize-section-title{margin-top:-12px!important;position:static!important;width:unset!important}.components-modal__screen-overlay{z-index:999999}.customize-control-sidebar_block_editor,.customize-widgets-layout__inspector,.customize-widgets-popover{box-sizing:border-box}.customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{box-sizing:inherit}.block-editor-block-contextual-toolbar.is-fixed{border:none;border-bottom:1px solid #e0e0e0;border-radius:0;overflow-y:hidden;position:sticky;right:0;top:0;width:calc(100% + 24px);z-index:6}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-left-color:#e0e0e0}.block-editor-block-contextual-toolbar.is-fixed.is-collapsed{margin-right:-12px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.css index d60a3ea28f..2fe46b0f4a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.css @@ -41,7 +41,7 @@ margin:-15px -12px 0; z-index:8; } -@media (min-width:600px){ +@media (min-width:782px){ .customize-widgets-header{ margin-bottom:44px; } @@ -155,6 +155,17 @@ margin:0 0 0 .2rem; } +.block-editor-block-contextual-toolbar.is-fixed{ + margin-left:-12px; + margin-right:-12px; + overflow-y:auto; + width:calc(100% + 24px) !important; + z-index:7; +} +.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{ + display:none; +} + .customize-control-sidebar_block_editor .block-editor-block-list__block-popover{ position:fixed !important; z-index:7; @@ -214,4 +225,21 @@ } .customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{ box-sizing:inherit; +} +.block-editor-block-contextual-toolbar.is-fixed{ + border:none; + border-bottom:1px solid #e0e0e0; + border-radius:0; + left:0; + overflow-y:hidden; + position:sticky; + top:0; + width:calc(100% + 24px); + z-index:6; +} +.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{ + border-right-color:#e0e0e0; +} +.block-editor-block-contextual-toolbar.is-fixed.is-collapsed{ + margin-left:-12px; } \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.min.css index deba4e41fe..fc52160140 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/customize-widgets/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector{background:#fff;box-sizing:border-box}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector *{box-sizing:inherit}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector{margin:-12px}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector h3{margin-bottom:0}#customize-theme-controls .customize-pane-child.control-section-sidebar.is-sub-section-open{transform:translateX(-100%)}.customize-widgets-header{background:#f0f0f1;border-bottom:1px solid #e0e0e0;display:flex;justify-content:flex-end;margin:-15px -12px 0;z-index:8}@media (min-width:600px){.customize-widgets-header{margin-bottom:44px}}.customize-widgets-header.is-fixed-toolbar-active{margin-bottom:0}.customize-widgets-header-toolbar{align-items:center;border:none;display:flex;width:100%}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon{border-radius:2px;color:#fff;height:24px;margin:12px 0 12px auto;min-width:24px;padding:0}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon:before{content:none}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon.is-pressed{background:#1e1e1e}.customize-widgets-header-toolbar .components-button.has-icon.customize-widgets-editor-history-button.redo-button{margin-left:-12px}#customize-sidebar-outer-content{min-width:100%;width:auto}#customize-outer-theme-controls .widgets-inserter{padding:0}#customize-outer-theme-controls .widgets-inserter .customize-section-description-container{display:none}.customize-widgets-layout__inserter-panel{background:#fff}.customize-widgets-layout__inserter-panel-header{align-items:center;border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;height:46px;justify-content:space-between;padding:16px}.customize-widgets-layout__inserter-panel-header .customize-widgets-layout__inserter-panel-header-title{margin:0}.block-editor-inserter__quick-inserter .block-editor-inserter__panel-content{background:#fff}.customize-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.customize-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.customize-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.customize-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.customize-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.customize-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.customize-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.customize-control-sidebar_block_editor .block-editor-block-list__block-popover{position:fixed!important;z-index:7}.customize-control-sidebar_block_editor .components-popover,.customize-widgets-popover .components-popover{position:fixed!important}.customize-widgets-welcome-guide__image__wrapper{background:#00a0d2;margin-bottom:8px;text-align:center}.customize-widgets-welcome-guide__image{height:auto}.wrap .customize-widgets-welcome-guide__heading{font-size:18px;font-weight:600}.customize-widgets-welcome-guide__text{line-height:1.7}.customize-widgets-welcome-guide__button{justify-content:center;margin:1em 0;width:100%}.customize-widgets-welcome-guide__separator{margin:1em 0}.customize-widgets-welcome-guide__more-info{line-height:1.4}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section{background-color:#fff;min-height:100%;padding-top:12px!important}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section.open{overflow:unset}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section .customize-section-title{margin-top:-12px!important;position:static!important;width:unset!important}.components-modal__screen-overlay{z-index:999999}.customize-control-sidebar_block_editor,.customize-widgets-layout__inspector,.customize-widgets-popover{box-sizing:border-box}.customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{box-sizing:inherit} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector{background:#fff;box-sizing:border-box}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector *{box-sizing:inherit}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector{margin:-12px}#customize-theme-controls .customize-pane-child.accordion-section-content.customize-widgets-layout__inspector .block-editor-block-inspector h3{margin-bottom:0}#customize-theme-controls .customize-pane-child.control-section-sidebar.is-sub-section-open{transform:translateX(-100%)}.customize-widgets-header{background:#f0f0f1;border-bottom:1px solid #e0e0e0;display:flex;justify-content:flex-end;margin:-15px -12px 0;z-index:8}@media (min-width:782px){.customize-widgets-header{margin-bottom:44px}}.customize-widgets-header.is-fixed-toolbar-active{margin-bottom:0}.customize-widgets-header-toolbar{align-items:center;border:none;display:flex;width:100%}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon{border-radius:2px;color:#fff;height:24px;margin:12px 0 12px auto;min-width:24px;padding:0}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon:before{content:none}.customize-widgets-header-toolbar .customize-widgets-header-toolbar__inserter-toggle.components-button.has-icon.is-pressed{background:#1e1e1e}.customize-widgets-header-toolbar .components-button.has-icon.customize-widgets-editor-history-button.redo-button{margin-left:-12px}#customize-sidebar-outer-content{min-width:100%;width:auto}#customize-outer-theme-controls .widgets-inserter{padding:0}#customize-outer-theme-controls .widgets-inserter .customize-section-description-container{display:none}.customize-widgets-layout__inserter-panel{background:#fff}.customize-widgets-layout__inserter-panel-header{align-items:center;border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;height:46px;justify-content:space-between;padding:16px}.customize-widgets-layout__inserter-panel-header .customize-widgets-layout__inserter-panel-header-title{margin:0}.block-editor-inserter__quick-inserter .block-editor-inserter__panel-content{background:#fff}.customize-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.customize-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.customize-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.customize-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.customize-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.customize-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.customize-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.customize-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.block-editor-block-contextual-toolbar.is-fixed{margin-left:-12px;margin-right:-12px;overflow-y:auto;width:calc(100% + 24px)!important;z-index:7}.block-editor-block-contextual-toolbar.is-fixed>.block-editor-block-toolbar__group-collapse-fixed-toolbar{display:none}.customize-control-sidebar_block_editor .block-editor-block-list__block-popover{position:fixed!important;z-index:7}.customize-control-sidebar_block_editor .components-popover,.customize-widgets-popover .components-popover{position:fixed!important}.customize-widgets-welcome-guide__image__wrapper{background:#00a0d2;margin-bottom:8px;text-align:center}.customize-widgets-welcome-guide__image{height:auto}.wrap .customize-widgets-welcome-guide__heading{font-size:18px;font-weight:600}.customize-widgets-welcome-guide__text{line-height:1.7}.customize-widgets-welcome-guide__button{justify-content:center;margin:1em 0;width:100%}.customize-widgets-welcome-guide__separator{margin:1em 0}.customize-widgets-welcome-guide__more-info{line-height:1.4}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section{background-color:#fff;min-height:100%;padding-top:12px!important}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section.open{overflow:unset}#customize-theme-controls .customize-pane-child.customize-widgets__sidebar-section .customize-section-title{margin-top:-12px!important;position:static!important;width:unset!important}.components-modal__screen-overlay{z-index:999999}.customize-control-sidebar_block_editor,.customize-widgets-layout__inspector,.customize-widgets-popover{box-sizing:border-box}.customize-control-sidebar_block_editor *,.customize-control-sidebar_block_editor :after,.customize-control-sidebar_block_editor :before,.customize-widgets-layout__inspector *,.customize-widgets-layout__inspector :after,.customize-widgets-layout__inspector :before,.customize-widgets-popover *,.customize-widgets-popover :after,.customize-widgets-popover :before{box-sizing:inherit}.block-editor-block-contextual-toolbar.is-fixed{border:none;border-bottom:1px solid #e0e0e0;border-radius:0;left:0;overflow-y:hidden;position:sticky;top:0;width:calc(100% + 24px);z-index:6}.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar,.block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group{border-right-color:#e0e0e0}.block-editor-block-contextual-toolbar.is-fixed.is-collapsed{margin-left:-12px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.css index cf445c6973..bf99c6ea0d 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-left:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,6 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } +} +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } +} +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } +} +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } +} + +.interface-preferences__tabs .components-tab-panel__tabs{ + position:absolute; + right:16px; + top:84px; + width:160px; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; + font-weight:400; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; + font-weight:500; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-right:160px; + padding-right:24px; +} + +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; + } +} +.interface-preferences-modal__section{ + margin:0 0 2.5rem; +} +.interface-preferences-modal__section:last-child{ + margin:0; +} + +.interface-preferences-modal__section-legend{ + margin-bottom:8px; +} + +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; +} + +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; +} + +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; +} +.interface-preferences-modal__option .components-base-control__help{ + margin-right:48px; + margin-top:0; } .edit-post-header{ @@ -384,7 +471,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ display:flex; flex-wrap:wrap; height:60px; - justify-content:space-between; max-width:100vw; } @media (min-width:280px){ @@ -402,12 +488,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ } .edit-post-header__toolbar{ - align-items:center; display:flex; - flex-grow:3; - flex-shrink:8; - overflow:hidden; - padding:2px 0; + flex-grow:1; } .edit-post-header__toolbar .table-of-contents{ display:none; @@ -417,60 +499,46 @@ body.is-fullscreen-mode .interface-interface-skeleton{ display:block; } } -.edit-post-header__toolbar .selected-block-tools-wrapper{ - display:flex; - overflow-x:hidden; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; -} -.edit-post-header__toolbar .selected-block-tools-wrapper:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-right:8px; - margin-top:12px; - width:1px; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group{ - border-left:none; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-right:8px; - margin-top:12px; - width:1px; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper.is-collapsed{ - display:none; -} - -.edit-post-header__block-tools-toggle{ - margin-right:2px; -} .edit-post-header__center{ display:flex; flex-grow:1; justify-content:center; } -.edit-post-header__center.is-collapsed{ - display:none; -} .edit-post-header__settings{ align-items:center; display:inline-flex; - flex-wrap:nowrap; - gap:8px; + flex-wrap:wrap; + gap:4px; padding-left:4px; } @media (min-width:600px){ .edit-post-header__settings{ + gap:8px; padding-left:10px; } } + +.edit-post-header-preview__grouping-external{ + display:flex; + padding-bottom:0; + position:relative; +} + +.edit-post-header-preview__button-external{ + display:flex; + justify-content:flex-start; + margin-left:auto; + padding-right:8px; + width:100%; +} +.edit-post-header-preview__button-external svg{ + margin-right:auto; +} + +.edit-post-post-preview-dropdown .components-popover__content{ + padding-bottom:0; +} .edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{ width:auto; } @@ -499,12 +567,12 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{ display:block; } -.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ +.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ padding-left:8px; padding-right:8px; } @media (min-width:600px){ - .edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ + .edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ padding-left:12px; padding-right:12px; } @@ -513,23 +581,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ content:none; } -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover{ - border-right:none; -} -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover:before{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-right:8px; - margin-top:12px; - width:1px; -} -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#ddd; - right:calc(50% + 1px); - width:calc(100% - 24px); -} - .edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{ justify-content:flex-start; margin:0; @@ -561,12 +612,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ margin-left:8px; } -@media (min-width:600px){ - .edit-post-header__post-preview-button{ - display:none; - } -} - .is-distraction-free .interface-interface-skeleton__header{ border-bottom:none; } @@ -578,10 +623,10 @@ body.is-fullscreen-mode .interface-interface-skeleton{ position:absolute; width:100%; } -.is-distraction-free .edit-post-header>.edit-post-header__settings>.edit-post-header__post-preview-button{ +.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-post-preview{ visibility:hidden; } -.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-preview-dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__inserter-toggle{ +.is-distraction-free .edit-post-header>.edit-post-header__settings>.block-editor-post-preview__dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__inserter-toggle{ display:none; } .is-distraction-free .interface-interface-skeleton__header:focus-within{ @@ -656,6 +701,157 @@ body.is-fullscreen-mode .interface-interface-skeleton{ width:36px; } +.edit-post-header-toolbar{ + align-items:center; + border:none; + display:inline-flex; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{ + display:none; +} +@media (min-width:600px){ + .edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{ + display:inline-flex; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle{ + display:inline-flex; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{ + transition:transform .2s cubic-bezier(.165, .84, .44, 1); +} +@media (prefers-reduced-motion:reduce){ + .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{ + transition-delay:0s; + transition-duration:0s; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.is-pressed svg{ + transform:rotate(-45deg); +} +.edit-post-header-toolbar .block-editor-list-view{ + display:none; +} +@media (min-width:600px){ + .edit-post-header-toolbar .block-editor-list-view{ + display:flex; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon{ + height:36px; + min-width:36px; + padding:6px; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon.is-pressed,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon.is-pressed{ + background:#1e1e1e; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:focus:not(:disabled),.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; + outline:1px solid transparent; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:before,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:before{ + display:none; +} + +@media (min-width:600px){ + .edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + transition:opacity .1s linear; + } +} +@media (min-width:600px) and (prefers-reduced-motion:reduce){ + .edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + transition-delay:0s; + transition-duration:0s; + } +} +@media (min-width:600px){ + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + opacity:0; + } +} + +.edit-post-header-toolbar__left{ + align-items:center; + display:inline-flex; + margin-left:8px; + padding-right:8px; +} +@media (min-width:600px){ + .edit-post-header-toolbar__left{ + padding-right:24px; + } +} +@media (min-width:1280px){ + .edit-post-header-toolbar__left{ + padding-left:8px; + } +} + +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{ + height:32px; + margin-left:8px; + min-width:32px; + padding:0; + width:32px; +} +.show-icon-labels .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{ + height:36px; + padding:0 8px; + width:auto; +} + +.show-icon-labels .edit-post-header-toolbar__left>*+*{ + margin-right:8px; +} + +.edit-post-document-actions{ + align-items:center; + background:#f0f0f0; + border-radius:4px; + display:flex; + gap:8px; + height:36px; + justify-content:space-between; + min-width:0; + width:min(100%, 450px); +} +.edit-post-document-actions .components-button:hover{ + background:#e0e0e0; + color:var(--wp-block-synced-color); +} + +.edit-post-document-actions__command,.edit-post-document-actions__title{ + color:var(--wp-block-synced-color); + flex-grow:1; + overflow:hidden; +} +.edit-post-document-actions__title:hover{ + color:var(--wp-block-synced-color); +} +.edit-post-document-actions__title .block-editor-block-icon{ + flex-shrink:0; +} +.edit-post-document-actions__title h1{ + color:var(--wp-block-synced-color); + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} + +.edit-post-document-actions__shortcut{ + color:#2f2f2f; +} + +.edit-post-document-actions__back.components-button.has-icon.has-text{ + color:#757575; + flex-shrink:0; + gap:0; + min-width:36px; +} +.edit-post-document-actions__back.components-button.has-icon.has-text:hover{ + color:currentColor; +} + .edit-post-keyboard-shortcut-help-modal__section{ margin:0 0 2rem; } @@ -827,6 +1023,86 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ height:61px; } +@media (min-width:782px){ + .edit-post-layout.has-fixed-toolbar .interface-interface-skeleton__header:not(:focus-within){ + z-index:19; + } +} + +.edit-post-block-manager__no-results{ + font-style:italic; + padding:24px 0; + text-align:center; +} + +.edit-post-block-manager__search{ + margin:16px 0; +} + +.edit-post-block-manager__disabled-blocks-count{ + background-color:#fff; + border:1px solid #ddd; + border-width:1px 0; + box-shadow:32px 0 0 0 #fff,-32px 0 0 0 #fff; + padding:8px; + position:sticky; + text-align:center; + top:-1px; + z-index:2; +} +.edit-post-block-manager__disabled-blocks-count~.edit-post-block-manager__results .edit-post-block-manager__category-title{ + top:35px; +} +.edit-post-block-manager__disabled-blocks-count .is-link{ + margin-right:12px; +} + +.edit-post-block-manager__category{ + margin:0 0 24px; +} + +.edit-post-block-manager__category-title{ + background-color:#fff; + padding:16px 0; + position:sticky; + top:-4px; + z-index:1; +} +.edit-post-block-manager__category-title .components-checkbox-control__label{ + font-weight:600; +} + +.edit-post-block-manager__checklist{ + margin-top:0; +} + +.edit-post-block-manager__category-title,.edit-post-block-manager__checklist-item{ + border-bottom:1px solid #ddd; +} + +.edit-post-block-manager__checklist-item{ + align-items:center; + display:flex; + justify-content:space-between; + margin-bottom:0; + padding:8px 16px 8px 0; +} +.components-modal__content .edit-post-block-manager__checklist-item.components-checkbox-control__input-container{ + margin:0 8px; +} +.edit-post-block-manager__checklist-item .block-editor-block-icon{ + fill:#1e1e1e; + margin-left:10px; +} + +.edit-post-block-manager__results{ + border-top:1px solid #ddd; +} + +.edit-post-block-manager__disabled-blocks-count+.edit-post-block-manager__results{ + border-top-width:0; +} + .edit-post-meta-boxes-area{ position:relative; } @@ -901,13 +1177,146 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ .edit-post-meta-boxes-area__clear{ clear:both; } +.edit-post-editor__document-overview-panel,.edit-post-editor__inserter-panel{ + display:flex; + flex-direction:column; + height:100%; +} + +@media (min-width:782px){ + .edit-post-editor__document-overview-panel{ + width:350px; + } +} +.edit-post-editor__document-overview-panel .edit-post-editor__document-overview-panel__close-button{ + background:#fff; + left:8px; + position:absolute; + top:6px; + z-index:1; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tabs{ + border-bottom:1px solid #ddd; + box-sizing:border-box; + display:flex; + padding-left:56px; + width:100%; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tabs .edit-post-sidebar__panel-tab{ + margin-bottom:-1px; + width:50%; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tab-content{ + height:calc(100% - 47px); +} + +.edit-post-editor__inserter-panel-header{ + display:flex; + justify-content:flex-end; + padding-left:8px; + padding-top:8px; +} + +.edit-post-editor__inserter-panel-content{ + height:calc(100% - 44px); +} +@media (min-width:782px){ + .edit-post-editor__inserter-panel-content{ + height:100%; + } +} + +.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{ + height:100%; + overflow:auto; + padding:8px 6px; + scrollbar-color:transparent transparent; + scrollbar-gutter:stable both-edges; + scrollbar-gutter:auto; + scrollbar-width:thin; + will-change:transform; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar,.edit-post-editor__list-view-panel-content::-webkit-scrollbar{ + height:12px; + width:12px; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-track,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-track,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-track{ + background-color:transparent; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-thumb{ + background-clip:padding-box; + background-color:transparent; + border:3px solid transparent; + border-radius:8px; +} +.edit-post-editor__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{ + background-color:#949494; +} +.edit-post-editor__list-view-container>.document-outline:focus,.edit-post-editor__list-view-container>.document-outline:focus-within,.edit-post-editor__list-view-container>.document-outline:hover,.edit-post-editor__list-view-empty-headings:focus,.edit-post-editor__list-view-empty-headings:focus-within,.edit-post-editor__list-view-empty-headings:hover,.edit-post-editor__list-view-panel-content:focus,.edit-post-editor__list-view-panel-content:focus-within,.edit-post-editor__list-view-panel-content:hover{ + scrollbar-color:#949494 transparent; +} +@media (hover:none){ + .edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{ + scrollbar-color:#949494 transparent; + } +} + +.edit-post-editor__list-view-empty-headings{ + color:#757575; + text-align:center; +} +.edit-post-editor__list-view-empty-headings>svg{ + margin-top:28px; +} +.edit-post-editor__list-view-empty-headings>p{ + padding-left:32px; + padding-right:32px; +} + +.edit-post-editor__list-view-overview{ + border-bottom:1px solid #ddd; + display:flex; + flex-direction:column; + gap:8px; + padding:16px; +} +.edit-post-editor__list-view-overview>div>span:first-child{ + display:inline-block; + width:90px; +} +.edit-post-editor__list-view-overview>div>span{ + color:#757575; + font-size:12px; + line-height:1.4; +} + +.edit-post-editor__list-view-container{ + display:flex; + flex-direction:column; + height:100%; +} + +.edit-post-editor__document-overview-panel__tab-panel{ + height:100%; +} .components-panel__header.edit-post-sidebar__panel-tabs{ + border-top:0; + justify-content:flex-start; + margin-top:0; padding-left:16px; padding-right:0; } +.components-panel__header.edit-post-sidebar__panel-tabs ul{ + display:flex; +} +.components-panel__header.edit-post-sidebar__panel-tabs li{ + margin:0; +} .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{ + display:none; height:24px; + margin:0 auto 0 0; min-width:24px; padding:0; } @@ -917,21 +1326,197 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ } } -.edit-post-sidebar__panel{ - margin-top:-1px; +.components-panel__body.is-opened.edit-post-last-revision__panel{ + height:48px; + padding:0; +} + +.editor-post-last-revision__title.components-button{ + padding:16px; +} + +.edit-post-post-author,.edit-post-post-format{ + align-items:stretch; + display:flex; + flex-direction:column; +} + +.edit-post-post-schedule{ + align-items:flex-start; + justify-content:flex-start; + position:relative; + width:100%; +} +.edit-post-post-schedule span{ + display:block; + flex-shrink:0; + padding:6px 0; + width:45%; +} + +.components-button.edit-post-post-schedule__toggle{ + height:auto; + text-align:right; + white-space:normal; +} +.components-button.edit-post-post-schedule__toggle span{ + width:0; +} + +.edit-post-post-schedule__dialog .block-editor-publish-date-time-picker{ + margin:8px; } -.edit-post-post-format,.edit-post-post-slug{ +.edit-post-post-slug{ align-items:stretch; display:flex; flex-direction:column; } +.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft{ + margin-top:15px; + text-align:center; + width:100%; +} + +.edit-post-post-template{ + justify-content:flex-start; + width:100%; +} +.edit-post-post-template span{ + display:block; + padding:6px 0; + width:45%; +} + +.edit-post-post-template__dropdown{ + max-width:55%; +} + +.components-button.edit-post-post-template__toggle{ + display:inline-block; + overflow:hidden; + text-overflow:ellipsis; + width:100%; +} + +.edit-post-post-template__dialog{ + z-index:99999; +} + +.edit-post-post-template__form{ + margin:8px; + min-width:248px; +} + +@media (min-width:782px){ + .edit-post-post-template__create-form{ + width:320px; + } +} + +.edit-post-post-url{ + align-items:flex-start; + justify-content:flex-start; + width:100%; +} +.edit-post-post-url span{ + display:block; + flex-shrink:0; + padding:6px 0; + width:45%; +} + +.components-button.edit-post-post-url__toggle{ + height:auto; + text-align:right; + white-space:normal; + word-break:break-word; +} + +.edit-post-post-url__dialog .editor-post-url{ + margin:8px; + min-width:248px; +} + +.edit-post-post-visibility{ + justify-content:flex-start; + width:100%; +} +.edit-post-post-visibility span{ + display:block; + padding:6px 0; + width:45%; +} + .edit-post-post-visibility__dialog .editor-post-visibility{ margin:8px; min-width:248px; } +.components-button.edit-post-sidebar__panel-tab{ + background:transparent; + border:none; + border-radius:0; + box-shadow:none; + cursor:pointer; + font-weight:500; + height:48px; + margin-right:0; + padding:3px 16px; + position:relative; +} +.components-button.edit-post-sidebar__panel-tab:focus:not(:disabled){ + box-shadow:none; + outline:none; + position:relative; +} +.components-button.edit-post-sidebar__panel-tab:after{ + background:var(--wp-admin-theme-color); + border-radius:0; + bottom:0; + content:""; + height:calc(var(--wp-admin-border-width-focus)*0); + left:0; + pointer-events:none; + position:absolute; + right:0; + transition:all .1s linear; +} +@media (prefers-reduced-motion:reduce){ + .components-button.edit-post-sidebar__panel-tab:after{ + transition-delay:0s; + transition-duration:0s; + } +} +.components-button.edit-post-sidebar__panel-tab.is-active:after{ + height:calc(var(--wp-admin-border-width-focus)*1); + outline:2px solid transparent; + outline-offset:-1px; +} +.components-button.edit-post-sidebar__panel-tab:before{ + border-radius:2px; + bottom:12px; + box-shadow:0 0 0 0 transparent; + content:""; + left:12px; + pointer-events:none; + position:absolute; + right:12px; + top:12px; + transition:all .1s linear; +} +@media (prefers-reduced-motion:reduce){ + .components-button.edit-post-sidebar__panel-tab:before{ + transition-delay:0s; + transition-duration:0s; + } +} +.components-button.edit-post-sidebar__panel-tab:focus-visible:before{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} + h2.edit-post-template-summary__title{ font-weight:500; line-height:24px; @@ -944,9 +1529,8 @@ h2.edit-post-template-summary__title{ position:relative; width:100%; } -.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){ +.edit-post-text-editor .editor-post-title{ border:1px solid #949494; - border-radius:0; font-family:Menlo,Consolas,monaco,monospace; font-size:2.5em; font-weight:400; @@ -955,11 +1539,11 @@ h2.edit-post-template-summary__title{ padding:16px; } @media (min-width:600px){ - .edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){ + .edit-post-text-editor .editor-post-title{ padding:24px; } } -.edit-post-text-editor .editor-post-title.is-raw-text textarea:focus,.edit-post-text-editor .editor-post-title:not(.is-raw-text):focus{ +.edit-post-text-editor .editor-post-title:focus{ border-color:var(--wp-admin-theme-color); box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } @@ -1003,6 +1587,9 @@ h2.edit-post-template-summary__title{ line-height:36px; margin:0 0 0 auto; } +.edit-post-text-editor__toolbar .components-button svg{ + order:1; +} .edit-post-visual-editor{ background-color:#1e1e1e; @@ -1019,10 +1606,19 @@ h2.edit-post-template-summary__title{ font-size:13px; padding:6px 12px; } -.edit-post-visual-editor .components-button.has-icon{ +.edit-post-visual-editor .components-button.has-icon,.edit-post-visual-editor .components-button.is-tertiary{ padding:6px; } +.edit-post-visual-editor__post-title-wrapper{ + margin-bottom:var(--wp--style--block-gap); + margin-top:4rem; +} +.edit-post-visual-editor__post-title-wrapper .editor-post-title{ + margin-left:auto; + margin-right:auto; +} + .edit-post-visual-editor__content-area{ box-sizing:border-box; display:flex; @@ -1032,6 +1628,83 @@ h2.edit-post-template-summary__title{ width:100%; } +.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} + +body.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0 !important; +} + +.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; +} +@media (min-width:782px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + border-bottom:none; + display:flex; + height:60px; + margin-right:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:240px; + top:0; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:144px; + } +} +@media (min-width:960px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } +} + .edit-post-welcome-guide,.edit-template-welcome-guide{ width:312px; } @@ -1131,10 +1804,10 @@ body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{ } } -.components-modal__frame,.components-popover,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{ +.components-modal__frame,.components-popover,.edit-post-editor__inserter-panel,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{ box-sizing:border-box; } -.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{ +.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-editor__inserter-panel *,.edit-post-editor__inserter-panel :after,.edit-post-editor__inserter-panel :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{ box-sizing:inherit; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.min.css index b1c6c65966..1a8dbf81f1 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.edit-post-header{align-items:center;background:#fff;display:flex;flex-wrap:wrap;height:60px;justify-content:space-between;max-width:100vw}@media (min-width:280px){.edit-post-header{flex-wrap:nowrap}}.edit-post-header>.edit-post-header__settings{order:1}@supports (position:sticky){.edit-post-header>.edit-post-header__settings{order:0}}.edit-post-header__toolbar{align-items:center;display:flex;flex-grow:3;flex-shrink:8;overflow:hidden;padding:2px 0}.edit-post-header__toolbar .table-of-contents{display:none}@media (min-width:600px){.edit-post-header__toolbar .table-of-contents{display:block}}.edit-post-header__toolbar .selected-block-tools-wrapper{display:flex;overflow-x:hidden}.edit-post-header__toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.edit-post-header__toolbar .selected-block-tools-wrapper:after{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group{border-left:none}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper.is-collapsed{display:none}.edit-post-header__block-tools-toggle{margin-right:2px}.edit-post-header__center{display:flex;flex-grow:1;justify-content:center}.edit-post-header__center.is-collapsed{display:none}.edit-post-header__settings{align-items:center;display:inline-flex;flex-wrap:nowrap;gap:8px;padding-left:4px}@media (min-width:600px){.edit-post-header__settings{padding-left:10px}}.edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{width:auto}.edit-post-header__dropdown .components-button.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon svg{display:none}.edit-post-header__dropdown .components-button.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon:after{content:attr(aria-label)}.edit-post-header__dropdown .components-button.has-icon[aria-disabled=true],.show-icon-labels .edit-post-header .components-button.has-icon[aria-disabled=true],.show-icon-labels.interface-pinned-items .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-post-header__dropdown .is-tertiary:active,.show-icon-labels .edit-post-header .is-tertiary:active,.show-icon-labels.interface-pinned-items .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-post-header__dropdown .components-button.has-icon.button-toggle svg,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle svg,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle svg,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon svg{display:block}.edit-post-header__dropdown .components-button.has-icon.button-toggle:after,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle:after,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle:after,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon:after{content:none}.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon{width:60px}.edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{display:block}.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:12px;padding-right:12px}}.edit-post-header__dropdown .editor-post-save-draft.editor-post-save-draft:after,.edit-post-header__dropdown .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels .edit-post-header .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels .edit-post-header .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels.interface-pinned-items .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels.interface-pinned-items .editor-post-saved-state.editor-post-saved-state:after{content:none}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover{border-right:none}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#ddd;right:calc(50% + 1px);width:calc(100% - 24px)}.edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{justify-content:flex-start;margin:0;padding:6px 40px 6px 6px;text-align:right;width:14.625rem}.show-icon-labels.interface-pinned-items{border-bottom:1px solid #ccc;display:block;margin:0 -12px;padding:6px 12px 12px}.show-icon-labels.interface-pinned-items>.components-button.has-icon{justify-content:flex-start;margin:0;padding:6px 8px 6px 6px;width:14.625rem}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=true] svg{display:block;max-width:24px}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=false]{padding-right:40px}.show-icon-labels.interface-pinned-items>.components-button.has-icon svg{margin-left:8px}@media (min-width:600px){.edit-post-header__post-preview-button{display:none}}.is-distraction-free .interface-interface-skeleton__header{border-bottom:none}.is-distraction-free .edit-post-header{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background-color:hsla(0,0%,100%,.9);border-bottom:1px solid #e0e0e0;position:absolute;width:100%}.is-distraction-free .edit-post-header>.edit-post-header__settings>.edit-post-header__post-preview-button{visibility:hidden}.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-preview-dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__inserter-toggle{display:none}.is-distraction-free .interface-interface-skeleton__header:focus-within{opacity:1!important}.is-distraction-free .interface-interface-skeleton__header:focus-within div{transform:translateX(0) translateZ(0)!important}.is-distraction-free .components-editor-notices__dismissible{position:absolute;z-index:35}.edit-post-fullscreen-mode-close.components-button{display:none}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button{align-items:center;align-self:stretch;background:#1e1e1e;border:none;border-radius:0;color:#fff;display:flex;height:61px;margin-bottom:-1px;position:relative;width:60px}.edit-post-fullscreen-mode-close.components-button:active{color:#fff}.edit-post-fullscreen-mode-close.components-button:focus{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:before{border-radius:4px;bottom:10px;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #1e1e1e;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-fullscreen-mode-close.components-button:before{transition-delay:0s;transition-duration:0s}}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button:hover:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #757575}.edit-post-fullscreen-mode-close.components-button.has-icon:hover:before{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}}.edit-post-fullscreen-mode-close.components-button .edit-post-fullscreen-mode-close_site-icon{border-radius:2px;height:36px;margin-top:-1px;object-fit:cover;width:36px}.edit-post-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-post-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-post-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-post-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-post-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-post-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-post-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-post-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.edit-post-layout__metaboxes{clear:both;flex-shrink:0}.edit-post-layout .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:fixed}.is-distraction-free .components-editor-notices__snackbar{bottom:20px}.edit-post-layout .components-editor-notices__snackbar{right:0}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{right:160px}}.folded .edit-post-layout .components-editor-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-post-layout .components-editor-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{right:0!important}.edit-post-layout .editor-post-publish-panel{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:46px;z-index:100001}@media (min-width:782px){.edit-post-layout .editor-post-publish-panel{animation:edit-post-post-publish-panel__slide-in-animation .1s forwards;border-right:1px solid #ddd;right:auto;top:32px;transform:translateX(-100%);width:281px;z-index:99998}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-layout .editor-post-publish-panel{animation-delay:0s;animation-duration:1ms}}@media (min-width:782px){body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel{top:0}[role=region]:focus .edit-post-layout .editor-post-publish-panel{transform:translateX(0)}}@keyframes edit-post-post-publish-panel__slide-in-animation{to{transform:translateX(0)}}.edit-post-layout .editor-post-publish-panel__header-publish-button{justify-content:center}.edit-post-layout__toggle-entities-saved-states-panel,.edit-post-layout__toggle-publish-panel,.edit-post-layout__toggle-sidebar-panel{background-color:#fff;border:1px dotted #ddd;bottom:auto;box-sizing:border-box;display:flex;height:auto!important;justify-content:center;left:0;padding:24px;position:fixed!important;right:auto;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__sidebar:focus .edit-post-layout__toggle-sidebar-panel,.interface-interface-skeleton__sidebar:focus-within .edit-post-layout__toggle-sidebar-panel{bottom:0;top:auto}.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel{bottom:0;top:auto}.edit-post-layout .entities-saved-states__panel-header{height:61px}.edit-post-meta-boxes-area{position:relative}.edit-post-meta-boxes-area .inside,.edit-post-meta-boxes-area__container{box-sizing:content-box}.edit-post-meta-boxes-area input,.edit-post-meta-boxes-area textarea{box-sizing:border-box}.edit-post-meta-boxes-area .postbox-header{border-bottom:0;border-top:1px solid #ddd}.edit-post-meta-boxes-area #poststuff{margin:0 auto;min-width:auto;padding-top:0}.edit-post-meta-boxes-area #poststuff .stuffbox>h3,.edit-post-meta-boxes-area #poststuff h2.hndle,.edit-post-meta-boxes-area #poststuff h3.hndle{box-sizing:border-box;color:inherit;font-weight:600;outline:none;padding:0 24px;position:relative;width:100%}.edit-post-meta-boxes-area .postbox{border:0;color:inherit;margin-bottom:0}.edit-post-meta-boxes-area .postbox>.inside{color:inherit;margin:0;padding:0 24px 24px}.edit-post-meta-boxes-area .postbox .handlediv{height:44px;width:44px}.edit-post-meta-boxes-area.is-loading:before{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.edit-post-meta-boxes-area .components-spinner{left:20px;position:absolute;top:10px;z-index:5}.edit-post-meta-boxes-area .is-hidden{display:none}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]{border:1px solid #757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:checked{background:#fff;border-color:#757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:before{margin:-3px -4px}.edit-post-meta-boxes-area__clear{clear:both}.components-panel__header.edit-post-sidebar__panel-tabs{padding-left:16px;padding-right:0}.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{height:24px;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:flex}}.edit-post-sidebar__panel{margin-top:-1px}.edit-post-post-format,.edit-post-post-slug{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-visibility__dialog .editor-post-visibility{margin:8px;min-width:248px}h2.edit-post-template-summary__title{font-weight:500;line-height:24px;margin:0 0 4px}.edit-post-text-editor{background-color:#fff;flex-grow:1;position:relative;width:100%}.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){border:1px solid #949494;border-radius:0;font-family:Menlo,Consolas,monaco,monospace;font-size:2.5em;font-weight:400;line-height:1.4;max-width:none;padding:16px}@media (min-width:600px){.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){padding:24px}}.edit-post-text-editor .editor-post-title.is-raw-text textarea:focus,.edit-post-text-editor .editor-post-title:not(.is-raw-text):focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-post-text-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:0 12px 12px;width:100%}@media (min-width:960px){.edit-post-text-editor__body{padding:0 24px 24px}}.edit-post-text-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-post-text-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-post-text-editor__toolbar{padding:12px 24px}}.edit-post-text-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 0 0 auto}.edit-post-visual-editor{background-color:#1e1e1e;display:flex;flex:1 0 auto;flex-flow:column;position:relative}.edit-post-visual-editor:not(.has-inline-canvas){overflow:hidden}.edit-post-visual-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-post-visual-editor .components-button.has-icon{padding:6px}.edit-post-visual-editor__content-area{box-sizing:border-box;display:flex;flex-grow:1;height:100%;position:relative;width:100%}.edit-post-welcome-guide,.edit-template-welcome-guide{width:312px}.edit-post-welcome-guide__image,.edit-template-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-post-welcome-guide__image>img,.edit-template-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-post-welcome-guide__heading,.edit-template-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-post-welcome-guide__text,.edit-template-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-post-welcome-guide__inserter-icon,.edit-template-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-template-welcome-guide .components-button svg{fill:#fff}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column;margin-bottom:24px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{min-height:100px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__content{width:100%}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.js.block-editor-page{background:#fff}body.js.block-editor-page #wpcontent{padding-right:0}body.js.block-editor-page #wpbody-content{padding-bottom:0}body.js.block-editor-page #wpbody-content>div:not(.block-editor):not(#screen-meta),body.js.block-editor-page #wpfooter{display:none}body.js.block-editor-page .a11y-speak-region{right:-1px;top:-1px}body.js.block-editor-page ul#adminmenu a.wp-has-current-submenu:after,body.js.block-editor-page ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.block-editor-page #wpwrap{overflow-y:auto}@media (min-width:782px){.block-editor-page #wpwrap{overflow-y:initial}}.components-modal__frame,.components-popover,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{box-sizing:inherit}@media (min-width:600px){.block-editor__container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.block-editor__container{min-height:calc(100vh - 32px)}body.is-fullscreen-mode .block-editor__container{min-height:100vh}}.block-editor__container img{height:auto;max-width:100%}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}}.interface-interface-skeleton__sidebar{border-right:none}@media (min-width:782px){.is-sidebar-opened .interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0;overflow:hidden scroll}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-left:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{position:absolute;right:16px;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-right:160px;padding-right:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-right:48px;margin-top:0}.edit-post-header{align-items:center;background:#fff;display:flex;flex-wrap:wrap;height:60px;max-width:100vw}@media (min-width:280px){.edit-post-header{flex-wrap:nowrap}}.edit-post-header>.edit-post-header__settings{order:1}@supports (position:sticky){.edit-post-header>.edit-post-header__settings{order:0}}.edit-post-header__toolbar{display:flex;flex-grow:1}.edit-post-header__toolbar .table-of-contents{display:none}@media (min-width:600px){.edit-post-header__toolbar .table-of-contents{display:block}}.edit-post-header__center{display:flex;flex-grow:1;justify-content:center}.edit-post-header__settings{align-items:center;display:inline-flex;flex-wrap:wrap;gap:4px;padding-left:4px}@media (min-width:600px){.edit-post-header__settings{gap:8px;padding-left:10px}}.edit-post-header-preview__grouping-external{display:flex;padding-bottom:0;position:relative}.edit-post-header-preview__button-external{display:flex;justify-content:flex-start;margin-left:auto;padding-right:8px;width:100%}.edit-post-header-preview__button-external svg{margin-right:auto}.edit-post-post-preview-dropdown .components-popover__content{padding-bottom:0}.edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{width:auto}.edit-post-header__dropdown .components-button.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon svg{display:none}.edit-post-header__dropdown .components-button.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon:after{content:attr(aria-label)}.edit-post-header__dropdown .components-button.has-icon[aria-disabled=true],.show-icon-labels .edit-post-header .components-button.has-icon[aria-disabled=true],.show-icon-labels.interface-pinned-items .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-post-header__dropdown .is-tertiary:active,.show-icon-labels .edit-post-header .is-tertiary:active,.show-icon-labels.interface-pinned-items .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-post-header__dropdown .components-button.has-icon.button-toggle svg,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle svg,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle svg,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon svg{display:block}.edit-post-header__dropdown .components-button.has-icon.button-toggle:after,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle:after,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle:after,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon:after{content:none}.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon{width:60px}.edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{display:block}.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:12px;padding-right:12px}}.edit-post-header__dropdown .editor-post-save-draft.editor-post-save-draft:after,.edit-post-header__dropdown .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels .edit-post-header .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels .edit-post-header .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels.interface-pinned-items .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels.interface-pinned-items .editor-post-saved-state.editor-post-saved-state:after{content:none}.edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{justify-content:flex-start;margin:0;padding:6px 40px 6px 6px;text-align:right;width:14.625rem}.show-icon-labels.interface-pinned-items{border-bottom:1px solid #ccc;display:block;margin:0 -12px;padding:6px 12px 12px}.show-icon-labels.interface-pinned-items>.components-button.has-icon{justify-content:flex-start;margin:0;padding:6px 8px 6px 6px;width:14.625rem}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=true] svg{display:block;max-width:24px}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=false]{padding-right:40px}.show-icon-labels.interface-pinned-items>.components-button.has-icon svg{margin-left:8px}.is-distraction-free .interface-interface-skeleton__header{border-bottom:none}.is-distraction-free .edit-post-header{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background-color:hsla(0,0%,100%,.9);border-bottom:1px solid #e0e0e0;position:absolute;width:100%}.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-post-preview{visibility:hidden}.is-distraction-free .edit-post-header>.edit-post-header__settings>.block-editor-post-preview__dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__inserter-toggle{display:none}.is-distraction-free .interface-interface-skeleton__header:focus-within{opacity:1!important}.is-distraction-free .interface-interface-skeleton__header:focus-within div{transform:translateX(0) translateZ(0)!important}.is-distraction-free .components-editor-notices__dismissible{position:absolute;z-index:35}.edit-post-fullscreen-mode-close.components-button{display:none}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button{align-items:center;align-self:stretch;background:#1e1e1e;border:none;border-radius:0;color:#fff;display:flex;height:61px;margin-bottom:-1px;position:relative;width:60px}.edit-post-fullscreen-mode-close.components-button:active{color:#fff}.edit-post-fullscreen-mode-close.components-button:focus{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:before{border-radius:4px;bottom:10px;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #1e1e1e;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-fullscreen-mode-close.components-button:before{transition-delay:0s;transition-duration:0s}}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button:hover:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #757575}.edit-post-fullscreen-mode-close.components-button.has-icon:hover:before{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}}.edit-post-fullscreen-mode-close.components-button .edit-post-fullscreen-mode-close_site-icon{border-radius:2px;height:36px;margin-top:-1px;object-fit:cover;width:36px}.edit-post-header-toolbar{align-items:center;border:none;display:inline-flex}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{display:none}@media (min-width:600px){.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{display:inline-flex}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle{display:inline-flex}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.edit-post-header-toolbar .block-editor-list-view{display:none}@media (min-width:600px){.edit-post-header-toolbar .block-editor-list-view{display:flex}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon{height:36px;min-width:36px;padding:6px}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon.is-pressed,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:focus:not(:disabled),.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:before,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:before{display:none}@media (min-width:600px){.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{transition:opacity .1s linear}}@media (min-width:600px) and (prefers-reduced-motion:reduce){.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{opacity:0}}.edit-post-header-toolbar__left{align-items:center;display:inline-flex;margin-left:8px;padding-right:8px}@media (min-width:600px){.edit-post-header-toolbar__left{padding-right:24px}}@media (min-width:1280px){.edit-post-header-toolbar__left{padding-left:8px}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{height:32px;margin-left:8px;min-width:32px;padding:0;width:32px}.show-icon-labels .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{height:36px;padding:0 8px;width:auto}.show-icon-labels .edit-post-header-toolbar__left>*+*{margin-right:8px}.edit-post-document-actions{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;gap:8px;height:36px;justify-content:space-between;min-width:0;width:min(100%,450px)}.edit-post-document-actions .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}.edit-post-document-actions__command,.edit-post-document-actions__title{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.edit-post-document-actions__title:hover{color:var(--wp-block-synced-color)}.edit-post-document-actions__title .block-editor-block-icon{flex-shrink:0}.edit-post-document-actions__title h1{color:var(--wp-block-synced-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-post-document-actions__shortcut{color:#2f2f2f}.edit-post-document-actions__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px}.edit-post-document-actions__back.components-button.has-icon.has-text:hover{color:currentColor}.edit-post-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-post-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-post-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-post-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-post-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-post-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-post-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-post-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.edit-post-layout__metaboxes{clear:both;flex-shrink:0}.edit-post-layout .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:fixed}.is-distraction-free .components-editor-notices__snackbar{bottom:20px}.edit-post-layout .components-editor-notices__snackbar{right:0}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{right:160px}}.folded .edit-post-layout .components-editor-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-post-layout .components-editor-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{right:0!important}.edit-post-layout .editor-post-publish-panel{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:46px;z-index:100001}@media (min-width:782px){.edit-post-layout .editor-post-publish-panel{animation:edit-post-post-publish-panel__slide-in-animation .1s forwards;border-right:1px solid #ddd;right:auto;top:32px;transform:translateX(-100%);width:281px;z-index:99998}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-layout .editor-post-publish-panel{animation-delay:0s;animation-duration:1ms}}@media (min-width:782px){body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel{top:0}[role=region]:focus .edit-post-layout .editor-post-publish-panel{transform:translateX(0)}}@keyframes edit-post-post-publish-panel__slide-in-animation{to{transform:translateX(0)}}.edit-post-layout .editor-post-publish-panel__header-publish-button{justify-content:center}.edit-post-layout__toggle-entities-saved-states-panel,.edit-post-layout__toggle-publish-panel,.edit-post-layout__toggle-sidebar-panel{background-color:#fff;border:1px dotted #ddd;bottom:auto;box-sizing:border-box;display:flex;height:auto!important;justify-content:center;left:0;padding:24px;position:fixed!important;right:auto;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__sidebar:focus .edit-post-layout__toggle-sidebar-panel,.interface-interface-skeleton__sidebar:focus-within .edit-post-layout__toggle-sidebar-panel{bottom:0;top:auto}.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel{bottom:0;top:auto}.edit-post-layout .entities-saved-states__panel-header{height:61px}@media (min-width:782px){.edit-post-layout.has-fixed-toolbar .interface-interface-skeleton__header:not(:focus-within){z-index:19}}.edit-post-block-manager__no-results{font-style:italic;padding:24px 0;text-align:center}.edit-post-block-manager__search{margin:16px 0}.edit-post-block-manager__disabled-blocks-count{background-color:#fff;border:1px solid #ddd;border-width:1px 0;box-shadow:32px 0 0 0 #fff,-32px 0 0 0 #fff;padding:8px;position:sticky;text-align:center;top:-1px;z-index:2}.edit-post-block-manager__disabled-blocks-count~.edit-post-block-manager__results .edit-post-block-manager__category-title{top:35px}.edit-post-block-manager__disabled-blocks-count .is-link{margin-right:12px}.edit-post-block-manager__category{margin:0 0 24px}.edit-post-block-manager__category-title{background-color:#fff;padding:16px 0;position:sticky;top:-4px;z-index:1}.edit-post-block-manager__category-title .components-checkbox-control__label{font-weight:600}.edit-post-block-manager__checklist{margin-top:0}.edit-post-block-manager__category-title,.edit-post-block-manager__checklist-item{border-bottom:1px solid #ddd}.edit-post-block-manager__checklist-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:0;padding:8px 16px 8px 0}.components-modal__content .edit-post-block-manager__checklist-item.components-checkbox-control__input-container{margin:0 8px}.edit-post-block-manager__checklist-item .block-editor-block-icon{fill:#1e1e1e;margin-left:10px}.edit-post-block-manager__results{border-top:1px solid #ddd}.edit-post-block-manager__disabled-blocks-count+.edit-post-block-manager__results{border-top-width:0}.edit-post-meta-boxes-area{position:relative}.edit-post-meta-boxes-area .inside,.edit-post-meta-boxes-area__container{box-sizing:content-box}.edit-post-meta-boxes-area input,.edit-post-meta-boxes-area textarea{box-sizing:border-box}.edit-post-meta-boxes-area .postbox-header{border-bottom:0;border-top:1px solid #ddd}.edit-post-meta-boxes-area #poststuff{margin:0 auto;min-width:auto;padding-top:0}.edit-post-meta-boxes-area #poststuff .stuffbox>h3,.edit-post-meta-boxes-area #poststuff h2.hndle,.edit-post-meta-boxes-area #poststuff h3.hndle{box-sizing:border-box;color:inherit;font-weight:600;outline:none;padding:0 24px;position:relative;width:100%}.edit-post-meta-boxes-area .postbox{border:0;color:inherit;margin-bottom:0}.edit-post-meta-boxes-area .postbox>.inside{color:inherit;margin:0;padding:0 24px 24px}.edit-post-meta-boxes-area .postbox .handlediv{height:44px;width:44px}.edit-post-meta-boxes-area.is-loading:before{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.edit-post-meta-boxes-area .components-spinner{left:20px;position:absolute;top:10px;z-index:5}.edit-post-meta-boxes-area .is-hidden{display:none}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]{border:1px solid #757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:checked{background:#fff;border-color:#757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:before{margin:-3px -4px}.edit-post-meta-boxes-area__clear{clear:both}.edit-post-editor__document-overview-panel,.edit-post-editor__inserter-panel{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.edit-post-editor__document-overview-panel{width:350px}}.edit-post-editor__document-overview-panel .edit-post-editor__document-overview-panel__close-button{background:#fff;left:8px;position:absolute;top:6px;z-index:1}.edit-post-editor__document-overview-panel .components-tab-panel__tabs{border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;padding-left:56px;width:100%}.edit-post-editor__document-overview-panel .components-tab-panel__tabs .edit-post-sidebar__panel-tab{margin-bottom:-1px;width:50%}.edit-post-editor__document-overview-panel .components-tab-panel__tab-content{height:calc(100% - 47px)}.edit-post-editor__inserter-panel-header{display:flex;justify-content:flex-end;padding-left:8px;padding-top:8px}.edit-post-editor__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-post-editor__inserter-panel-content{height:100%}}.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar,.edit-post-editor__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-track,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-track,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-post-editor__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.edit-post-editor__list-view-container>.document-outline:focus,.edit-post-editor__list-view-container>.document-outline:focus-within,.edit-post-editor__list-view-container>.document-outline:hover,.edit-post-editor__list-view-empty-headings:focus,.edit-post-editor__list-view-empty-headings:focus-within,.edit-post-editor__list-view-empty-headings:hover,.edit-post-editor__list-view-panel-content:focus,.edit-post-editor__list-view-panel-content:focus-within,.edit-post-editor__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{scrollbar-color:#949494 transparent}}.edit-post-editor__list-view-empty-headings{color:#757575;text-align:center}.edit-post-editor__list-view-empty-headings>svg{margin-top:28px}.edit-post-editor__list-view-empty-headings>p{padding-left:32px;padding-right:32px}.edit-post-editor__list-view-overview{border-bottom:1px solid #ddd;display:flex;flex-direction:column;gap:8px;padding:16px}.edit-post-editor__list-view-overview>div>span:first-child{display:inline-block;width:90px}.edit-post-editor__list-view-overview>div>span{color:#757575;font-size:12px;line-height:1.4}.edit-post-editor__list-view-container{display:flex;flex-direction:column;height:100%}.edit-post-editor__document-overview-panel__tab-panel{height:100%}.components-panel__header.edit-post-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:16px;padding-right:0}.components-panel__header.edit-post-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-post-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 auto 0 0;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-panel__body.is-opened.edit-post-last-revision__panel{height:48px;padding:0}.editor-post-last-revision__title.components-button{padding:16px}.edit-post-post-author,.edit-post-post-format{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-schedule{align-items:flex-start;justify-content:flex-start;position:relative;width:100%}.edit-post-post-schedule span{display:block;flex-shrink:0;padding:6px 0;width:45%}.components-button.edit-post-post-schedule__toggle{height:auto;text-align:right;white-space:normal}.components-button.edit-post-post-schedule__toggle span{width:0}.edit-post-post-schedule__dialog .block-editor-publish-date-time-picker{margin:8px}.edit-post-post-slug{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft{margin-top:15px;text-align:center;width:100%}.edit-post-post-template{justify-content:flex-start;width:100%}.edit-post-post-template span{display:block;padding:6px 0;width:45%}.edit-post-post-template__dropdown{max-width:55%}.components-button.edit-post-post-template__toggle{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.edit-post-post-template__dialog{z-index:99999}.edit-post-post-template__form{margin:8px;min-width:248px}@media (min-width:782px){.edit-post-post-template__create-form{width:320px}}.edit-post-post-url{align-items:flex-start;justify-content:flex-start;width:100%}.edit-post-post-url span{display:block;flex-shrink:0;padding:6px 0;width:45%}.components-button.edit-post-post-url__toggle{height:auto;text-align:right;white-space:normal;word-break:break-word}.edit-post-post-url__dialog .editor-post-url{margin:8px;min-width:248px}.edit-post-post-visibility{justify-content:flex-start;width:100%}.edit-post-post-visibility span{display:block;padding:6px 0;width:45%}.edit-post-post-visibility__dialog .editor-post-visibility{margin:8px;min-width:248px}.components-button.edit-post-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-button.edit-post-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-post-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-post-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-post-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-post-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-post-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-post-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}h2.edit-post-template-summary__title{font-weight:500;line-height:24px;margin:0 0 4px}.edit-post-text-editor{background-color:#fff;flex-grow:1;position:relative;width:100%}.edit-post-text-editor .editor-post-title{border:1px solid #949494;font-family:Menlo,Consolas,monaco,monospace;font-size:2.5em;font-weight:400;line-height:1.4;max-width:none;padding:16px}@media (min-width:600px){.edit-post-text-editor .editor-post-title{padding:24px}}.edit-post-text-editor .editor-post-title:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-post-text-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:0 12px 12px;width:100%}@media (min-width:960px){.edit-post-text-editor__body{padding:0 24px 24px}}.edit-post-text-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-post-text-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-post-text-editor__toolbar{padding:12px 24px}}.edit-post-text-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 0 0 auto}.edit-post-text-editor__toolbar .components-button svg{order:1}.edit-post-visual-editor{background-color:#1e1e1e;display:flex;flex:1 0 auto;flex-flow:column;position:relative}.edit-post-visual-editor:not(.has-inline-canvas){overflow:hidden}.edit-post-visual-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-post-visual-editor .components-button.has-icon,.edit-post-visual-editor .components-button.is-tertiary{padding:6px}.edit-post-visual-editor__post-title-wrapper{margin-bottom:var(--wp--style--block-gap);margin-top:4rem}.edit-post-visual-editor__post-title-wrapper .editor-post-title{margin-left:auto;margin-right:auto}.edit-post-visual-editor__content-area{box-sizing:border-box;display:flex;flex-grow:1;height:100%;position:relative;width:100%}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}@media (min-width:783px){.auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}@media (min-width:961px){.auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}body.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0!important}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;border-bottom:none;display:flex;height:60px;margin-right:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:240px;top:0}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:144px}}@media (min-width:960px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-post-welcome-guide,.edit-template-welcome-guide{width:312px}.edit-post-welcome-guide__image,.edit-template-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-post-welcome-guide__image>img,.edit-template-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-post-welcome-guide__heading,.edit-template-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-post-welcome-guide__text,.edit-template-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-post-welcome-guide__inserter-icon,.edit-template-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-template-welcome-guide .components-button svg{fill:#fff}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column;margin-bottom:24px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{min-height:100px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__content{width:100%}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.js.block-editor-page{background:#fff}body.js.block-editor-page #wpcontent{padding-right:0}body.js.block-editor-page #wpbody-content{padding-bottom:0}body.js.block-editor-page #wpbody-content>div:not(.block-editor):not(#screen-meta),body.js.block-editor-page #wpfooter{display:none}body.js.block-editor-page .a11y-speak-region{right:-1px;top:-1px}body.js.block-editor-page ul#adminmenu a.wp-has-current-submenu:after,body.js.block-editor-page ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.block-editor-page #wpwrap{overflow-y:auto}@media (min-width:782px){.block-editor-page #wpwrap{overflow-y:initial}}.components-modal__frame,.components-popover,.edit-post-editor__inserter-panel,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-editor__inserter-panel *,.edit-post-editor__inserter-panel :after,.edit-post-editor__inserter-panel :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{box-sizing:inherit}@media (min-width:600px){.block-editor__container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.block-editor__container{min-height:calc(100vh - 32px)}body.is-fullscreen-mode .block-editor__container{min-height:100vh}}.block-editor__container img{height:auto;max-width:100%}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}}.interface-interface-skeleton__sidebar{border-right:none}@media (min-width:782px){.is-sidebar-opened .interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0;overflow:hidden scroll}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.css index 378912d78a..abd9051411 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-right:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,6 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } +} +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } +} +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } +} +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } +} + +.interface-preferences__tabs .components-tab-panel__tabs{ + left:16px; + position:absolute; + top:84px; + width:160px; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; + font-weight:400; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; + font-weight:500; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-left:160px; + padding-left:24px; +} + +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; + } +} +.interface-preferences-modal__section{ + margin:0 0 2.5rem; +} +.interface-preferences-modal__section:last-child{ + margin:0; +} + +.interface-preferences-modal__section-legend{ + margin-bottom:8px; +} + +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; +} + +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; +} + +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; +} +.interface-preferences-modal__option .components-base-control__help{ + margin-left:48px; + margin-top:0; } .edit-post-header{ @@ -384,7 +471,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ display:flex; flex-wrap:wrap; height:60px; - justify-content:space-between; max-width:100vw; } @media (min-width:280px){ @@ -402,12 +488,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ } .edit-post-header__toolbar{ - align-items:center; display:flex; - flex-grow:3; - flex-shrink:8; - overflow:hidden; - padding:2px 0; + flex-grow:1; } .edit-post-header__toolbar .table-of-contents{ display:none; @@ -417,60 +499,46 @@ body.is-fullscreen-mode .interface-interface-skeleton{ display:block; } } -.edit-post-header__toolbar .selected-block-tools-wrapper{ - display:flex; - overflow-x:hidden; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; -} -.edit-post-header__toolbar .selected-block-tools-wrapper:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-left:8px; - margin-top:12px; - width:1px; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group{ - border-right:none; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-left:8px; - margin-top:12px; - width:1px; -} -.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper.is-collapsed{ - display:none; -} - -.edit-post-header__block-tools-toggle{ - margin-left:2px; -} .edit-post-header__center{ display:flex; flex-grow:1; justify-content:center; } -.edit-post-header__center.is-collapsed{ - display:none; -} .edit-post-header__settings{ align-items:center; display:inline-flex; - flex-wrap:nowrap; - gap:8px; + flex-wrap:wrap; + gap:4px; padding-right:4px; } @media (min-width:600px){ .edit-post-header__settings{ + gap:8px; padding-right:10px; } } + +.edit-post-header-preview__grouping-external{ + display:flex; + padding-bottom:0; + position:relative; +} + +.edit-post-header-preview__button-external{ + display:flex; + justify-content:flex-start; + margin-right:auto; + padding-left:8px; + width:100%; +} +.edit-post-header-preview__button-external svg{ + margin-left:auto; +} + +.edit-post-post-preview-dropdown .components-popover__content{ + padding-bottom:0; +} .edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{ width:auto; } @@ -499,12 +567,12 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{ display:block; } -.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ +.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ padding-left:8px; padding-right:8px; } @media (min-width:600px){ - .edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ + .edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{ padding-left:12px; padding-right:12px; } @@ -513,23 +581,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ content:none; } -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover{ - border-left:none; -} -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover:before{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-left:8px; - margin-top:12px; - width:1px; -} -.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#ddd; - left:calc(50% + 1px); - width:calc(100% - 24px); -} - .edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{ justify-content:flex-start; margin:0; @@ -561,12 +612,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ margin-right:8px; } -@media (min-width:600px){ - .edit-post-header__post-preview-button{ - display:none; - } -} - .is-distraction-free .interface-interface-skeleton__header{ border-bottom:none; } @@ -578,10 +623,10 @@ body.is-fullscreen-mode .interface-interface-skeleton{ position:absolute; width:100%; } -.is-distraction-free .edit-post-header>.edit-post-header__settings>.edit-post-header__post-preview-button{ +.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-post-preview{ visibility:hidden; } -.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-preview-dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__inserter-toggle{ +.is-distraction-free .edit-post-header>.edit-post-header__settings>.block-editor-post-preview__dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__inserter-toggle{ display:none; } .is-distraction-free .interface-interface-skeleton__header:focus-within{ @@ -656,6 +701,157 @@ body.is-fullscreen-mode .interface-interface-skeleton{ width:36px; } +.edit-post-header-toolbar{ + align-items:center; + border:none; + display:inline-flex; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{ + display:none; +} +@media (min-width:600px){ + .edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{ + display:inline-flex; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle{ + display:inline-flex; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{ + transition:transform .2s cubic-bezier(.165, .84, .44, 1); +} +@media (prefers-reduced-motion:reduce){ + .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{ + transition-delay:0s; + transition-duration:0s; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.is-pressed svg{ + transform:rotate(45deg); +} +.edit-post-header-toolbar .block-editor-list-view{ + display:none; +} +@media (min-width:600px){ + .edit-post-header-toolbar .block-editor-list-view{ + display:flex; + } +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon{ + height:36px; + min-width:36px; + padding:6px; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon.is-pressed,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon.is-pressed{ + background:#1e1e1e; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:focus:not(:disabled),.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; + outline:1px solid transparent; +} +.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:before,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:before{ + display:none; +} + +@media (min-width:600px){ + .edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + transition:opacity .1s linear; + } +} +@media (min-width:600px) and (prefers-reduced-motion:reduce){ + .edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + transition-delay:0s; + transition-duration:0s; + } +} +@media (min-width:600px){ + .edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{ + opacity:0; + } +} + +.edit-post-header-toolbar__left{ + align-items:center; + display:inline-flex; + margin-right:8px; + padding-left:8px; +} +@media (min-width:600px){ + .edit-post-header-toolbar__left{ + padding-left:24px; + } +} +@media (min-width:1280px){ + .edit-post-header-toolbar__left{ + padding-right:8px; + } +} + +.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{ + height:32px; + margin-right:8px; + min-width:32px; + padding:0; + width:32px; +} +.show-icon-labels .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{ + height:36px; + padding:0 8px; + width:auto; +} + +.show-icon-labels .edit-post-header-toolbar__left>*+*{ + margin-left:8px; +} + +.edit-post-document-actions{ + align-items:center; + background:#f0f0f0; + border-radius:4px; + display:flex; + gap:8px; + height:36px; + justify-content:space-between; + min-width:0; + width:min(100%, 450px); +} +.edit-post-document-actions .components-button:hover{ + background:#e0e0e0; + color:var(--wp-block-synced-color); +} + +.edit-post-document-actions__command,.edit-post-document-actions__title{ + color:var(--wp-block-synced-color); + flex-grow:1; + overflow:hidden; +} +.edit-post-document-actions__title:hover{ + color:var(--wp-block-synced-color); +} +.edit-post-document-actions__title .block-editor-block-icon{ + flex-shrink:0; +} +.edit-post-document-actions__title h1{ + color:var(--wp-block-synced-color); + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} + +.edit-post-document-actions__shortcut{ + color:#2f2f2f; +} + +.edit-post-document-actions__back.components-button.has-icon.has-text{ + color:#757575; + flex-shrink:0; + gap:0; + min-width:36px; +} +.edit-post-document-actions__back.components-button.has-icon.has-text:hover{ + color:currentColor; +} + .edit-post-keyboard-shortcut-help-modal__section{ margin:0 0 2rem; } @@ -827,6 +1023,86 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ height:61px; } +@media (min-width:782px){ + .edit-post-layout.has-fixed-toolbar .interface-interface-skeleton__header:not(:focus-within){ + z-index:19; + } +} + +.edit-post-block-manager__no-results{ + font-style:italic; + padding:24px 0; + text-align:center; +} + +.edit-post-block-manager__search{ + margin:16px 0; +} + +.edit-post-block-manager__disabled-blocks-count{ + background-color:#fff; + border:1px solid #ddd; + border-width:1px 0; + box-shadow:-32px 0 0 0 #fff,32px 0 0 0 #fff; + padding:8px; + position:sticky; + text-align:center; + top:-1px; + z-index:2; +} +.edit-post-block-manager__disabled-blocks-count~.edit-post-block-manager__results .edit-post-block-manager__category-title{ + top:35px; +} +.edit-post-block-manager__disabled-blocks-count .is-link{ + margin-left:12px; +} + +.edit-post-block-manager__category{ + margin:0 0 24px; +} + +.edit-post-block-manager__category-title{ + background-color:#fff; + padding:16px 0; + position:sticky; + top:-4px; + z-index:1; +} +.edit-post-block-manager__category-title .components-checkbox-control__label{ + font-weight:600; +} + +.edit-post-block-manager__checklist{ + margin-top:0; +} + +.edit-post-block-manager__category-title,.edit-post-block-manager__checklist-item{ + border-bottom:1px solid #ddd; +} + +.edit-post-block-manager__checklist-item{ + align-items:center; + display:flex; + justify-content:space-between; + margin-bottom:0; + padding:8px 0 8px 16px; +} +.components-modal__content .edit-post-block-manager__checklist-item.components-checkbox-control__input-container{ + margin:0 8px; +} +.edit-post-block-manager__checklist-item .block-editor-block-icon{ + fill:#1e1e1e; + margin-right:10px; +} + +.edit-post-block-manager__results{ + border-top:1px solid #ddd; +} + +.edit-post-block-manager__disabled-blocks-count+.edit-post-block-manager__results{ + border-top-width:0; +} + .edit-post-meta-boxes-area{ position:relative; } @@ -901,13 +1177,146 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ .edit-post-meta-boxes-area__clear{ clear:both; } +.edit-post-editor__document-overview-panel,.edit-post-editor__inserter-panel{ + display:flex; + flex-direction:column; + height:100%; +} + +@media (min-width:782px){ + .edit-post-editor__document-overview-panel{ + width:350px; + } +} +.edit-post-editor__document-overview-panel .edit-post-editor__document-overview-panel__close-button{ + background:#fff; + position:absolute; + right:8px; + top:6px; + z-index:1; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tabs{ + border-bottom:1px solid #ddd; + box-sizing:border-box; + display:flex; + padding-right:56px; + width:100%; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tabs .edit-post-sidebar__panel-tab{ + margin-bottom:-1px; + width:50%; +} +.edit-post-editor__document-overview-panel .components-tab-panel__tab-content{ + height:calc(100% - 47px); +} + +.edit-post-editor__inserter-panel-header{ + display:flex; + justify-content:flex-end; + padding-right:8px; + padding-top:8px; +} + +.edit-post-editor__inserter-panel-content{ + height:calc(100% - 44px); +} +@media (min-width:782px){ + .edit-post-editor__inserter-panel-content{ + height:100%; + } +} + +.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{ + height:100%; + overflow:auto; + padding:8px 6px; + scrollbar-color:transparent transparent; + scrollbar-gutter:stable both-edges; + scrollbar-gutter:auto; + scrollbar-width:thin; + will-change:transform; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar,.edit-post-editor__list-view-panel-content::-webkit-scrollbar{ + height:12px; + width:12px; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-track,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-track,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-track{ + background-color:transparent; +} +.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-thumb{ + background-clip:padding-box; + background-color:transparent; + border:3px solid transparent; + border-radius:8px; +} +.edit-post-editor__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{ + background-color:#949494; +} +.edit-post-editor__list-view-container>.document-outline:focus,.edit-post-editor__list-view-container>.document-outline:focus-within,.edit-post-editor__list-view-container>.document-outline:hover,.edit-post-editor__list-view-empty-headings:focus,.edit-post-editor__list-view-empty-headings:focus-within,.edit-post-editor__list-view-empty-headings:hover,.edit-post-editor__list-view-panel-content:focus,.edit-post-editor__list-view-panel-content:focus-within,.edit-post-editor__list-view-panel-content:hover{ + scrollbar-color:#949494 transparent; +} +@media (hover:none){ + .edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{ + scrollbar-color:#949494 transparent; + } +} + +.edit-post-editor__list-view-empty-headings{ + color:#757575; + text-align:center; +} +.edit-post-editor__list-view-empty-headings>svg{ + margin-top:28px; +} +.edit-post-editor__list-view-empty-headings>p{ + padding-left:32px; + padding-right:32px; +} + +.edit-post-editor__list-view-overview{ + border-bottom:1px solid #ddd; + display:flex; + flex-direction:column; + gap:8px; + padding:16px; +} +.edit-post-editor__list-view-overview>div>span:first-child{ + display:inline-block; + width:90px; +} +.edit-post-editor__list-view-overview>div>span{ + color:#757575; + font-size:12px; + line-height:1.4; +} + +.edit-post-editor__list-view-container{ + display:flex; + flex-direction:column; + height:100%; +} + +.edit-post-editor__document-overview-panel__tab-panel{ + height:100%; +} .components-panel__header.edit-post-sidebar__panel-tabs{ + border-top:0; + justify-content:flex-start; + margin-top:0; padding-left:0; padding-right:16px; } +.components-panel__header.edit-post-sidebar__panel-tabs ul{ + display:flex; +} +.components-panel__header.edit-post-sidebar__panel-tabs li{ + margin:0; +} .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{ + display:none; height:24px; + margin:0 0 0 auto; min-width:24px; padding:0; } @@ -917,21 +1326,197 @@ body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{ } } -.edit-post-sidebar__panel{ - margin-top:-1px; +.components-panel__body.is-opened.edit-post-last-revision__panel{ + height:48px; + padding:0; +} + +.editor-post-last-revision__title.components-button{ + padding:16px; +} + +.edit-post-post-author,.edit-post-post-format{ + align-items:stretch; + display:flex; + flex-direction:column; +} + +.edit-post-post-schedule{ + align-items:flex-start; + justify-content:flex-start; + position:relative; + width:100%; +} +.edit-post-post-schedule span{ + display:block; + flex-shrink:0; + padding:6px 0; + width:45%; +} + +.components-button.edit-post-post-schedule__toggle{ + height:auto; + text-align:left; + white-space:normal; +} +.components-button.edit-post-post-schedule__toggle span{ + width:0; +} + +.edit-post-post-schedule__dialog .block-editor-publish-date-time-picker{ + margin:8px; } -.edit-post-post-format,.edit-post-post-slug{ +.edit-post-post-slug{ align-items:stretch; display:flex; flex-direction:column; } +.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft{ + margin-top:15px; + text-align:center; + width:100%; +} + +.edit-post-post-template{ + justify-content:flex-start; + width:100%; +} +.edit-post-post-template span{ + display:block; + padding:6px 0; + width:45%; +} + +.edit-post-post-template__dropdown{ + max-width:55%; +} + +.components-button.edit-post-post-template__toggle{ + display:inline-block; + overflow:hidden; + text-overflow:ellipsis; + width:100%; +} + +.edit-post-post-template__dialog{ + z-index:99999; +} + +.edit-post-post-template__form{ + margin:8px; + min-width:248px; +} + +@media (min-width:782px){ + .edit-post-post-template__create-form{ + width:320px; + } +} + +.edit-post-post-url{ + align-items:flex-start; + justify-content:flex-start; + width:100%; +} +.edit-post-post-url span{ + display:block; + flex-shrink:0; + padding:6px 0; + width:45%; +} + +.components-button.edit-post-post-url__toggle{ + height:auto; + text-align:left; + white-space:normal; + word-break:break-word; +} + +.edit-post-post-url__dialog .editor-post-url{ + margin:8px; + min-width:248px; +} + +.edit-post-post-visibility{ + justify-content:flex-start; + width:100%; +} +.edit-post-post-visibility span{ + display:block; + padding:6px 0; + width:45%; +} + .edit-post-post-visibility__dialog .editor-post-visibility{ margin:8px; min-width:248px; } +.components-button.edit-post-sidebar__panel-tab{ + background:transparent; + border:none; + border-radius:0; + box-shadow:none; + cursor:pointer; + font-weight:500; + height:48px; + margin-left:0; + padding:3px 16px; + position:relative; +} +.components-button.edit-post-sidebar__panel-tab:focus:not(:disabled){ + box-shadow:none; + outline:none; + position:relative; +} +.components-button.edit-post-sidebar__panel-tab:after{ + background:var(--wp-admin-theme-color); + border-radius:0; + bottom:0; + content:""; + height:calc(var(--wp-admin-border-width-focus)*0); + left:0; + pointer-events:none; + position:absolute; + right:0; + transition:all .1s linear; +} +@media (prefers-reduced-motion:reduce){ + .components-button.edit-post-sidebar__panel-tab:after{ + transition-delay:0s; + transition-duration:0s; + } +} +.components-button.edit-post-sidebar__panel-tab.is-active:after{ + height:calc(var(--wp-admin-border-width-focus)*1); + outline:2px solid transparent; + outline-offset:-1px; +} +.components-button.edit-post-sidebar__panel-tab:before{ + border-radius:2px; + bottom:12px; + box-shadow:0 0 0 0 transparent; + content:""; + left:12px; + pointer-events:none; + position:absolute; + right:12px; + top:12px; + transition:all .1s linear; +} +@media (prefers-reduced-motion:reduce){ + .components-button.edit-post-sidebar__panel-tab:before{ + transition-delay:0s; + transition-duration:0s; + } +} +.components-button.edit-post-sidebar__panel-tab:focus-visible:before{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} + h2.edit-post-template-summary__title{ font-weight:500; line-height:24px; @@ -944,9 +1529,8 @@ h2.edit-post-template-summary__title{ position:relative; width:100%; } -.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){ +.edit-post-text-editor .editor-post-title{ border:1px solid #949494; - border-radius:0; font-family:Menlo,Consolas,monaco,monospace; font-size:2.5em; font-weight:400; @@ -955,11 +1539,11 @@ h2.edit-post-template-summary__title{ padding:16px; } @media (min-width:600px){ - .edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){ + .edit-post-text-editor .editor-post-title{ padding:24px; } } -.edit-post-text-editor .editor-post-title.is-raw-text textarea:focus,.edit-post-text-editor .editor-post-title:not(.is-raw-text):focus{ +.edit-post-text-editor .editor-post-title:focus{ border-color:var(--wp-admin-theme-color); box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } @@ -1003,6 +1587,9 @@ h2.edit-post-template-summary__title{ line-height:36px; margin:0 auto 0 0; } +.edit-post-text-editor__toolbar .components-button svg{ + order:1; +} .edit-post-visual-editor{ background-color:#1e1e1e; @@ -1019,10 +1606,19 @@ h2.edit-post-template-summary__title{ font-size:13px; padding:6px 12px; } -.edit-post-visual-editor .components-button.has-icon{ +.edit-post-visual-editor .components-button.has-icon,.edit-post-visual-editor .components-button.is-tertiary{ padding:6px; } +.edit-post-visual-editor__post-title-wrapper{ + margin-bottom:var(--wp--style--block-gap); + margin-top:4rem; +} +.edit-post-visual-editor__post-title-wrapper .editor-post-title{ + margin-left:auto; + margin-right:auto; +} + .edit-post-visual-editor__content-area{ box-sizing:border-box; display:flex; @@ -1032,6 +1628,83 @@ h2.edit-post-template-summary__title{ width:100%; } +.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} + +body.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0 !important; +} + +.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; +} +@media (min-width:782px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + border-bottom:none; + display:flex; + height:60px; + margin-left:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:240px; + top:0; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:144px; + } +} +@media (min-width:960px){ + .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } +} + .edit-post-welcome-guide,.edit-template-welcome-guide{ width:312px; } @@ -1131,10 +1804,10 @@ body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{ } } -.components-modal__frame,.components-popover,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{ +.components-modal__frame,.components-popover,.edit-post-editor__inserter-panel,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{ box-sizing:border-box; } -.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{ +.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-editor__inserter-panel *,.edit-post-editor__inserter-panel :after,.edit-post-editor__inserter-panel :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{ box-sizing:inherit; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.min.css index dd586d400f..f75e6c63c6 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-post/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.edit-post-header{align-items:center;background:#fff;display:flex;flex-wrap:wrap;height:60px;justify-content:space-between;max-width:100vw}@media (min-width:280px){.edit-post-header{flex-wrap:nowrap}}.edit-post-header>.edit-post-header__settings{order:1}@supports (position:sticky){.edit-post-header>.edit-post-header__settings{order:0}}.edit-post-header__toolbar{align-items:center;display:flex;flex-grow:3;flex-shrink:8;overflow:hidden;padding:2px 0}.edit-post-header__toolbar .table-of-contents{display:none}@media (min-width:600px){.edit-post-header__toolbar .table-of-contents{display:block}}.edit-post-header__toolbar .selected-block-tools-wrapper{display:flex;overflow-x:hidden}.edit-post-header__toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.edit-post-header__toolbar .selected-block-tools-wrapper:after{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group{border-right:none}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.edit-post-header__toolbar .selected-block-tools-wrapper.is-collapsed{display:none}.edit-post-header__block-tools-toggle{margin-left:2px}.edit-post-header__center{display:flex;flex-grow:1;justify-content:center}.edit-post-header__center.is-collapsed{display:none}.edit-post-header__settings{align-items:center;display:inline-flex;flex-wrap:nowrap;gap:8px;padding-right:4px}@media (min-width:600px){.edit-post-header__settings{padding-right:10px}}.edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{width:auto}.edit-post-header__dropdown .components-button.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon svg{display:none}.edit-post-header__dropdown .components-button.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon:after{content:attr(aria-label)}.edit-post-header__dropdown .components-button.has-icon[aria-disabled=true],.show-icon-labels .edit-post-header .components-button.has-icon[aria-disabled=true],.show-icon-labels.interface-pinned-items .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-post-header__dropdown .is-tertiary:active,.show-icon-labels .edit-post-header .is-tertiary:active,.show-icon-labels.interface-pinned-items .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-post-header__dropdown .components-button.has-icon.button-toggle svg,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle svg,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle svg,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon svg{display:block}.edit-post-header__dropdown .components-button.has-icon.button-toggle:after,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle:after,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle:after,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon:after{content:none}.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon{width:60px}.edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{display:block}.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-post-header__dropdown .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:12px;padding-right:12px}}.edit-post-header__dropdown .editor-post-save-draft.editor-post-save-draft:after,.edit-post-header__dropdown .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels .edit-post-header .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels .edit-post-header .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels.interface-pinned-items .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels.interface-pinned-items .editor-post-saved-state.editor-post-saved-state:after{content:none}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover{border-left:none}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.show-icon-labels .edit-post-header__toolbar .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#ddd;left:calc(50% + 1px);width:calc(100% - 24px)}.edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{justify-content:flex-start;margin:0;padding:6px 6px 6px 40px;text-align:left;width:14.625rem}.show-icon-labels.interface-pinned-items{border-bottom:1px solid #ccc;display:block;margin:0 -12px;padding:6px 12px 12px}.show-icon-labels.interface-pinned-items>.components-button.has-icon{justify-content:flex-start;margin:0;padding:6px 6px 6px 8px;width:14.625rem}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=true] svg{display:block;max-width:24px}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=false]{padding-left:40px}.show-icon-labels.interface-pinned-items>.components-button.has-icon svg{margin-right:8px}@media (min-width:600px){.edit-post-header__post-preview-button{display:none}}.is-distraction-free .interface-interface-skeleton__header{border-bottom:none}.is-distraction-free .edit-post-header{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background-color:hsla(0,0%,100%,.9);border-bottom:1px solid #e0e0e0;position:absolute;width:100%}.is-distraction-free .edit-post-header>.edit-post-header__settings>.edit-post-header__post-preview-button{visibility:hidden}.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-preview-dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .editor-document-tools__inserter-toggle{display:none}.is-distraction-free .interface-interface-skeleton__header:focus-within{opacity:1!important}.is-distraction-free .interface-interface-skeleton__header:focus-within div{transform:translateX(0) translateZ(0)!important}.is-distraction-free .components-editor-notices__dismissible{position:absolute;z-index:35}.edit-post-fullscreen-mode-close.components-button{display:none}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button{align-items:center;align-self:stretch;background:#1e1e1e;border:none;border-radius:0;color:#fff;display:flex;height:61px;margin-bottom:-1px;position:relative;width:60px}.edit-post-fullscreen-mode-close.components-button:active{color:#fff}.edit-post-fullscreen-mode-close.components-button:focus{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:before{border-radius:4px;bottom:10px;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #1e1e1e;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-fullscreen-mode-close.components-button:before{transition-delay:0s;transition-duration:0s}}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button:hover:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #757575}.edit-post-fullscreen-mode-close.components-button.has-icon:hover:before{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}}.edit-post-fullscreen-mode-close.components-button .edit-post-fullscreen-mode-close_site-icon{border-radius:2px;height:36px;margin-top:-1px;object-fit:cover;width:36px}.edit-post-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-post-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-post-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-post-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-post-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-post-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-post-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-post-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.edit-post-layout__metaboxes{clear:both;flex-shrink:0}.edit-post-layout .components-editor-notices__snackbar{bottom:40px;padding-left:16px;padding-right:16px;position:fixed;right:0}.is-distraction-free .components-editor-notices__snackbar{bottom:20px}.edit-post-layout .components-editor-notices__snackbar{left:0}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{left:160px}}.folded .edit-post-layout .components-editor-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-post-layout .components-editor-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{left:0!important}.edit-post-layout .editor-post-publish-panel{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:46px;z-index:100001}@media (min-width:782px){.edit-post-layout .editor-post-publish-panel{animation:edit-post-post-publish-panel__slide-in-animation .1s forwards;border-left:1px solid #ddd;left:auto;top:32px;transform:translateX(100%);width:281px;z-index:99998}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-layout .editor-post-publish-panel{animation-delay:0s;animation-duration:1ms}}@media (min-width:782px){body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel{top:0}[role=region]:focus .edit-post-layout .editor-post-publish-panel{transform:translateX(0)}}@keyframes edit-post-post-publish-panel__slide-in-animation{to{transform:translateX(0)}}.edit-post-layout .editor-post-publish-panel__header-publish-button{justify-content:center}.edit-post-layout__toggle-entities-saved-states-panel,.edit-post-layout__toggle-publish-panel,.edit-post-layout__toggle-sidebar-panel{background-color:#fff;border:1px dotted #ddd;bottom:auto;box-sizing:border-box;display:flex;height:auto!important;justify-content:center;left:auto;padding:24px;position:fixed!important;right:0;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__sidebar:focus .edit-post-layout__toggle-sidebar-panel,.interface-interface-skeleton__sidebar:focus-within .edit-post-layout__toggle-sidebar-panel{bottom:0;top:auto}.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel{bottom:0;top:auto}.edit-post-layout .entities-saved-states__panel-header{height:61px}.edit-post-meta-boxes-area{position:relative}.edit-post-meta-boxes-area .inside,.edit-post-meta-boxes-area__container{box-sizing:content-box}.edit-post-meta-boxes-area input,.edit-post-meta-boxes-area textarea{box-sizing:border-box}.edit-post-meta-boxes-area .postbox-header{border-bottom:0;border-top:1px solid #ddd}.edit-post-meta-boxes-area #poststuff{margin:0 auto;min-width:auto;padding-top:0}.edit-post-meta-boxes-area #poststuff .stuffbox>h3,.edit-post-meta-boxes-area #poststuff h2.hndle,.edit-post-meta-boxes-area #poststuff h3.hndle{box-sizing:border-box;color:inherit;font-weight:600;outline:none;padding:0 24px;position:relative;width:100%}.edit-post-meta-boxes-area .postbox{border:0;color:inherit;margin-bottom:0}.edit-post-meta-boxes-area .postbox>.inside{color:inherit;margin:0;padding:0 24px 24px}.edit-post-meta-boxes-area .postbox .handlediv{height:44px;width:44px}.edit-post-meta-boxes-area.is-loading:before{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.edit-post-meta-boxes-area .components-spinner{position:absolute;right:20px;top:10px;z-index:5}.edit-post-meta-boxes-area .is-hidden{display:none}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]{border:1px solid #757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:checked{background:#fff;border-color:#757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:before{margin:-3px -4px}.edit-post-meta-boxes-area__clear{clear:both}.components-panel__header.edit-post-sidebar__panel-tabs{padding-left:0;padding-right:16px}.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{height:24px;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:flex}}.edit-post-sidebar__panel{margin-top:-1px}.edit-post-post-format,.edit-post-post-slug{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-visibility__dialog .editor-post-visibility{margin:8px;min-width:248px}h2.edit-post-template-summary__title{font-weight:500;line-height:24px;margin:0 0 4px}.edit-post-text-editor{background-color:#fff;flex-grow:1;position:relative;width:100%}.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){border:1px solid #949494;border-radius:0;font-family:Menlo,Consolas,monaco,monospace;font-size:2.5em;font-weight:400;line-height:1.4;max-width:none;padding:16px}@media (min-width:600px){.edit-post-text-editor .editor-post-title.is-raw-text textarea,.edit-post-text-editor .editor-post-title:not(.is-raw-text){padding:24px}}.edit-post-text-editor .editor-post-title.is-raw-text textarea:focus,.edit-post-text-editor .editor-post-title:not(.is-raw-text):focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-post-text-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:0 12px 12px;width:100%}@media (min-width:960px){.edit-post-text-editor__body{padding:0 24px 24px}}.edit-post-text-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-post-text-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-post-text-editor__toolbar{padding:12px 24px}}.edit-post-text-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 auto 0 0}.edit-post-visual-editor{background-color:#1e1e1e;display:flex;flex:1 0 auto;flex-flow:column;position:relative}.edit-post-visual-editor:not(.has-inline-canvas){overflow:hidden}.edit-post-visual-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-post-visual-editor .components-button.has-icon{padding:6px}.edit-post-visual-editor__content-area{box-sizing:border-box;display:flex;flex-grow:1;height:100%;position:relative;width:100%}.edit-post-welcome-guide,.edit-template-welcome-guide{width:312px}.edit-post-welcome-guide__image,.edit-template-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-post-welcome-guide__image>img,.edit-template-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-post-welcome-guide__heading,.edit-template-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-post-welcome-guide__text,.edit-template-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-post-welcome-guide__inserter-icon,.edit-template-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-template-welcome-guide .components-button svg{fill:#fff}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column;margin-bottom:24px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{min-height:100px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__content{width:100%}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.js.block-editor-page{background:#fff}body.js.block-editor-page #wpcontent{padding-left:0}body.js.block-editor-page #wpbody-content{padding-bottom:0}body.js.block-editor-page #wpbody-content>div:not(.block-editor):not(#screen-meta),body.js.block-editor-page #wpfooter{display:none}body.js.block-editor-page .a11y-speak-region{left:-1px;top:-1px}body.js.block-editor-page ul#adminmenu a.wp-has-current-submenu:after,body.js.block-editor-page ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.block-editor-page #wpwrap{overflow-y:auto}@media (min-width:782px){.block-editor-page #wpwrap{overflow-y:initial}}.components-modal__frame,.components-popover,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{box-sizing:inherit}@media (min-width:600px){.block-editor__container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.block-editor__container{min-height:calc(100vh - 32px)}body.is-fullscreen-mode .block-editor__container{min-height:100vh}}.block-editor__container img{height:auto;max-width:100%}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}}.interface-interface-skeleton__sidebar{border-left:none}@media (min-width:782px){.is-sidebar-opened .interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0;overflow:hidden scroll}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-right:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{left:16px;position:absolute;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-left:160px;padding-left:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-left:48px;margin-top:0}.edit-post-header{align-items:center;background:#fff;display:flex;flex-wrap:wrap;height:60px;max-width:100vw}@media (min-width:280px){.edit-post-header{flex-wrap:nowrap}}.edit-post-header>.edit-post-header__settings{order:1}@supports (position:sticky){.edit-post-header>.edit-post-header__settings{order:0}}.edit-post-header__toolbar{display:flex;flex-grow:1}.edit-post-header__toolbar .table-of-contents{display:none}@media (min-width:600px){.edit-post-header__toolbar .table-of-contents{display:block}}.edit-post-header__center{display:flex;flex-grow:1;justify-content:center}.edit-post-header__settings{align-items:center;display:inline-flex;flex-wrap:wrap;gap:4px;padding-right:4px}@media (min-width:600px){.edit-post-header__settings{gap:8px;padding-right:10px}}.edit-post-header-preview__grouping-external{display:flex;padding-bottom:0;position:relative}.edit-post-header-preview__button-external{display:flex;justify-content:flex-start;margin-right:auto;padding-left:8px;width:100%}.edit-post-header-preview__button-external svg{margin-left:auto}.edit-post-post-preview-dropdown .components-popover__content{padding-bottom:0}.edit-post-header__dropdown .components-button.has-icon,.show-icon-labels .edit-post-header .components-button.has-icon,.show-icon-labels.interface-pinned-items .components-button.has-icon{width:auto}.edit-post-header__dropdown .components-button.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon svg{display:none}.edit-post-header__dropdown .components-button.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon:after{content:attr(aria-label)}.edit-post-header__dropdown .components-button.has-icon[aria-disabled=true],.show-icon-labels .edit-post-header .components-button.has-icon[aria-disabled=true],.show-icon-labels.interface-pinned-items .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-post-header__dropdown .is-tertiary:active,.show-icon-labels .edit-post-header .is-tertiary:active,.show-icon-labels.interface-pinned-items .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-post-header__dropdown .components-button.has-icon.button-toggle svg,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle svg,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon svg,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle svg,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon svg{display:block}.edit-post-header__dropdown .components-button.has-icon.button-toggle:after,.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels .edit-post-header .components-button.has-icon.button-toggle:after,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon:after,.show-icon-labels.interface-pinned-items .components-button.has-icon.button-toggle:after,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon:after{content:none}.edit-post-header__dropdown .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels .edit-post-header .edit-post-fullscreen-mode-close.has-icon,.show-icon-labels.interface-pinned-items .edit-post-fullscreen-mode-close.has-icon{width:60px}.edit-post-header__dropdown .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels .edit-post-header .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon,.show-icon-labels.interface-pinned-items .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon{display:block}.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-post-header__dropdown .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.edit-post-header__dropdown .interface-pinned-items .components-button,.show-icon-labels .edit-post-header .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels .edit-post-header .interface-pinned-items .components-button,.show-icon-labels.interface-pinned-items .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,.show-icon-labels.interface-pinned-items .interface-pinned-items .components-button{padding-left:12px;padding-right:12px}}.edit-post-header__dropdown .editor-post-save-draft.editor-post-save-draft:after,.edit-post-header__dropdown .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels .edit-post-header .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels .edit-post-header .editor-post-saved-state.editor-post-saved-state:after,.show-icon-labels.interface-pinned-items .editor-post-save-draft.editor-post-save-draft:after,.show-icon-labels.interface-pinned-items .editor-post-saved-state.editor-post-saved-state:after{content:none}.edit-post-header__dropdown .components-button.block-editor-list-view,.edit-post-header__dropdown .components-button.editor-history__redo,.edit-post-header__dropdown .components-button.editor-history__undo,.edit-post-header__dropdown .components-menu-item__button.components-menu-item__button,.edit-post-header__dropdown .table-of-contents .components-button{justify-content:flex-start;margin:0;padding:6px 6px 6px 40px;text-align:left;width:14.625rem}.show-icon-labels.interface-pinned-items{border-bottom:1px solid #ccc;display:block;margin:0 -12px;padding:6px 12px 12px}.show-icon-labels.interface-pinned-items>.components-button.has-icon{justify-content:flex-start;margin:0;padding:6px 6px 6px 8px;width:14.625rem}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=true] svg{display:block;max-width:24px}.show-icon-labels.interface-pinned-items>.components-button.has-icon[aria-expanded=false]{padding-left:40px}.show-icon-labels.interface-pinned-items>.components-button.has-icon svg{margin-right:8px}.is-distraction-free .interface-interface-skeleton__header{border-bottom:none}.is-distraction-free .edit-post-header{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background-color:hsla(0,0%,100%,.9);border-bottom:1px solid #e0e0e0;position:absolute;width:100%}.is-distraction-free .edit-post-header>.edit-post-header__settings>.editor-post-preview{visibility:hidden}.is-distraction-free .edit-post-header>.edit-post-header__settings>.block-editor-post-preview__dropdown,.is-distraction-free .edit-post-header>.edit-post-header__settings>.interface-pinned-items,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__document-overview-toggle,.is-distraction-free .edit-post-header>.edit-post-header__toolbar .edit-post-header-toolbar__inserter-toggle{display:none}.is-distraction-free .interface-interface-skeleton__header:focus-within{opacity:1!important}.is-distraction-free .interface-interface-skeleton__header:focus-within div{transform:translateX(0) translateZ(0)!important}.is-distraction-free .components-editor-notices__dismissible{position:absolute;z-index:35}.edit-post-fullscreen-mode-close.components-button{display:none}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button{align-items:center;align-self:stretch;background:#1e1e1e;border:none;border-radius:0;color:#fff;display:flex;height:61px;margin-bottom:-1px;position:relative;width:60px}.edit-post-fullscreen-mode-close.components-button:active{color:#fff}.edit-post-fullscreen-mode-close.components-button:focus{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:before{border-radius:4px;bottom:10px;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #1e1e1e;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-fullscreen-mode-close.components-button:before{transition-delay:0s;transition-duration:0s}}@media (min-width:782px){.edit-post-fullscreen-mode-close.components-button:hover:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) #757575}.edit-post-fullscreen-mode-close.components-button.has-icon:hover:before{box-shadow:none}.edit-post-fullscreen-mode-close.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}}.edit-post-fullscreen-mode-close.components-button .edit-post-fullscreen-mode-close_site-icon{border-radius:2px;height:36px;margin-top:-1px;object-fit:cover;width:36px}.edit-post-header-toolbar{align-items:center;border:none;display:inline-flex}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{display:none}@media (min-width:600px){.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button{display:inline-flex}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle{display:inline-flex}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.edit-post-header-toolbar .block-editor-list-view{display:none}@media (min-width:600px){.edit-post-header-toolbar .block-editor-list-view{display:flex}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon{height:36px;min-width:36px;padding:6px}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon.is-pressed,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:focus:not(:disabled),.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-button.has-icon:before,.edit-post-header-toolbar .edit-post-header-toolbar__left>.components-dropdown>.components-button.has-icon:before{display:none}@media (min-width:600px){.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{transition:opacity .1s linear}}@media (min-width:600px) and (prefers-reduced-motion:reduce){.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-button,.edit-post-header.has-reduced-ui:not(:hover) .edit-post-header-toolbar__left>*+.components-dropdown>[aria-expanded=false]{opacity:0}}.edit-post-header-toolbar__left{align-items:center;display:inline-flex;margin-right:8px;padding-left:8px}@media (min-width:600px){.edit-post-header-toolbar__left{padding-left:24px}}@media (min-width:1280px){.edit-post-header-toolbar__left{padding-right:8px}}.edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{height:32px;margin-right:8px;min-width:32px;padding:0;width:32px}.show-icon-labels .edit-post-header-toolbar .edit-post-header-toolbar__left>.edit-post-header-toolbar__inserter-toggle.has-icon{height:36px;padding:0 8px;width:auto}.show-icon-labels .edit-post-header-toolbar__left>*+*{margin-left:8px}.edit-post-document-actions{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;gap:8px;height:36px;justify-content:space-between;min-width:0;width:min(100%,450px)}.edit-post-document-actions .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}.edit-post-document-actions__command,.edit-post-document-actions__title{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.edit-post-document-actions__title:hover{color:var(--wp-block-synced-color)}.edit-post-document-actions__title .block-editor-block-icon{flex-shrink:0}.edit-post-document-actions__title h1{color:var(--wp-block-synced-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-post-document-actions__shortcut{color:#2f2f2f}.edit-post-document-actions__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px}.edit-post-document-actions__back.components-button.has-icon.has-text:hover{color:currentColor}.edit-post-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-post-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-post-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-post-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-post-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-post-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-post-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-post-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.edit-post-layout__metaboxes{clear:both;flex-shrink:0}.edit-post-layout .components-editor-notices__snackbar{bottom:40px;padding-left:16px;padding-right:16px;position:fixed;right:0}.is-distraction-free .components-editor-notices__snackbar{bottom:20px}.edit-post-layout .components-editor-notices__snackbar{left:0}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar{left:160px}}.folded .edit-post-layout .components-editor-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-post-layout .components-editor-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar{left:0!important}.edit-post-layout .editor-post-publish-panel{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:46px;z-index:100001}@media (min-width:782px){.edit-post-layout .editor-post-publish-panel{animation:edit-post-post-publish-panel__slide-in-animation .1s forwards;border-left:1px solid #ddd;left:auto;top:32px;transform:translateX(100%);width:281px;z-index:99998}}@media (min-width:782px) and (prefers-reduced-motion:reduce){.edit-post-layout .editor-post-publish-panel{animation-delay:0s;animation-duration:1ms}}@media (min-width:782px){body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel{top:0}[role=region]:focus .edit-post-layout .editor-post-publish-panel{transform:translateX(0)}}@keyframes edit-post-post-publish-panel__slide-in-animation{to{transform:translateX(0)}}.edit-post-layout .editor-post-publish-panel__header-publish-button{justify-content:center}.edit-post-layout__toggle-entities-saved-states-panel,.edit-post-layout__toggle-publish-panel,.edit-post-layout__toggle-sidebar-panel{background-color:#fff;border:1px dotted #ddd;bottom:auto;box-sizing:border-box;display:flex;height:auto!important;justify-content:center;left:auto;padding:24px;position:fixed!important;right:0;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__sidebar:focus .edit-post-layout__toggle-sidebar-panel,.interface-interface-skeleton__sidebar:focus-within .edit-post-layout__toggle-sidebar-panel{bottom:0;top:auto}.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-entities-saved-states-panel,.interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel{bottom:0;top:auto}.edit-post-layout .entities-saved-states__panel-header{height:61px}@media (min-width:782px){.edit-post-layout.has-fixed-toolbar .interface-interface-skeleton__header:not(:focus-within){z-index:19}}.edit-post-block-manager__no-results{font-style:italic;padding:24px 0;text-align:center}.edit-post-block-manager__search{margin:16px 0}.edit-post-block-manager__disabled-blocks-count{background-color:#fff;border:1px solid #ddd;border-width:1px 0;box-shadow:-32px 0 0 0 #fff,32px 0 0 0 #fff;padding:8px;position:sticky;text-align:center;top:-1px;z-index:2}.edit-post-block-manager__disabled-blocks-count~.edit-post-block-manager__results .edit-post-block-manager__category-title{top:35px}.edit-post-block-manager__disabled-blocks-count .is-link{margin-left:12px}.edit-post-block-manager__category{margin:0 0 24px}.edit-post-block-manager__category-title{background-color:#fff;padding:16px 0;position:sticky;top:-4px;z-index:1}.edit-post-block-manager__category-title .components-checkbox-control__label{font-weight:600}.edit-post-block-manager__checklist{margin-top:0}.edit-post-block-manager__category-title,.edit-post-block-manager__checklist-item{border-bottom:1px solid #ddd}.edit-post-block-manager__checklist-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:0;padding:8px 0 8px 16px}.components-modal__content .edit-post-block-manager__checklist-item.components-checkbox-control__input-container{margin:0 8px}.edit-post-block-manager__checklist-item .block-editor-block-icon{fill:#1e1e1e;margin-right:10px}.edit-post-block-manager__results{border-top:1px solid #ddd}.edit-post-block-manager__disabled-blocks-count+.edit-post-block-manager__results{border-top-width:0}.edit-post-meta-boxes-area{position:relative}.edit-post-meta-boxes-area .inside,.edit-post-meta-boxes-area__container{box-sizing:content-box}.edit-post-meta-boxes-area input,.edit-post-meta-boxes-area textarea{box-sizing:border-box}.edit-post-meta-boxes-area .postbox-header{border-bottom:0;border-top:1px solid #ddd}.edit-post-meta-boxes-area #poststuff{margin:0 auto;min-width:auto;padding-top:0}.edit-post-meta-boxes-area #poststuff .stuffbox>h3,.edit-post-meta-boxes-area #poststuff h2.hndle,.edit-post-meta-boxes-area #poststuff h3.hndle{box-sizing:border-box;color:inherit;font-weight:600;outline:none;padding:0 24px;position:relative;width:100%}.edit-post-meta-boxes-area .postbox{border:0;color:inherit;margin-bottom:0}.edit-post-meta-boxes-area .postbox>.inside{color:inherit;margin:0;padding:0 24px 24px}.edit-post-meta-boxes-area .postbox .handlediv{height:44px;width:44px}.edit-post-meta-boxes-area.is-loading:before{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.edit-post-meta-boxes-area .components-spinner{position:absolute;right:20px;top:10px;z-index:5}.edit-post-meta-boxes-area .is-hidden{display:none}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]{border:1px solid #757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:checked{background:#fff;border-color:#757575}.edit-post-meta-boxes-area .metabox-location-side .postbox input[type=checkbox]:before{margin:-3px -4px}.edit-post-meta-boxes-area__clear{clear:both}.edit-post-editor__document-overview-panel,.edit-post-editor__inserter-panel{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.edit-post-editor__document-overview-panel{width:350px}}.edit-post-editor__document-overview-panel .edit-post-editor__document-overview-panel__close-button{background:#fff;position:absolute;right:8px;top:6px;z-index:1}.edit-post-editor__document-overview-panel .components-tab-panel__tabs{border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;padding-right:56px;width:100%}.edit-post-editor__document-overview-panel .components-tab-panel__tabs .edit-post-sidebar__panel-tab{margin-bottom:-1px;width:50%}.edit-post-editor__document-overview-panel .components-tab-panel__tab-content{height:calc(100% - 47px)}.edit-post-editor__inserter-panel-header{display:flex;justify-content:flex-end;padding-right:8px;padding-top:8px}.edit-post-editor__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-post-editor__inserter-panel-content{height:100%}}.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar,.edit-post-editor__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-track,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-track,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.edit-post-editor__list-view-container>.document-outline::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-post-editor__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-empty-headings:hover::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-post-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.edit-post-editor__list-view-container>.document-outline:focus,.edit-post-editor__list-view-container>.document-outline:focus-within,.edit-post-editor__list-view-container>.document-outline:hover,.edit-post-editor__list-view-empty-headings:focus,.edit-post-editor__list-view-empty-headings:focus-within,.edit-post-editor__list-view-empty-headings:hover,.edit-post-editor__list-view-panel-content:focus,.edit-post-editor__list-view-panel-content:focus-within,.edit-post-editor__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.edit-post-editor__list-view-container>.document-outline,.edit-post-editor__list-view-empty-headings,.edit-post-editor__list-view-panel-content{scrollbar-color:#949494 transparent}}.edit-post-editor__list-view-empty-headings{color:#757575;text-align:center}.edit-post-editor__list-view-empty-headings>svg{margin-top:28px}.edit-post-editor__list-view-empty-headings>p{padding-left:32px;padding-right:32px}.edit-post-editor__list-view-overview{border-bottom:1px solid #ddd;display:flex;flex-direction:column;gap:8px;padding:16px}.edit-post-editor__list-view-overview>div>span:first-child{display:inline-block;width:90px}.edit-post-editor__list-view-overview>div>span{color:#757575;font-size:12px;line-height:1.4}.edit-post-editor__list-view-container{display:flex;flex-direction:column;height:100%}.edit-post-editor__document-overview-panel__tab-panel{height:100%}.components-panel__header.edit-post-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:16px}.components-panel__header.edit-post-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-post-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 0 0 auto;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-panel__body.is-opened.edit-post-last-revision__panel{height:48px;padding:0}.editor-post-last-revision__title.components-button{padding:16px}.edit-post-post-author,.edit-post-post-format{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-schedule{align-items:flex-start;justify-content:flex-start;position:relative;width:100%}.edit-post-post-schedule span{display:block;flex-shrink:0;padding:6px 0;width:45%}.components-button.edit-post-post-schedule__toggle{height:auto;text-align:left;white-space:normal}.components-button.edit-post-post-schedule__toggle span{width:0}.edit-post-post-schedule__dialog .block-editor-publish-date-time-picker{margin:8px}.edit-post-post-slug{align-items:stretch;display:flex;flex-direction:column}.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft{margin-top:15px;text-align:center;width:100%}.edit-post-post-template{justify-content:flex-start;width:100%}.edit-post-post-template span{display:block;padding:6px 0;width:45%}.edit-post-post-template__dropdown{max-width:55%}.components-button.edit-post-post-template__toggle{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%}.edit-post-post-template__dialog{z-index:99999}.edit-post-post-template__form{margin:8px;min-width:248px}@media (min-width:782px){.edit-post-post-template__create-form{width:320px}}.edit-post-post-url{align-items:flex-start;justify-content:flex-start;width:100%}.edit-post-post-url span{display:block;flex-shrink:0;padding:6px 0;width:45%}.components-button.edit-post-post-url__toggle{height:auto;text-align:left;white-space:normal;word-break:break-word}.edit-post-post-url__dialog .editor-post-url{margin:8px;min-width:248px}.edit-post-post-visibility{justify-content:flex-start;width:100%}.edit-post-post-visibility span{display:block;padding:6px 0;width:45%}.edit-post-post-visibility__dialog .editor-post-visibility{margin:8px;min-width:248px}.components-button.edit-post-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-button.edit-post-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-post-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-post-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-post-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-post-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-post-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-post-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}h2.edit-post-template-summary__title{font-weight:500;line-height:24px;margin:0 0 4px}.edit-post-text-editor{background-color:#fff;flex-grow:1;position:relative;width:100%}.edit-post-text-editor .editor-post-title{border:1px solid #949494;font-family:Menlo,Consolas,monaco,monospace;font-size:2.5em;font-weight:400;line-height:1.4;max-width:none;padding:16px}@media (min-width:600px){.edit-post-text-editor .editor-post-title{padding:24px}}.edit-post-text-editor .editor-post-title:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-post-text-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:0 12px 12px;width:100%}@media (min-width:960px){.edit-post-text-editor__body{padding:0 24px 24px}}.edit-post-text-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-post-text-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-post-text-editor__toolbar{padding:12px 24px}}.edit-post-text-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 auto 0 0}.edit-post-text-editor__toolbar .components-button svg{order:1}.edit-post-visual-editor{background-color:#1e1e1e;display:flex;flex:1 0 auto;flex-flow:column;position:relative}.edit-post-visual-editor:not(.has-inline-canvas){overflow:hidden}.edit-post-visual-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-post-visual-editor .components-button.has-icon,.edit-post-visual-editor .components-button.is-tertiary{padding:6px}.edit-post-visual-editor__post-title-wrapper{margin-bottom:var(--wp--style--block-gap);margin-top:4rem}.edit-post-visual-editor__post-title-wrapper .editor-post-title{margin-left:auto;margin-right:auto}.edit-post-visual-editor__content-area{box-sizing:border-box;display:flex;flex-grow:1;height:100%;position:relative;width:100%}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}@media (min-width:783px){.auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}@media (min-width:961px){.auto-fold .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.folded .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}body.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0!important}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;border-bottom:none;display:flex;height:60px;margin-left:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:240px;top:0}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:144px}}@media (min-width:960px){.edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-post-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-post-welcome-guide,.edit-template-welcome-guide{width:312px}.edit-post-welcome-guide__image,.edit-template-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-post-welcome-guide__image>img,.edit-template-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-post-welcome-guide__heading,.edit-template-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-post-welcome-guide__text,.edit-template-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-post-welcome-guide__inserter-icon,.edit-template-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-template-welcome-guide .components-button svg{fill:#fff}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-post-start-page-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column;margin-bottom:24px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__container{min-height:100px}.edit-post-start-page-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-preview__content{width:100%}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.js.block-editor-page{background:#fff}body.js.block-editor-page #wpcontent{padding-left:0}body.js.block-editor-page #wpbody-content{padding-bottom:0}body.js.block-editor-page #wpbody-content>div:not(.block-editor):not(#screen-meta),body.js.block-editor-page #wpfooter{display:none}body.js.block-editor-page .a11y-speak-region{left:-1px;top:-1px}body.js.block-editor-page ul#adminmenu a.wp-has-current-submenu:after,body.js.block-editor-page ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.block-editor-page .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.block-editor-page #wpwrap{overflow-y:auto}@media (min-width:782px){.block-editor-page #wpwrap{overflow-y:initial}}.components-modal__frame,.components-popover,.edit-post-editor__inserter-panel,.edit-post-header,.edit-post-sidebar,.edit-post-text-editor,.editor-post-publish-panel{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.components-popover *,.components-popover :after,.components-popover :before,.edit-post-editor__inserter-panel *,.edit-post-editor__inserter-panel :after,.edit-post-editor__inserter-panel :before,.edit-post-header *,.edit-post-header :after,.edit-post-header :before,.edit-post-sidebar *,.edit-post-sidebar :after,.edit-post-sidebar :before,.edit-post-text-editor *,.edit-post-text-editor :after,.edit-post-text-editor :before,.editor-post-publish-panel *,.editor-post-publish-panel :after,.editor-post-publish-panel :before{box-sizing:inherit}@media (min-width:600px){.block-editor__container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.block-editor__container{min-height:calc(100vh - 32px)}body.is-fullscreen-mode .block-editor__container{min-height:100vh}}.block-editor__container img{height:auto;max-width:100%}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}}.interface-interface-skeleton__sidebar{border-left:none}@media (min-width:782px){.is-sidebar-opened .interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0;overflow:hidden scroll}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.css index 3028af9171..b71ff629e2 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-left:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,421 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } } - -.dataviews-wrapper{ - box-sizing:border-box; - height:100%; - overflow:auto; - scroll-padding-bottom:64px; - width:100%; -} -.dataviews-wrapper>div{ - min-height:100%; -} - -.dataviews-filters__view-actions{ - padding:12px 32px; -} -.dataviews-filters__view-actions .components-search-control{ - flex-grow:1; - max-width:240px; +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } } - -.dataviews-filters__view-actions.components-h-stack{ - align-items:center; +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } } - -.dataviews-filters-button{ - position:relative; +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } } -.dataviews-filters-count{ - align-items:center; - background-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); - border-radius:8px; - color:var(--wp-components-color-accent-inverted, #fff); - display:flex; - font-size:11px; - font-weight:300; - height:16px; - justify-content:center; - left:0; - min-width:16px; - padding:0 4px; +.interface-preferences__tabs .components-tab-panel__tabs{ position:absolute; - top:0; - transform:translateX(-40%) translateY(-40%); -} - -.dataviews-pagination{ - -webkit-backdrop-filter:blur(6px); - backdrop-filter:blur(6px); - background-color:hsla(0,0%,100%,.8); - border-top:1px solid #f0f0f0; - bottom:0; - color:#757575; - margin-top:auto; - padding:12px 32px; - position:sticky; -} - -.dataviews-filters-options{ - margin:32px 0 16px; -} - -.dataviews-view-table-wrapper{ - overflow-x:auto; -} - -.dataviews-view-table{ - border-collapse:collapse; - border-color:inherit; - color:#757575; - position:relative; - text-indent:0; - width:100%; -} -.dataviews-view-table a{ - color:#1e1e1e; - font-weight:500; - text-decoration:none; + right:16px; + top:84px; + width:160px; } -.dataviews-view-table th{ - color:var(--wp-components-color-foreground, #1e1e1e); - font-size:13px; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; font-weight:400; - text-align:right; -} -.dataviews-view-table td,.dataviews-view-table th{ - padding:12px; - white-space:nowrap; -} -@media (min-width:1440px){ - .dataviews-view-table td,.dataviews-view-table th{ - min-width:200px; - } -} -.dataviews-view-table td[data-field-id=actions],.dataviews-view-table th[data-field-id=actions]{ - text-align:left; -} -.dataviews-view-table td.dataviews-view-table__checkbox-column,.dataviews-view-table th.dataviews-view-table__checkbox-column{ - padding-left:0; -} -.dataviews-view-table td .components-checkbox-control__input-container,.dataviews-view-table th .components-checkbox-control__input-container{ - margin:4px; -} -.dataviews-view-table tr{ - border-bottom:1px solid #f0f0f0; -} -.dataviews-view-table tr .dataviews-view-table-header-button{ - gap:4px; -} -.dataviews-view-table tr td:first-child,.dataviews-view-table tr th:first-child{ - padding-right:32px; -} -.dataviews-view-table tr td:first-child .dataviews-view-table-header,.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,.dataviews-view-table tr th:first-child .dataviews-view-table-header,.dataviews-view-table tr th:first-child .dataviews-view-table-header-button{ - margin-right:-8px; -} -.dataviews-view-table tr td:last-child,.dataviews-view-table tr th:last-child{ - padding-left:32px; -} -.dataviews-view-table tr:last-child{ - border-bottom:0; -} -.dataviews-view-table tr:hover{ - background-color:#f8f8f8; -} -.dataviews-view-table tr .components-checkbox-control__input{ - opacity:0; -} -.dataviews-view-table tr .components-checkbox-control__input:checked,.dataviews-view-table tr .components-checkbox-control__input:focus,.dataviews-view-table tr .components-checkbox-control__input:indeterminate{ - opacity:1; -} -.dataviews-view-table tr:focus-within .components-checkbox-control__input,.dataviews-view-table tr:hover .components-checkbox-control__input{ - opacity:1; -} -.dataviews-view-table tr.is-selected{ - background-color:rgba(var(--wp-admin-theme-color--rgb), .04); - color:#757575; -} -.dataviews-view-table tr.is-selected:hover{ - background-color:rgba(var(--wp-admin-theme-color--rgb), .08); -} -.dataviews-view-table thead tr{ - border:0; -} -.dataviews-view-table thead th{ - background-color:#fff; - box-shadow:inset 0 -1px 0 #f0f0f0; - font-size:11px; - font-weight:500; - padding-bottom:8px; - padding-right:4px; - padding-top:8px; - position:sticky; - text-transform:uppercase; - top:-1px; - z-index:1; } -.dataviews-view-table tbody td{ - vertical-align:top; -} -.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper{ - align-items:center; - display:flex; - min-height:32px; -} -.dataviews-view-table .dataviews-view-table-header-button{ - font-size:11px; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; font-weight:500; - padding:4px 8px; - text-transform:uppercase; -} -.dataviews-view-table .dataviews-view-table-header-button:not(:hover){ - color:#1e1e1e; -} -.dataviews-view-table .dataviews-view-table-header-button span{ - speak:none; -} -.dataviews-view-table .dataviews-view-table-header-button span:empty{ - display:none; -} -.dataviews-view-table .dataviews-view-table-header{ - padding-right:4px; -} -.dataviews-view-table .dataviews-view-table__actions-column{ - width:1%; } - -.dataviews-view-grid__primary-field,.dataviews-view-list__primary-field,.dataviews-view-table__primary-field{ - color:#1e1e1e; - display:block; - font-size:13px; - font-weight:500; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; } -.dataviews-view-grid__primary-field a,.dataviews-view-list__primary-field a,.dataviews-view-table__primary-field a{ - color:inherit; - display:block; - overflow:hidden; - text-decoration:none; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; } -.dataviews-view-grid__primary-field a:hover,.dataviews-view-list__primary-field a:hover,.dataviews-view-table__primary-field a:hover{ - color:#1e1e1e; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; } -.dataviews-view-grid__primary-field button.components-button.is-link,.dataviews-view-list__primary-field button.components-button.is-link,.dataviews-view-table__primary-field button.components-button.is-link{ - color:inherit; - display:block; - font-weight:inherit; - overflow:hidden; - text-decoration:none; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-right:160px; + padding-right:24px; } -.dataviews-view-grid{ - grid-template-columns:repeat(2, minmax(0, 1fr)) !important; - margin-bottom:24px; - padding:0 32px; -} -@media (min-width:1080px){ - .dataviews-view-grid{ - grid-template-columns:repeat(3, minmax(0, 1fr)) !important; - } -} -@media (min-width:1440px){ - .dataviews-view-grid{ - grid-template-columns:repeat(4, minmax(0, 1fr)) !important; +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; } } -.dataviews-view-grid .dataviews-view-grid__card{ - border:1px solid #e0e0e0; - border-radius:4px; - height:100%; - justify-content:flex-start; +.interface-preferences-modal__section{ + margin:0 0 2.5rem; } -.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions{ - padding:0 4px; -} -.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field{ - min-height:40px; -} -.dataviews-view-grid .dataviews-view-grid__media{ - aspect-ratio:1/1; - background-color:#f0f0f0; - border-bottom:1px solid #e0e0e0; - border-radius:3px 3px 0 0; - min-height:200px; - width:100%; -} -.dataviews-view-grid .dataviews-view-grid__media img{ - height:100%; - object-fit:cover; - width:100%; -} -.dataviews-view-grid .dataviews-view-grid__primary-field{ - padding:8px; -} -.dataviews-view-grid .dataviews-view-grid__fields{ - font-size:12px; - line-height:16px; - position:relative; -} -.dataviews-view-grid .dataviews-view-grid__fields:not(:empty){ - padding:0 12px 12px; -} -.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value{ - color:#757575; -} - -.dataviews-view-list{ +.interface-preferences-modal__section:last-child{ margin:0; - padding:8px; -} -.dataviews-view-list li{ - margin:0; -} -.dataviews-view-list li .dataviews-view-list__item-wrapper{ - border-radius:4px; - padding-left:24px; - position:relative; -} -.dataviews-view-list li .dataviews-view-list__item-wrapper:after{ - background:#f0f0f0; - content:""; - height:1px; - left:24px; - position:absolute; - right:24px; - top:100%; -} -.dataviews-view-list li:not(.is-selected):hover,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field{ - color:var(--wp-admin-theme-color); -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper{ - background-color:var(--wp-admin-theme-color); - color:#fff; -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field{ - color:#fff; -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper:after,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper:after{ - background:transparent; -} -.dataviews-view-list .dataviews-view-list__item{ - cursor:pointer; - padding:12px 24px 12px 0; - width:100%; -} -.dataviews-view-list .dataviews-view-list__item:focus:before{ - border-radius:4px; - bottom:-1px; - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - content:""; - left:-1px; - position:absolute; - right:-1px; - top:-1px; - z-index:-1; -} -.dataviews-view-list .dataviews-view-list__item h3{ - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.dataviews-view-list .dataviews-view-list__media-wrapper{ - background-color:#f0f0f0; - border-radius:4px; - flex-shrink:0; - height:32px; - overflow:hidden; - position:relative; - width:32px; -} -.dataviews-view-list .dataviews-view-list__media-wrapper img{ - height:100%; - object-fit:cover; - width:100%; -} -.dataviews-view-list .dataviews-view-list__media-wrapper:after{ - border-radius:4px; - box-shadow:inset 0 0 0 1px rgba(0,0,0,.1); - content:""; - height:100%; - position:absolute; - right:0; - top:0; - width:100%; -} -.dataviews-view-list .dataviews-view-list__media-placeholder{ - background-color:#e0e0e0; - height:32px; - min-width:32px; -} -.dataviews-view-list .dataviews-view-list__fields{ - color:#757575; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field{ - margin-left:12px; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:last-child{ - margin-left:0; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty{ - display:none; -} -.dataviews-view-list+.dataviews-pagination{ - justify-content:space-between; -} -.dataviews-view-list .dataviews-view-list__details-button{ - align-self:center; - opacity:0; -} -.dataviews-view-list li.is-selected .dataviews-view-list__details-button,.dataviews-view-list li:focus-within .dataviews-view-list__details-button,.dataviews-view-list li:hover .dataviews-view-list__details-button{ - opacity:1; -} -.dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) currentColor; } -.dataviews-action-modal{ - z-index:1000001; +.interface-preferences-modal__section-legend{ + margin-bottom:8px; } -.dataviews-loading,.dataviews-no-results{ - padding:0 32px; +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; } -.dataviews-view-table-selection-checkbox label{ - clip:rect(0, 0, 0, 0); - border:0; - height:1px; - margin:-1px; - overflow:hidden; - padding:0; - position:absolute; - white-space:nowrap; - width:1px; +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; } -.dataviews-filters__custom-menu-radio-item-prefix{ - display:block; - width:24px; +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; } - -.dataviews-bulk-edit-button.components-button{ - flex-shrink:0; +.interface-preferences-modal__option .components-base-control__help{ + margin-right:48px; + margin-top:0; } .edit-site-custom-template-modal__contents-wrapper{ @@ -824,8 +496,7 @@ body.is-fullscreen-mode .interface-interface-skeleton{ } @media (min-width:600px){ .edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{ - max-height:224px; - overflow-y:auto; + overflow:scroll; } } .edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{ @@ -974,7 +645,7 @@ body.is-fullscreen-mode .interface-interface-skeleton{ padding:6px; } -.edit-site-editor-canvas__block-list.is-navigation-block{ +.edit-site-block-editor__block-list.is-navigation-block{ padding:24px; } @@ -992,6 +663,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ height:100%; width:100%; } +.edit-site-visual-editor .edit-site-visual-editor__editor-canvas{ + height:100%; +} .edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{ outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color); outline-offset:calc(var(--wp-admin-border-width-focus)*-2); @@ -1013,6 +687,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .edit-site-visual-editor.is-view-mode{ box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8); } +.edit-site-visual-editor.is-view-mode .block-editor-block-contextual-toolbar.is-fixed{ + display:none; +} .edit-site-visual-editor__back-button{ color:#fff; @@ -1024,10 +701,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ color:#f0f0f0; } -.is-distraction-free .edit-site-visual-editor__back-button{ - display:none; -} - .resizable-editor__drag-handle{ -webkit-appearance:none; appearance:none; @@ -1089,18 +762,94 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{ opacity:1; } -.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{ - background:#ccc; +.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{ + background:#ccc; +} +.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{ + background:var(--wp-admin-theme-color); +} +.resizable-editor__drag-handle:focus:after{ + box-shadow:0 0 0 1px #2f2f2f, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color); +} +.resizable-editor__drag-handle.is-variation-separator:focus:after{ + border-radius:2px; + box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color); +} + +.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} + +body.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0 !important; } -.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{ - background:var(--wp-admin-theme-color); + +.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; } -.resizable-editor__drag-handle:focus:after{ - box-shadow:0 0 0 1px #2f2f2f, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color); +@media (min-width:782px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + display:flex; + height:60px; + margin-right:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:240px; + top:0; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:144px; + } } -.resizable-editor__drag-handle.is-variation-separator:focus:after{ - border-radius:2px; - box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color); +@media (min-width:960px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } } .edit-site-canvas-loader{ @@ -1178,6 +927,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ line-height:36px; margin:0 0 0 auto; } +.edit-site-code-editor__toolbar .components-button svg{ + order:1; +} textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{ border:1px solid #949494; @@ -1266,10 +1018,6 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp width:24px; } -.edit-site-global-styles-screen-typography__font-variants-count{ - color:#757575; -} - .edit-site-global-styles-screen-colors{ margin:16px; } @@ -1394,94 +1142,81 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp fill:currentColor; } +[class][class].edit-site-global-styles-sidebar__revisions-count-badge{ + align-items:center; + background:#2f2f2f; + border-radius:2px; + color:#fff; + display:inline-flex; + justify-content:center; + min-height:24px; + min-width:24px; +} + +.edit-site-global-styles-screen-revisions{ + margin:16px; +} + .edit-site-global-styles-screen-revisions__revisions-list{ - flex-grow:1; list-style:none; - margin:0 16px 16px; + margin:0; } .edit-site-global-styles-screen-revisions__revisions-list li{ + border-right:1px solid #ddd; margin-bottom:0; } .edit-site-global-styles-screen-revisions__revision-item{ - cursor:pointer; - display:flex; - flex-direction:column; + padding:8px 12px 8px 0; position:relative; } -.edit-site-global-styles-screen-revisions__revision-item:hover{ - background:rgba(var(--wp-admin-theme-color--rgb), .04); -} -.edit-site-global-styles-screen-revisions__revision-item:hover .edit-site-global-styles-screen-revisions__date{ - color:var(--wp-admin-theme-color); +.edit-site-global-styles-screen-revisions__revision-item:first-child{ + padding-top:0; } -.edit-site-global-styles-screen-revisions__revision-item:after,.edit-site-global-styles-screen-revisions__revision-item:before{ - content:"\a"; - display:block; - position:absolute; +.edit-site-global-styles-screen-revisions__revision-item:last-child{ + padding-bottom:0; } .edit-site-global-styles-screen-revisions__revision-item:before{ background:#ddd; - border:4px solid transparent; border-radius:50%; + content:"\a"; + display:inline-block; height:8px; - right:17px; - top:18px; + position:absolute; + right:0; + top:50%; transform:translate(50%, -50%); width:8px; - z-index:1; -} -.edit-site-global-styles-screen-revisions__revision-item.is-selected{ - border-radius:2px; - outline:3px solid transparent; - outline-offset:-2px; } .edit-site-global-styles-screen-revisions__revision-item.is-selected:before{ background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); } -.edit-site-global-styles-screen-revisions__revision-item:after{ - border:.5px solid #ddd; - height:100%; - right:16px; - top:0; - width:0; -} -.edit-site-global-styles-screen-revisions__revision-item:first-child:after{ - top:18px; -} -.edit-site-global-styles-screen-revisions__revision-item:last-child:after{ - height:18px; -} -.edit-site-global-styles-screen-revisions__revision-item .edit-site-global-styles-screen-revisions__revision-button{ + +.edit-site-global-styles-screen-revisions__revision-button{ display:block; height:auto; - outline-offset:-2px; - padding:12px 40px 8px 12px; - position:relative; + padding:8px 12px; width:100%; - z-index:1; } - -.is-selected{ +.edit-site-global-styles-screen-revisions__revision-button:hover{ background:rgba(var(--wp-admin-theme-color--rgb), .04); - color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); } +.edit-site-global-styles-screen-revisions__revision-button:hover .edit-site-global-styles-screen-revisions__date{ + color:var(--wp-admin-theme-color); +} + .is-selected .edit-site-global-styles-screen-revisions__revision-button{ + background:rgba(var(--wp-admin-theme-color--rgb), .04); + color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); opacity:1; } -.is-selected .edit-site-global-styles-screen-revisions__date{ +.is-selected .edit-site-global-styles-screen-revisions__meta{ color:var(--wp-admin-theme-color); } -.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{ - align-self:flex-start; - margin:0 40px 12px 12px; -} - -.edit-site-global-styles-screen-revisions__applied-text{ - color:#949494; - font-size:12px; - font-style:italic; +.edit-site-global-styles-screen-revisions__button{ + justify-content:center; + width:100%; } .edit-site-global-styles-screen-revisions__description{ @@ -1490,25 +1225,18 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp flex-direction:column; gap:8px; } -.edit-site-global-styles-screen-revisions__description .edit-site-global-styles-screen-revisions__date{ - font-size:12px; - font-weight:600; - text-transform:uppercase; -} -.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{ - align-items:flex-start; - color:#949494; +.edit-site-global-styles-screen-revisions__meta{ + align-items:center; + color:#757575; display:flex; - font-size:12px; - justify-content:start; + justify-content:space-between; text-align:right; width:100%; } -.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{ +.edit-site-global-styles-screen-revisions__meta img{ border-radius:100%; height:16px; - margin-left:8px; width:16px; } @@ -1516,53 +1244,6 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp margin:24px auto !important; } -.edit-site-global-styles-screen-revisions__changes{ - color:#1e1e1e; - line-height:1.4; - margin-bottom:4px; - text-align:right; -} - -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{ - gap:2px; - justify-content:space-between; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .edit-site-pagination__total{ - height:1px; - margin:-1px; - overflow:hidden; - position:absolute; - right:-1000px; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-text{ - font-size:12px; - will-change:opacity; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary{ - color:#1e1e1e; - font-size:28px; - font-weight:200; - line-height:1.2; - margin-bottom:4px; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:disabled{ - color:#949494; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:hover{ - background:transparent; -} - -.edit-site-global-styles-screen-revisions__footer{ - background:#fff; - border-top:1px solid #ddd; - bottom:0; - height:56px; - min-width:100%; - padding:12px; - position:sticky; - z-index:1; -} - .edit-site-header-edit-mode{ align-items:center; background-color:#fff; @@ -1576,17 +1257,8 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp width:100%; } .edit-site-header-edit-mode .edit-site-header-edit-mode__start{ - align-items:center; border:none; display:flex; - flex-shrink:2; - height:100%; - overflow:hidden; -} -@media (min-width:782px){ - .edit-site-header-edit-mode .edit-site-header-edit-mode__start{ - padding-left:2px; - } } .edit-site-header-edit-mode .edit-site-header-edit-mode__end{ display:flex; @@ -1598,19 +1270,18 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp flex-grow:1; height:100%; justify-content:center; - margin:0 16px; + margin:0 8px; min-width:0; } .edit-site-header-edit-mode__toolbar{ align-items:center; display:flex; - gap:8px; - padding-right:16px; + padding-right:8px; } -@media (min-width:782px){ +@media (min-width:600px){ .edit-site-header-edit-mode__toolbar{ - padding-right:20px; + padding-right:24px; } } @media (min-width:1280px){ @@ -1618,6 +1289,13 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp padding-left:8px; } } +.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle{ + height:32px; + margin-left:8px; + min-width:32px; + padding:0; + width:32px; +} .edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{ transition:transform .2s cubic-bezier(.165, .84, .44, 1); } @@ -1633,8 +1311,14 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp .edit-site-header-edit-mode__actions{ align-items:center; display:inline-flex; - gap:8px; - padding-left:8px; + gap:4px; + padding-left:4px; +} +@media (min-width:600px){ + .edit-site-header-edit-mode__actions{ + gap:8px; + padding-left:10px; + } } .edit-site-header-edit-mode__preview-options{ @@ -1645,6 +1329,37 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp opacity:0; } +.edit-site-header-edit-mode__start{ + border:none; + display:flex; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon{ + height:36px; + min-width:36px; + padding:6px; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon.is-pressed,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon.is-pressed{ + background:#1e1e1e; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:focus:not(:disabled),.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; + outline:1px solid transparent; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:before,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:before{ + display:none; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-icon{ + height:32px; + margin-left:8px; + min-width:32px; + padding:0; + width:32px; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-text.has-icon{ + padding:0 8px; + width:auto; +} + .edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{ width:auto; } @@ -1672,48 +1387,145 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp height:36px; padding:0 8px; } -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover{ - border-right:none; -} -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover:before{ - background-color:#ddd; - content:""; - margin-bottom:12px; +.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>*+*{ margin-right:8px; - margin-top:12px; - width:1px; } -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#ddd; - right:calc(50% + 1px); - width:calc(100% - 24px); + +.edit-site-document-actions{ + align-items:center; + background:#f0f0f0; + border-radius:4px; + display:flex; + height:36px; + justify-content:space-between; + min-width:0; + width:min(100%, 450px); +} +.has-fixed-toolbar .edit-site-document-actions{ + width:min(100%, 380px); +} +.edit-site-document-actions:hover{ + background-color:#e0e0e0; +} +.edit-site-document-actions .components-button{ + border-radius:4px; +} +.edit-site-document-actions .components-button:hover{ + background:#e0e0e0; + color:var(--wp-block-synced-color); +} +@media (min-width:960px){ + .edit-site-document-actions{ + width:min(100%, 450px); + } +} +.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title,.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title h1{ + color:var(--wp-block-synced-color); } -.has-fixed-toolbar .selected-block-tools-wrapper{ - overflow-x:scroll; +.edit-site-document-actions__command{ + color:var(--wp-block-synced-color); + flex-grow:1; + overflow:hidden; } -.has-fixed-toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; + +.edit-site-document-actions__title{ + flex-grow:1; + overflow:hidden; } -.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group{ - border-left:none; +@media (min-width:600px){ + .edit-site-document-actions__title{ + padding-right:32px; + } } -.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-right:8px; - margin-top:12px; - width:1px; +.edit-site-document-actions__title:hover{ + color:var(--wp-block-synced-color); +} +.edit-site-document-actions__title .block-editor-block-icon{ + flex-shrink:0; + min-width:24px; +} +.edit-site-document-actions__title h1{ + max-width:50%; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.edit-site-document-actions.is-page .edit-site-document-actions__title,.edit-site-document-actions.is-page .edit-site-document-actions__title h1{ + color:#2f2f2f; +} +.edit-site-document-actions.is-animated .edit-site-document-actions__title{ + animation:edit-site-document-actions__slide-in-left .3s; } -.has-fixed-toolbar .edit-site-header-edit-mode__center.is-collapsed,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper.is-collapsed{ +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated .edit-site-document-actions__title{ + animation-delay:0s; + animation-duration:1ms; + } +} +.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{ + animation:edit-site-document-actions__slide-in-right .3s; +} +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{ + animation-delay:0s; + animation-duration:1ms; + } +} + +.edit-site-document-actions__shortcut{ + color:#2f2f2f; display:none; + min-width:32px; +} +@media (min-width:600px){ + .edit-site-document-actions__shortcut{ + display:initial; + } +} + +.edit-site-document-actions__back.components-button.has-icon.has-text{ + color:#757575; + flex-shrink:0; + gap:0; + min-width:36px; + position:absolute; + z-index:1; +} +.edit-site-document-actions__back.components-button.has-icon.has-text:hover{ + background-color:transparent; + color:currentColor; +} +.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{ + animation:edit-site-document-actions__slide-in-left .3s; +} +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{ + animation-delay:0s; + animation-duration:1ms; + } } -.edit-site-header-edit-mode__block-tools-toggle{ - margin-right:2px; +@keyframes edit-site-document-actions__slide-in-right{ + 0%{ + opacity:0; + transform:translateX(15%); + } + to{ + opacity:1; + transform:translateX(0); + } +} +@keyframes edit-site-document-actions__slide-in-left{ + 0%{ + opacity:0; + transform:translateX(-15%); + } + to{ + opacity:1; + transform:translateX(0); + } } - .edit-site-list-header{ align-items:center; box-sizing:border-box; @@ -1849,31 +1661,33 @@ body.is-fullscreen-mode .edit-site-list-header{ } .edit-site-list-added-by__icon{ + align-items:center; + background:#2f2f2f; + border-radius:100%; display:flex; flex-shrink:0; - height:24px; - width:24px; + height:32px; + justify-content:center; + width:32px; } .edit-site-list-added-by__icon svg{ - fill:currentColor; + fill:#fff; } .edit-site-list-added-by__avatar{ - align-items:center; - display:flex; + background:#2f2f2f; + border-radius:100%; flex-shrink:0; - height:24px; - justify-content:center; + height:32px; overflow:hidden; - width:24px; + width:32px; } .edit-site-list-added-by__avatar img{ - border-radius:100%; - height:20px; + height:32px; object-fit:cover; opacity:0; transition:opacity .1s linear; - width:20px; + width:32px; } @media (prefers-reduced-motion:reduce){ .edit-site-list-added-by__avatar img{ @@ -1893,14 +1707,22 @@ body.is-fullscreen-mode .edit-site-list-header{ .edit-site-page{ background:#fff; color:#2f2f2f; - height:100%; + flex-grow:1; + margin:60px 0 0; + overflow:hidden; +} +@media (min-width:782px){ + .edit-site-page{ + border-radius:8px; + margin:24px 0 24px 24px; + } } .edit-site-page-header{ background:#fff; border-bottom:1px solid #f0f0f0; - min-height:72px; - padding:16px 32px; + min-height:60px; + padding:0 32px; position:sticky; top:0; z-index:2; @@ -1925,54 +1747,11 @@ body.is-fullscreen-mode .edit-site-list-header{ z-index:1; } -.edit-site-page-pages__media-wrapper{ - background-color:#f0f0f0; - border-radius:4px; - display:block; - height:40px; - overflow:hidden; - position:relative; - width:40px; -} -.edit-site-page-pages__media-wrapper .edit-site-page-pages__featured-image{ - height:100%; - object-fit:cover; - width:100%; -} -.edit-site-page-pages__media-wrapper:after{ - border-radius:4px; - box-shadow:inset 0 0 0 1px rgba(0,0,0,.1); - content:""; - height:100%; - position:absolute; - right:0; - top:0; - width:100%; -} - -.page-pages-preview-field__button{ - background-color:unset; - border:none; - border-radius:3px 3px 0 0; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - height:100%; - overflow:hidden; - padding:0; - width:100%; -} -.page-pages-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - outline:2px solid transparent; -} - .edit-site-patterns{ - background:#1e1e1e; + background:none; border-radius:0; border-right:1px solid #2f2f2f; margin:60px 0 0; - min-height:100%; overflow-x:auto; padding:0; } @@ -2031,6 +1810,28 @@ body.is-fullscreen-mode .edit-site-list-header{ background:#757575; color:#f0f0f0; } +.edit-site-patterns .edit-site-patterns__grid-pagination{ + background:#1e1e1e; + border-top:1px solid #2f2f2f; + bottom:0; + padding:24px 32px; + position:sticky; + z-index:2; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary{ + background-color:#2f2f2f; + color:#f0f0f0; + height:32px; + justify-content:center; + width:32px; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:disabled{ + background:none; + color:#949494; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){ + background-color:#757575; +} .edit-site-patterns__header{ background:#1e1e1e; @@ -2039,9 +1840,6 @@ body.is-fullscreen-mode .edit-site-list-header{ top:0; z-index:2; } -.edit-site-patterns__header .edit-site-patterns__button{ - color:#949494; -} .edit-site-patterns__section{ flex:1; @@ -2059,229 +1857,94 @@ body.is-fullscreen-mode .edit-site-list-header{ margin-bottom:0; margin-top:0; } -@media (min-width:960px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr; - } -} -@media (min-width:1440px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr 1fr; - } -} -@media (min-width:1920px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr 1fr 1fr; - } -} -.edit-site-patterns__grid .edit-site-patterns__pattern{ - break-inside:avoid-column; - display:flex; - flex-direction:column; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{ - background-color:unset; - border:none; - border-radius:4px; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - overflow:hidden; - padding:0; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{ - box-shadow:inset 0 0 0 0 #fff, 0 0 0 2px var(--wp-admin-theme-color); - outline:2px solid transparent; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{ - cursor:default; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f; - opacity:.8; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{ - color:#949494; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{ - flex-shrink:0; -} -.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{ - align-items:center; - border:1px dashed #2f2f2f; - color:#949494; - display:flex; - justify-content:center; - min-height:64px; -} -.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); -} -.edit-site-patterns__grid .edit-site-patterns__preview{ - flex:0 1 auto; - margin-bottom:12px; -} - -.edit-site-patterns__load-more{ - align-self:center; -} - -.edit-site-patterns__pattern-title{ - color:#e0e0e0; -} -.edit-site-patterns__pattern-title .is-link{ - color:#e0e0e0; - text-decoration:none; -} -.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{ - color:#fff; -} -.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{ - fill:#fff; - background:var(--wp-block-synced-color); - border-radius:4px; -} -.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{ - fill:currentcolor; -} - -.edit-site-patterns__no-results{ - color:#949494; -} - -.edit-site-patterns__delete-modal{ - width:384px; -} - -.edit-site-patterns__pagination{ - background:#1e1e1e; - border-top:1px solid #2f2f2f; - bottom:0; - color:#f0f0f0; - padding:24px 32px; - position:sticky; - z-index:2; -} -.edit-site-patterns__pagination .components-button.is-tertiary{ - background-color:#2f2f2f; - color:#f0f0f0; -} -.edit-site-patterns__pagination .components-button.is-tertiary:disabled{ - background:none; - color:#949494; -} -.edit-site-patterns__pagination .components-button.is-tertiary:hover:not(:disabled){ - background-color:#757575; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field{ - border-radius:3px 3px 0 0; - display:flex; - flex-direction:column; - height:100%; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field.is-viewtype-grid .block-editor-block-preview__container{ - border-radius:3px 3px 0 0; - height:100%; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button{ - background-color:unset; - border:none; - border-radius:3px 3px 0 0; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - height:100%; - overflow:hidden; - padding:0; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - outline:2px solid transparent; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-icon{ - fill:var(--wp-block-synced-color); - flex-shrink:0; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-lock-icon{ - min-width:min-content; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__section-header{ - border-bottom:1px solid #f0f0f0; - min-height:72px; - padding:16px 32px; - position:sticky; - top:0; - z-index:2; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-title{ - color:inherit; - display:block; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; -} - -.dataviews-action-modal__duplicate-pattern [role=dialog]>[role=document]{ - width:350px; -} -.dataviews-action-modal__duplicate-pattern .patterns-menu-items__convert-modal-categories{ - position:relative; -} -.dataviews-action-modal__duplicate-pattern .components-form-token-field__suggestions-list:not(:empty){ - background-color:#fff; - border:1px solid var(--wp-admin-theme-color); - border-bottom-left-radius:2px; - border-bottom-right-radius:2px; - box-shadow:0 0 .5px .5px var(--wp-admin-theme-color); - box-sizing:border-box; - max-height:96px; - min-width:auto; - position:absolute; - right:-1px; - width:calc(100% + 2px); - z-index:1; +@media (min-width:960px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr; + } } - -@media (min-width:600px){ - .dataviews-action-modal__duplicate-template-part .components-modal__frame{ - max-width:500px; +@media (min-width:1440px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr 1fr; } } - -.page-templates-preview-field{ - border-radius:3px 3px 0 0; +@media (min-width:1920px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr 1fr 1fr; + } +} +.edit-site-patterns__grid .edit-site-patterns__pattern{ + break-inside:avoid-column; display:flex; flex-direction:column; - height:100%; } -.page-templates-preview-field .page-templates-preview-field__button{ +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{ background-color:unset; border:none; - border-radius:3px; + border-radius:4px; box-shadow:none; box-sizing:border-box; cursor:pointer; - height:100%; overflow:hidden; padding:0; } -.page-templates-preview-field .page-templates-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{ + box-shadow:inset 0 0 0 0 #fff, 0 0 0 2px var(--wp-admin-theme-color); outline:2px solid transparent; } -.page-templates-preview-field.is-viewtype-list .block-editor-block-preview__container{ - height:120px; +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{ + cursor:default; } -.page-templates-preview-field.is-viewtype-grid .block-editor-block-preview__container{ - height:auto; +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f; + opacity:.8; +} +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{ + color:#949494; +} +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{ + flex-shrink:0; +} +.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{ + align-items:center; + border:1px dashed #2f2f2f; + color:#949494; + display:flex; + justify-content:center; + min-height:64px; +} +.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } -.page-templates-preview-field.is-viewtype-grid .page-templates-preview-field__button{ - border-radius:3px 3px 0 0; +.edit-site-patterns__grid .edit-site-patterns__preview{ + flex:0 1 auto; + margin-bottom:12px; } -.page-templates-description{ - white-space:normal; +.edit-site-patterns__load-more{ + align-self:center; +} + +.edit-site-patterns__pattern-title{ + color:#e0e0e0; +} +.edit-site-patterns__pattern-title .is-link{ + color:#e0e0e0; + text-decoration:none; +} +.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{ + color:#fff; +} +.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{ + fill:#fff; + background:var(--wp-block-synced-color); + border-radius:4px; +} +.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{ + fill:currentcolor; +} + +.edit-site-patterns__no-results{ + color:#949494; } .edit-site-table-wrapper{ @@ -2406,10 +2069,46 @@ body.is-fullscreen-mode .edit-site-list-header{ font-size:12px; } +.edit-site-sidebar-fixed-bottom-slot{ + background:#fff; + border-top:1px solid #ddd; + bottom:0; + box-sizing:content-box; + display:flex; + padding:16px; + position:sticky; +} + +.edit-site-swap-template-modal{ + z-index:1000001; +} + .edit-site-page-panels__swap-template__confirm-modal__actions{ margin-top:24px; } +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:2; + column-gap:24px; + padding-top:2px; +} +@media (min-width:782px){ + .edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:3; + } +} +@media (min-width:1280px){ + .edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:4; + } +} +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{ + break-inside:avoid-column; +} +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{ + box-shadow:0 0 0 1px #ddd; +} + .edit-site-change-status__content .components-popover__content{ min-width:320px; padding:16px; @@ -2426,7 +2125,10 @@ body.is-fullscreen-mode .edit-site-list-header{ padding:0; } -.edit-site-summary-field__trigger{ +.edit-site-summary-field .components-dropdown{ + width:70%; +} +.edit-site-summary-field .edit-site-summary-field__trigger{ display:block; max-width:100%; overflow:hidden; @@ -2434,6 +2136,13 @@ body.is-fullscreen-mode .edit-site-list-header{ text-overflow:ellipsis; white-space:nowrap; } +.edit-site-summary-field .edit-site-summary-field__label{ + width:30%; +} + +.edit-site-page-panels-edit-template__dropdown .components-popover__content{ + min-width:240px; +} .components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{ border-top:0; @@ -2574,6 +2283,10 @@ body.is-fullscreen-mode .edit-site-list-header{ padding:0; } +.edit-site-template-revisions{ + margin-right:-4px; +} + h3.edit-site-template-card__template-areas-title{ font-weight:500; margin:0 0 8px; @@ -2716,6 +2429,79 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ margin-right:auto; min-width:24px; } +.edit-site-editor__inserter-panel,.edit-site-editor__list-view-panel{ + display:flex; + flex-direction:column; + height:100%; +} + +@media (min-width:782px){ + .edit-site-editor__list-view-panel{ + width:350px; + } +} + +.edit-site-editor__inserter-panel-header{ + display:flex; + justify-content:flex-end; + padding-left:8px; + padding-top:8px; +} + +.edit-site-editor__inserter-panel-content,.edit-site-editor__list-view-panel-content{ + height:calc(100% - 44px); +} + +@media (min-width:782px){ + .edit-site-editor__inserter-panel-content{ + height:100%; + } +} + +.edit-site-editor__list-view-panel-header{ + align-items:center; + border-bottom:1px solid #ddd; + display:flex; + height:48px; + justify-content:space-between; + padding-left:4px; + padding-right:16px; +} + +.edit-site-editor__list-view-panel-content{ + height:100%; + overflow:auto; + padding:8px 6px; + scrollbar-color:transparent transparent; + scrollbar-gutter:stable both-edges; + scrollbar-gutter:auto; + scrollbar-width:thin; + will-change:transform; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar{ + height:12px; + width:12px; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar-track{ + background-color:transparent; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar-thumb{ + background-clip:padding-box; + background-color:transparent; + border:3px solid transparent; + border-radius:8px; +} +.edit-site-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{ + background-color:#949494; +} +.edit-site-editor__list-view-panel-content:focus,.edit-site-editor__list-view-panel-content:focus-within,.edit-site-editor__list-view-panel-content:hover{ + scrollbar-color:#949494 transparent; +} +@media (hover:none){ + .edit-site-editor__list-view-panel-content{ + scrollbar-color:#949494 transparent; + } +} .edit-site-welcome-guide{ width:312px; @@ -2862,9 +2648,13 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ position:fixed; right:0; top:0; - width:calc(100vw - 32px); + width:calc(100vw - 48px); z-index:3; } +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__hub{ + padding-left:0; + width:60px; +} @media (min-width:782px){ .edit-site-layout__hub{ width:336px; @@ -2879,7 +2669,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ @media (min-width:782px){ .edit-site-layout.is-full-canvas .edit-site-layout__hub{ padding-left:0; - width:60px; + width:auto; } } @@ -2968,9 +2758,9 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } @media (min-width:782px){ .edit-site-layout__canvas{ - bottom:16px; - top:16px; - width:calc(100% - 16px); + bottom:24px; + top:24px; + width:calc(100% - 24px); } .edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{ border-radius:8px; @@ -2985,15 +2775,11 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ border-radius:0; } -.edit-site-layout__canvas .interface-interface-skeleton,.edit-site-template-pages-preview .interface-interface-skeleton{ +.edit-site-layout__canvas .interface-interface-skeleton{ min-height:100% !important; position:relative !important; } -.edit-site-template-pages-preview{ - height:100%; -} - .edit-site-layout__view-mode-toggle.components-button{ align-items:center; border-bottom:1px solid transparent; @@ -3007,7 +2793,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ position:relative; width:60px; } -.edit-site-layout.is-full-canvas .edit-site-layout__view-mode-toggle.components-button{ +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__view-mode-toggle.components-button{ border-bottom-color:#e0e0e0; transition:border-bottom-color .15s ease-out .4s; } @@ -3069,9 +2855,21 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-layout__actions{ border-right:1px solid #ddd; } + .edit-site-layout.has-fixed-toolbar .edit-site-layout__canvas-container{ + z-index:5; + } + .edit-site-layout.has-fixed-toolbar .edit-site-site-hub{ + z-index:4; + } +} + +@media (min-width:782px){ + .edit-site-layout.has-fixed-toolbar .edit-site-layout__header:focus-within{ + z-index:3; + } } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container{ height:60px; left:0; position:absolute; @@ -3080,45 +2878,33 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ width:100%; z-index:4; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within{ opacity:1 !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within div{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within div{ transform:translateX(0) translateY(0) translateZ(0) !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{ opacity:1 !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header,.edit-site-layout.is-distraction-free .edit-site-site-hub{ +.is-edit-mode.is-distraction-free .edit-site-layout__header,.is-edit-mode.is-distraction-free .edit-site-site-hub{ position:absolute; top:0; z-index:2; } -.edit-site-layout.is-distraction-free .edit-site-site-hub{ +.is-edit-mode.is-distraction-free .edit-site-site-hub{ z-index:3; } -.edit-site-layout.is-distraction-free .edit-site-layout__header{ +.is-edit-mode.is-distraction-free .edit-site-layout__header{ width:100%; } -.edit-site-layout__area{ - flex-grow:1; - margin:0; - overflow:hidden; -} -@media (min-width:782px){ - .edit-site-layout__area{ - border-radius:8px; - margin:16px 0 16px 16px; - } -} - .edit-site-save-hub{ border-top:1px solid #2f2f2f; color:#949494; flex-shrink:0; margin:0; - padding:20px 16px; + padding:20px 24px; } .edit-site-save-hub__button{ @@ -3132,9 +2918,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-save-hub__button[aria-disabled=true]:hover{ color:inherit; } -.edit-site-save-hub__button:not(.is-primary).is-busy,.edit-site-save-hub__button:not(.is-primary).is-busy[aria-disabled=true]:hover{ - color:#1e1e1e; -} @media (min-width:600px){ .edit-site-save-panel__modal{ @@ -3146,39 +2929,37 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ flex-grow:1; overflow-y:auto; } - -.edit-site-sidebar__screen-wrapper{ +.edit-site-sidebar__content .components-navigator-screen{ display:flex; flex-direction:column; height:100%; - padding:0 12px; scrollbar-color:transparent transparent; scrollbar-gutter:stable both-edges; scrollbar-gutter:stable; scrollbar-width:thin; will-change:transform; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar{ height:12px; width:12px; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-track{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-track{ background-color:transparent; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-thumb{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-thumb{ background-clip:padding-box; background-color:transparent; border:3px solid transparent; border-radius:8px; } -.edit-site-sidebar__screen-wrapper:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:hover::-webkit-scrollbar-thumb{ +.edit-site-sidebar__content .components-navigator-screen:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:hover::-webkit-scrollbar-thumb{ background-color:#757575; } -.edit-site-sidebar__screen-wrapper:focus,.edit-site-sidebar__screen-wrapper:focus-within,.edit-site-sidebar__screen-wrapper:hover{ +.edit-site-sidebar__content .components-navigator-screen:focus,.edit-site-sidebar__content .components-navigator-screen:focus-within,.edit-site-sidebar__content .components-navigator-screen:hover{ scrollbar-color:#757575 transparent; } @media (hover:none){ - .edit-site-sidebar__screen-wrapper{ + .edit-site-sidebar__content .components-navigator-screen{ scrollbar-color:#757575 transparent; } } @@ -3186,8 +2967,12 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-sidebar__footer{ border-top:1px solid #2f2f2f; flex-shrink:0; - margin:0 16px; - padding:16px 0; + margin:0 24px; + padding:24px 0; +} + +.edit-site-sidebar__content>div{ + padding:0 12px; } .edit-site-sidebar-button{ @@ -3233,7 +3018,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{ cursor:grab; - padding:8px 0 8px 8px; + padding:8px; } .edit-site-sidebar-navigation-screen{ @@ -3301,7 +3086,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } .edit-site-sidebar-navigation-screen__actions{ - display:flex; flex-shrink:0; } @@ -3442,15 +3226,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ fill:#4ab866; } -.edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item{ - border-top:1px solid #2f2f2f; - color:#e0e0e0; - font-size:11px; - font-weight:500; - padding:24px 16px 16px 6px; - text-transform:uppercase; -} - .edit-site-sidebar-navigation-details-screen-panel{ margin:24px 0; } @@ -3534,19 +3309,14 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } .edit-site-sidebar-navigation-screen-template__added-by-description-author img{ border-radius:12px; - height:20px; - width:20px; } .edit-site-sidebar-navigation-screen-template__added-by-description-author svg{ fill:#949494; } .edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{ - align-items:center; - display:inline-flex; height:24px; - justify-content:center; - margin-left:4px; + margin-left:8px; width:24px; } @@ -3572,31 +3342,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ display:flex; } -.edit-site-sidebar-navigation-screen-dataviews__group-header{ - margin-top:32px; -} -.edit-site-sidebar-navigation-screen-dataviews__group-header h2{ - font-size:11px; - font-weight:500; - text-transform:uppercase; -} - -.edit-site-sidebar-dataviews-dataview-item{ - border-radius:2px; - padding-left:8px; -} -.edit-site-sidebar-dataviews-dataview-item .edit-site-sidebar-dataviews-dataview-item__dropdown-menu{ - min-width:auto; -} -.edit-site-sidebar-dataviews-dataview-item:focus,.edit-site-sidebar-dataviews-dataview-item:hover,.edit-site-sidebar-dataviews-dataview-item[aria-current]{ - background:#2f2f2f; - color:#e0e0e0; -} -.edit-site-sidebar-dataviews-dataview-item.is-selected{ - background:var(--wp-admin-theme-color); - color:#fff; -} - .edit-site-site-hub{ align-items:center; display:flex; @@ -3606,19 +3351,31 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-site-hub .edit-site-site-hub__container{ gap:0; } -.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub__site-view-link,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{ +.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{ transition:opacity .1s ease; } -.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub__site-view-link.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{ +.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{ opacity:0 !important; } .edit-site-site-hub .edit-site-site-hub__site-view-link{ flex-grow:0; margin-left:var(--wp-admin-border-width-focus); } +@media (min-width:480px){ + .edit-site-site-hub .edit-site-site-hub__site-view-link{ + opacity:0; + transition:opacity .2s ease-in-out; + } +} +.edit-site-site-hub .edit-site-site-hub__site-view-link:focus{ + opacity:1; +} .edit-site-site-hub .edit-site-site-hub__site-view-link svg{ fill:#e0e0e0; } +.edit-site-site-hub:hover .edit-site-site-hub__site-view-link{ + opacity:1; +} .edit-site-site-hub__post-type{ opacity:.6; @@ -3653,8 +3410,8 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-site-hub_toggle-command-center{ color:#e0e0e0; } -.edit-site-site-hub_toggle-command-center:active svg,.edit-site-site-hub_toggle-command-center:hover svg{ - fill:#f0f0f0; +.edit-site-site-hub_toggle-command-center:hover{ + color:#f0f0f0; } .edit-site-sidebar-navigation-screen__description{ @@ -3735,7 +3492,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ object-fit:cover; width:100%; } -.edit-site-layout.is-full-canvas .edit-site-site-icon__image{ +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-site-icon__image{ border-radius:0; } @@ -3751,11 +3508,11 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ outline-offset:calc(var(--wp-admin-border-width-focus)*-2); } -.edit-site-style-book__tabs [role=tablist]{ +.edit-site-style-book__tab-panel .components-tab-panel__tabs{ background:#fff; color:#1e1e1e; } -.edit-site-style-book__tabs [role=tabpanel]{ +.edit-site-style-book__tab-panel .components-tab-panel__tab-content{ bottom:0; left:0; overflow:auto; @@ -3865,12 +3622,12 @@ body:has(.edit-site-resizable-frame__inner.is-resizing){ text-transform:uppercase; } -.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__main{ - padding-bottom:64px; +.font-library-modal__tab-layout main{ + padding-bottom:4rem; } -.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__footer{ +.font-library-modal__tab-layout footer{ background-color:#fff; - border-top:1px solid #ddd; + border-top:1px solid #e5e5e5; bottom:32px; margin:0 -32px -32px; padding:16px 32px; @@ -3884,63 +3641,68 @@ body:has(.edit-site-resizable-frame__inner.is-resizing){ } .font-library-modal__font-card{ - border:1px solid #e0e0e0; + border:1px solid #e5e5e5; height:auto; margin-top:-1px; - padding:16px; - width:100%; + padding:1rem; } .font-library-modal__font-card .font-library-modal__font-card__name{ font-weight:700; } .font-library-modal__font-card .font-library-modal__font-card__count{ - color:#757575; + color:#6e6e6e; } .font-library-modal__library-font-variant{ - border:1px solid #e0e0e0; + border:1px solid #e5e5e5; margin-top:-1px; - padding:16px; + padding:1rem; } .font-library-modal__font-variant{ - border-bottom:1px solid #e0e0e0; - padding-bottom:16px; + border-bottom:1px solid #e5e5e5; + padding-bottom:1rem; } -.font-library-modal__tabs [role=tablist]{ +.font-library-modal__tab-panel [role=tablist]{ background:#fff; - border-bottom:1px solid #ddd; + border-bottom:1px solid #e6e6e6; margin:0 -32px; padding:0 16px; position:sticky; top:0; + width:calc(100% + 64px); z-index:1; } .font-library-modal__upload-area{ align-items:center; + background-color:#f0f0f0; display:flex; - height:256px; + height:250px; justify-content:center; width:100%; } -button.font-library-modal__upload-area{ - background-color:#f0f0f0; -} - .font-library-modal__local-fonts{ margin:0 auto; width:80%; } .font-library-modal__local-fonts .font-library-modal__upload-area__text{ - color:#757575; + color:#6e6e6e; } .font-library-modal__local-fonts .font-library-modal__upload-area__notice{ margin:0; } +.font-library-modal__font-name{ + font-weight:700; +} + +.font-library-modal__font-filename{ + color:#6e6e6e; +} + .font-library-modal__font-variant_demo-wrapper{ overflow:hidden; position:relative; @@ -3971,10 +3733,8 @@ button.font-library-modal__upload-area{ width:50%; } -.edit-site-pagination .components-button.is-tertiary{ - height:32px; - justify-content:center; - width:32px; +.font-library-modal__font-collection__notice{ + margin:0; } body.js #wpadminbar{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.min.css index 40b90568ca..11c1505afc 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.dataviews-wrapper{box-sizing:border-box;height:100%;overflow:auto;scroll-padding-bottom:64px;width:100%}.dataviews-wrapper>div{min-height:100%}.dataviews-filters__view-actions{padding:12px 32px}.dataviews-filters__view-actions .components-search-control{flex-grow:1;max-width:240px}.dataviews-filters__view-actions.components-h-stack{align-items:center}.dataviews-filters-button{position:relative}.dataviews-filters-count{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));border-radius:8px;color:var(--wp-components-color-accent-inverted,#fff);display:flex;font-size:11px;font-weight:300;height:16px;justify-content:center;left:0;min-width:16px;padding:0 4px;position:absolute;top:0;transform:translateX(-40%) translateY(-40%)}.dataviews-pagination{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:hsla(0,0%,100%,.8);border-top:1px solid #f0f0f0;bottom:0;color:#757575;margin-top:auto;padding:12px 32px;position:sticky}.dataviews-filters-options{margin:32px 0 16px}.dataviews-view-table-wrapper{overflow-x:auto}.dataviews-view-table{border-collapse:collapse;border-color:inherit;color:#757575;position:relative;text-indent:0;width:100%}.dataviews-view-table a{color:#1e1e1e;font-weight:500;text-decoration:none}.dataviews-view-table th{color:var(--wp-components-color-foreground,#1e1e1e);font-size:13px;font-weight:400;text-align:right}.dataviews-view-table td,.dataviews-view-table th{padding:12px;white-space:nowrap}@media (min-width:1440px){.dataviews-view-table td,.dataviews-view-table th{min-width:200px}}.dataviews-view-table td[data-field-id=actions],.dataviews-view-table th[data-field-id=actions]{text-align:left}.dataviews-view-table td.dataviews-view-table__checkbox-column,.dataviews-view-table th.dataviews-view-table__checkbox-column{padding-left:0}.dataviews-view-table td .components-checkbox-control__input-container,.dataviews-view-table th .components-checkbox-control__input-container{margin:4px}.dataviews-view-table tr{border-bottom:1px solid #f0f0f0}.dataviews-view-table tr .dataviews-view-table-header-button{gap:4px}.dataviews-view-table tr td:first-child,.dataviews-view-table tr th:first-child{padding-right:32px}.dataviews-view-table tr td:first-child .dataviews-view-table-header,.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,.dataviews-view-table tr th:first-child .dataviews-view-table-header,.dataviews-view-table tr th:first-child .dataviews-view-table-header-button{margin-right:-8px}.dataviews-view-table tr td:last-child,.dataviews-view-table tr th:last-child{padding-left:32px}.dataviews-view-table tr:last-child{border-bottom:0}.dataviews-view-table tr:hover{background-color:#f8f8f8}.dataviews-view-table tr .components-checkbox-control__input{opacity:0}.dataviews-view-table tr .components-checkbox-control__input:checked,.dataviews-view-table tr .components-checkbox-control__input:focus,.dataviews-view-table tr .components-checkbox-control__input:indeterminate{opacity:1}.dataviews-view-table tr:focus-within .components-checkbox-control__input,.dataviews-view-table tr:hover .components-checkbox-control__input{opacity:1}.dataviews-view-table tr.is-selected{background-color:rgba(var(--wp-admin-theme-color--rgb),.04);color:#757575}.dataviews-view-table tr.is-selected:hover{background-color:rgba(var(--wp-admin-theme-color--rgb),.08)}.dataviews-view-table thead tr{border:0}.dataviews-view-table thead th{background-color:#fff;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:11px;font-weight:500;padding-bottom:8px;padding-right:4px;padding-top:8px;position:sticky;text-transform:uppercase;top:-1px;z-index:1}.dataviews-view-table tbody td{vertical-align:top}.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper{align-items:center;display:flex;min-height:32px}.dataviews-view-table .dataviews-view-table-header-button{font-size:11px;font-weight:500;padding:4px 8px;text-transform:uppercase}.dataviews-view-table .dataviews-view-table-header-button:not(:hover){color:#1e1e1e}.dataviews-view-table .dataviews-view-table-header-button span{speak:none}.dataviews-view-table .dataviews-view-table-header-button span:empty{display:none}.dataviews-view-table .dataviews-view-table-header{padding-right:4px}.dataviews-view-table .dataviews-view-table__actions-column{width:1%}.dataviews-view-grid__primary-field,.dataviews-view-list__primary-field,.dataviews-view-table__primary-field{color:#1e1e1e;display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid__primary-field a,.dataviews-view-list__primary-field a,.dataviews-view-table__primary-field a{color:inherit;display:block;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid__primary-field a:hover,.dataviews-view-list__primary-field a:hover,.dataviews-view-table__primary-field a:hover{color:#1e1e1e}.dataviews-view-grid__primary-field button.components-button.is-link,.dataviews-view-list__primary-field button.components-button.is-link,.dataviews-view-table__primary-field button.components-button.is-link{color:inherit;display:block;font-weight:inherit;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-bottom:24px;padding:0 32px}@media (min-width:1080px){.dataviews-view-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (min-width:1440px){.dataviews-view-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}.dataviews-view-grid .dataviews-view-grid__card{border:1px solid #e0e0e0;border-radius:4px;height:100%;justify-content:flex-start}.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions{padding:0 4px}.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field{min-height:40px}.dataviews-view-grid .dataviews-view-grid__media{aspect-ratio:1/1;background-color:#f0f0f0;border-bottom:1px solid #e0e0e0;border-radius:3px 3px 0 0;min-height:200px;width:100%}.dataviews-view-grid .dataviews-view-grid__media img{height:100%;object-fit:cover;width:100%}.dataviews-view-grid .dataviews-view-grid__primary-field{padding:8px}.dataviews-view-grid .dataviews-view-grid__fields{font-size:12px;line-height:16px;position:relative}.dataviews-view-grid .dataviews-view-grid__fields:not(:empty){padding:0 12px 12px}.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value{color:#757575}.dataviews-view-list{margin:0;padding:8px}.dataviews-view-list li{margin:0}.dataviews-view-list li .dataviews-view-list__item-wrapper{border-radius:4px;padding-left:24px;position:relative}.dataviews-view-list li .dataviews-view-list__item-wrapper:after{background:#f0f0f0;content:"";height:1px;left:24px;position:absolute;right:24px;top:100%}.dataviews-view-list li:not(.is-selected):hover,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field{color:var(--wp-admin-theme-color)}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper{background-color:var(--wp-admin-theme-color);color:#fff}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field{color:#fff}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper:after,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper:after{background:transparent}.dataviews-view-list .dataviews-view-list__item{cursor:pointer;padding:12px 24px 12px 0;width:100%}.dataviews-view-list .dataviews-view-list__item:focus:before{border-radius:4px;bottom:-1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:-1}.dataviews-view-list .dataviews-view-list__item h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataviews-view-list .dataviews-view-list__media-wrapper{background-color:#f0f0f0;border-radius:4px;flex-shrink:0;height:32px;overflow:hidden;position:relative;width:32px}.dataviews-view-list .dataviews-view-list__media-wrapper img{height:100%;object-fit:cover;width:100%}.dataviews-view-list .dataviews-view-list__media-wrapper:after{border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);content:"";height:100%;position:absolute;right:0;top:0;width:100%}.dataviews-view-list .dataviews-view-list__media-placeholder{background-color:#e0e0e0;height:32px;min-width:32px}.dataviews-view-list .dataviews-view-list__fields{color:#757575;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field{margin-left:12px}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:last-child{margin-left:0}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty{display:none}.dataviews-view-list+.dataviews-pagination{justify-content:space-between}.dataviews-view-list .dataviews-view-list__details-button{align-self:center;opacity:0}.dataviews-view-list li.is-selected .dataviews-view-list__details-button,.dataviews-view-list li:focus-within .dataviews-view-list__details-button,.dataviews-view-list li:hover .dataviews-view-list__details-button{opacity:1}.dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) currentColor}.dataviews-action-modal{z-index:1000001}.dataviews-loading,.dataviews-no-results{padding:0 32px}.dataviews-view-table-selection-checkbox label{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.dataviews-filters__custom-menu-radio-item-prefix{display:block;width:24px}.dataviews-bulk-edit-button.components-button{flex-shrink:0}.edit-site-custom-template-modal__contents-wrapper{height:100%;justify-content:flex-start!important}.edit-site-custom-template-modal__contents-wrapper>*{width:100%}.edit-site-custom-template-modal__contents-wrapper__suggestions_list{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px)}.edit-site-custom-template-modal__contents>.components-button{height:auto;justify-content:center}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input{background:#fff;border:1px solid #ddd}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 1px var(--wp-admin-theme-color)}@media (min-width:782px){.edit-site-custom-template-modal{width:456px}}@media (min-width:600px){.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{max-height:224px;overflow-y:auto}}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{display:block;height:auto;overflow-wrap:break-word;padding:8px 12px;text-align:right;white-space:pre-wrap;width:100%}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item mark{background:none;font-weight:700}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover *,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover mark{color:var(--wp-admin-theme-color)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus{background-color:#f0f0f0}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color) inset}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__title{display:block;overflow:hidden;text-overflow:ellipsis}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info{color:#757575;word-break:break-all}.edit-site-custom-template-modal__no-results{border:1px solid #ccc;border-radius:2px;padding:16px}.edit-site-custom-generic-template__modal .components-modal__header{border-bottom:none}.edit-site-custom-generic-template__modal .components-modal__content:before{margin-bottom:4px}.edit-site-template-actions-loading-screen-modal{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}.edit-site-template-actions-loading-screen-modal.is-full-screen{background-color:#fff;box-shadow:0 0 0 transparent;min-height:100%;min-width:100%}.edit-site-template-actions-loading-screen-modal__content{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:50%;transform:translateX(50%)}.edit-site-add-new-template__modal{margin-top:64px;max-height:calc(100% - 128px);max-width:832px;width:calc(100% - 64px)}@media (min-width:960px){.edit-site-add-new-template__modal{width:calc(100% - 128px)}}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button svg,.edit-site-add-new-template__modal .edit-site-add-new-template__template-button svg{fill:var(--wp-admin-theme-color)}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button .edit-site-add-new-template__template-name{align-items:flex-start;flex-grow:1}.edit-site-add-new-template__modal .edit-site-add-new-template__template-icon{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:100%;max-height:40px;max-width:40px;padding:8px}.edit-site-add-new-template__template-list__contents>.components-button,.edit-site-custom-template-modal__contents>.components-button{border:1px solid #ddd;border-radius:2px;display:flex;flex-direction:column;justify-content:center;outline:1px solid transparent;padding:32px}.edit-site-add-new-template__template-list__contents>.components-button span:first-child,.edit-site-custom-template-modal__contents>.components-button span:first-child{color:#1e1e1e}.edit-site-add-new-template__template-list__contents>.components-button span,.edit-site-custom-template-modal__contents>.components-button span{color:#757575}.edit-site-add-new-template__template-list__contents>.components-button:hover,.edit-site-custom-template-modal__contents>.components-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-color:transparent;color:var(--wp-admin-theme-color-darker-10)}.edit-site-add-new-template__template-list__contents>.components-button:hover span,.edit-site-custom-template-modal__contents>.components-button:hover span{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents>.components-button:focus,.edit-site-custom-template-modal__contents>.components-button:focus{border-color:transparent;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:3px solid transparent}.edit-site-add-new-template__template-list__contents>.components-button:focus span:first-child,.edit-site-custom-template-modal__contents>.components-button:focus span:first-child{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__custom-template-button,.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__template-list__prompt,.edit-site-custom-template-modal__contents .edit-site-add-new-template__custom-template-button,.edit-site-custom-template-modal__contents .edit-site-add-new-template__template-list__prompt{grid-column-end:4;grid-column-start:1}.edit-site-add-new-template__template-list__contents>.components-button{align-items:flex-start;height:100%;text-align:start}.edit-site-block-editor__editor-styles-wrapper .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-site-block-editor__editor-styles-wrapper .components-button.has-icon,.edit-site-block-editor__editor-styles-wrapper .components-button.is-tertiary{padding:6px}.edit-site-editor-canvas__block-list.is-navigation-block{padding:24px}.edit-site-visual-editor{align-items:center;background-color:#1e1e1e;display:block;height:100%;overflow:hidden;position:relative}.edit-site-visual-editor iframe{background:#fff;display:block;height:100%;width:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-layout.is-full-canvas .edit-site-visual-editor.is-focus-mode{padding:48px}.edit-site-visual-editor.is-focus-mode .edit-site-visual-editor__editor-canvas{border-radius:2px;max-height:100%}.edit-site-visual-editor.is-focus-mode .components-resizable-box__container{overflow:visible}.edit-site-visual-editor .components-resizable-box__container{margin:0 auto;overflow:auto}.edit-site-visual-editor.is-view-mode{box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8)}.edit-site-visual-editor__back-button{color:#fff;position:absolute;right:8px;top:8px}.edit-site-visual-editor__back-button:active:not([aria-disabled=true]),.edit-site-visual-editor__back-button:focus:not([aria-disabled=true]),.edit-site-visual-editor__back-button:hover{color:#f0f0f0}.is-distraction-free .edit-site-visual-editor__back-button{display:none}.resizable-editor__drag-handle{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:2px;bottom:0;cursor:ew-resize;margin:auto 0;outline:none;padding:0;position:absolute;top:0;width:12px}.resizable-editor__drag-handle.is-variation-default{height:100px}.resizable-editor__drag-handle.is-variation-separator{height:100%;left:0;width:24px}.resizable-editor__drag-handle.is-variation-separator:after{background:transparent;border-radius:0;left:0;right:50%;transform:translateX(1px);transition:all .2s ease;transition-delay:.1s;width:2px}@media (prefers-reduced-motion:reduce){.resizable-editor__drag-handle.is-variation-separator:after{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.resizable-editor__drag-handle:after{background:#949494;border-radius:2px;bottom:24px;content:"";left:0;position:absolute;right:4px;top:24px;width:4px}.resizable-editor__drag-handle.is-left{right:-16px}.resizable-editor__drag-handle.is-right{left:-16px}.resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{opacity:1}.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{background:#ccc}.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{background:var(--wp-admin-theme-color)}.resizable-editor__drag-handle:focus:after{box-shadow:0 0 0 1px #2f2f2f,0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color)}.resizable-editor__drag-handle.is-variation-separator:focus:after{border-radius:2px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.edit-site-canvas-loader{align-items:center;animation:edit-site-canvas-loader__fade-in-animation .5s ease .2s;animation-fill-mode:forwards;display:flex;height:100%;justify-content:center;opacity:0;position:absolute;right:0;top:0;width:100%}@media (prefers-reduced-motion:reduce){.edit-site-canvas-loader{animation-delay:0s;animation-duration:1ms}}.edit-site-canvas-loader>div{width:160px}@keyframes edit-site-canvas-loader__fade-in-animation{0%{opacity:0}to{opacity:1}}.edit-site-code-editor{background-color:#fff;min-height:100%;position:relative;width:100%}.edit-site-code-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:12px;width:100%}@media (min-width:960px){.edit-site-code-editor__body{padding:24px}}.edit-site-code-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-site-code-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-site-code-editor__toolbar{padding:12px 24px}}.edit-site-code-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 0 0 auto}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{font-size:15px!important;padding:24px}}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-webkit-input-placeholder{color:rgba(30,30,30,.62)}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-site-global-styles-preview{align-items:center;cursor:pointer;display:flex;justify-content:center;line-height:1}.edit-site-global-styles-preview__iframe{display:block;max-width:100%}.edit-site-typography-preview{align-items:center;background:#f0f0f0;border-radius:2px;display:flex;justify-content:center;margin-bottom:16px;min-height:100px;overflow:hidden}.edit-site-typography-panel__full-width-control{grid-column:1/-1;max-width:100%}.edit-site-global-styles-screen-css,.edit-site-global-styles-screen-typography{margin:16px}.edit-site-global-styles-screen-typography__indicator{align-items:center;border-radius:2px;display:flex!important;font-size:14px;height:24px;justify-content:center;width:24px}.edit-site-global-styles-screen-typography__font-variants-count{color:#757575}.edit-site-global-styles-screen-colors{margin:16px}.edit-site-global-styles-screen-colors .color-block-support-panel{border-top:none;padding-left:0;padding-right:0}.edit-site-global-styles-header__description{padding:0 16px}.edit-site-block-types-search{margin-bottom:8px;padding:0 16px}.edit-site-global-styles-header{margin-bottom:0!important}.edit-site-global-styles-subtitle{font-size:11px!important;font-weight:500!important;margin-bottom:0!important;text-transform:uppercase}.edit-site-global-styles-section-title{color:#2f2f2f;font-weight:600;line-height:1.2;margin:0;padding:16px 16px 0}.edit-site-global-styles-variations_item{border-radius:2px;box-sizing:border-box}.edit-site-global-styles-variations_item .edit-site-global-styles-variations_item-preview{border-radius:2px;box-shadow:0 0 0 1px #e0e0e0;outline:1px solid transparent;padding:2px}.edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e;outline-width:3px}.edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus-visible{outline:3px solid transparent;outline-offset:0}.edit-site-global-styles-icon-with-current-color{fill:currentColor}.edit-site-global-styles__color-indicator-wrapper{flex-shrink:0;height:24px}.edit-site-global-styles__block-preview-panel{border:1px solid #e0e0e0;border-radius:2px;overflow:auto;position:relative;width:100%}.edit-site-global-styles-screen-css{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack{flex:1 1 auto}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input,.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field .components-textarea-control__input{direction:ltr;flex:1 1 auto}.edit-site-global-styles-screen-css-help-link{display:block;margin-top:8px}.edit-site-global-styles-screen-variations{border-top:1px solid #ddd;margin-top:16px}.edit-site-global-styles-screen-variations>*{margin:24px 16px}.edit-site-global-styles-sidebar__navigator-screen{display:flex;flex-direction:column}.edit-site-global-styles-screen-root.edit-site-global-styles-screen-root,.edit-site-global-styles-screen-style-variations.edit-site-global-styles-screen-style-variations{background:unset;color:inherit}.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg{fill:currentColor}.edit-site-global-styles-screen-revisions__revisions-list{flex-grow:1;list-style:none;margin:0 16px 16px}.edit-site-global-styles-screen-revisions__revisions-list li{margin-bottom:0}.edit-site-global-styles-screen-revisions__revision-item{cursor:pointer;display:flex;flex-direction:column;position:relative}.edit-site-global-styles-screen-revisions__revision-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-global-styles-screen-revisions__revision-item:hover .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__revision-item:after,.edit-site-global-styles-screen-revisions__revision-item:before{content:"\a";display:block;position:absolute}.edit-site-global-styles-screen-revisions__revision-item:before{background:#ddd;border:4px solid transparent;border-radius:50%;height:8px;right:17px;top:18px;transform:translate(50%,-50%);width:8px;z-index:1}.edit-site-global-styles-screen-revisions__revision-item.is-selected{border-radius:2px;outline:3px solid transparent;outline-offset:-2px}.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.edit-site-global-styles-screen-revisions__revision-item:after{border:.5px solid #ddd;height:100%;right:16px;top:0;width:0}.edit-site-global-styles-screen-revisions__revision-item:first-child:after{top:18px}.edit-site-global-styles-screen-revisions__revision-item:last-child:after{height:18px}.edit-site-global-styles-screen-revisions__revision-item .edit-site-global-styles-screen-revisions__revision-button{display:block;height:auto;outline-offset:-2px;padding:12px 40px 8px 12px;position:relative;width:100%;z-index:1}.is-selected{background:rgba(var(--wp-admin-theme-color--rgb),.04);color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.is-selected .edit-site-global-styles-screen-revisions__revision-button{opacity:1}.is-selected .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{align-self:flex-start;margin:0 40px 12px 12px}.edit-site-global-styles-screen-revisions__applied-text{color:#949494;font-size:12px;font-style:italic}.edit-site-global-styles-screen-revisions__description{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.edit-site-global-styles-screen-revisions__description .edit-site-global-styles-screen-revisions__date{font-size:12px;font-weight:600;text-transform:uppercase}.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{align-items:flex-start;color:#949494;display:flex;font-size:12px;justify-content:start;text-align:right;width:100%}.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{border-radius:100%;height:16px;margin-left:8px;width:16px}.edit-site-global-styles-screen-revisions__loading{margin:24px auto!important}.edit-site-global-styles-screen-revisions__changes{color:#1e1e1e;line-height:1.4;margin-bottom:4px;text-align:right}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{gap:2px;justify-content:space-between}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .edit-site-pagination__total{height:1px;margin:-1px;overflow:hidden;position:absolute;right:-1000px}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-text{font-size:12px;will-change:opacity}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary{color:#1e1e1e;font-size:28px;font-weight:200;line-height:1.2;margin-bottom:4px}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:disabled{color:#949494}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:hover{background:transparent}.edit-site-global-styles-screen-revisions__footer{background:#fff;border-top:1px solid #ddd;bottom:0;height:56px;min-width:100%;padding:12px;position:sticky;z-index:1}.edit-site-header-edit-mode{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-sizing:border-box;color:#1e1e1e;display:flex;height:60px;justify-content:space-between;padding-right:60px;width:100%}.edit-site-header-edit-mode .edit-site-header-edit-mode__start{align-items:center;border:none;display:flex;flex-shrink:2;height:100%;overflow:hidden}@media (min-width:782px){.edit-site-header-edit-mode .edit-site-header-edit-mode__start{padding-left:2px}}.edit-site-header-edit-mode .edit-site-header-edit-mode__end{display:flex;justify-content:flex-end}.edit-site-header-edit-mode .edit-site-header-edit-mode__center{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;margin:0 16px;min-width:0}.edit-site-header-edit-mode__toolbar{align-items:center;display:flex;gap:8px;padding-right:16px}@media (min-width:782px){.edit-site-header-edit-mode__toolbar{padding-right:20px}}@media (min-width:1280px){.edit-site-header-edit-mode__toolbar{padding-left:8px}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.edit-site-header-edit-mode__actions{align-items:center;display:inline-flex;gap:8px;padding-left:8px}.edit-site-header-edit-mode__preview-options{opacity:1;transition:opacity .3s}.edit-site-header-edit-mode__preview-options.is-zoomed-out{opacity:0}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon svg{display:none}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon:after{content:attr(aria-label)}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-site-header-edit-mode.show-icon-labels .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-site-header-edit-mode.show-icon-labels .edit-site-save-button__button{padding-left:6px;padding-right:6px}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info:after{content:none}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info,.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__inserter-toggle.edit-site-header-edit-mode__inserter-toggle{height:36px;padding:0 8px}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover{border-right:none}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#ddd;right:calc(50% + 1px);width:calc(100% - 24px)}.has-fixed-toolbar .selected-block-tools-wrapper{overflow-x:scroll}.has-fixed-toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group{border-left:none}.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.has-fixed-toolbar .edit-site-header-edit-mode__center.is-collapsed,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper.is-collapsed{display:none}.edit-site-header-edit-mode__block-tools-toggle{margin-right:2px}.edit-site-list-header{align-items:center;box-sizing:border-box;display:flex;height:60px;justify-content:flex-end;padding-left:16px;position:relative;width:100%}body.is-fullscreen-mode .edit-site-list-header{padding-right:60px;transition:padding-right 20ms linear;transition-delay:80ms}@media (prefers-reduced-motion:reduce){body.is-fullscreen-mode .edit-site-list-header{transition-delay:0s;transition-duration:0s}}.edit-site-list-header .edit-site-list-header__title{font-size:20px;margin:0;padding:0;position:absolute;right:0;text-align:center;width:100%}.edit-site-list-header__right{position:relative}.edit-site .edit-site-list{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8);flex-grow:1}.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:100%}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:0}}.edit-site .edit-site-list .interface-interface-skeleton__content{align-items:center;background:#fff;padding:16px}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__content{padding:72px}}.edit-site-list-table{border:1px solid #ddd;border-radius:2px;border-spacing:0;margin:0 auto;max-width:960px;min-width:100%;overflow:hidden}.edit-site-list-table tr{align-items:center;border-top:1px solid #f0f0f0;box-sizing:border-box;display:flex;margin:0;padding:16px}.edit-site-list-table tr:first-child{border-top:0}@media (min-width:782px){.edit-site-list-table tr{padding:24px 32px}}.edit-site-list-table tr .edit-site-list-table-column:first-child{padding-left:24px;width:calc(60% - 18px)}.edit-site-list-table tr .edit-site-list-table-column:first-child a{display:inline-block;font-weight:500;margin-bottom:4px;text-decoration:none}.edit-site-list-table tr .edit-site-list-table-column:nth-child(2){width:calc(40% - 18px);word-break:break-word}.edit-site-list-table tr .edit-site-list-table-column:nth-child(3){flex-shrink:0;min-width:36px}.edit-site-list-table tr.edit-site-list-table-head{border-bottom:1px solid #ddd;border-top:none;color:#1e1e1e;font-size:16px;font-weight:600;text-align:right}.edit-site-list-table tr.edit-site-list-table-head th{font-weight:inherit}@media (min-width:782px){.edit-site-list.is-navigation-open .components-snackbar-list{margin-right:360px}}.edit-site-list__rename-modal{z-index:1000001}@media (min-width:782px){.edit-site-list__rename-modal .components-base-control{width:320px}}.edit-site-template__actions button:not(:last-child){margin-left:8px}.edit-site-list-added-by__icon{display:flex;flex-shrink:0;height:24px;width:24px}.edit-site-list-added-by__icon svg{fill:currentColor}.edit-site-list-added-by__avatar{align-items:center;display:flex;flex-shrink:0;height:24px;justify-content:center;overflow:hidden;width:24px}.edit-site-list-added-by__avatar img{border-radius:100%;height:20px;object-fit:cover;opacity:0;transition:opacity .1s linear;width:20px}@media (prefers-reduced-motion:reduce){.edit-site-list-added-by__avatar img{transition-delay:0s;transition-duration:0s}}.edit-site-list-added-by__avatar.is-loaded img{opacity:1}.edit-site-list-added-by__customized-info{color:#757575;display:block}.edit-site-page{background:#fff;color:#2f2f2f;height:100%}.edit-site-page-header{background:#fff;border-bottom:1px solid #f0f0f0;min-height:72px;padding:16px 32px;position:sticky;top:0;z-index:2}.edit-site-page-header .components-text{color:#2f2f2f}.edit-site-page-header .components-heading{color:#1e1e1e}.edit-site-page-header .edit-site-page-header__sub-title{color:#757575;margin-top:8px}.edit-site-page-content{display:flex;flex-flow:column;height:100%;overflow:auto;position:relative;z-index:1}.edit-site-page-pages__media-wrapper{background-color:#f0f0f0;border-radius:4px;display:block;height:40px;overflow:hidden;position:relative;width:40px}.edit-site-page-pages__media-wrapper .edit-site-page-pages__featured-image{height:100%;object-fit:cover;width:100%}.edit-site-page-pages__media-wrapper:after{border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);content:"";height:100%;position:absolute;right:0;top:0;width:100%}.page-pages-preview-field__button{background-color:unset;border:none;border-radius:3px 3px 0 0;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0;width:100%}.page-pages-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns{background:#1e1e1e;border-radius:0;border-right:1px solid #2f2f2f;margin:60px 0 0;min-height:100%;overflow-x:auto;padding:0}.edit-site-patterns .components-base-control{width:100%}@media (min-width:782px){.edit-site-patterns .components-base-control{width:auto}}.edit-site-patterns .components-text{color:#949494}.edit-site-patterns .components-heading{color:#e0e0e0}@media (min-width:782px){.edit-site-patterns{margin:0}}.edit-site-patterns .edit-site-patterns__search-block{flex-grow:1;min-width:-moz-fit-content;min-width:fit-content}.edit-site-patterns .edit-site-patterns__search input[type=search]{background:#2f2f2f;color:#e0e0e0;height:40px}.edit-site-patterns .edit-site-patterns__search input[type=search]:focus{background:#2f2f2f}.edit-site-patterns .edit-site-patterns__search svg{fill:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter{background:#2f2f2f;border:none;height:40px;max-width:100%;min-width:max-content;width:100%}@media (min-width:782px){.edit-site-patterns .edit-site-patterns__sync-status-filter{width:300px}}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:not([aria-checked=true]){color:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:active{background:#757575;color:#f0f0f0}.edit-site-patterns__header{background:#1e1e1e;padding:32px 32px 16px;position:sticky;top:0;z-index:2}.edit-site-patterns__header .edit-site-patterns__button{color:#949494}.edit-site-patterns__section{flex:1;padding:24px 32px}.edit-site-patterns__section-header .screen-reader-shortcut:focus{top:0}.edit-site-patterns__grid{display:grid;gap:32px;grid-template-columns:1fr;margin-bottom:0;margin-top:0}@media (min-width:960px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr}}@media (min-width:1440px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr}}@media (min-width:1920px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr 1fr}}.edit-site-patterns__grid .edit-site-patterns__pattern{break-inside:avoid-column;display:flex;flex-direction:column}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{background-color:unset;border:none;border-radius:4px;box-shadow:none;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:0}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{box-shadow:inset 0 0 0 0 #fff,0 0 0 2px var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{cursor:default}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f;opacity:.8}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{color:#949494}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{flex-shrink:0}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{align-items:center;border:1px dashed #2f2f2f;color:#949494;display:flex;justify-content:center;min-height:64px}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-patterns__grid .edit-site-patterns__preview{flex:0 1 auto;margin-bottom:12px}.edit-site-patterns__load-more{align-self:center}.edit-site-patterns__pattern-title{color:#e0e0e0}.edit-site-patterns__pattern-title .is-link{color:#e0e0e0;text-decoration:none}.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{color:#fff}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{fill:#fff;background:var(--wp-block-synced-color);border-radius:4px}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{fill:currentcolor}.edit-site-patterns__no-results{color:#949494}.edit-site-patterns__delete-modal{width:384px}.edit-site-patterns__pagination{background:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;color:#f0f0f0;padding:24px 32px;position:sticky;z-index:2}.edit-site-patterns__pagination .components-button.is-tertiary{background-color:#2f2f2f;color:#f0f0f0}.edit-site-patterns__pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.edit-site-patterns__pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575}.edit-site-page-patterns-dataviews .page-patterns-preview-field{border-radius:3px 3px 0 0;display:flex;flex-direction:column;height:100%}.edit-site-page-patterns-dataviews .page-patterns-preview-field.is-viewtype-grid .block-editor-block-preview__container{border-radius:3px 3px 0 0;height:100%}.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button{background-color:unset;border:none;border-radius:3px 3px 0 0;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0}.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-icon{fill:var(--wp-block-synced-color);flex-shrink:0}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-lock-icon{min-width:min-content}.edit-site-page-patterns-dataviews .edit-site-patterns__section-header{border-bottom:1px solid #f0f0f0;min-height:72px;padding:16px 32px;position:sticky;top:0;z-index:2}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-title{color:inherit;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-action-modal__duplicate-pattern [role=dialog]>[role=document]{width:350px}.dataviews-action-modal__duplicate-pattern .patterns-menu-items__convert-modal-categories{position:relative}.dataviews-action-modal__duplicate-pattern .components-form-token-field__suggestions-list:not(:empty){background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;box-shadow:0 0 .5px .5px var(--wp-admin-theme-color);box-sizing:border-box;max-height:96px;min-width:auto;position:absolute;right:-1px;width:calc(100% + 2px);z-index:1}@media (min-width:600px){.dataviews-action-modal__duplicate-template-part .components-modal__frame{max-width:500px}}.page-templates-preview-field{border-radius:3px 3px 0 0;display:flex;flex-direction:column;height:100%}.page-templates-preview-field .page-templates-preview-field__button{background-color:unset;border:none;border-radius:3px;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0}.page-templates-preview-field .page-templates-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.page-templates-preview-field.is-viewtype-list .block-editor-block-preview__container{height:120px}.page-templates-preview-field.is-viewtype-grid .block-editor-block-preview__container{height:auto}.page-templates-preview-field.is-viewtype-grid .page-templates-preview-field__button{border-radius:3px 3px 0 0}.page-templates-description{white-space:normal}.edit-site-table-wrapper{padding:32px;width:100%}.edit-site-table{border-collapse:collapse;border-color:inherit;position:relative;text-indent:0;width:100%}.edit-site-table a{text-decoration:none}.edit-site-table th{color:#757575;font-weight:400;padding:0 16px 16px;text-align:right}.edit-site-table td{padding:16px}.edit-site-table td,.edit-site-table th{vertical-align:center}.edit-site-table td:first-child,.edit-site-table th:first-child{padding-right:0}.edit-site-table td:last-child,.edit-site-table th:last-child{padding-left:0;text-align:left}.edit-site-table tr{border-bottom:1px solid #f0f0f0}.edit-site-sidebar-edit-mode{width:280px}.edit-site-sidebar-edit-mode>.components-panel{border-left:0;border-right:0;margin-bottom:-1px;margin-top:-1px}.edit-site-sidebar-edit-mode>.components-panel>.components-panel__header{background:#f0f0f0}.edit-site-sidebar-edit-mode .block-editor-block-inspector__card{margin:0}.edit-site-global-styles-sidebar{display:flex;flex-direction:column;min-height:100%}.edit-site-global-styles-sidebar__navigator-provider,.edit-site-global-styles-sidebar__panel{display:flex;flex:1;flex-direction:column}.edit-site-global-styles-sidebar__navigator-screen{flex:1}.edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon{margin-right:0}.edit-site-global-styles-sidebar__reset-button.components-button{margin-right:auto}.edit-site-global-styles-sidebar .components-navigation__menu-title-heading{font-size:15.6px;font-weight:500}.edit-site-global-styles-sidebar .components-navigation__item>button span{font-weight:500}.edit-site-global-styles-sidebar .block-editor-panel-color-gradient-settings,.edit-site-typography-panel{border:0}.edit-site-global-styles-sidebar .single-column{grid-column:span 1}.edit-site-global-styles-sidebar .components-tools-panel .span-columns{grid-column:1/-1}.edit-site-global-styles-sidebar__blocks-group{border-top:1px solid #e0e0e0;padding-top:24px}.edit-site-global-styles-sidebar__blocks-group-help{padding:0 16px}.edit-site-global-styles-color-palette-panel,.edit-site-global-styles-gradient-palette-panel{padding:16px}.edit-site-global-styles-sidebar hr{margin:0}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon svg{display:none}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.edit-site-page-panels__swap-template__confirm-modal__actions{margin-top:24px}.edit-site-change-status__content .components-popover__content{min-width:320px;padding:16px}.edit-site-change-status__content .edit-site-change-status__options .components-base-control__field>.components-v-stack{gap:8px}.edit-site-change-status__content .edit-site-change-status__options label .components-text{display:block;margin-right:26px}.edit-site-change-status__content .edit-site-change-status__password-legend{margin-bottom:8px;padding:0}.edit-site-summary-field__trigger{display:block;max-width:100%;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:16px;padding-right:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs ul{display:flex}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs li{margin:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 auto 0 0;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-site-sidebar-edit-mode__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-site-sidebar-edit-mode__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-sidebar-card{align-items:flex-start;display:flex}.edit-site-sidebar-card__content{flex-grow:1;margin-bottom:4px}.edit-site-sidebar-card__title{font-weight:500;line-height:24px}.edit-site-sidebar-card__title.edit-site-sidebar-card__title{margin:0}.edit-site-sidebar-card__description{font-size:13px}.edit-site-sidebar-card__icon{flex:0 0 24px;height:24px;margin-left:12px;width:24px}.edit-site-sidebar-card__header{display:flex;justify-content:space-between;margin:0 0 4px}.edit-site-template-card__template-areas{margin-top:16px}.edit-site-template-card__template-areas-list,.edit-site-template-card__template-areas-list>li{margin:0}.edit-site-template-card__template-areas-item{width:100%}.edit-site-template-card__template-areas-item.components-button.has-icon{padding:0}.edit-site-template-card__actions{line-height:0}.edit-site-template-card__actions>.components-button.is-small.has-icon{min-width:auto;padding:0}h3.edit-site-template-card__template-areas-title{font-weight:500;margin:0 0 8px}.edit-site-template-panel__replace-template-modal{z-index:1000001}.edit-site-template-panel__replace-template-modal__content{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-template-panel__replace-template-modal__content{column-count:3}}@media (min-width:1280px){.edit-site-template-panel__replace-template-modal__content{column-count:4}}.edit-site-editor__interface-skeleton{opacity:1;transition:opacity .1s ease-out}@media (prefers-reduced-motion:reduce){.edit-site-editor__interface-skeleton{transition-delay:0s;transition-duration:0s}}.edit-site-editor__interface-skeleton.is-loading{opacity:0}.edit-site-editor__interface-skeleton .interface-interface-skeleton__header{border:0}.edit-site-editor__toggle-save-panel{background-color:#fff;border:1px dotted #ddd;box-sizing:border-box;display:flex;justify-content:center;padding:24px;width:280px}.edit-site .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:absolute;right:0}@media (min-width:783px){.edit-site .components-editor-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-site .components-editor-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-site .components-editor-notices__snackbar{right:160px}}.folded .edit-site .components-editor-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-site .components-editor-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{right:0!important}.edit-site-create-template-part-modal{z-index:1000001}@media (min-width:600px){.edit-site-create-template-part-modal .components-modal__frame{max-width:500px}}.edit-site-create-template-part-modal__area-radio-group{border:1px solid #757575;border-radius:2px;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio{display:block;height:100%;padding:12px;text-align:right;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover{background-color:inherit;border-bottom:1px solid #757575;border-radius:0;margin:0}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:focus){box-shadow:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:focus{border-bottom:1px solid #fff}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:last-of-type{border-bottom:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true]{color:#1e1e1e;cursor:auto}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover) .edit-site-create-template-part-modal__option-label div,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true] .edit-site-create-template-part-modal__option-label div{color:#949494}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label{padding-top:4px;white-space:normal}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label div{font-size:12px;padding-top:4px}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__checkbox{margin-right:auto;min-width:24px}.edit-site-welcome-guide{width:312px}.edit-site-welcome-guide.guide-editor .edit-site-welcome-guide__image .edit-site-welcome-guide.guide-styles .edit-site-welcome-guide__image{background:#00a0d2}.edit-site-welcome-guide.guide-page .edit-site-welcome-guide__video{border-left:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide.guide-template .edit-site-welcome-guide__video{border-right:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide__image{margin:0 0 16px}.edit-site-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-site-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-site-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 16px;padding:0 32px}.edit-site-welcome-guide__text img{vertical-align:bottom}.edit-site-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-site-start-template-options__modal .edit-site-start-template-options__modal__actions{background-color:#fff;border-top:1px solid #ddd;bottom:0;height:92px;margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px;position:absolute;width:100%;z-index:1}.edit-site-start-template-options__modal .block-editor-block-patterns-list{padding-bottom:92px}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-patterns-list__item-title{display:none}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-site-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-site-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-site-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-site-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-site-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-site-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-site-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-site-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.edit-site-layout{background:#1e1e1e;color:#ccc;display:flex;flex-direction:column;height:100%}.edit-site-layout__hub{height:60px;position:fixed;right:0;top:0;width:calc(100vw - 32px);z-index:3}@media (min-width:782px){.edit-site-layout__hub{width:336px}}.edit-site-layout.is-full-canvas .edit-site-layout__hub{border-radius:0;box-shadow:none;padding-left:16px;width:100vw}@media (min-width:782px){.edit-site-layout.is-full-canvas .edit-site-layout__hub{padding-left:0;width:60px}}.edit-site-layout__header-container{z-index:4}.edit-site-layout__header{display:flex;height:60px;z-index:2}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__header{position:fixed;width:100vw}.edit-site-layout__content{display:flex;flex-grow:1;height:100%}.edit-site-layout__sidebar-region{flex-shrink:0;width:100vw;z-index:1}@media (min-width:782px){.edit-site-layout__sidebar-region{width:360px}}.edit-site-layout.is-full-canvas .edit-site-layout__sidebar-region{height:100vh;position:fixed!important;right:0;top:0}.edit-site-layout__sidebar-region .edit-site-layout__sidebar{display:flex;flex-direction:column;height:100%}.edit-site-layout__sidebar-region .resizable-editor__drag-handle{left:0}.edit-site-layout__main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.edit-site-layout__canvas-container{flex-grow:1;position:relative;z-index:2}.edit-site-layout__canvas-container.is-resizing:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:100}.edit-site-layout__canvas{align-items:center;bottom:0;display:flex;justify-content:center;position:absolute;right:0;top:0;width:100%}.edit-site-layout__canvas.is-right-aligned{justify-content:flex-end}.edit-site-layout__canvas>div{color:#1e1e1e}@media (min-width:782px){.edit-site-layout__canvas{bottom:16px;top:16px;width:calc(100% - 16px)}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{border-radius:8px}}.edit-site-layout.is-full-canvas .edit-site-layout__canvas{bottom:0;top:0;width:100%}.edit-site-layout.is-full-canvas .edit-site-layout__canvas>div{border-radius:0}.edit-site-layout__canvas .interface-interface-skeleton,.edit-site-template-pages-preview .interface-interface-skeleton{min-height:100%!important;position:relative!important}.edit-site-template-pages-preview{height:100%}.edit-site-layout__view-mode-toggle.components-button{align-items:center;border-bottom:1px solid transparent;border-radius:0;color:#fff;display:flex;height:60px;justify-content:center;overflow:hidden;padding:0;position:relative;width:60px}.edit-site-layout.is-full-canvas .edit-site-layout__view-mode-toggle.components-button{border-bottom-color:#e0e0e0;transition:border-bottom-color .15s ease-out .4s}.edit-site-layout__view-mode-toggle.components-button:active,.edit-site-layout__view-mode-toggle.components-button:hover{color:#fff}.edit-site-layout__view-mode-toggle.components-button:focus{box-shadow:none}.edit-site-layout__view-mode-toggle.components-button:before{border-radius:4px;bottom:9px;box-shadow:none;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}@media (prefers-reduced-motion:reduce){.edit-site-layout__view-mode-toggle.components-button:before{transition-delay:0s;transition-duration:0s}}.edit-site-layout__view-mode-toggle.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-layout__view-mode-toggle.components-button .edit-site-layout__view-mode-toggle-icon{align-items:center;border-radius:2px;display:flex;height:64px;justify-content:center;width:64px}.edit-site-layout__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:280px;z-index:100000}.edit-site-layout__actions:focus,.edit-site-layout__actions:focus-within{bottom:0;top:auto}.edit-site-layout__actions.is-entity-save-view-open:focus,.edit-site-layout__actions.is-entity-save-view-open:focus-within{top:0}@media (min-width:782px){.edit-site-layout__actions{border-right:1px solid #ddd}}.edit-site-layout.is-distraction-free .edit-site-layout__header-container{height:60px;left:0;position:absolute;right:0;top:0;width:100%;z-index:4}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within{opacity:1!important}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within div{transform:translateX(0) translateY(0) translateZ(0)!important}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{opacity:1!important}.edit-site-layout.is-distraction-free .edit-site-layout__header,.edit-site-layout.is-distraction-free .edit-site-site-hub{position:absolute;top:0;z-index:2}.edit-site-layout.is-distraction-free .edit-site-site-hub{z-index:3}.edit-site-layout.is-distraction-free .edit-site-layout__header{width:100%}.edit-site-layout__area{flex-grow:1;margin:0;overflow:hidden}@media (min-width:782px){.edit-site-layout__area{border-radius:8px;margin:16px 0 16px 16px}}.edit-site-save-hub{border-top:1px solid #2f2f2f;color:#949494;flex-shrink:0;margin:0;padding:20px 16px}.edit-site-save-hub__button{color:inherit;justify-content:center;width:100%}.edit-site-save-hub__button[aria-disabled=true]{opacity:1}.edit-site-save-hub__button[aria-disabled=true]:hover{color:inherit}.edit-site-save-hub__button:not(.is-primary).is-busy,.edit-site-save-hub__button:not(.is-primary).is-busy[aria-disabled=true]:hover{color:#1e1e1e}@media (min-width:600px){.edit-site-save-panel__modal{width:600px}}.edit-site-sidebar__content{flex-grow:1;overflow-y:auto}.edit-site-sidebar__screen-wrapper{display:flex;flex-direction:column;height:100%;padding:0 12px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:stable;scrollbar-width:thin;will-change:transform}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar{height:12px;width:12px}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-track{background-color:transparent}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-sidebar__screen-wrapper:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:hover::-webkit-scrollbar-thumb{background-color:#757575}.edit-site-sidebar__screen-wrapper:focus,.edit-site-sidebar__screen-wrapper:focus-within,.edit-site-sidebar__screen-wrapper:hover{scrollbar-color:#757575 transparent}@media (hover:none){.edit-site-sidebar__screen-wrapper{scrollbar-color:#757575 transparent}}.edit-site-sidebar__footer{border-top:1px solid #2f2f2f;flex-shrink:0;margin:0 16px;padding:16px 0}.edit-site-sidebar-button{color:#e0e0e0;flex-shrink:0}.edit-site-sidebar-button:focus:not(:disabled){box-shadow:none;outline:none}.edit-site-sidebar-button:focus-visible:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));outline:3px solid transparent}.edit-site-sidebar-button:focus,.edit-site-sidebar-button:focus-visible,.edit-site-sidebar-button:hover,.edit-site-sidebar-button:not([aria-disabled=true]):active,.edit-site-sidebar-button[aria-expanded=true]{color:#f0f0f0}.edit-site-sidebar-navigation-item.components-item{border:none;border-radius:2px;color:#949494;min-height:40px;padding:8px 16px 8px 6px}.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-item.components-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-navigation-item.components-item:focus .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item:hover .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item[aria-current] .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#e0e0e0}.edit-site-sidebar-navigation-item.components-item[aria-current]{background:var(--wp-admin-theme-color);color:#fff}.edit-site-sidebar-navigation-item.components-item .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#949494}.edit-site-sidebar-navigation-item.components-item.with-suffix{padding-left:16px}.edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{cursor:grab;padding:8px 0 8px 8px}.edit-site-sidebar-navigation-screen{display:flex;flex-direction:column;overflow-x:unset!important;position:relative}.edit-site-sidebar-navigation-screen__main{flex-grow:1;margin-bottom:16px}.edit-site-sidebar-navigation-screen__main.has-footer{margin-bottom:0}.edit-site-sidebar-navigation-screen__content{padding:0 16px}.edit-site-sidebar-navigation-screen__content .components-item-group{margin-left:-16px;margin-right:-16px}.edit-site-sidebar-navigation-screen__content .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__content .components-heading{margin-bottom:8px}.edit-site-sidebar-navigation-screen__meta{color:#ccc;margin:0 16px 16px 0}.edit-site-sidebar-navigation-screen__meta .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__page-link{color:#949494;display:inline-block}.edit-site-sidebar-navigation-screen__page-link:focus,.edit-site-sidebar-navigation-screen__page-link:hover{color:#fff}.edit-site-sidebar-navigation-screen__page-link .components-external-link__icon{margin-right:4px}.edit-site-sidebar-navigation-screen__title-icon{background:#1e1e1e;margin-bottom:8px;padding-bottom:8px;padding-top:108px;position:sticky;top:0;z-index:1}.edit-site-sidebar-navigation-screen__title{flex-grow:1;overflow-wrap:break-word;padding:6px 0 0}.edit-site-sidebar-navigation-screen__actions{display:flex;flex-shrink:0}@media (min-width:782px){.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container{max-width:292px}}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #f0f0f0}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__footer{background-color:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;gap:0;margin:16px 0 0;padding:16px 0;position:sticky}.edit-site-sidebar__notice{background:#2f2f2f;color:#ddd;margin:24px 0}.edit-site-sidebar__notice.is-dismissible{padding-left:8px}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]){color:#ccc}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff}.edit-site-sidebar-navigation-screen__input-control{width:100%}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container{background:#2f2f2f}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container .components-button{color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__input{background:#2f2f2f!important;border-radius:2px;color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__backdrop{border:4px!important}.edit-site-sidebar-navigation-screen__input-control .components-base-control__help{color:#949494}.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item[aria-current]{background:none}.edit-site-sidebar-navigation-screen-details-footer .edit-site-sidebar-navigation-screen-details-footer__icon{fill:#949494;margin-right:auto}.sidebar-navigation__more-menu .components-button{color:#e0e0e0}.sidebar-navigation__more-menu .components-button:focus,.sidebar-navigation__more-menu .components-button:hover,.sidebar-navigation__more-menu .components-button[aria-current]{color:#f0f0f0}.edit-site-sidebar-navigation-screen-page__featured-image-wrapper{background-color:#2f2f2f;border-radius:4px;margin-bottom:16px;min-height:128px}.edit-site-sidebar-navigation-screen-page__featured-image{align-items:center;background-position:50% 50%;background-size:cover;border-radius:2px;color:#949494;display:flex;height:128px;justify-content:center;overflow:hidden;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image img{height:100%;object-fit:cover;object-position:50% 50%;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image-description{font-size:12px}.edit-site-sidebar-navigation-screen-page__excerpt{font-size:12px;margin-bottom:24px}.edit-site-sidebar-navigation-screen-page__modified{color:#949494;margin:0 16px 16px 0}.edit-site-sidebar-navigation-screen-page__modified .components-text{color:#949494}.edit-site-sidebar-navigation-screen-page__status{display:inline-flex}.edit-site-sidebar-navigation-screen-page__status time{display:contents}.edit-site-sidebar-navigation-screen-page__status svg{fill:#f0b849;height:16px;margin-left:8px;width:16px}.edit-site-sidebar-navigation-screen-page__status.has-future-status svg,.edit-site-sidebar-navigation-screen-page__status.has-publish-status svg{fill:#4ab866}.edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item{border-top:1px solid #2f2f2f;color:#e0e0e0;font-size:11px;font-weight:500;padding:24px 16px 16px 6px;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel{margin:24px 0}.edit-site-sidebar-navigation-details-screen-panel:last-of-type{margin-bottom:0}.edit-site-sidebar-navigation-details-screen-panel .edit-site-sidebar-navigation-details-screen-panel__heading{color:#ccc;font-size:11px;font-weight:500;margin-bottom:0;padding:0;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel__label.edit-site-sidebar-navigation-details-screen-panel__label{color:#949494;flex-shrink:0;width:100px}.edit-site-sidebar-navigation-details-screen-panel__value.edit-site-sidebar-navigation-details-screen-panel__value{color:#e0e0e0}.edit-site-sidebar-navigation-screen-pattern__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author-icon{height:24px;margin-left:8px;width:24px}.edit-site-sidebar-navigation-screen-patterns__group{margin-bottom:24px}.edit-site-sidebar-navigation-screen-patterns__group:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.edit-site-sidebar-navigation-screen-patterns__group-header{margin-top:16px}.edit-site-sidebar-navigation-screen-patterns__group-header p{color:#949494}.edit-site-sidebar-navigation-screen-patterns__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-navigation-screen-template__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-template__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-template__added-by-description-author img{border-radius:12px;height:20px;width:20px}.edit-site-sidebar-navigation-screen-template__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{align-items:center;display:inline-flex;height:24px;justify-content:center;margin-left:4px;width:24px}.edit-site-sidebar-navigation-screen-template__template-area-button{align-items:center;border-radius:4px;color:#fff;display:flex;flex-wrap:nowrap;width:100%}.edit-site-sidebar-navigation-screen-template__template-area-button:focus,.edit-site-sidebar-navigation-screen-template__template-area-button:hover{background:#2f2f2f;color:#fff}.edit-site-sidebar-navigation-screen-template__template-area-label-text{flex-grow:1;margin:0 4px 0 16px}.edit-site-sidebar-navigation-screen-template__template-icon{display:flex}.edit-site-sidebar-navigation-screen-dataviews__group-header{margin-top:32px}.edit-site-sidebar-navigation-screen-dataviews__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-dataviews-dataview-item{border-radius:2px;padding-left:8px}.edit-site-sidebar-dataviews-dataview-item .edit-site-sidebar-dataviews-dataview-item__dropdown-menu{min-width:auto}.edit-site-sidebar-dataviews-dataview-item:focus,.edit-site-sidebar-dataviews-dataview-item:hover,.edit-site-sidebar-dataviews-dataview-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-dataviews-dataview-item.is-selected{background:var(--wp-admin-theme-color);color:#fff}.edit-site-site-hub{align-items:center;display:flex;gap:8px;justify-content:space-between}.edit-site-site-hub .edit-site-site-hub__container{gap:0}.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub__site-view-link,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{transition:opacity .1s ease}.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub__site-view-link.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{opacity:0!important}.edit-site-site-hub .edit-site-site-hub__site-view-link{flex-grow:0;margin-left:var(--wp-admin-border-width-focus)}.edit-site-site-hub .edit-site-site-hub__site-view-link svg{fill:#e0e0e0}.edit-site-site-hub__post-type{opacity:.6}.edit-site-site-hub__view-mode-toggle-container{background:#1e1e1e;flex-shrink:0;height:60px;width:60px}.edit-site-site-hub__view-mode-toggle-container.has-transparent-background{background:transparent}.edit-site-site-hub__text-content{overflow:hidden}.edit-site-site-hub__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-site-hub__site-title{color:#e0e0e0;flex-grow:1;margin-right:4px}.edit-site-site-hub_toggle-command-center{color:#e0e0e0}.edit-site-site-hub_toggle-command-center:active svg,.edit-site-site-hub_toggle-command-center:hover svg{fill:#f0f0f0}.edit-site-sidebar-navigation-screen__description{margin:0 0 32px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf{border-radius:2px;max-width:calc(100% - 4px)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf[aria-current]{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block__menu{margin-right:-8px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected>td{background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents{color:inherit}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:not(:hover) .block-editor-list-view-block__menu{opacity:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus .block-editor-list-view-block__menu-cell,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover .block-editor-list-view-block__menu-cell{opacity:1}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch):hover{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block__contents-cell{width:100%}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{white-space:normal}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__title{margin-top:3px}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__menu-cell{padding-left:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button{color:#949494}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button[aria-current]{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__loading.components-spinner{display:block;margin-left:auto;margin-right:auto}.edit-site-sidebar-navigation-screen-navigation-menus__helper-block-editor{display:none}.edit-site-site-icon__icon{fill:currentColor}.edit-site-site-icon__image{background:#333;border-radius:4px;height:auto;object-fit:cover;width:100%}.edit-site-layout.is-full-canvas .edit-site-site-icon__image{border-radius:0}.edit-site-style-book{height:100%}.edit-site-style-book.is-button,.edit-site-style-book__iframe.is-button{border-radius:8px}.edit-site-style-book__iframe.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-style-book__tabs [role=tablist]{background:#fff;color:#1e1e1e}.edit-site-style-book__tabs [role=tabpanel]{bottom:0;left:0;overflow:auto;padding:0;position:absolute;right:0;top:48px}.edit-site-editor-canvas-container{background:#fff;border-radius:2px;bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;transition:all .3s}.edit-site-editor-canvas-container__close-button{background:#fff;left:8px;position:absolute;top:6px;z-index:1}.edit-site-resizable-frame__inner{position:relative}body:has(.edit-site-resizable-frame__inner.is-resizing){cursor:col-resize;user-select:none;-webkit-user-select:none}.edit-site-resizable-frame__inner.is-resizing:before{content:"";inset:0;position:absolute;z-index:1}.edit-site-resizable-frame__inner-content{inset:0;position:absolute;z-index:0}.edit-site-resizable-frame__handle{align-items:center;background-color:hsla(0,0%,46%,.4);border:0;border-radius:4px;cursor:col-resize;display:flex;height:64px;justify-content:flex-end;padding:0;position:absolute;top:calc(50% - 32px);width:4px;z-index:100}.edit-site-resizable-frame__handle:before{content:"";height:100%;position:absolute;right:100%;width:32px}.edit-site-resizable-frame__handle:after{content:"";height:100%;left:100%;position:absolute;width:32px}.edit-site-resizable-frame__handle:focus-visible{outline:2px solid transparent}.edit-site-resizable-frame__handle.is-resizing,.edit-site-resizable-frame__handle:focus,.edit-site-resizable-frame__handle:hover{background-color:var(--wp-admin-theme-color)}.edit-site-push-changes-to-global-styles-control .components-button{justify-content:center;width:100%}@media (min-width:782px){.font-library-modal.font-library-modal{width:65vw}}.font-library-modal .components-modal__header{border-bottom:none}.font-library-modal .components-modal__content{padding-top:0}.font-library-modal .font-library-modal__subtitle{font-size:11px;font-weight:500;text-transform:uppercase}.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__main{padding-bottom:64px}.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__footer{background-color:#fff;border-top:1px solid #ddd;bottom:32px;margin:0 -32px -32px;padding:16px 32px;position:absolute;width:100%}.font-library-modal__fonts-grid .font-library-modal__fonts-grid__main{display:flex;flex-direction:column}.font-library-modal__font-card{border:1px solid #e0e0e0;height:auto;margin-top:-1px;padding:16px;width:100%}.font-library-modal__font-card .font-library-modal__font-card__name{font-weight:700}.font-library-modal__font-card .font-library-modal__font-card__count{color:#757575}.font-library-modal__library-font-variant{border:1px solid #e0e0e0;margin-top:-1px;padding:16px}.font-library-modal__font-variant{border-bottom:1px solid #e0e0e0;padding-bottom:16px}.font-library-modal__tabs [role=tablist]{background:#fff;border-bottom:1px solid #ddd;margin:0 -32px;padding:0 16px;position:sticky;top:0;z-index:1}.font-library-modal__upload-area{align-items:center;display:flex;height:256px;justify-content:center;width:100%}button.font-library-modal__upload-area{background-color:#f0f0f0}.font-library-modal__local-fonts{margin:0 auto;width:80%}.font-library-modal__local-fonts .font-library-modal__upload-area__text{color:#757575}.font-library-modal__local-fonts .font-library-modal__upload-area__notice{margin:0}.font-library-modal__font-variant_demo-wrapper{overflow:hidden;position:relative;white-space:nowrap;width:100%}.font-library-modal__font-variant_demo-wrapper:after{background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff);bottom:0;content:"";height:100%;left:0;position:absolute;width:30vw}.font-library__google-fonts-confirm{align-items:center;display:flex;justify-content:center}.font-library__google-fonts-confirm h3{font-size:1.4rem}.font-library__google-fonts-confirm .components-card{max-width:350px;min-width:250px;width:50%}.edit-site-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:32px}body.js #wpadminbar{display:none}body.js #wpbody{padding-top:0}body.js.appearance_page_gutenberg-template-parts,body.js.site-editor-php{background:#fff}body.js.appearance_page_gutenberg-template-parts #wpcontent,body.js.site-editor-php #wpcontent{padding-right:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content,body.js.site-editor-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.appearance_page_gutenberg-template-parts #wpfooter,body.js.site-editor-php #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.site-editor-php #wpfooter{display:none}body.js.appearance_page_gutenberg-template-parts .a11y-speak-region,body.js.site-editor-php .a11y-speak-region{right:-1px;top:-1px}body.js.appearance_page_gutenberg-template-parts ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-template-parts ul#adminmenu>li.current>a.current:after,body.js.site-editor-php ul#adminmenu a.wp-has-current-submenu:after,body.js.site-editor-php ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.appearance_page_gutenberg-template-parts .media-frame select.attachment-filters:last-of-type,body.js.site-editor-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}body.js.site-editor-php{background:#1e1e1e}.components-modal__frame,.edit-site{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.edit-site *,.edit-site :after,.edit-site :before{box-sizing:inherit}.edit-site{height:100vh}@media (min-width:600px){.edit-site{bottom:0;left:0;min-height:100vh;position:fixed;right:0;top:0}}.no-js .edit-site{min-height:0;position:static}.edit-site .interface-interface-skeleton{top:0}.edit-site .interface-complementary-area__pin-unpin-item.components-button{display:none}.edit-site .interface-interface-skeleton__content{background-color:#1e1e1e}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-left:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{position:absolute;right:16px;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-right:160px;padding-right:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-right:48px;margin-top:0}.edit-site-custom-template-modal__contents-wrapper{height:100%;justify-content:flex-start!important}.edit-site-custom-template-modal__contents-wrapper>*{width:100%}.edit-site-custom-template-modal__contents-wrapper__suggestions_list{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px)}.edit-site-custom-template-modal__contents>.components-button{height:auto;justify-content:center}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input{background:#fff;border:1px solid #ddd}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 1px var(--wp-admin-theme-color)}@media (min-width:782px){.edit-site-custom-template-modal{width:456px}}@media (min-width:600px){.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{overflow:scroll}}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{display:block;height:auto;overflow-wrap:break-word;padding:8px 12px;text-align:right;white-space:pre-wrap;width:100%}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item mark{background:none;font-weight:700}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover *,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover mark{color:var(--wp-admin-theme-color)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus{background-color:#f0f0f0}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color) inset}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__title{display:block;overflow:hidden;text-overflow:ellipsis}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info{color:#757575;word-break:break-all}.edit-site-custom-template-modal__no-results{border:1px solid #ccc;border-radius:2px;padding:16px}.edit-site-custom-generic-template__modal .components-modal__header{border-bottom:none}.edit-site-custom-generic-template__modal .components-modal__content:before{margin-bottom:4px}.edit-site-template-actions-loading-screen-modal{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}.edit-site-template-actions-loading-screen-modal.is-full-screen{background-color:#fff;box-shadow:0 0 0 transparent;min-height:100%;min-width:100%}.edit-site-template-actions-loading-screen-modal__content{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:50%;transform:translateX(50%)}.edit-site-add-new-template__modal{margin-top:64px;max-height:calc(100% - 128px);max-width:832px;width:calc(100% - 64px)}@media (min-width:960px){.edit-site-add-new-template__modal{width:calc(100% - 128px)}}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button svg,.edit-site-add-new-template__modal .edit-site-add-new-template__template-button svg{fill:var(--wp-admin-theme-color)}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button .edit-site-add-new-template__template-name{align-items:flex-start;flex-grow:1}.edit-site-add-new-template__modal .edit-site-add-new-template__template-icon{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:100%;max-height:40px;max-width:40px;padding:8px}.edit-site-add-new-template__template-list__contents>.components-button,.edit-site-custom-template-modal__contents>.components-button{border:1px solid #ddd;border-radius:2px;display:flex;flex-direction:column;justify-content:center;outline:1px solid transparent;padding:32px}.edit-site-add-new-template__template-list__contents>.components-button span:first-child,.edit-site-custom-template-modal__contents>.components-button span:first-child{color:#1e1e1e}.edit-site-add-new-template__template-list__contents>.components-button span,.edit-site-custom-template-modal__contents>.components-button span{color:#757575}.edit-site-add-new-template__template-list__contents>.components-button:hover,.edit-site-custom-template-modal__contents>.components-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-color:transparent;color:var(--wp-admin-theme-color-darker-10)}.edit-site-add-new-template__template-list__contents>.components-button:hover span,.edit-site-custom-template-modal__contents>.components-button:hover span{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents>.components-button:focus,.edit-site-custom-template-modal__contents>.components-button:focus{border-color:transparent;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:3px solid transparent}.edit-site-add-new-template__template-list__contents>.components-button:focus span:first-child,.edit-site-custom-template-modal__contents>.components-button:focus span:first-child{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__custom-template-button,.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__template-list__prompt,.edit-site-custom-template-modal__contents .edit-site-add-new-template__custom-template-button,.edit-site-custom-template-modal__contents .edit-site-add-new-template__template-list__prompt{grid-column-end:4;grid-column-start:1}.edit-site-add-new-template__template-list__contents>.components-button{align-items:flex-start;height:100%;text-align:start}.edit-site-block-editor__editor-styles-wrapper .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-site-block-editor__editor-styles-wrapper .components-button.has-icon,.edit-site-block-editor__editor-styles-wrapper .components-button.is-tertiary{padding:6px}.edit-site-block-editor__block-list.is-navigation-block{padding:24px}.edit-site-visual-editor{align-items:center;background-color:#1e1e1e;display:block;height:100%;overflow:hidden;position:relative}.edit-site-visual-editor iframe{background:#fff;display:block;height:100%;width:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas{height:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-layout.is-full-canvas .edit-site-visual-editor.is-focus-mode{padding:48px}.edit-site-visual-editor.is-focus-mode .edit-site-visual-editor__editor-canvas{border-radius:2px;max-height:100%}.edit-site-visual-editor.is-focus-mode .components-resizable-box__container{overflow:visible}.edit-site-visual-editor .components-resizable-box__container{margin:0 auto;overflow:auto}.edit-site-visual-editor.is-view-mode{box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8)}.edit-site-visual-editor.is-view-mode .block-editor-block-contextual-toolbar.is-fixed{display:none}.edit-site-visual-editor__back-button{color:#fff;position:absolute;right:8px;top:8px}.edit-site-visual-editor__back-button:active:not([aria-disabled=true]),.edit-site-visual-editor__back-button:focus:not([aria-disabled=true]),.edit-site-visual-editor__back-button:hover{color:#f0f0f0}.resizable-editor__drag-handle{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:2px;bottom:0;cursor:ew-resize;margin:auto 0;outline:none;padding:0;position:absolute;top:0;width:12px}.resizable-editor__drag-handle.is-variation-default{height:100px}.resizable-editor__drag-handle.is-variation-separator{height:100%;left:0;width:24px}.resizable-editor__drag-handle.is-variation-separator:after{background:transparent;border-radius:0;left:0;right:50%;transform:translateX(1px);transition:all .2s ease;transition-delay:.1s;width:2px}@media (prefers-reduced-motion:reduce){.resizable-editor__drag-handle.is-variation-separator:after{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.resizable-editor__drag-handle:after{background:#949494;border-radius:2px;bottom:24px;content:"";left:0;position:absolute;right:4px;top:24px;width:4px}.resizable-editor__drag-handle.is-left{right:-16px}.resizable-editor__drag-handle.is-right{left:-16px}.resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{opacity:1}.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{background:#ccc}.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{background:var(--wp-admin-theme-color)}.resizable-editor__drag-handle:focus:after{box-shadow:0 0 0 1px #2f2f2f,0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color)}.resizable-editor__drag-handle.is-variation-separator:focus:after{border-radius:2px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}@media (min-width:783px){.auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}@media (min-width:961px){.auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}body.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{right:0!important}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;display:flex;height:60px;margin-right:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:240px;top:0}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:144px}}@media (min-width:960px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-site-canvas-loader{align-items:center;animation:edit-site-canvas-loader__fade-in-animation .5s ease .2s;animation-fill-mode:forwards;display:flex;height:100%;justify-content:center;opacity:0;position:absolute;right:0;top:0;width:100%}@media (prefers-reduced-motion:reduce){.edit-site-canvas-loader{animation-delay:0s;animation-duration:1ms}}.edit-site-canvas-loader>div{width:160px}@keyframes edit-site-canvas-loader__fade-in-animation{0%{opacity:0}to{opacity:1}}.edit-site-code-editor{background-color:#fff;min-height:100%;position:relative;width:100%}.edit-site-code-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:12px;width:100%}@media (min-width:960px){.edit-site-code-editor__body{padding:24px}}.edit-site-code-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-site-code-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-site-code-editor__toolbar{padding:12px 24px}}.edit-site-code-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 0 0 auto}.edit-site-code-editor__toolbar .components-button svg{order:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{font-size:15px!important;padding:24px}}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-webkit-input-placeholder{color:rgba(30,30,30,.62)}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-site-global-styles-preview{align-items:center;cursor:pointer;display:flex;justify-content:center;line-height:1}.edit-site-global-styles-preview__iframe{display:block;max-width:100%}.edit-site-typography-preview{align-items:center;background:#f0f0f0;border-radius:2px;display:flex;justify-content:center;margin-bottom:16px;min-height:100px;overflow:hidden}.edit-site-typography-panel__full-width-control{grid-column:1/-1;max-width:100%}.edit-site-global-styles-screen-css,.edit-site-global-styles-screen-typography{margin:16px}.edit-site-global-styles-screen-typography__indicator{align-items:center;border-radius:2px;display:flex!important;font-size:14px;height:24px;justify-content:center;width:24px}.edit-site-global-styles-screen-colors{margin:16px}.edit-site-global-styles-screen-colors .color-block-support-panel{border-top:none;padding-left:0;padding-right:0}.edit-site-global-styles-header__description{padding:0 16px}.edit-site-block-types-search{margin-bottom:8px;padding:0 16px}.edit-site-global-styles-header{margin-bottom:0!important}.edit-site-global-styles-subtitle{font-size:11px!important;font-weight:500!important;margin-bottom:0!important;text-transform:uppercase}.edit-site-global-styles-section-title{color:#2f2f2f;font-weight:600;line-height:1.2;margin:0;padding:16px 16px 0}.edit-site-global-styles-variations_item{border-radius:2px;box-sizing:border-box}.edit-site-global-styles-variations_item .edit-site-global-styles-variations_item-preview{border-radius:2px;box-shadow:0 0 0 1px #e0e0e0;outline:1px solid transparent;padding:2px}.edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e;outline-width:3px}.edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus-visible{outline:3px solid transparent;outline-offset:0}.edit-site-global-styles-icon-with-current-color{fill:currentColor}.edit-site-global-styles__color-indicator-wrapper{flex-shrink:0;height:24px}.edit-site-global-styles__block-preview-panel{border:1px solid #e0e0e0;border-radius:2px;overflow:auto;position:relative;width:100%}.edit-site-global-styles-screen-css{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack{flex:1 1 auto}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input,.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field .components-textarea-control__input{direction:ltr;flex:1 1 auto}.edit-site-global-styles-screen-css-help-link{display:block;margin-top:8px}.edit-site-global-styles-screen-variations{border-top:1px solid #ddd;margin-top:16px}.edit-site-global-styles-screen-variations>*{margin:24px 16px}.edit-site-global-styles-sidebar__navigator-screen{display:flex;flex-direction:column}.edit-site-global-styles-screen-root.edit-site-global-styles-screen-root,.edit-site-global-styles-screen-style-variations.edit-site-global-styles-screen-style-variations{background:unset;color:inherit}.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg{fill:currentColor}[class][class].edit-site-global-styles-sidebar__revisions-count-badge{align-items:center;background:#2f2f2f;border-radius:2px;color:#fff;display:inline-flex;justify-content:center;min-height:24px;min-width:24px}.edit-site-global-styles-screen-revisions{margin:16px}.edit-site-global-styles-screen-revisions__revisions-list{list-style:none;margin:0}.edit-site-global-styles-screen-revisions__revisions-list li{border-right:1px solid #ddd;margin-bottom:0}.edit-site-global-styles-screen-revisions__revision-item{padding:8px 12px 8px 0;position:relative}.edit-site-global-styles-screen-revisions__revision-item:first-child{padding-top:0}.edit-site-global-styles-screen-revisions__revision-item:last-child{padding-bottom:0}.edit-site-global-styles-screen-revisions__revision-item:before{background:#ddd;border-radius:50%;content:"\a";display:inline-block;height:8px;position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:8px}.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.edit-site-global-styles-screen-revisions__revision-button{display:block;height:auto;padding:8px 12px;width:100%}.edit-site-global-styles-screen-revisions__revision-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-global-styles-screen-revisions__revision-button:hover .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.is-selected .edit-site-global-styles-screen-revisions__revision-button{background:rgba(var(--wp-admin-theme-color--rgb),.04);color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));opacity:1}.is-selected .edit-site-global-styles-screen-revisions__meta{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__button{justify-content:center;width:100%}.edit-site-global-styles-screen-revisions__description{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.edit-site-global-styles-screen-revisions__meta{align-items:center;color:#757575;display:flex;justify-content:space-between;text-align:right;width:100%}.edit-site-global-styles-screen-revisions__meta img{border-radius:100%;height:16px;width:16px}.edit-site-global-styles-screen-revisions__loading{margin:24px auto!important}.edit-site-header-edit-mode{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-sizing:border-box;color:#1e1e1e;display:flex;height:60px;justify-content:space-between;padding-right:60px;width:100%}.edit-site-header-edit-mode .edit-site-header-edit-mode__start{border:none;display:flex}.edit-site-header-edit-mode .edit-site-header-edit-mode__end{display:flex;justify-content:flex-end}.edit-site-header-edit-mode .edit-site-header-edit-mode__center{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;margin:0 8px;min-width:0}.edit-site-header-edit-mode__toolbar{align-items:center;display:flex;padding-right:8px}@media (min-width:600px){.edit-site-header-edit-mode__toolbar{padding-right:24px}}@media (min-width:1280px){.edit-site-header-edit-mode__toolbar{padding-left:8px}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle{height:32px;margin-left:8px;min-width:32px;padding:0;width:32px}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.edit-site-header-edit-mode__actions{align-items:center;display:inline-flex;gap:4px;padding-left:4px}@media (min-width:600px){.edit-site-header-edit-mode__actions{gap:8px;padding-left:10px}}.edit-site-header-edit-mode__preview-options{opacity:1;transition:opacity .3s}.edit-site-header-edit-mode__preview-options.is-zoomed-out{opacity:0}.edit-site-header-edit-mode__start{border:none;display:flex}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon{height:36px;min-width:36px;padding:6px}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon.is-pressed,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:focus:not(:disabled),.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:before,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:before{display:none}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-icon{height:32px;margin-left:8px;min-width:32px;padding:0;width:32px}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-text.has-icon{padding:0 8px;width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon svg{display:none}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon:after{content:attr(aria-label)}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-site-header-edit-mode.show-icon-labels .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-site-header-edit-mode.show-icon-labels .edit-site-save-button__button{padding-left:6px;padding-right:6px}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info:after{content:none}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info,.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__inserter-toggle.edit-site-header-edit-mode__inserter-toggle{height:36px;padding:0 8px}.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>*+*{margin-right:8px}.edit-site-document-actions{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;height:36px;justify-content:space-between;min-width:0;width:min(100%,450px)}.has-fixed-toolbar .edit-site-document-actions{width:min(100%,380px)}.edit-site-document-actions:hover{background-color:#e0e0e0}.edit-site-document-actions .components-button{border-radius:4px}.edit-site-document-actions .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}@media (min-width:960px){.edit-site-document-actions{width:min(100%,450px)}}.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title,.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title h1{color:var(--wp-block-synced-color)}.edit-site-document-actions__command{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.edit-site-document-actions__title{flex-grow:1;overflow:hidden}@media (min-width:600px){.edit-site-document-actions__title{padding-right:32px}}.edit-site-document-actions__title:hover{color:var(--wp-block-synced-color)}.edit-site-document-actions__title .block-editor-block-icon{flex-shrink:0;min-width:24px}.edit-site-document-actions__title h1{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-document-actions.is-page .edit-site-document-actions__title,.edit-site-document-actions.is-page .edit-site-document-actions__title h1{color:#2f2f2f}.edit-site-document-actions.is-animated .edit-site-document-actions__title{animation:edit-site-document-actions__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated .edit-site-document-actions__title{animation-delay:0s;animation-duration:1ms}}.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{animation:edit-site-document-actions__slide-in-right .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{animation-delay:0s;animation-duration:1ms}}.edit-site-document-actions__shortcut{color:#2f2f2f;display:none;min-width:32px}@media (min-width:600px){.edit-site-document-actions__shortcut{display:initial}}.edit-site-document-actions__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px;position:absolute;z-index:1}.edit-site-document-actions__back.components-button.has-icon.has-text:hover{background-color:transparent;color:currentColor}.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{animation:edit-site-document-actions__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{animation-delay:0s;animation-duration:1ms}}@keyframes edit-site-document-actions__slide-in-right{0%{opacity:0;transform:translateX(15%)}to{opacity:1;transform:translateX(0)}}@keyframes edit-site-document-actions__slide-in-left{0%{opacity:0;transform:translateX(-15%)}to{opacity:1;transform:translateX(0)}}.edit-site-list-header{align-items:center;box-sizing:border-box;display:flex;height:60px;justify-content:flex-end;padding-left:16px;position:relative;width:100%}body.is-fullscreen-mode .edit-site-list-header{padding-right:60px;transition:padding-right 20ms linear;transition-delay:80ms}@media (prefers-reduced-motion:reduce){body.is-fullscreen-mode .edit-site-list-header{transition-delay:0s;transition-duration:0s}}.edit-site-list-header .edit-site-list-header__title{font-size:20px;margin:0;padding:0;position:absolute;right:0;text-align:center;width:100%}.edit-site-list-header__right{position:relative}.edit-site .edit-site-list{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8);flex-grow:1}.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:100%}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:0}}.edit-site .edit-site-list .interface-interface-skeleton__content{align-items:center;background:#fff;padding:16px}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__content{padding:72px}}.edit-site-list-table{border:1px solid #ddd;border-radius:2px;border-spacing:0;margin:0 auto;max-width:960px;min-width:100%;overflow:hidden}.edit-site-list-table tr{align-items:center;border-top:1px solid #f0f0f0;box-sizing:border-box;display:flex;margin:0;padding:16px}.edit-site-list-table tr:first-child{border-top:0}@media (min-width:782px){.edit-site-list-table tr{padding:24px 32px}}.edit-site-list-table tr .edit-site-list-table-column:first-child{padding-left:24px;width:calc(60% - 18px)}.edit-site-list-table tr .edit-site-list-table-column:first-child a{display:inline-block;font-weight:500;margin-bottom:4px;text-decoration:none}.edit-site-list-table tr .edit-site-list-table-column:nth-child(2){width:calc(40% - 18px);word-break:break-word}.edit-site-list-table tr .edit-site-list-table-column:nth-child(3){flex-shrink:0;min-width:36px}.edit-site-list-table tr.edit-site-list-table-head{border-bottom:1px solid #ddd;border-top:none;color:#1e1e1e;font-size:16px;font-weight:600;text-align:right}.edit-site-list-table tr.edit-site-list-table-head th{font-weight:inherit}@media (min-width:782px){.edit-site-list.is-navigation-open .components-snackbar-list{margin-right:360px}}.edit-site-list__rename-modal{z-index:1000001}@media (min-width:782px){.edit-site-list__rename-modal .components-base-control{width:320px}}.edit-site-template__actions button:not(:last-child){margin-left:8px}.edit-site-list-added-by__icon{align-items:center;background:#2f2f2f;border-radius:100%;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.edit-site-list-added-by__icon svg{fill:#fff}.edit-site-list-added-by__avatar{background:#2f2f2f;border-radius:100%;flex-shrink:0;height:32px;overflow:hidden;width:32px}.edit-site-list-added-by__avatar img{height:32px;object-fit:cover;opacity:0;transition:opacity .1s linear;width:32px}@media (prefers-reduced-motion:reduce){.edit-site-list-added-by__avatar img{transition-delay:0s;transition-duration:0s}}.edit-site-list-added-by__avatar.is-loaded img{opacity:1}.edit-site-list-added-by__customized-info{color:#757575;display:block}.edit-site-page{background:#fff;color:#2f2f2f;flex-grow:1;margin:60px 0 0;overflow:hidden}@media (min-width:782px){.edit-site-page{border-radius:8px;margin:24px 0 24px 24px}}.edit-site-page-header{background:#fff;border-bottom:1px solid #f0f0f0;min-height:60px;padding:0 32px;position:sticky;top:0;z-index:2}.edit-site-page-header .components-text{color:#2f2f2f}.edit-site-page-header .components-heading{color:#1e1e1e}.edit-site-page-header .edit-site-page-header__sub-title{color:#757575;margin-top:8px}.edit-site-page-content{display:flex;flex-flow:column;height:100%;overflow:auto;position:relative;z-index:1}.edit-site-patterns{background:none;border-radius:0;border-right:1px solid #2f2f2f;margin:60px 0 0;overflow-x:auto;padding:0}.edit-site-patterns .components-base-control{width:100%}@media (min-width:782px){.edit-site-patterns .components-base-control{width:auto}}.edit-site-patterns .components-text{color:#949494}.edit-site-patterns .components-heading{color:#e0e0e0}@media (min-width:782px){.edit-site-patterns{margin:0}}.edit-site-patterns .edit-site-patterns__search-block{flex-grow:1;min-width:-moz-fit-content;min-width:fit-content}.edit-site-patterns .edit-site-patterns__search input[type=search]{background:#2f2f2f;color:#e0e0e0;height:40px}.edit-site-patterns .edit-site-patterns__search input[type=search]:focus{background:#2f2f2f}.edit-site-patterns .edit-site-patterns__search svg{fill:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter{background:#2f2f2f;border:none;height:40px;max-width:100%;min-width:max-content;width:100%}@media (min-width:782px){.edit-site-patterns .edit-site-patterns__sync-status-filter{width:300px}}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:not([aria-checked=true]){color:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:active{background:#757575;color:#f0f0f0}.edit-site-patterns .edit-site-patterns__grid-pagination{background:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;padding:24px 32px;position:sticky;z-index:2}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary{background-color:#2f2f2f;color:#f0f0f0;height:32px;justify-content:center;width:32px}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575}.edit-site-patterns__header{background:#1e1e1e;padding:32px 32px 16px;position:sticky;top:0;z-index:2}.edit-site-patterns__section{flex:1;padding:24px 32px}.edit-site-patterns__section-header .screen-reader-shortcut:focus{top:0}.edit-site-patterns__grid{display:grid;gap:32px;grid-template-columns:1fr;margin-bottom:0;margin-top:0}@media (min-width:960px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr}}@media (min-width:1440px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr}}@media (min-width:1920px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr 1fr}}.edit-site-patterns__grid .edit-site-patterns__pattern{break-inside:avoid-column;display:flex;flex-direction:column}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{background-color:unset;border:none;border-radius:4px;box-shadow:none;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:0}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{box-shadow:inset 0 0 0 0 #fff,0 0 0 2px var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{cursor:default}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f;opacity:.8}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{color:#949494}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{flex-shrink:0}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{align-items:center;border:1px dashed #2f2f2f;color:#949494;display:flex;justify-content:center;min-height:64px}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-patterns__grid .edit-site-patterns__preview{flex:0 1 auto;margin-bottom:12px}.edit-site-patterns__load-more{align-self:center}.edit-site-patterns__pattern-title{color:#e0e0e0}.edit-site-patterns__pattern-title .is-link{color:#e0e0e0;text-decoration:none}.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{color:#fff}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{fill:#fff;background:var(--wp-block-synced-color);border-radius:4px}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{fill:currentcolor}.edit-site-patterns__no-results{color:#949494}.edit-site-table-wrapper{padding:32px;width:100%}.edit-site-table{border-collapse:collapse;border-color:inherit;position:relative;text-indent:0;width:100%}.edit-site-table a{text-decoration:none}.edit-site-table th{color:#757575;font-weight:400;padding:0 16px 16px;text-align:right}.edit-site-table td{padding:16px}.edit-site-table td,.edit-site-table th{vertical-align:center}.edit-site-table td:first-child,.edit-site-table th:first-child{padding-right:0}.edit-site-table td:last-child,.edit-site-table th:last-child{padding-left:0;text-align:left}.edit-site-table tr{border-bottom:1px solid #f0f0f0}.edit-site-sidebar-edit-mode{width:280px}.edit-site-sidebar-edit-mode>.components-panel{border-left:0;border-right:0;margin-bottom:-1px;margin-top:-1px}.edit-site-sidebar-edit-mode>.components-panel>.components-panel__header{background:#f0f0f0}.edit-site-sidebar-edit-mode .block-editor-block-inspector__card{margin:0}.edit-site-global-styles-sidebar{display:flex;flex-direction:column;min-height:100%}.edit-site-global-styles-sidebar__navigator-provider,.edit-site-global-styles-sidebar__panel{display:flex;flex:1;flex-direction:column}.edit-site-global-styles-sidebar__navigator-screen{flex:1}.edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon{margin-right:0}.edit-site-global-styles-sidebar__reset-button.components-button{margin-right:auto}.edit-site-global-styles-sidebar .components-navigation__menu-title-heading{font-size:15.6px;font-weight:500}.edit-site-global-styles-sidebar .components-navigation__item>button span{font-weight:500}.edit-site-global-styles-sidebar .block-editor-panel-color-gradient-settings,.edit-site-typography-panel{border:0}.edit-site-global-styles-sidebar .single-column{grid-column:span 1}.edit-site-global-styles-sidebar .components-tools-panel .span-columns{grid-column:1/-1}.edit-site-global-styles-sidebar__blocks-group{border-top:1px solid #e0e0e0;padding-top:24px}.edit-site-global-styles-sidebar__blocks-group-help{padding:0 16px}.edit-site-global-styles-color-palette-panel,.edit-site-global-styles-gradient-palette-panel{padding:16px}.edit-site-global-styles-sidebar hr{margin:0}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon svg{display:none}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.edit-site-sidebar-fixed-bottom-slot{background:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:content-box;display:flex;padding:16px;position:sticky}.edit-site-swap-template-modal{z-index:1000001}.edit-site-page-panels__swap-template__confirm-modal__actions{margin-top:24px}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px;padding-top:2px}@media (min-width:782px){.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-change-status__content .components-popover__content{min-width:320px;padding:16px}.edit-site-change-status__content .edit-site-change-status__options .components-base-control__field>.components-v-stack{gap:8px}.edit-site-change-status__content .edit-site-change-status__options label .components-text{display:block;margin-right:26px}.edit-site-change-status__content .edit-site-change-status__password-legend{margin-bottom:8px;padding:0}.edit-site-summary-field .components-dropdown{width:70%}.edit-site-summary-field .edit-site-summary-field__trigger{display:block;max-width:100%;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.edit-site-summary-field .edit-site-summary-field__label{width:30%}.edit-site-page-panels-edit-template__dropdown .components-popover__content{min-width:240px}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:16px;padding-right:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs ul{display:flex}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs li{margin:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 auto 0 0;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-site-sidebar-edit-mode__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-site-sidebar-edit-mode__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-sidebar-card{align-items:flex-start;display:flex}.edit-site-sidebar-card__content{flex-grow:1;margin-bottom:4px}.edit-site-sidebar-card__title{font-weight:500;line-height:24px}.edit-site-sidebar-card__title.edit-site-sidebar-card__title{margin:0}.edit-site-sidebar-card__description{font-size:13px}.edit-site-sidebar-card__icon{flex:0 0 24px;height:24px;margin-left:12px;width:24px}.edit-site-sidebar-card__header{display:flex;justify-content:space-between;margin:0 0 4px}.edit-site-template-card__template-areas{margin-top:16px}.edit-site-template-card__template-areas-list,.edit-site-template-card__template-areas-list>li{margin:0}.edit-site-template-card__template-areas-item{width:100%}.edit-site-template-card__template-areas-item.components-button.has-icon{padding:0}.edit-site-template-card__actions{line-height:0}.edit-site-template-card__actions>.components-button.is-small.has-icon{min-width:auto;padding:0}.edit-site-template-revisions{margin-right:-4px}h3.edit-site-template-card__template-areas-title{font-weight:500;margin:0 0 8px}.edit-site-template-panel__replace-template-modal{z-index:1000001}.edit-site-template-panel__replace-template-modal__content{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-template-panel__replace-template-modal__content{column-count:3}}@media (min-width:1280px){.edit-site-template-panel__replace-template-modal__content{column-count:4}}.edit-site-editor__interface-skeleton{opacity:1;transition:opacity .1s ease-out}@media (prefers-reduced-motion:reduce){.edit-site-editor__interface-skeleton{transition-delay:0s;transition-duration:0s}}.edit-site-editor__interface-skeleton.is-loading{opacity:0}.edit-site-editor__interface-skeleton .interface-interface-skeleton__header{border:0}.edit-site-editor__toggle-save-panel{background-color:#fff;border:1px dotted #ddd;box-sizing:border-box;display:flex;justify-content:center;padding:24px;width:280px}.edit-site .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:absolute;right:0}@media (min-width:783px){.edit-site .components-editor-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-site .components-editor-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-site .components-editor-notices__snackbar{right:160px}}.folded .edit-site .components-editor-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-site .components-editor-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{right:0!important}.edit-site-create-template-part-modal{z-index:1000001}@media (min-width:600px){.edit-site-create-template-part-modal .components-modal__frame{max-width:500px}}.edit-site-create-template-part-modal__area-radio-group{border:1px solid #757575;border-radius:2px;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio{display:block;height:100%;padding:12px;text-align:right;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover{background-color:inherit;border-bottom:1px solid #757575;border-radius:0;margin:0}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:focus){box-shadow:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:focus{border-bottom:1px solid #fff}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:last-of-type{border-bottom:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true]{color:#1e1e1e;cursor:auto}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover) .edit-site-create-template-part-modal__option-label div,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true] .edit-site-create-template-part-modal__option-label div{color:#949494}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label{padding-top:4px;white-space:normal}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label div{font-size:12px;padding-top:4px}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__checkbox{margin-right:auto;min-width:24px}.edit-site-editor__inserter-panel,.edit-site-editor__list-view-panel{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.edit-site-editor__list-view-panel{width:350px}}.edit-site-editor__inserter-panel-header{display:flex;justify-content:flex-end;padding-left:8px;padding-top:8px}.edit-site-editor__inserter-panel-content,.edit-site-editor__list-view-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-site-editor__inserter-panel-content{height:100%}}.edit-site-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:4px;padding-right:16px}.edit-site-editor__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.edit-site-editor__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.edit-site-editor__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.edit-site-editor__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.edit-site-editor__list-view-panel-content:focus,.edit-site-editor__list-view-panel-content:focus-within,.edit-site-editor__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.edit-site-editor__list-view-panel-content{scrollbar-color:#949494 transparent}}.edit-site-welcome-guide{width:312px}.edit-site-welcome-guide.guide-editor .edit-site-welcome-guide__image .edit-site-welcome-guide.guide-styles .edit-site-welcome-guide__image{background:#00a0d2}.edit-site-welcome-guide.guide-page .edit-site-welcome-guide__video{border-left:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide.guide-template .edit-site-welcome-guide__video{border-right:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide__image{margin:0 0 16px}.edit-site-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-site-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-site-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 16px;padding:0 32px}.edit-site-welcome-guide__text img{vertical-align:bottom}.edit-site-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-site-start-template-options__modal .edit-site-start-template-options__modal__actions{background-color:#fff;border-top:1px solid #ddd;bottom:0;height:92px;margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px;position:absolute;width:100%;z-index:1}.edit-site-start-template-options__modal .block-editor-block-patterns-list{padding-bottom:92px}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-patterns-list__item-title{display:none}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-site-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-site-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-site-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-site-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-site-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-site-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-site-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-site-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.edit-site-layout{background:#1e1e1e;color:#ccc;display:flex;flex-direction:column;height:100%}.edit-site-layout__hub{height:60px;position:fixed;right:0;top:0;width:calc(100vw - 48px);z-index:3}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__hub{padding-left:0;width:60px}@media (min-width:782px){.edit-site-layout__hub{width:336px}}.edit-site-layout.is-full-canvas .edit-site-layout__hub{border-radius:0;box-shadow:none;padding-left:16px;width:100vw}@media (min-width:782px){.edit-site-layout.is-full-canvas .edit-site-layout__hub{padding-left:0;width:auto}}.edit-site-layout__header-container{z-index:4}.edit-site-layout__header{display:flex;height:60px;z-index:2}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__header{position:fixed;width:100vw}.edit-site-layout__content{display:flex;flex-grow:1;height:100%}.edit-site-layout__sidebar-region{flex-shrink:0;width:100vw;z-index:1}@media (min-width:782px){.edit-site-layout__sidebar-region{width:360px}}.edit-site-layout.is-full-canvas .edit-site-layout__sidebar-region{height:100vh;position:fixed!important;right:0;top:0}.edit-site-layout__sidebar-region .edit-site-layout__sidebar{display:flex;flex-direction:column;height:100%}.edit-site-layout__sidebar-region .resizable-editor__drag-handle{left:0}.edit-site-layout__main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.edit-site-layout__canvas-container{flex-grow:1;position:relative;z-index:2}.edit-site-layout__canvas-container.is-resizing:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:100}.edit-site-layout__canvas{align-items:center;bottom:0;display:flex;justify-content:center;position:absolute;right:0;top:0;width:100%}.edit-site-layout__canvas.is-right-aligned{justify-content:flex-end}.edit-site-layout__canvas>div{color:#1e1e1e}@media (min-width:782px){.edit-site-layout__canvas{bottom:24px;top:24px;width:calc(100% - 24px)}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{border-radius:8px}}.edit-site-layout.is-full-canvas .edit-site-layout__canvas{bottom:0;top:0;width:100%}.edit-site-layout.is-full-canvas .edit-site-layout__canvas>div{border-radius:0}.edit-site-layout__canvas .interface-interface-skeleton{min-height:100%!important;position:relative!important}.edit-site-layout__view-mode-toggle.components-button{align-items:center;border-bottom:1px solid transparent;border-radius:0;color:#fff;display:flex;height:60px;justify-content:center;overflow:hidden;padding:0;position:relative;width:60px}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__view-mode-toggle.components-button{border-bottom-color:#e0e0e0;transition:border-bottom-color .15s ease-out .4s}.edit-site-layout__view-mode-toggle.components-button:active,.edit-site-layout__view-mode-toggle.components-button:hover{color:#fff}.edit-site-layout__view-mode-toggle.components-button:focus{box-shadow:none}.edit-site-layout__view-mode-toggle.components-button:before{border-radius:4px;bottom:9px;box-shadow:none;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}@media (prefers-reduced-motion:reduce){.edit-site-layout__view-mode-toggle.components-button:before{transition-delay:0s;transition-duration:0s}}.edit-site-layout__view-mode-toggle.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-layout__view-mode-toggle.components-button .edit-site-layout__view-mode-toggle-icon{align-items:center;border-radius:2px;display:flex;height:64px;justify-content:center;width:64px}.edit-site-layout__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:280px;z-index:100000}.edit-site-layout__actions:focus,.edit-site-layout__actions:focus-within{bottom:0;top:auto}.edit-site-layout__actions.is-entity-save-view-open:focus,.edit-site-layout__actions.is-entity-save-view-open:focus-within{top:0}@media (min-width:782px){.edit-site-layout__actions{border-right:1px solid #ddd}.edit-site-layout.has-fixed-toolbar .edit-site-layout__canvas-container{z-index:5}.edit-site-layout.has-fixed-toolbar .edit-site-site-hub{z-index:4}}@media (min-width:782px){.edit-site-layout.has-fixed-toolbar .edit-site-layout__header:focus-within{z-index:3}}.is-edit-mode.is-distraction-free .edit-site-layout__header-container{height:60px;left:0;position:absolute;right:0;top:0;width:100%;z-index:4}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within{opacity:1!important}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within div{transform:translateX(0) translateY(0) translateZ(0)!important}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{opacity:1!important}.is-edit-mode.is-distraction-free .edit-site-layout__header,.is-edit-mode.is-distraction-free .edit-site-site-hub{position:absolute;top:0;z-index:2}.is-edit-mode.is-distraction-free .edit-site-site-hub{z-index:3}.is-edit-mode.is-distraction-free .edit-site-layout__header{width:100%}.edit-site-save-hub{border-top:1px solid #2f2f2f;color:#949494;flex-shrink:0;margin:0;padding:20px 24px}.edit-site-save-hub__button{color:inherit;justify-content:center;width:100%}.edit-site-save-hub__button[aria-disabled=true]{opacity:1}.edit-site-save-hub__button[aria-disabled=true]:hover{color:inherit}@media (min-width:600px){.edit-site-save-panel__modal{width:600px}}.edit-site-sidebar__content{flex-grow:1;overflow-y:auto}.edit-site-sidebar__content .components-navigator-screen{display:flex;flex-direction:column;height:100%;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:stable;scrollbar-width:thin;will-change:transform}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar{height:12px;width:12px}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-track{background-color:transparent}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-sidebar__content .components-navigator-screen:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:hover::-webkit-scrollbar-thumb{background-color:#757575}.edit-site-sidebar__content .components-navigator-screen:focus,.edit-site-sidebar__content .components-navigator-screen:focus-within,.edit-site-sidebar__content .components-navigator-screen:hover{scrollbar-color:#757575 transparent}@media (hover:none){.edit-site-sidebar__content .components-navigator-screen{scrollbar-color:#757575 transparent}}.edit-site-sidebar__footer{border-top:1px solid #2f2f2f;flex-shrink:0;margin:0 24px;padding:24px 0}.edit-site-sidebar__content>div{padding:0 12px}.edit-site-sidebar-button{color:#e0e0e0;flex-shrink:0}.edit-site-sidebar-button:focus:not(:disabled){box-shadow:none;outline:none}.edit-site-sidebar-button:focus-visible:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));outline:3px solid transparent}.edit-site-sidebar-button:focus,.edit-site-sidebar-button:focus-visible,.edit-site-sidebar-button:hover,.edit-site-sidebar-button:not([aria-disabled=true]):active,.edit-site-sidebar-button[aria-expanded=true]{color:#f0f0f0}.edit-site-sidebar-navigation-item.components-item{border:none;border-radius:2px;color:#949494;min-height:40px;padding:8px 16px 8px 6px}.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-item.components-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-navigation-item.components-item:focus .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item:hover .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item[aria-current] .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#e0e0e0}.edit-site-sidebar-navigation-item.components-item[aria-current]{background:var(--wp-admin-theme-color);color:#fff}.edit-site-sidebar-navigation-item.components-item .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#949494}.edit-site-sidebar-navigation-item.components-item.with-suffix{padding-left:16px}.edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{cursor:grab;padding:8px}.edit-site-sidebar-navigation-screen{display:flex;flex-direction:column;overflow-x:unset!important;position:relative}.edit-site-sidebar-navigation-screen__main{flex-grow:1;margin-bottom:16px}.edit-site-sidebar-navigation-screen__main.has-footer{margin-bottom:0}.edit-site-sidebar-navigation-screen__content{padding:0 16px}.edit-site-sidebar-navigation-screen__content .components-item-group{margin-left:-16px;margin-right:-16px}.edit-site-sidebar-navigation-screen__content .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__content .components-heading{margin-bottom:8px}.edit-site-sidebar-navigation-screen__meta{color:#ccc;margin:0 16px 16px 0}.edit-site-sidebar-navigation-screen__meta .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__page-link{color:#949494;display:inline-block}.edit-site-sidebar-navigation-screen__page-link:focus,.edit-site-sidebar-navigation-screen__page-link:hover{color:#fff}.edit-site-sidebar-navigation-screen__page-link .components-external-link__icon{margin-right:4px}.edit-site-sidebar-navigation-screen__title-icon{background:#1e1e1e;margin-bottom:8px;padding-bottom:8px;padding-top:108px;position:sticky;top:0;z-index:1}.edit-site-sidebar-navigation-screen__title{flex-grow:1;overflow-wrap:break-word;padding:6px 0 0}.edit-site-sidebar-navigation-screen__actions{flex-shrink:0}@media (min-width:782px){.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container{max-width:292px}}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #f0f0f0}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__footer{background-color:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;gap:0;margin:16px 0 0;padding:16px 0;position:sticky}.edit-site-sidebar__notice{background:#2f2f2f;color:#ddd;margin:24px 0}.edit-site-sidebar__notice.is-dismissible{padding-left:8px}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]){color:#ccc}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff}.edit-site-sidebar-navigation-screen__input-control{width:100%}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container{background:#2f2f2f}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container .components-button{color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__input{background:#2f2f2f!important;border-radius:2px;color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__backdrop{border:4px!important}.edit-site-sidebar-navigation-screen__input-control .components-base-control__help{color:#949494}.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item[aria-current]{background:none}.edit-site-sidebar-navigation-screen-details-footer .edit-site-sidebar-navigation-screen-details-footer__icon{fill:#949494;margin-right:auto}.sidebar-navigation__more-menu .components-button{color:#e0e0e0}.sidebar-navigation__more-menu .components-button:focus,.sidebar-navigation__more-menu .components-button:hover,.sidebar-navigation__more-menu .components-button[aria-current]{color:#f0f0f0}.edit-site-sidebar-navigation-screen-page__featured-image-wrapper{background-color:#2f2f2f;border-radius:4px;margin-bottom:16px;min-height:128px}.edit-site-sidebar-navigation-screen-page__featured-image{align-items:center;background-position:50% 50%;background-size:cover;border-radius:2px;color:#949494;display:flex;height:128px;justify-content:center;overflow:hidden;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image img{height:100%;object-fit:cover;object-position:50% 50%;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image-description{font-size:12px}.edit-site-sidebar-navigation-screen-page__excerpt{font-size:12px;margin-bottom:24px}.edit-site-sidebar-navigation-screen-page__modified{color:#949494;margin:0 16px 16px 0}.edit-site-sidebar-navigation-screen-page__modified .components-text{color:#949494}.edit-site-sidebar-navigation-screen-page__status{display:inline-flex}.edit-site-sidebar-navigation-screen-page__status time{display:contents}.edit-site-sidebar-navigation-screen-page__status svg{fill:#f0b849;height:16px;margin-left:8px;width:16px}.edit-site-sidebar-navigation-screen-page__status.has-future-status svg,.edit-site-sidebar-navigation-screen-page__status.has-publish-status svg{fill:#4ab866}.edit-site-sidebar-navigation-details-screen-panel{margin:24px 0}.edit-site-sidebar-navigation-details-screen-panel:last-of-type{margin-bottom:0}.edit-site-sidebar-navigation-details-screen-panel .edit-site-sidebar-navigation-details-screen-panel__heading{color:#ccc;font-size:11px;font-weight:500;margin-bottom:0;padding:0;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel__label.edit-site-sidebar-navigation-details-screen-panel__label{color:#949494;flex-shrink:0;width:100px}.edit-site-sidebar-navigation-details-screen-panel__value.edit-site-sidebar-navigation-details-screen-panel__value{color:#e0e0e0}.edit-site-sidebar-navigation-screen-pattern__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author-icon{height:24px;margin-left:8px;width:24px}.edit-site-sidebar-navigation-screen-patterns__group{margin-bottom:24px}.edit-site-sidebar-navigation-screen-patterns__group:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.edit-site-sidebar-navigation-screen-patterns__group-header{margin-top:16px}.edit-site-sidebar-navigation-screen-patterns__group-header p{color:#949494}.edit-site-sidebar-navigation-screen-patterns__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-navigation-screen-template__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-template__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-template__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-template__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{height:24px;margin-left:8px;width:24px}.edit-site-sidebar-navigation-screen-template__template-area-button{align-items:center;border-radius:4px;color:#fff;display:flex;flex-wrap:nowrap;width:100%}.edit-site-sidebar-navigation-screen-template__template-area-button:focus,.edit-site-sidebar-navigation-screen-template__template-area-button:hover{background:#2f2f2f;color:#fff}.edit-site-sidebar-navigation-screen-template__template-area-label-text{flex-grow:1;margin:0 4px 0 16px}.edit-site-sidebar-navigation-screen-template__template-icon{display:flex}.edit-site-site-hub{align-items:center;display:flex;gap:8px;justify-content:space-between}.edit-site-site-hub .edit-site-site-hub__container{gap:0}.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{transition:opacity .1s ease}.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{opacity:0!important}.edit-site-site-hub .edit-site-site-hub__site-view-link{flex-grow:0;margin-left:var(--wp-admin-border-width-focus)}@media (min-width:480px){.edit-site-site-hub .edit-site-site-hub__site-view-link{opacity:0;transition:opacity .2s ease-in-out}}.edit-site-site-hub .edit-site-site-hub__site-view-link:focus{opacity:1}.edit-site-site-hub .edit-site-site-hub__site-view-link svg{fill:#e0e0e0}.edit-site-site-hub:hover .edit-site-site-hub__site-view-link{opacity:1}.edit-site-site-hub__post-type{opacity:.6}.edit-site-site-hub__view-mode-toggle-container{background:#1e1e1e;flex-shrink:0;height:60px;width:60px}.edit-site-site-hub__view-mode-toggle-container.has-transparent-background{background:transparent}.edit-site-site-hub__text-content{overflow:hidden}.edit-site-site-hub__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-site-hub__site-title{color:#e0e0e0;flex-grow:1;margin-right:4px}.edit-site-site-hub_toggle-command-center{color:#e0e0e0}.edit-site-site-hub_toggle-command-center:hover{color:#f0f0f0}.edit-site-sidebar-navigation-screen__description{margin:0 0 32px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf{border-radius:2px;max-width:calc(100% - 4px)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf[aria-current]{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block__menu{margin-right:-8px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected>td{background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents{color:inherit}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:not(:hover) .block-editor-list-view-block__menu{opacity:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus .block-editor-list-view-block__menu-cell,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover .block-editor-list-view-block__menu-cell{opacity:1}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch):hover{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block__contents-cell{width:100%}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{white-space:normal}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__title{margin-top:3px}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__menu-cell{padding-left:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button{color:#949494}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button[aria-current]{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__loading.components-spinner{display:block;margin-left:auto;margin-right:auto}.edit-site-sidebar-navigation-screen-navigation-menus__helper-block-editor{display:none}.edit-site-site-icon__icon{fill:currentColor}.edit-site-site-icon__image{background:#333;border-radius:4px;height:auto;object-fit:cover;width:100%}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-site-icon__image{border-radius:0}.edit-site-style-book{height:100%}.edit-site-style-book.is-button,.edit-site-style-book__iframe.is-button{border-radius:8px}.edit-site-style-book__iframe.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-style-book__tab-panel .components-tab-panel__tabs{background:#fff;color:#1e1e1e}.edit-site-style-book__tab-panel .components-tab-panel__tab-content{bottom:0;left:0;overflow:auto;padding:0;position:absolute;right:0;top:48px}.edit-site-editor-canvas-container{background:#fff;border-radius:2px;bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;transition:all .3s}.edit-site-editor-canvas-container__close-button{background:#fff;left:8px;position:absolute;top:6px;z-index:1}.edit-site-resizable-frame__inner{position:relative}body:has(.edit-site-resizable-frame__inner.is-resizing){cursor:col-resize;user-select:none;-webkit-user-select:none}.edit-site-resizable-frame__inner.is-resizing:before{content:"";inset:0;position:absolute;z-index:1}.edit-site-resizable-frame__inner-content{inset:0;position:absolute;z-index:0}.edit-site-resizable-frame__handle{align-items:center;background-color:hsla(0,0%,46%,.4);border:0;border-radius:4px;cursor:col-resize;display:flex;height:64px;justify-content:flex-end;padding:0;position:absolute;top:calc(50% - 32px);width:4px;z-index:100}.edit-site-resizable-frame__handle:before{content:"";height:100%;position:absolute;right:100%;width:32px}.edit-site-resizable-frame__handle:after{content:"";height:100%;left:100%;position:absolute;width:32px}.edit-site-resizable-frame__handle:focus-visible{outline:2px solid transparent}.edit-site-resizable-frame__handle.is-resizing,.edit-site-resizable-frame__handle:focus,.edit-site-resizable-frame__handle:hover{background-color:var(--wp-admin-theme-color)}.edit-site-push-changes-to-global-styles-control .components-button{justify-content:center;width:100%}@media (min-width:782px){.font-library-modal.font-library-modal{width:65vw}}.font-library-modal .components-modal__header{border-bottom:none}.font-library-modal .components-modal__content{padding-top:0}.font-library-modal .font-library-modal__subtitle{font-size:11px;font-weight:500;text-transform:uppercase}.font-library-modal__tab-layout main{padding-bottom:4rem}.font-library-modal__tab-layout footer{background-color:#fff;border-top:1px solid #e5e5e5;bottom:32px;margin:0 -32px -32px;padding:16px 32px;position:absolute;width:100%}.font-library-modal__fonts-grid .font-library-modal__fonts-grid__main{display:flex;flex-direction:column}.font-library-modal__font-card{border:1px solid #e5e5e5;height:auto;margin-top:-1px;padding:1rem}.font-library-modal__font-card .font-library-modal__font-card__name{font-weight:700}.font-library-modal__font-card .font-library-modal__font-card__count{color:#6e6e6e}.font-library-modal__library-font-variant{border:1px solid #e5e5e5;margin-top:-1px;padding:1rem}.font-library-modal__font-variant{border-bottom:1px solid #e5e5e5;padding-bottom:1rem}.font-library-modal__tab-panel [role=tablist]{background:#fff;border-bottom:1px solid #e6e6e6;margin:0 -32px;padding:0 16px;position:sticky;top:0;width:calc(100% + 64px);z-index:1}.font-library-modal__upload-area{align-items:center;background-color:#f0f0f0;display:flex;height:250px;justify-content:center;width:100%}.font-library-modal__local-fonts{margin:0 auto;width:80%}.font-library-modal__local-fonts .font-library-modal__upload-area__text{color:#6e6e6e}.font-library-modal__local-fonts .font-library-modal__upload-area__notice{margin:0}.font-library-modal__font-name{font-weight:700}.font-library-modal__font-filename{color:#6e6e6e}.font-library-modal__font-variant_demo-wrapper{overflow:hidden;position:relative;white-space:nowrap;width:100%}.font-library-modal__font-variant_demo-wrapper:after{background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff);bottom:0;content:"";height:100%;left:0;position:absolute;width:30vw}.font-library__google-fonts-confirm{align-items:center;display:flex;justify-content:center}.font-library__google-fonts-confirm h3{font-size:1.4rem}.font-library__google-fonts-confirm .components-card{max-width:350px;min-width:250px;width:50%}.font-library-modal__font-collection__notice{margin:0}body.js #wpadminbar{display:none}body.js #wpbody{padding-top:0}body.js.appearance_page_gutenberg-template-parts,body.js.site-editor-php{background:#fff}body.js.appearance_page_gutenberg-template-parts #wpcontent,body.js.site-editor-php #wpcontent{padding-right:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content,body.js.site-editor-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.appearance_page_gutenberg-template-parts #wpfooter,body.js.site-editor-php #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.site-editor-php #wpfooter{display:none}body.js.appearance_page_gutenberg-template-parts .a11y-speak-region,body.js.site-editor-php .a11y-speak-region{right:-1px;top:-1px}body.js.appearance_page_gutenberg-template-parts ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-template-parts ul#adminmenu>li.current>a.current:after,body.js.site-editor-php ul#adminmenu a.wp-has-current-submenu:after,body.js.site-editor-php ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.appearance_page_gutenberg-template-parts .media-frame select.attachment-filters:last-of-type,body.js.site-editor-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}body.js.site-editor-php{background:#1e1e1e}.components-modal__frame,.edit-site{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.edit-site *,.edit-site :after,.edit-site :before{box-sizing:inherit}.edit-site{height:100vh}@media (min-width:600px){.edit-site{bottom:0;left:0;min-height:100vh;position:fixed;right:0;top:0}}.no-js .edit-site{min-height:0;position:static}.edit-site .interface-interface-skeleton{top:0}.edit-site .interface-complementary-area__pin-unpin-item.components-button{display:none}.edit-site .interface-interface-skeleton__content{background-color:#1e1e1e}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.css index a6e1977f20..0de7160036 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-right:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,421 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } } - -.dataviews-wrapper{ - box-sizing:border-box; - height:100%; - overflow:auto; - scroll-padding-bottom:64px; - width:100%; -} -.dataviews-wrapper>div{ - min-height:100%; -} - -.dataviews-filters__view-actions{ - padding:12px 32px; -} -.dataviews-filters__view-actions .components-search-control{ - flex-grow:1; - max-width:240px; +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } } - -.dataviews-filters__view-actions.components-h-stack{ - align-items:center; +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } } - -.dataviews-filters-button{ - position:relative; +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } } -.dataviews-filters-count{ - align-items:center; - background-color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); - border-radius:8px; - color:var(--wp-components-color-accent-inverted, #fff); - display:flex; - font-size:11px; - font-weight:300; - height:16px; - justify-content:center; - min-width:16px; - padding:0 4px; +.interface-preferences__tabs .components-tab-panel__tabs{ + left:16px; position:absolute; - right:0; - top:0; - transform:translateX(40%) translateY(-40%); -} - -.dataviews-pagination{ - -webkit-backdrop-filter:blur(6px); - backdrop-filter:blur(6px); - background-color:hsla(0,0%,100%,.8); - border-top:1px solid #f0f0f0; - bottom:0; - color:#757575; - margin-top:auto; - padding:12px 32px; - position:sticky; -} - -.dataviews-filters-options{ - margin:32px 0 16px; -} - -.dataviews-view-table-wrapper{ - overflow-x:auto; -} - -.dataviews-view-table{ - border-collapse:collapse; - border-color:inherit; - color:#757575; - position:relative; - text-indent:0; - width:100%; -} -.dataviews-view-table a{ - color:#1e1e1e; - font-weight:500; - text-decoration:none; + top:84px; + width:160px; } -.dataviews-view-table th{ - color:var(--wp-components-color-foreground, #1e1e1e); - font-size:13px; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; font-weight:400; - text-align:left; -} -.dataviews-view-table td,.dataviews-view-table th{ - padding:12px; - white-space:nowrap; -} -@media (min-width:1440px){ - .dataviews-view-table td,.dataviews-view-table th{ - min-width:200px; - } -} -.dataviews-view-table td[data-field-id=actions],.dataviews-view-table th[data-field-id=actions]{ - text-align:right; -} -.dataviews-view-table td.dataviews-view-table__checkbox-column,.dataviews-view-table th.dataviews-view-table__checkbox-column{ - padding-right:0; -} -.dataviews-view-table td .components-checkbox-control__input-container,.dataviews-view-table th .components-checkbox-control__input-container{ - margin:4px; -} -.dataviews-view-table tr{ - border-bottom:1px solid #f0f0f0; -} -.dataviews-view-table tr .dataviews-view-table-header-button{ - gap:4px; -} -.dataviews-view-table tr td:first-child,.dataviews-view-table tr th:first-child{ - padding-left:32px; -} -.dataviews-view-table tr td:first-child .dataviews-view-table-header,.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,.dataviews-view-table tr th:first-child .dataviews-view-table-header,.dataviews-view-table tr th:first-child .dataviews-view-table-header-button{ - margin-left:-8px; -} -.dataviews-view-table tr td:last-child,.dataviews-view-table tr th:last-child{ - padding-right:32px; -} -.dataviews-view-table tr:last-child{ - border-bottom:0; -} -.dataviews-view-table tr:hover{ - background-color:#f8f8f8; -} -.dataviews-view-table tr .components-checkbox-control__input{ - opacity:0; -} -.dataviews-view-table tr .components-checkbox-control__input:checked,.dataviews-view-table tr .components-checkbox-control__input:focus,.dataviews-view-table tr .components-checkbox-control__input:indeterminate{ - opacity:1; -} -.dataviews-view-table tr:focus-within .components-checkbox-control__input,.dataviews-view-table tr:hover .components-checkbox-control__input{ - opacity:1; -} -.dataviews-view-table tr.is-selected{ - background-color:rgba(var(--wp-admin-theme-color--rgb), .04); - color:#757575; -} -.dataviews-view-table tr.is-selected:hover{ - background-color:rgba(var(--wp-admin-theme-color--rgb), .08); -} -.dataviews-view-table thead tr{ - border:0; -} -.dataviews-view-table thead th{ - background-color:#fff; - box-shadow:inset 0 -1px 0 #f0f0f0; - font-size:11px; - font-weight:500; - padding-bottom:8px; - padding-left:4px; - padding-top:8px; - position:sticky; - text-transform:uppercase; - top:-1px; - z-index:1; } -.dataviews-view-table tbody td{ - vertical-align:top; -} -.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper{ - align-items:center; - display:flex; - min-height:32px; -} -.dataviews-view-table .dataviews-view-table-header-button{ - font-size:11px; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; font-weight:500; - padding:4px 8px; - text-transform:uppercase; -} -.dataviews-view-table .dataviews-view-table-header-button:not(:hover){ - color:#1e1e1e; -} -.dataviews-view-table .dataviews-view-table-header-button span{ - speak:none; -} -.dataviews-view-table .dataviews-view-table-header-button span:empty{ - display:none; -} -.dataviews-view-table .dataviews-view-table-header{ - padding-left:4px; -} -.dataviews-view-table .dataviews-view-table__actions-column{ - width:1%; } - -.dataviews-view-grid__primary-field,.dataviews-view-list__primary-field,.dataviews-view-table__primary-field{ - color:#1e1e1e; - display:block; - font-size:13px; - font-weight:500; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; } -.dataviews-view-grid__primary-field a,.dataviews-view-list__primary-field a,.dataviews-view-table__primary-field a{ - color:inherit; - display:block; - overflow:hidden; - text-decoration:none; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; } -.dataviews-view-grid__primary-field a:hover,.dataviews-view-list__primary-field a:hover,.dataviews-view-table__primary-field a:hover{ - color:#1e1e1e; +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; } -.dataviews-view-grid__primary-field button.components-button.is-link,.dataviews-view-list__primary-field button.components-button.is-link,.dataviews-view-table__primary-field button.components-button.is-link{ - color:inherit; - display:block; - font-weight:inherit; - overflow:hidden; - text-decoration:none; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-left:160px; + padding-left:24px; } -.dataviews-view-grid{ - grid-template-columns:repeat(2, minmax(0, 1fr)) !important; - margin-bottom:24px; - padding:0 32px; -} -@media (min-width:1080px){ - .dataviews-view-grid{ - grid-template-columns:repeat(3, minmax(0, 1fr)) !important; - } -} -@media (min-width:1440px){ - .dataviews-view-grid{ - grid-template-columns:repeat(4, minmax(0, 1fr)) !important; +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; } } -.dataviews-view-grid .dataviews-view-grid__card{ - border:1px solid #e0e0e0; - border-radius:4px; - height:100%; - justify-content:flex-start; +.interface-preferences-modal__section{ + margin:0 0 2.5rem; } -.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions{ - padding:0 4px; -} -.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field{ - min-height:40px; -} -.dataviews-view-grid .dataviews-view-grid__media{ - aspect-ratio:1/1; - background-color:#f0f0f0; - border-bottom:1px solid #e0e0e0; - border-radius:3px 3px 0 0; - min-height:200px; - width:100%; -} -.dataviews-view-grid .dataviews-view-grid__media img{ - height:100%; - object-fit:cover; - width:100%; -} -.dataviews-view-grid .dataviews-view-grid__primary-field{ - padding:8px; -} -.dataviews-view-grid .dataviews-view-grid__fields{ - font-size:12px; - line-height:16px; - position:relative; -} -.dataviews-view-grid .dataviews-view-grid__fields:not(:empty){ - padding:0 12px 12px; -} -.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value{ - color:#757575; -} - -.dataviews-view-list{ +.interface-preferences-modal__section:last-child{ margin:0; - padding:8px; -} -.dataviews-view-list li{ - margin:0; -} -.dataviews-view-list li .dataviews-view-list__item-wrapper{ - border-radius:4px; - padding-right:24px; - position:relative; -} -.dataviews-view-list li .dataviews-view-list__item-wrapper:after{ - background:#f0f0f0; - content:""; - height:1px; - left:24px; - position:absolute; - right:24px; - top:100%; -} -.dataviews-view-list li:not(.is-selected):hover,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field{ - color:var(--wp-admin-theme-color); -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper{ - background-color:var(--wp-admin-theme-color); - color:#fff; -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field{ - color:#fff; -} -.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper:after,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper:after{ - background:transparent; -} -.dataviews-view-list .dataviews-view-list__item{ - cursor:pointer; - padding:12px 0 12px 24px; - width:100%; -} -.dataviews-view-list .dataviews-view-list__item:focus:before{ - border-radius:4px; - bottom:-1px; - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - content:""; - left:-1px; - position:absolute; - right:-1px; - top:-1px; - z-index:-1; -} -.dataviews-view-list .dataviews-view-list__item h3{ - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.dataviews-view-list .dataviews-view-list__media-wrapper{ - background-color:#f0f0f0; - border-radius:4px; - flex-shrink:0; - height:32px; - overflow:hidden; - position:relative; - width:32px; -} -.dataviews-view-list .dataviews-view-list__media-wrapper img{ - height:100%; - object-fit:cover; - width:100%; -} -.dataviews-view-list .dataviews-view-list__media-wrapper:after{ - border-radius:4px; - box-shadow:inset 0 0 0 1px rgba(0,0,0,.1); - content:""; - height:100%; - left:0; - position:absolute; - top:0; - width:100%; -} -.dataviews-view-list .dataviews-view-list__media-placeholder{ - background-color:#e0e0e0; - height:32px; - min-width:32px; -} -.dataviews-view-list .dataviews-view-list__fields{ - color:#757575; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field{ - margin-right:12px; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:last-child{ - margin-right:0; -} -.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty{ - display:none; -} -.dataviews-view-list+.dataviews-pagination{ - justify-content:space-between; -} -.dataviews-view-list .dataviews-view-list__details-button{ - align-self:center; - opacity:0; -} -.dataviews-view-list li.is-selected .dataviews-view-list__details-button,.dataviews-view-list li:focus-within .dataviews-view-list__details-button,.dataviews-view-list li:hover .dataviews-view-list__details-button{ - opacity:1; -} -.dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) currentColor; } -.dataviews-action-modal{ - z-index:1000001; +.interface-preferences-modal__section-legend{ + margin-bottom:8px; } -.dataviews-loading,.dataviews-no-results{ - padding:0 32px; +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; } -.dataviews-view-table-selection-checkbox label{ - clip:rect(0, 0, 0, 0); - border:0; - height:1px; - margin:-1px; - overflow:hidden; - padding:0; - position:absolute; - white-space:nowrap; - width:1px; +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; } -.dataviews-filters__custom-menu-radio-item-prefix{ - display:block; - width:24px; +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; } - -.dataviews-bulk-edit-button.components-button{ - flex-shrink:0; +.interface-preferences-modal__option .components-base-control__help{ + margin-left:48px; + margin-top:0; } .edit-site-custom-template-modal__contents-wrapper{ @@ -824,8 +496,7 @@ body.is-fullscreen-mode .interface-interface-skeleton{ } @media (min-width:600px){ .edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{ - max-height:224px; - overflow-y:auto; + overflow:scroll; } } .edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{ @@ -974,7 +645,7 @@ body.is-fullscreen-mode .interface-interface-skeleton{ padding:6px; } -.edit-site-editor-canvas__block-list.is-navigation-block{ +.edit-site-block-editor__block-list.is-navigation-block{ padding:24px; } @@ -992,6 +663,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ height:100%; width:100%; } +.edit-site-visual-editor .edit-site-visual-editor__editor-canvas{ + height:100%; +} .edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{ outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color); outline-offset:calc(var(--wp-admin-border-width-focus)*-2); @@ -1013,6 +687,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .edit-site-visual-editor.is-view-mode{ box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8); } +.edit-site-visual-editor.is-view-mode .block-editor-block-contextual-toolbar.is-fixed{ + display:none; +} .edit-site-visual-editor__back-button{ color:#fff; @@ -1024,10 +701,6 @@ body.is-fullscreen-mode .interface-interface-skeleton{ color:#f0f0f0; } -.is-distraction-free .edit-site-visual-editor__back-button{ - display:none; -} - .resizable-editor__drag-handle{ -webkit-appearance:none; appearance:none; @@ -1089,18 +762,94 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{ opacity:1; } -.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{ - background:#ccc; +.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{ + background:#ccc; +} +.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{ + background:var(--wp-admin-theme-color); +} +.resizable-editor__drag-handle:focus:after{ + box-shadow:0 0 0 1px #2f2f2f, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color); +} +.resizable-editor__drag-handle.is-variation-separator:focus:after{ + border-radius:2px; + box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color); +} + +.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} + +body.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0 !important; } -.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{ - background:var(--wp-admin-theme-color); + +.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; } -.resizable-editor__drag-handle:focus:after{ - box-shadow:0 0 0 1px #2f2f2f, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color); +@media (min-width:782px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + display:flex; + height:60px; + margin-left:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:240px; + top:0; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:144px; + } } -.resizable-editor__drag-handle.is-variation-separator:focus:after{ - border-radius:2px; - box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color); +@media (min-width:960px){ + .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } } .edit-site-canvas-loader{ @@ -1178,6 +927,9 @@ body.is-fullscreen-mode .interface-interface-skeleton{ line-height:36px; margin:0 auto 0 0; } +.edit-site-code-editor__toolbar .components-button svg{ + order:1; +} textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{ border:1px solid #949494; @@ -1266,10 +1018,6 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp width:24px; } -.edit-site-global-styles-screen-typography__font-variants-count{ - color:#757575; -} - .edit-site-global-styles-screen-colors{ margin:16px; } @@ -1394,94 +1142,81 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp fill:currentColor; } +[class][class].edit-site-global-styles-sidebar__revisions-count-badge{ + align-items:center; + background:#2f2f2f; + border-radius:2px; + color:#fff; + display:inline-flex; + justify-content:center; + min-height:24px; + min-width:24px; +} + +.edit-site-global-styles-screen-revisions{ + margin:16px; +} + .edit-site-global-styles-screen-revisions__revisions-list{ - flex-grow:1; list-style:none; - margin:0 16px 16px; + margin:0; } .edit-site-global-styles-screen-revisions__revisions-list li{ + border-left:1px solid #ddd; margin-bottom:0; } .edit-site-global-styles-screen-revisions__revision-item{ - cursor:pointer; - display:flex; - flex-direction:column; + padding:8px 0 8px 12px; position:relative; } -.edit-site-global-styles-screen-revisions__revision-item:hover{ - background:rgba(var(--wp-admin-theme-color--rgb), .04); -} -.edit-site-global-styles-screen-revisions__revision-item:hover .edit-site-global-styles-screen-revisions__date{ - color:var(--wp-admin-theme-color); +.edit-site-global-styles-screen-revisions__revision-item:first-child{ + padding-top:0; } -.edit-site-global-styles-screen-revisions__revision-item:after,.edit-site-global-styles-screen-revisions__revision-item:before{ - content:"\a"; - display:block; - position:absolute; +.edit-site-global-styles-screen-revisions__revision-item:last-child{ + padding-bottom:0; } .edit-site-global-styles-screen-revisions__revision-item:before{ background:#ddd; - border:4px solid transparent; border-radius:50%; + content:"\a"; + display:inline-block; height:8px; - left:17px; - top:18px; + left:0; + position:absolute; + top:50%; transform:translate(-50%, -50%); width:8px; - z-index:1; -} -.edit-site-global-styles-screen-revisions__revision-item.is-selected{ - border-radius:2px; - outline:3px solid transparent; - outline-offset:-2px; } .edit-site-global-styles-screen-revisions__revision-item.is-selected:before{ background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); } -.edit-site-global-styles-screen-revisions__revision-item:after{ - border:.5px solid #ddd; - height:100%; - left:16px; - top:0; - width:0; -} -.edit-site-global-styles-screen-revisions__revision-item:first-child:after{ - top:18px; -} -.edit-site-global-styles-screen-revisions__revision-item:last-child:after{ - height:18px; -} -.edit-site-global-styles-screen-revisions__revision-item .edit-site-global-styles-screen-revisions__revision-button{ + +.edit-site-global-styles-screen-revisions__revision-button{ display:block; height:auto; - outline-offset:-2px; - padding:12px 12px 8px 40px; - position:relative; + padding:8px 12px; width:100%; - z-index:1; } - -.is-selected{ +.edit-site-global-styles-screen-revisions__revision-button:hover{ background:rgba(var(--wp-admin-theme-color--rgb), .04); - color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); } +.edit-site-global-styles-screen-revisions__revision-button:hover .edit-site-global-styles-screen-revisions__date{ + color:var(--wp-admin-theme-color); +} + .is-selected .edit-site-global-styles-screen-revisions__revision-button{ + background:rgba(var(--wp-admin-theme-color--rgb), .04); + color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba)); opacity:1; } -.is-selected .edit-site-global-styles-screen-revisions__date{ +.is-selected .edit-site-global-styles-screen-revisions__meta{ color:var(--wp-admin-theme-color); } -.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{ - align-self:flex-start; - margin:0 12px 12px 40px; -} - -.edit-site-global-styles-screen-revisions__applied-text{ - color:#949494; - font-size:12px; - font-style:italic; +.edit-site-global-styles-screen-revisions__button{ + justify-content:center; + width:100%; } .edit-site-global-styles-screen-revisions__description{ @@ -1490,25 +1225,18 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp flex-direction:column; gap:8px; } -.edit-site-global-styles-screen-revisions__description .edit-site-global-styles-screen-revisions__date{ - font-size:12px; - font-weight:600; - text-transform:uppercase; -} -.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{ - align-items:flex-start; - color:#949494; +.edit-site-global-styles-screen-revisions__meta{ + align-items:center; + color:#757575; display:flex; - font-size:12px; - justify-content:start; + justify-content:space-between; text-align:left; width:100%; } -.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{ +.edit-site-global-styles-screen-revisions__meta img{ border-radius:100%; height:16px; - margin-right:8px; width:16px; } @@ -1516,53 +1244,6 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp margin:24px auto !important; } -.edit-site-global-styles-screen-revisions__changes{ - color:#1e1e1e; - line-height:1.4; - margin-bottom:4px; - text-align:left; -} - -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{ - gap:2px; - justify-content:space-between; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .edit-site-pagination__total{ - height:1px; - left:-1000px; - margin:-1px; - overflow:hidden; - position:absolute; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-text{ - font-size:12px; - will-change:opacity; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary{ - color:#1e1e1e; - font-size:28px; - font-weight:200; - line-height:1.2; - margin-bottom:4px; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:disabled{ - color:#949494; -} -.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:hover{ - background:transparent; -} - -.edit-site-global-styles-screen-revisions__footer{ - background:#fff; - border-top:1px solid #ddd; - bottom:0; - height:56px; - min-width:100%; - padding:12px; - position:sticky; - z-index:1; -} - .edit-site-header-edit-mode{ align-items:center; background-color:#fff; @@ -1576,17 +1257,8 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp width:100%; } .edit-site-header-edit-mode .edit-site-header-edit-mode__start{ - align-items:center; border:none; display:flex; - flex-shrink:2; - height:100%; - overflow:hidden; -} -@media (min-width:782px){ - .edit-site-header-edit-mode .edit-site-header-edit-mode__start{ - padding-right:2px; - } } .edit-site-header-edit-mode .edit-site-header-edit-mode__end{ display:flex; @@ -1598,19 +1270,18 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp flex-grow:1; height:100%; justify-content:center; - margin:0 16px; + margin:0 8px; min-width:0; } .edit-site-header-edit-mode__toolbar{ align-items:center; display:flex; - gap:8px; - padding-left:16px; + padding-left:8px; } -@media (min-width:782px){ +@media (min-width:600px){ .edit-site-header-edit-mode__toolbar{ - padding-left:20px; + padding-left:24px; } } @media (min-width:1280px){ @@ -1618,6 +1289,13 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp padding-right:8px; } } +.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle{ + height:32px; + margin-right:8px; + min-width:32px; + padding:0; + width:32px; +} .edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{ transition:transform .2s cubic-bezier(.165, .84, .44, 1); } @@ -1633,8 +1311,14 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp .edit-site-header-edit-mode__actions{ align-items:center; display:inline-flex; - gap:8px; - padding-right:8px; + gap:4px; + padding-right:4px; +} +@media (min-width:600px){ + .edit-site-header-edit-mode__actions{ + gap:8px; + padding-right:10px; + } } .edit-site-header-edit-mode__preview-options{ @@ -1645,6 +1329,37 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp opacity:0; } +.edit-site-header-edit-mode__start{ + border:none; + display:flex; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon{ + height:36px; + min-width:36px; + padding:6px; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon.is-pressed,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon.is-pressed{ + background:#1e1e1e; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:focus:not(:disabled),.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; + outline:1px solid transparent; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:before,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:before{ + display:none; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-icon{ + height:32px; + margin-right:8px; + min-width:32px; + padding:0; + width:32px; +} +.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-text.has-icon{ + padding:0 8px; + width:auto; +} + .edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{ width:auto; } @@ -1672,48 +1387,145 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp height:36px; padding:0 8px; } -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover{ - border-left:none; -} -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover:before{ - background-color:#ddd; - content:""; - margin-bottom:12px; +.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>*+*{ margin-left:8px; - margin-top:12px; - width:1px; } -.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{ - background:#ddd; - left:calc(50% + 1px); - width:calc(100% - 24px); + +.edit-site-document-actions{ + align-items:center; + background:#f0f0f0; + border-radius:4px; + display:flex; + height:36px; + justify-content:space-between; + min-width:0; + width:min(100%, 450px); +} +.has-fixed-toolbar .edit-site-document-actions{ + width:min(100%, 380px); +} +.edit-site-document-actions:hover{ + background-color:#e0e0e0; +} +.edit-site-document-actions .components-button{ + border-radius:4px; +} +.edit-site-document-actions .components-button:hover{ + background:#e0e0e0; + color:var(--wp-block-synced-color); +} +@media (min-width:960px){ + .edit-site-document-actions{ + width:min(100%, 450px); + } +} +.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title,.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title h1{ + color:var(--wp-block-synced-color); } -.has-fixed-toolbar .selected-block-tools-wrapper{ - overflow-x:scroll; +.edit-site-document-actions__command{ + color:var(--wp-block-synced-color); + flex-grow:1; + overflow:hidden; } -.has-fixed-toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; + +.edit-site-document-actions__title{ + flex-grow:1; + overflow:hidden; } -.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group{ - border-right:none; +@media (min-width:600px){ + .edit-site-document-actions__title{ + padding-left:32px; + } } -.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-left:8px; - margin-top:12px; - width:1px; +.edit-site-document-actions__title:hover{ + color:var(--wp-block-synced-color); +} +.edit-site-document-actions__title .block-editor-block-icon{ + flex-shrink:0; + min-width:24px; +} +.edit-site-document-actions__title h1{ + max-width:50%; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.edit-site-document-actions.is-page .edit-site-document-actions__title,.edit-site-document-actions.is-page .edit-site-document-actions__title h1{ + color:#2f2f2f; +} +.edit-site-document-actions.is-animated .edit-site-document-actions__title{ + animation:edit-site-document-actions__slide-in-left .3s; } -.has-fixed-toolbar .edit-site-header-edit-mode__center.is-collapsed,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper.is-collapsed{ +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated .edit-site-document-actions__title{ + animation-delay:0s; + animation-duration:1ms; + } +} +.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{ + animation:edit-site-document-actions__slide-in-right .3s; +} +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{ + animation-delay:0s; + animation-duration:1ms; + } +} + +.edit-site-document-actions__shortcut{ + color:#2f2f2f; display:none; + min-width:32px; +} +@media (min-width:600px){ + .edit-site-document-actions__shortcut{ + display:initial; + } +} + +.edit-site-document-actions__back.components-button.has-icon.has-text{ + color:#757575; + flex-shrink:0; + gap:0; + min-width:36px; + position:absolute; + z-index:1; +} +.edit-site-document-actions__back.components-button.has-icon.has-text:hover{ + background-color:transparent; + color:currentColor; +} +.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{ + animation:edit-site-document-actions__slide-in-left .3s; +} +@media (prefers-reduced-motion:reduce){ + .edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{ + animation-delay:0s; + animation-duration:1ms; + } } -.edit-site-header-edit-mode__block-tools-toggle{ - margin-left:2px; +@keyframes edit-site-document-actions__slide-in-right{ + 0%{ + opacity:0; + transform:translateX(-15%); + } + to{ + opacity:1; + transform:translateX(0); + } +} +@keyframes edit-site-document-actions__slide-in-left{ + 0%{ + opacity:0; + transform:translateX(15%); + } + to{ + opacity:1; + transform:translateX(0); + } } - .edit-site-list-header{ align-items:center; box-sizing:border-box; @@ -1849,31 +1661,33 @@ body.is-fullscreen-mode .edit-site-list-header{ } .edit-site-list-added-by__icon{ + align-items:center; + background:#2f2f2f; + border-radius:100%; display:flex; flex-shrink:0; - height:24px; - width:24px; + height:32px; + justify-content:center; + width:32px; } .edit-site-list-added-by__icon svg{ - fill:currentColor; + fill:#fff; } .edit-site-list-added-by__avatar{ - align-items:center; - display:flex; + background:#2f2f2f; + border-radius:100%; flex-shrink:0; - height:24px; - justify-content:center; + height:32px; overflow:hidden; - width:24px; + width:32px; } .edit-site-list-added-by__avatar img{ - border-radius:100%; - height:20px; + height:32px; object-fit:cover; opacity:0; transition:opacity .1s linear; - width:20px; + width:32px; } @media (prefers-reduced-motion:reduce){ .edit-site-list-added-by__avatar img{ @@ -1893,14 +1707,22 @@ body.is-fullscreen-mode .edit-site-list-header{ .edit-site-page{ background:#fff; color:#2f2f2f; - height:100%; + flex-grow:1; + margin:60px 0 0; + overflow:hidden; +} +@media (min-width:782px){ + .edit-site-page{ + border-radius:8px; + margin:24px 24px 24px 0; + } } .edit-site-page-header{ background:#fff; border-bottom:1px solid #f0f0f0; - min-height:72px; - padding:16px 32px; + min-height:60px; + padding:0 32px; position:sticky; top:0; z-index:2; @@ -1925,54 +1747,11 @@ body.is-fullscreen-mode .edit-site-list-header{ z-index:1; } -.edit-site-page-pages__media-wrapper{ - background-color:#f0f0f0; - border-radius:4px; - display:block; - height:40px; - overflow:hidden; - position:relative; - width:40px; -} -.edit-site-page-pages__media-wrapper .edit-site-page-pages__featured-image{ - height:100%; - object-fit:cover; - width:100%; -} -.edit-site-page-pages__media-wrapper:after{ - border-radius:4px; - box-shadow:inset 0 0 0 1px rgba(0,0,0,.1); - content:""; - height:100%; - left:0; - position:absolute; - top:0; - width:100%; -} - -.page-pages-preview-field__button{ - background-color:unset; - border:none; - border-radius:3px 3px 0 0; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - height:100%; - overflow:hidden; - padding:0; - width:100%; -} -.page-pages-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - outline:2px solid transparent; -} - .edit-site-patterns{ - background:#1e1e1e; + background:none; border-left:1px solid #2f2f2f; border-radius:0; margin:60px 0 0; - min-height:100%; overflow-x:auto; padding:0; } @@ -2031,6 +1810,28 @@ body.is-fullscreen-mode .edit-site-list-header{ background:#757575; color:#f0f0f0; } +.edit-site-patterns .edit-site-patterns__grid-pagination{ + background:#1e1e1e; + border-top:1px solid #2f2f2f; + bottom:0; + padding:24px 32px; + position:sticky; + z-index:2; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary{ + background-color:#2f2f2f; + color:#f0f0f0; + height:32px; + justify-content:center; + width:32px; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:disabled{ + background:none; + color:#949494; +} +.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){ + background-color:#757575; +} .edit-site-patterns__header{ background:#1e1e1e; @@ -2039,9 +1840,6 @@ body.is-fullscreen-mode .edit-site-list-header{ top:0; z-index:2; } -.edit-site-patterns__header .edit-site-patterns__button{ - color:#949494; -} .edit-site-patterns__section{ flex:1; @@ -2059,229 +1857,94 @@ body.is-fullscreen-mode .edit-site-list-header{ margin-bottom:0; margin-top:0; } -@media (min-width:960px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr; - } -} -@media (min-width:1440px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr 1fr; - } -} -@media (min-width:1920px){ - .edit-site-patterns__grid{ - grid-template-columns:1fr 1fr 1fr 1fr; - } -} -.edit-site-patterns__grid .edit-site-patterns__pattern{ - break-inside:avoid-column; - display:flex; - flex-direction:column; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{ - background-color:unset; - border:none; - border-radius:4px; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - overflow:hidden; - padding:0; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{ - box-shadow:inset 0 0 0 0 #fff, 0 0 0 2px var(--wp-admin-theme-color); - outline:2px solid transparent; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{ - cursor:default; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f; - opacity:.8; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{ - color:#949494; -} -.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{ - flex-shrink:0; -} -.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{ - align-items:center; - border:1px dashed #2f2f2f; - color:#949494; - display:flex; - justify-content:center; - min-height:64px; -} -.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); -} -.edit-site-patterns__grid .edit-site-patterns__preview{ - flex:0 1 auto; - margin-bottom:12px; -} - -.edit-site-patterns__load-more{ - align-self:center; -} - -.edit-site-patterns__pattern-title{ - color:#e0e0e0; -} -.edit-site-patterns__pattern-title .is-link{ - color:#e0e0e0; - text-decoration:none; -} -.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{ - color:#fff; -} -.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{ - fill:#fff; - background:var(--wp-block-synced-color); - border-radius:4px; -} -.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{ - fill:currentcolor; -} - -.edit-site-patterns__no-results{ - color:#949494; -} - -.edit-site-patterns__delete-modal{ - width:384px; -} - -.edit-site-patterns__pagination{ - background:#1e1e1e; - border-top:1px solid #2f2f2f; - bottom:0; - color:#f0f0f0; - padding:24px 32px; - position:sticky; - z-index:2; -} -.edit-site-patterns__pagination .components-button.is-tertiary{ - background-color:#2f2f2f; - color:#f0f0f0; -} -.edit-site-patterns__pagination .components-button.is-tertiary:disabled{ - background:none; - color:#949494; -} -.edit-site-patterns__pagination .components-button.is-tertiary:hover:not(:disabled){ - background-color:#757575; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field{ - border-radius:3px 3px 0 0; - display:flex; - flex-direction:column; - height:100%; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field.is-viewtype-grid .block-editor-block-preview__container{ - border-radius:3px 3px 0 0; - height:100%; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button{ - background-color:unset; - border:none; - border-radius:3px 3px 0 0; - box-shadow:none; - box-sizing:border-box; - cursor:pointer; - height:100%; - overflow:hidden; - padding:0; -} -.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); - outline:2px solid transparent; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-icon{ - fill:var(--wp-block-synced-color); - flex-shrink:0; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-lock-icon{ - min-width:min-content; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__section-header{ - border-bottom:1px solid #f0f0f0; - min-height:72px; - padding:16px 32px; - position:sticky; - top:0; - z-index:2; -} -.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-title{ - color:inherit; - display:block; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - width:100%; -} - -.dataviews-action-modal__duplicate-pattern [role=dialog]>[role=document]{ - width:350px; -} -.dataviews-action-modal__duplicate-pattern .patterns-menu-items__convert-modal-categories{ - position:relative; -} -.dataviews-action-modal__duplicate-pattern .components-form-token-field__suggestions-list:not(:empty){ - background-color:#fff; - border:1px solid var(--wp-admin-theme-color); - border-bottom-left-radius:2px; - border-bottom-right-radius:2px; - box-shadow:0 0 .5px .5px var(--wp-admin-theme-color); - box-sizing:border-box; - left:-1px; - max-height:96px; - min-width:auto; - position:absolute; - width:calc(100% + 2px); - z-index:1; +@media (min-width:960px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr; + } } - -@media (min-width:600px){ - .dataviews-action-modal__duplicate-template-part .components-modal__frame{ - max-width:500px; +@media (min-width:1440px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr 1fr; } } - -.page-templates-preview-field{ - border-radius:3px 3px 0 0; +@media (min-width:1920px){ + .edit-site-patterns__grid{ + grid-template-columns:1fr 1fr 1fr 1fr; + } +} +.edit-site-patterns__grid .edit-site-patterns__pattern{ + break-inside:avoid-column; display:flex; flex-direction:column; - height:100%; } -.page-templates-preview-field .page-templates-preview-field__button{ +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{ background-color:unset; border:none; - border-radius:3px; + border-radius:4px; box-shadow:none; box-sizing:border-box; cursor:pointer; - height:100%; overflow:hidden; padding:0; } -.page-templates-preview-field .page-templates-preview-field__button:focus-visible{ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{ + box-shadow:inset 0 0 0 0 #fff, 0 0 0 2px var(--wp-admin-theme-color); outline:2px solid transparent; } -.page-templates-preview-field.is-viewtype-list .block-editor-block-preview__container{ - height:120px; +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{ + cursor:default; } -.page-templates-preview-field.is-viewtype-grid .block-editor-block-preview__container{ - height:auto; +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f; + opacity:.8; +} +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{ + color:#949494; +} +.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{ + flex-shrink:0; +} +.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{ + align-items:center; + border:1px dashed #2f2f2f; + color:#949494; + display:flex; + justify-content:center; + min-height:64px; +} +.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{ + box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } -.page-templates-preview-field.is-viewtype-grid .page-templates-preview-field__button{ - border-radius:3px 3px 0 0; +.edit-site-patterns__grid .edit-site-patterns__preview{ + flex:0 1 auto; + margin-bottom:12px; } -.page-templates-description{ - white-space:normal; +.edit-site-patterns__load-more{ + align-self:center; +} + +.edit-site-patterns__pattern-title{ + color:#e0e0e0; +} +.edit-site-patterns__pattern-title .is-link{ + color:#e0e0e0; + text-decoration:none; +} +.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{ + color:#fff; +} +.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{ + fill:#fff; + background:var(--wp-block-synced-color); + border-radius:4px; +} +.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{ + fill:currentcolor; +} + +.edit-site-patterns__no-results{ + color:#949494; } .edit-site-table-wrapper{ @@ -2406,10 +2069,46 @@ body.is-fullscreen-mode .edit-site-list-header{ font-size:12px; } +.edit-site-sidebar-fixed-bottom-slot{ + background:#fff; + border-top:1px solid #ddd; + bottom:0; + box-sizing:content-box; + display:flex; + padding:16px; + position:sticky; +} + +.edit-site-swap-template-modal{ + z-index:1000001; +} + .edit-site-page-panels__swap-template__confirm-modal__actions{ margin-top:24px; } +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:2; + column-gap:24px; + padding-top:2px; +} +@media (min-width:782px){ + .edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:3; + } +} +@media (min-width:1280px){ + .edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{ + column-count:4; + } +} +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{ + break-inside:avoid-column; +} +.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{ + box-shadow:0 0 0 1px #ddd; +} + .edit-site-change-status__content .components-popover__content{ min-width:320px; padding:16px; @@ -2426,7 +2125,10 @@ body.is-fullscreen-mode .edit-site-list-header{ padding:0; } -.edit-site-summary-field__trigger{ +.edit-site-summary-field .components-dropdown{ + width:70%; +} +.edit-site-summary-field .edit-site-summary-field__trigger{ display:block; max-width:100%; overflow:hidden; @@ -2434,6 +2136,13 @@ body.is-fullscreen-mode .edit-site-list-header{ text-overflow:ellipsis; white-space:nowrap; } +.edit-site-summary-field .edit-site-summary-field__label{ + width:30%; +} + +.edit-site-page-panels-edit-template__dropdown .components-popover__content{ + min-width:240px; +} .components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{ border-top:0; @@ -2574,6 +2283,10 @@ body.is-fullscreen-mode .edit-site-list-header{ padding:0; } +.edit-site-template-revisions{ + margin-left:-4px; +} + h3.edit-site-template-card__template-areas-title{ font-weight:500; margin:0 0 8px; @@ -2716,6 +2429,79 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ margin-left:auto; min-width:24px; } +.edit-site-editor__inserter-panel,.edit-site-editor__list-view-panel{ + display:flex; + flex-direction:column; + height:100%; +} + +@media (min-width:782px){ + .edit-site-editor__list-view-panel{ + width:350px; + } +} + +.edit-site-editor__inserter-panel-header{ + display:flex; + justify-content:flex-end; + padding-right:8px; + padding-top:8px; +} + +.edit-site-editor__inserter-panel-content,.edit-site-editor__list-view-panel-content{ + height:calc(100% - 44px); +} + +@media (min-width:782px){ + .edit-site-editor__inserter-panel-content{ + height:100%; + } +} + +.edit-site-editor__list-view-panel-header{ + align-items:center; + border-bottom:1px solid #ddd; + display:flex; + height:48px; + justify-content:space-between; + padding-left:16px; + padding-right:4px; +} + +.edit-site-editor__list-view-panel-content{ + height:100%; + overflow:auto; + padding:8px 6px; + scrollbar-color:transparent transparent; + scrollbar-gutter:stable both-edges; + scrollbar-gutter:auto; + scrollbar-width:thin; + will-change:transform; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar{ + height:12px; + width:12px; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar-track{ + background-color:transparent; +} +.edit-site-editor__list-view-panel-content::-webkit-scrollbar-thumb{ + background-clip:padding-box; + background-color:transparent; + border:3px solid transparent; + border-radius:8px; +} +.edit-site-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{ + background-color:#949494; +} +.edit-site-editor__list-view-panel-content:focus,.edit-site-editor__list-view-panel-content:focus-within,.edit-site-editor__list-view-panel-content:hover{ + scrollbar-color:#949494 transparent; +} +@media (hover:none){ + .edit-site-editor__list-view-panel-content{ + scrollbar-color:#949494 transparent; + } +} .edit-site-welcome-guide{ width:312px; @@ -2862,9 +2648,13 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ left:0; position:fixed; top:0; - width:calc(100vw - 32px); + width:calc(100vw - 48px); z-index:3; } +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__hub{ + padding-right:0; + width:60px; +} @media (min-width:782px){ .edit-site-layout__hub{ width:336px; @@ -2879,7 +2669,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ @media (min-width:782px){ .edit-site-layout.is-full-canvas .edit-site-layout__hub{ padding-right:0; - width:60px; + width:auto; } } @@ -2968,9 +2758,9 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } @media (min-width:782px){ .edit-site-layout__canvas{ - bottom:16px; - top:16px; - width:calc(100% - 16px); + bottom:24px; + top:24px; + width:calc(100% - 24px); } .edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{ border-radius:8px; @@ -2985,15 +2775,11 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ border-radius:0; } -.edit-site-layout__canvas .interface-interface-skeleton,.edit-site-template-pages-preview .interface-interface-skeleton{ +.edit-site-layout__canvas .interface-interface-skeleton{ min-height:100% !important; position:relative !important; } -.edit-site-template-pages-preview{ - height:100%; -} - .edit-site-layout__view-mode-toggle.components-button{ align-items:center; border-bottom:1px solid transparent; @@ -3007,7 +2793,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ position:relative; width:60px; } -.edit-site-layout.is-full-canvas .edit-site-layout__view-mode-toggle.components-button{ +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__view-mode-toggle.components-button{ border-bottom-color:#e0e0e0; transition:border-bottom-color .15s ease-out .4s; } @@ -3069,9 +2855,21 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-layout__actions{ border-left:1px solid #ddd; } + .edit-site-layout.has-fixed-toolbar .edit-site-layout__canvas-container{ + z-index:5; + } + .edit-site-layout.has-fixed-toolbar .edit-site-site-hub{ + z-index:4; + } +} + +@media (min-width:782px){ + .edit-site-layout.has-fixed-toolbar .edit-site-layout__header:focus-within{ + z-index:3; + } } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container{ height:60px; left:0; position:absolute; @@ -3080,45 +2878,33 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ width:100%; z-index:4; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within{ opacity:1 !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within div{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within div{ transform:translateX(0) translateY(0) translateZ(0) !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{ +.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{ opacity:1 !important; } -.edit-site-layout.is-distraction-free .edit-site-layout__header,.edit-site-layout.is-distraction-free .edit-site-site-hub{ +.is-edit-mode.is-distraction-free .edit-site-layout__header,.is-edit-mode.is-distraction-free .edit-site-site-hub{ position:absolute; top:0; z-index:2; } -.edit-site-layout.is-distraction-free .edit-site-site-hub{ +.is-edit-mode.is-distraction-free .edit-site-site-hub{ z-index:3; } -.edit-site-layout.is-distraction-free .edit-site-layout__header{ +.is-edit-mode.is-distraction-free .edit-site-layout__header{ width:100%; } -.edit-site-layout__area{ - flex-grow:1; - margin:0; - overflow:hidden; -} -@media (min-width:782px){ - .edit-site-layout__area{ - border-radius:8px; - margin:16px 16px 16px 0; - } -} - .edit-site-save-hub{ border-top:1px solid #2f2f2f; color:#949494; flex-shrink:0; margin:0; - padding:20px 16px; + padding:20px 24px; } .edit-site-save-hub__button{ @@ -3132,9 +2918,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-save-hub__button[aria-disabled=true]:hover{ color:inherit; } -.edit-site-save-hub__button:not(.is-primary).is-busy,.edit-site-save-hub__button:not(.is-primary).is-busy[aria-disabled=true]:hover{ - color:#1e1e1e; -} @media (min-width:600px){ .edit-site-save-panel__modal{ @@ -3146,39 +2929,37 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ flex-grow:1; overflow-y:auto; } - -.edit-site-sidebar__screen-wrapper{ +.edit-site-sidebar__content .components-navigator-screen{ display:flex; flex-direction:column; height:100%; - padding:0 12px; scrollbar-color:transparent transparent; scrollbar-gutter:stable both-edges; scrollbar-gutter:stable; scrollbar-width:thin; will-change:transform; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar{ height:12px; width:12px; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-track{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-track{ background-color:transparent; } -.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-thumb{ +.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-thumb{ background-clip:padding-box; background-color:transparent; border:3px solid transparent; border-radius:8px; } -.edit-site-sidebar__screen-wrapper:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:hover::-webkit-scrollbar-thumb{ +.edit-site-sidebar__content .components-navigator-screen:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:hover::-webkit-scrollbar-thumb{ background-color:#757575; } -.edit-site-sidebar__screen-wrapper:focus,.edit-site-sidebar__screen-wrapper:focus-within,.edit-site-sidebar__screen-wrapper:hover{ +.edit-site-sidebar__content .components-navigator-screen:focus,.edit-site-sidebar__content .components-navigator-screen:focus-within,.edit-site-sidebar__content .components-navigator-screen:hover{ scrollbar-color:#757575 transparent; } @media (hover:none){ - .edit-site-sidebar__screen-wrapper{ + .edit-site-sidebar__content .components-navigator-screen{ scrollbar-color:#757575 transparent; } } @@ -3186,8 +2967,12 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-sidebar__footer{ border-top:1px solid #2f2f2f; flex-shrink:0; - margin:0 16px; - padding:16px 0; + margin:0 24px; + padding:24px 0; +} + +.edit-site-sidebar__content>div{ + padding:0 12px; } .edit-site-sidebar-button{ @@ -3233,7 +3018,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{ cursor:grab; - padding:8px 8px 8px 0; + padding:8px; } .edit-site-sidebar-navigation-screen{ @@ -3301,7 +3086,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } .edit-site-sidebar-navigation-screen__actions{ - display:flex; flex-shrink:0; } @@ -3442,15 +3226,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ fill:#4ab866; } -.edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item{ - border-top:1px solid #2f2f2f; - color:#e0e0e0; - font-size:11px; - font-weight:500; - padding:24px 6px 16px 16px; - text-transform:uppercase; -} - .edit-site-sidebar-navigation-details-screen-panel{ margin:24px 0; } @@ -3534,19 +3309,14 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ } .edit-site-sidebar-navigation-screen-template__added-by-description-author img{ border-radius:12px; - height:20px; - width:20px; } .edit-site-sidebar-navigation-screen-template__added-by-description-author svg{ fill:#949494; } .edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{ - align-items:center; - display:inline-flex; height:24px; - justify-content:center; - margin-right:4px; + margin-right:8px; width:24px; } @@ -3572,31 +3342,6 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ display:flex; } -.edit-site-sidebar-navigation-screen-dataviews__group-header{ - margin-top:32px; -} -.edit-site-sidebar-navigation-screen-dataviews__group-header h2{ - font-size:11px; - font-weight:500; - text-transform:uppercase; -} - -.edit-site-sidebar-dataviews-dataview-item{ - border-radius:2px; - padding-right:8px; -} -.edit-site-sidebar-dataviews-dataview-item .edit-site-sidebar-dataviews-dataview-item__dropdown-menu{ - min-width:auto; -} -.edit-site-sidebar-dataviews-dataview-item:focus,.edit-site-sidebar-dataviews-dataview-item:hover,.edit-site-sidebar-dataviews-dataview-item[aria-current]{ - background:#2f2f2f; - color:#e0e0e0; -} -.edit-site-sidebar-dataviews-dataview-item.is-selected{ - background:var(--wp-admin-theme-color); - color:#fff; -} - .edit-site-site-hub{ align-items:center; display:flex; @@ -3606,19 +3351,31 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-site-hub .edit-site-site-hub__container{ gap:0; } -.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub__site-view-link,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{ +.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{ transition:opacity .1s ease; } -.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub__site-view-link.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{ +.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{ opacity:0 !important; } .edit-site-site-hub .edit-site-site-hub__site-view-link{ flex-grow:0; margin-right:var(--wp-admin-border-width-focus); } +@media (min-width:480px){ + .edit-site-site-hub .edit-site-site-hub__site-view-link{ + opacity:0; + transition:opacity .2s ease-in-out; + } +} +.edit-site-site-hub .edit-site-site-hub__site-view-link:focus{ + opacity:1; +} .edit-site-site-hub .edit-site-site-hub__site-view-link svg{ fill:#e0e0e0; } +.edit-site-site-hub:hover .edit-site-site-hub__site-view-link{ + opacity:1; +} .edit-site-site-hub__post-type{ opacity:.6; @@ -3653,8 +3410,8 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ .edit-site-site-hub_toggle-command-center{ color:#e0e0e0; } -.edit-site-site-hub_toggle-command-center:active svg,.edit-site-site-hub_toggle-command-center:hover svg{ - fill:#f0f0f0; +.edit-site-site-hub_toggle-command-center:hover{ + color:#f0f0f0; } .edit-site-sidebar-navigation-screen__description{ @@ -3735,7 +3492,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ object-fit:cover; width:100%; } -.edit-site-layout.is-full-canvas .edit-site-site-icon__image{ +.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-site-icon__image{ border-radius:0; } @@ -3751,11 +3508,11 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{ outline-offset:calc(var(--wp-admin-border-width-focus)*-2); } -.edit-site-style-book__tabs [role=tablist]{ +.edit-site-style-book__tab-panel .components-tab-panel__tabs{ background:#fff; color:#1e1e1e; } -.edit-site-style-book__tabs [role=tabpanel]{ +.edit-site-style-book__tab-panel .components-tab-panel__tab-content{ bottom:0; left:0; overflow:auto; @@ -3865,12 +3622,12 @@ body:has(.edit-site-resizable-frame__inner.is-resizing){ text-transform:uppercase; } -.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__main{ - padding-bottom:64px; +.font-library-modal__tab-layout main{ + padding-bottom:4rem; } -.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__footer{ +.font-library-modal__tab-layout footer{ background-color:#fff; - border-top:1px solid #ddd; + border-top:1px solid #e5e5e5; bottom:32px; margin:0 -32px -32px; padding:16px 32px; @@ -3884,63 +3641,68 @@ body:has(.edit-site-resizable-frame__inner.is-resizing){ } .font-library-modal__font-card{ - border:1px solid #e0e0e0; + border:1px solid #e5e5e5; height:auto; margin-top:-1px; - padding:16px; - width:100%; + padding:1rem; } .font-library-modal__font-card .font-library-modal__font-card__name{ font-weight:700; } .font-library-modal__font-card .font-library-modal__font-card__count{ - color:#757575; + color:#6e6e6e; } .font-library-modal__library-font-variant{ - border:1px solid #e0e0e0; + border:1px solid #e5e5e5; margin-top:-1px; - padding:16px; + padding:1rem; } .font-library-modal__font-variant{ - border-bottom:1px solid #e0e0e0; - padding-bottom:16px; + border-bottom:1px solid #e5e5e5; + padding-bottom:1rem; } -.font-library-modal__tabs [role=tablist]{ +.font-library-modal__tab-panel [role=tablist]{ background:#fff; - border-bottom:1px solid #ddd; + border-bottom:1px solid #e6e6e6; margin:0 -32px; padding:0 16px; position:sticky; top:0; + width:calc(100% + 64px); z-index:1; } .font-library-modal__upload-area{ align-items:center; + background-color:#f0f0f0; display:flex; - height:256px; + height:250px; justify-content:center; width:100%; } -button.font-library-modal__upload-area{ - background-color:#f0f0f0; -} - .font-library-modal__local-fonts{ margin:0 auto; width:80%; } .font-library-modal__local-fonts .font-library-modal__upload-area__text{ - color:#757575; + color:#6e6e6e; } .font-library-modal__local-fonts .font-library-modal__upload-area__notice{ margin:0; } +.font-library-modal__font-name{ + font-weight:700; +} + +.font-library-modal__font-filename{ + color:#6e6e6e; +} + .font-library-modal__font-variant_demo-wrapper{ overflow:hidden; position:relative; @@ -3971,10 +3733,8 @@ button.font-library-modal__upload-area{ width:50%; } -.edit-site-pagination .components-button.is-tertiary{ - height:32px; - justify-content:center; - width:32px; +.font-library-modal__font-collection__notice{ + margin:0; } body.js #wpadminbar{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.min.css index 80a01661ee..be817cf514 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-site/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.dataviews-wrapper{box-sizing:border-box;height:100%;overflow:auto;scroll-padding-bottom:64px;width:100%}.dataviews-wrapper>div{min-height:100%}.dataviews-filters__view-actions{padding:12px 32px}.dataviews-filters__view-actions .components-search-control{flex-grow:1;max-width:240px}.dataviews-filters__view-actions.components-h-stack{align-items:center}.dataviews-filters-button{position:relative}.dataviews-filters-count{align-items:center;background-color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));border-radius:8px;color:var(--wp-components-color-accent-inverted,#fff);display:flex;font-size:11px;font-weight:300;height:16px;justify-content:center;min-width:16px;padding:0 4px;position:absolute;right:0;top:0;transform:translateX(40%) translateY(-40%)}.dataviews-pagination{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:hsla(0,0%,100%,.8);border-top:1px solid #f0f0f0;bottom:0;color:#757575;margin-top:auto;padding:12px 32px;position:sticky}.dataviews-filters-options{margin:32px 0 16px}.dataviews-view-table-wrapper{overflow-x:auto}.dataviews-view-table{border-collapse:collapse;border-color:inherit;color:#757575;position:relative;text-indent:0;width:100%}.dataviews-view-table a{color:#1e1e1e;font-weight:500;text-decoration:none}.dataviews-view-table th{color:var(--wp-components-color-foreground,#1e1e1e);font-size:13px;font-weight:400;text-align:left}.dataviews-view-table td,.dataviews-view-table th{padding:12px;white-space:nowrap}@media (min-width:1440px){.dataviews-view-table td,.dataviews-view-table th{min-width:200px}}.dataviews-view-table td[data-field-id=actions],.dataviews-view-table th[data-field-id=actions]{text-align:right}.dataviews-view-table td.dataviews-view-table__checkbox-column,.dataviews-view-table th.dataviews-view-table__checkbox-column{padding-right:0}.dataviews-view-table td .components-checkbox-control__input-container,.dataviews-view-table th .components-checkbox-control__input-container{margin:4px}.dataviews-view-table tr{border-bottom:1px solid #f0f0f0}.dataviews-view-table tr .dataviews-view-table-header-button{gap:4px}.dataviews-view-table tr td:first-child,.dataviews-view-table tr th:first-child{padding-left:32px}.dataviews-view-table tr td:first-child .dataviews-view-table-header,.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,.dataviews-view-table tr th:first-child .dataviews-view-table-header,.dataviews-view-table tr th:first-child .dataviews-view-table-header-button{margin-left:-8px}.dataviews-view-table tr td:last-child,.dataviews-view-table tr th:last-child{padding-right:32px}.dataviews-view-table tr:last-child{border-bottom:0}.dataviews-view-table tr:hover{background-color:#f8f8f8}.dataviews-view-table tr .components-checkbox-control__input{opacity:0}.dataviews-view-table tr .components-checkbox-control__input:checked,.dataviews-view-table tr .components-checkbox-control__input:focus,.dataviews-view-table tr .components-checkbox-control__input:indeterminate{opacity:1}.dataviews-view-table tr:focus-within .components-checkbox-control__input,.dataviews-view-table tr:hover .components-checkbox-control__input{opacity:1}.dataviews-view-table tr.is-selected{background-color:rgba(var(--wp-admin-theme-color--rgb),.04);color:#757575}.dataviews-view-table tr.is-selected:hover{background-color:rgba(var(--wp-admin-theme-color--rgb),.08)}.dataviews-view-table thead tr{border:0}.dataviews-view-table thead th{background-color:#fff;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:11px;font-weight:500;padding-bottom:8px;padding-left:4px;padding-top:8px;position:sticky;text-transform:uppercase;top:-1px;z-index:1}.dataviews-view-table tbody td{vertical-align:top}.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper{align-items:center;display:flex;min-height:32px}.dataviews-view-table .dataviews-view-table-header-button{font-size:11px;font-weight:500;padding:4px 8px;text-transform:uppercase}.dataviews-view-table .dataviews-view-table-header-button:not(:hover){color:#1e1e1e}.dataviews-view-table .dataviews-view-table-header-button span{speak:none}.dataviews-view-table .dataviews-view-table-header-button span:empty{display:none}.dataviews-view-table .dataviews-view-table-header{padding-left:4px}.dataviews-view-table .dataviews-view-table__actions-column{width:1%}.dataviews-view-grid__primary-field,.dataviews-view-list__primary-field,.dataviews-view-table__primary-field{color:#1e1e1e;display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid__primary-field a,.dataviews-view-list__primary-field a,.dataviews-view-table__primary-field a{color:inherit;display:block;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid__primary-field a:hover,.dataviews-view-list__primary-field a:hover,.dataviews-view-table__primary-field a:hover{color:#1e1e1e}.dataviews-view-grid__primary-field button.components-button.is-link,.dataviews-view-list__primary-field button.components-button.is-link,.dataviews-view-table__primary-field button.components-button.is-link{color:inherit;display:block;font-weight:inherit;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-bottom:24px;padding:0 32px}@media (min-width:1080px){.dataviews-view-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (min-width:1440px){.dataviews-view-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}.dataviews-view-grid .dataviews-view-grid__card{border:1px solid #e0e0e0;border-radius:4px;height:100%;justify-content:flex-start}.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions{padding:0 4px}.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field{min-height:40px}.dataviews-view-grid .dataviews-view-grid__media{aspect-ratio:1/1;background-color:#f0f0f0;border-bottom:1px solid #e0e0e0;border-radius:3px 3px 0 0;min-height:200px;width:100%}.dataviews-view-grid .dataviews-view-grid__media img{height:100%;object-fit:cover;width:100%}.dataviews-view-grid .dataviews-view-grid__primary-field{padding:8px}.dataviews-view-grid .dataviews-view-grid__fields{font-size:12px;line-height:16px;position:relative}.dataviews-view-grid .dataviews-view-grid__fields:not(:empty){padding:0 12px 12px}.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value{color:#757575}.dataviews-view-list{margin:0;padding:8px}.dataviews-view-list li{margin:0}.dataviews-view-list li .dataviews-view-list__item-wrapper{border-radius:4px;padding-right:24px;position:relative}.dataviews-view-list li .dataviews-view-list__item-wrapper:after{background:#f0f0f0;content:"";height:1px;left:24px;position:absolute;right:24px;top:100%}.dataviews-view-list li:not(.is-selected):hover,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields,.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field{color:var(--wp-admin-theme-color)}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper{background-color:var(--wp-admin-theme-color);color:#fff}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .components-button,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field{color:#fff}.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper:after,.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper:after{background:transparent}.dataviews-view-list .dataviews-view-list__item{cursor:pointer;padding:12px 0 12px 24px;width:100%}.dataviews-view-list .dataviews-view-list__item:focus:before{border-radius:4px;bottom:-1px;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:-1}.dataviews-view-list .dataviews-view-list__item h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataviews-view-list .dataviews-view-list__media-wrapper{background-color:#f0f0f0;border-radius:4px;flex-shrink:0;height:32px;overflow:hidden;position:relative;width:32px}.dataviews-view-list .dataviews-view-list__media-wrapper img{height:100%;object-fit:cover;width:100%}.dataviews-view-list .dataviews-view-list__media-wrapper:after{border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.dataviews-view-list .dataviews-view-list__media-placeholder{background-color:#e0e0e0;height:32px;min-width:32px}.dataviews-view-list .dataviews-view-list__fields{color:#757575;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field{margin-right:12px}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:last-child{margin-right:0}.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty{display:none}.dataviews-view-list+.dataviews-pagination{justify-content:space-between}.dataviews-view-list .dataviews-view-list__details-button{align-self:center;opacity:0}.dataviews-view-list li.is-selected .dataviews-view-list__details-button,.dataviews-view-list li:focus-within .dataviews-view-list__details-button,.dataviews-view-list li:hover .dataviews-view-list__details-button{opacity:1}.dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) currentColor}.dataviews-action-modal{z-index:1000001}.dataviews-loading,.dataviews-no-results{padding:0 32px}.dataviews-view-table-selection-checkbox label{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.dataviews-filters__custom-menu-radio-item-prefix{display:block;width:24px}.dataviews-bulk-edit-button.components-button{flex-shrink:0}.edit-site-custom-template-modal__contents-wrapper{height:100%;justify-content:flex-start!important}.edit-site-custom-template-modal__contents-wrapper>*{width:100%}.edit-site-custom-template-modal__contents-wrapper__suggestions_list{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px)}.edit-site-custom-template-modal__contents>.components-button{height:auto;justify-content:center}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input{background:#fff;border:1px solid #ddd}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 1px var(--wp-admin-theme-color)}@media (min-width:782px){.edit-site-custom-template-modal{width:456px}}@media (min-width:600px){.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{max-height:224px;overflow-y:auto}}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{display:block;height:auto;overflow-wrap:break-word;padding:8px 12px;text-align:left;white-space:pre-wrap;width:100%}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item mark{background:none;font-weight:700}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover *,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover mark{color:var(--wp-admin-theme-color)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus{background-color:#f0f0f0}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color) inset}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__title{display:block;overflow:hidden;text-overflow:ellipsis}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info{color:#757575;word-break:break-all}.edit-site-custom-template-modal__no-results{border:1px solid #ccc;border-radius:2px;padding:16px}.edit-site-custom-generic-template__modal .components-modal__header{border-bottom:none}.edit-site-custom-generic-template__modal .components-modal__content:before{margin-bottom:4px}.edit-site-template-actions-loading-screen-modal{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}.edit-site-template-actions-loading-screen-modal.is-full-screen{background-color:#fff;box-shadow:0 0 0 transparent;min-height:100%;min-width:100%}.edit-site-template-actions-loading-screen-modal__content{align-items:center;display:flex;height:100%;justify-content:center;left:50%;position:absolute;transform:translateX(-50%)}.edit-site-add-new-template__modal{margin-top:64px;max-height:calc(100% - 128px);max-width:832px;width:calc(100% - 64px)}@media (min-width:960px){.edit-site-add-new-template__modal{width:calc(100% - 128px)}}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button svg,.edit-site-add-new-template__modal .edit-site-add-new-template__template-button svg{fill:var(--wp-admin-theme-color)}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button .edit-site-add-new-template__template-name{align-items:flex-start;flex-grow:1}.edit-site-add-new-template__modal .edit-site-add-new-template__template-icon{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:100%;max-height:40px;max-width:40px;padding:8px}.edit-site-add-new-template__template-list__contents>.components-button,.edit-site-custom-template-modal__contents>.components-button{border:1px solid #ddd;border-radius:2px;display:flex;flex-direction:column;justify-content:center;outline:1px solid transparent;padding:32px}.edit-site-add-new-template__template-list__contents>.components-button span:first-child,.edit-site-custom-template-modal__contents>.components-button span:first-child{color:#1e1e1e}.edit-site-add-new-template__template-list__contents>.components-button span,.edit-site-custom-template-modal__contents>.components-button span{color:#757575}.edit-site-add-new-template__template-list__contents>.components-button:hover,.edit-site-custom-template-modal__contents>.components-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-color:transparent;color:var(--wp-admin-theme-color-darker-10)}.edit-site-add-new-template__template-list__contents>.components-button:hover span,.edit-site-custom-template-modal__contents>.components-button:hover span{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents>.components-button:focus,.edit-site-custom-template-modal__contents>.components-button:focus{border-color:transparent;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:3px solid transparent}.edit-site-add-new-template__template-list__contents>.components-button:focus span:first-child,.edit-site-custom-template-modal__contents>.components-button:focus span:first-child{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__custom-template-button,.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__template-list__prompt,.edit-site-custom-template-modal__contents .edit-site-add-new-template__custom-template-button,.edit-site-custom-template-modal__contents .edit-site-add-new-template__template-list__prompt{grid-column-end:4;grid-column-start:1}.edit-site-add-new-template__template-list__contents>.components-button{align-items:flex-start;height:100%;text-align:start}.edit-site-block-editor__editor-styles-wrapper .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-site-block-editor__editor-styles-wrapper .components-button.has-icon,.edit-site-block-editor__editor-styles-wrapper .components-button.is-tertiary{padding:6px}.edit-site-editor-canvas__block-list.is-navigation-block{padding:24px}.edit-site-visual-editor{align-items:center;background-color:#1e1e1e;display:block;height:100%;overflow:hidden;position:relative}.edit-site-visual-editor iframe{background:#fff;display:block;height:100%;width:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-layout.is-full-canvas .edit-site-visual-editor.is-focus-mode{padding:48px}.edit-site-visual-editor.is-focus-mode .edit-site-visual-editor__editor-canvas{border-radius:2px;max-height:100%}.edit-site-visual-editor.is-focus-mode .components-resizable-box__container{overflow:visible}.edit-site-visual-editor .components-resizable-box__container{margin:0 auto;overflow:auto}.edit-site-visual-editor.is-view-mode{box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8)}.edit-site-visual-editor__back-button{color:#fff;left:8px;position:absolute;top:8px}.edit-site-visual-editor__back-button:active:not([aria-disabled=true]),.edit-site-visual-editor__back-button:focus:not([aria-disabled=true]),.edit-site-visual-editor__back-button:hover{color:#f0f0f0}.is-distraction-free .edit-site-visual-editor__back-button{display:none}.resizable-editor__drag-handle{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:2px;bottom:0;cursor:ew-resize;margin:auto 0;outline:none;padding:0;position:absolute;top:0;width:12px}.resizable-editor__drag-handle.is-variation-default{height:100px}.resizable-editor__drag-handle.is-variation-separator{height:100%;right:0;width:24px}.resizable-editor__drag-handle.is-variation-separator:after{background:transparent;border-radius:0;left:50%;right:0;transform:translateX(-1px);transition:all .2s ease;transition-delay:.1s;width:2px}@media (prefers-reduced-motion:reduce){.resizable-editor__drag-handle.is-variation-separator:after{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.resizable-editor__drag-handle:after{background:#949494;border-radius:2px;bottom:24px;content:"";left:4px;position:absolute;right:0;top:24px;width:4px}.resizable-editor__drag-handle.is-left{left:-16px}.resizable-editor__drag-handle.is-right{right:-16px}.resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{opacity:1}.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{background:#ccc}.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{background:var(--wp-admin-theme-color)}.resizable-editor__drag-handle:focus:after{box-shadow:0 0 0 1px #2f2f2f,0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color)}.resizable-editor__drag-handle.is-variation-separator:focus:after{border-radius:2px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.edit-site-canvas-loader{align-items:center;animation:edit-site-canvas-loader__fade-in-animation .5s ease .2s;animation-fill-mode:forwards;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;width:100%}@media (prefers-reduced-motion:reduce){.edit-site-canvas-loader{animation-delay:0s;animation-duration:1ms}}.edit-site-canvas-loader>div{width:160px}@keyframes edit-site-canvas-loader__fade-in-animation{0%{opacity:0}to{opacity:1}}.edit-site-code-editor{background-color:#fff;min-height:100%;position:relative;width:100%}.edit-site-code-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:12px;width:100%}@media (min-width:960px){.edit-site-code-editor__body{padding:24px}}.edit-site-code-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-site-code-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-site-code-editor__toolbar{padding:12px 24px}}.edit-site-code-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 auto 0 0}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{font-size:15px!important;padding:24px}}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-webkit-input-placeholder{color:rgba(30,30,30,.62)}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-site-global-styles-preview{align-items:center;cursor:pointer;display:flex;justify-content:center;line-height:1}.edit-site-global-styles-preview__iframe{display:block;max-width:100%}.edit-site-typography-preview{align-items:center;background:#f0f0f0;border-radius:2px;display:flex;justify-content:center;margin-bottom:16px;min-height:100px;overflow:hidden}.edit-site-typography-panel__full-width-control{grid-column:1/-1;max-width:100%}.edit-site-global-styles-screen-css,.edit-site-global-styles-screen-typography{margin:16px}.edit-site-global-styles-screen-typography__indicator{align-items:center;border-radius:2px;display:flex!important;font-size:14px;height:24px;justify-content:center;width:24px}.edit-site-global-styles-screen-typography__font-variants-count{color:#757575}.edit-site-global-styles-screen-colors{margin:16px}.edit-site-global-styles-screen-colors .color-block-support-panel{border-top:none;padding-left:0;padding-right:0}.edit-site-global-styles-header__description{padding:0 16px}.edit-site-block-types-search{margin-bottom:8px;padding:0 16px}.edit-site-global-styles-header{margin-bottom:0!important}.edit-site-global-styles-subtitle{font-size:11px!important;font-weight:500!important;margin-bottom:0!important;text-transform:uppercase}.edit-site-global-styles-section-title{color:#2f2f2f;font-weight:600;line-height:1.2;margin:0;padding:16px 16px 0}.edit-site-global-styles-variations_item{border-radius:2px;box-sizing:border-box}.edit-site-global-styles-variations_item .edit-site-global-styles-variations_item-preview{border-radius:2px;box-shadow:0 0 0 1px #e0e0e0;outline:1px solid transparent;padding:2px}.edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e;outline-width:3px}.edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus-visible{outline:3px solid transparent;outline-offset:0}.edit-site-global-styles-icon-with-current-color{fill:currentColor}.edit-site-global-styles__color-indicator-wrapper{flex-shrink:0;height:24px}.edit-site-global-styles__block-preview-panel{border:1px solid #e0e0e0;border-radius:2px;overflow:auto;position:relative;width:100%}.edit-site-global-styles-screen-css{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack{flex:1 1 auto}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input,.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field .components-textarea-control__input{direction:ltr;flex:1 1 auto}.edit-site-global-styles-screen-css-help-link{display:block;margin-top:8px}.edit-site-global-styles-screen-variations{border-top:1px solid #ddd;margin-top:16px}.edit-site-global-styles-screen-variations>*{margin:24px 16px}.edit-site-global-styles-sidebar__navigator-screen{display:flex;flex-direction:column}.edit-site-global-styles-screen-root.edit-site-global-styles-screen-root,.edit-site-global-styles-screen-style-variations.edit-site-global-styles-screen-style-variations{background:unset;color:inherit}.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg{fill:currentColor}.edit-site-global-styles-screen-revisions__revisions-list{flex-grow:1;list-style:none;margin:0 16px 16px}.edit-site-global-styles-screen-revisions__revisions-list li{margin-bottom:0}.edit-site-global-styles-screen-revisions__revision-item{cursor:pointer;display:flex;flex-direction:column;position:relative}.edit-site-global-styles-screen-revisions__revision-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-global-styles-screen-revisions__revision-item:hover .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__revision-item:after,.edit-site-global-styles-screen-revisions__revision-item:before{content:"\a";display:block;position:absolute}.edit-site-global-styles-screen-revisions__revision-item:before{background:#ddd;border:4px solid transparent;border-radius:50%;height:8px;left:17px;top:18px;transform:translate(-50%,-50%);width:8px;z-index:1}.edit-site-global-styles-screen-revisions__revision-item.is-selected{border-radius:2px;outline:3px solid transparent;outline-offset:-2px}.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.edit-site-global-styles-screen-revisions__revision-item:after{border:.5px solid #ddd;height:100%;left:16px;top:0;width:0}.edit-site-global-styles-screen-revisions__revision-item:first-child:after{top:18px}.edit-site-global-styles-screen-revisions__revision-item:last-child:after{height:18px}.edit-site-global-styles-screen-revisions__revision-item .edit-site-global-styles-screen-revisions__revision-button{display:block;height:auto;outline-offset:-2px;padding:12px 12px 8px 40px;position:relative;width:100%;z-index:1}.is-selected{background:rgba(var(--wp-admin-theme-color--rgb),.04);color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.is-selected .edit-site-global-styles-screen-revisions__revision-button{opacity:1}.is-selected .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{align-self:flex-start;margin:0 12px 12px 40px}.edit-site-global-styles-screen-revisions__applied-text{color:#949494;font-size:12px;font-style:italic}.edit-site-global-styles-screen-revisions__description{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.edit-site-global-styles-screen-revisions__description .edit-site-global-styles-screen-revisions__date{font-size:12px;font-weight:600;text-transform:uppercase}.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{align-items:flex-start;color:#949494;display:flex;font-size:12px;justify-content:start;text-align:left;width:100%}.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{border-radius:100%;height:16px;margin-right:8px;width:16px}.edit-site-global-styles-screen-revisions__loading{margin:24px auto!important}.edit-site-global-styles-screen-revisions__changes{color:#1e1e1e;line-height:1.4;margin-bottom:4px;text-align:left}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{gap:2px;justify-content:space-between}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .edit-site-pagination__total{height:1px;left:-1000px;margin:-1px;overflow:hidden;position:absolute}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-text{font-size:12px;will-change:opacity}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary{color:#1e1e1e;font-size:28px;font-weight:200;line-height:1.2;margin-bottom:4px}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:disabled{color:#949494}.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination .components-button.is-tertiary:hover{background:transparent}.edit-site-global-styles-screen-revisions__footer{background:#fff;border-top:1px solid #ddd;bottom:0;height:56px;min-width:100%;padding:12px;position:sticky;z-index:1}.edit-site-header-edit-mode{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-sizing:border-box;color:#1e1e1e;display:flex;height:60px;justify-content:space-between;padding-left:60px;width:100%}.edit-site-header-edit-mode .edit-site-header-edit-mode__start{align-items:center;border:none;display:flex;flex-shrink:2;height:100%;overflow:hidden}@media (min-width:782px){.edit-site-header-edit-mode .edit-site-header-edit-mode__start{padding-right:2px}}.edit-site-header-edit-mode .edit-site-header-edit-mode__end{display:flex;justify-content:flex-end}.edit-site-header-edit-mode .edit-site-header-edit-mode__center{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;margin:0 16px;min-width:0}.edit-site-header-edit-mode__toolbar{align-items:center;display:flex;gap:8px;padding-left:16px}@media (min-width:782px){.edit-site-header-edit-mode__toolbar{padding-left:20px}}@media (min-width:1280px){.edit-site-header-edit-mode__toolbar{padding-right:8px}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.edit-site-header-edit-mode__actions{align-items:center;display:inline-flex;gap:8px;padding-right:8px}.edit-site-header-edit-mode__preview-options{opacity:1;transition:opacity .3s}.edit-site-header-edit-mode__preview-options.is-zoomed-out{opacity:0}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon svg{display:none}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon:after{content:attr(aria-label)}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-site-header-edit-mode.show-icon-labels .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-site-header-edit-mode.show-icon-labels .edit-site-save-button__button{padding-left:6px;padding-right:6px}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info:after{content:none}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info,.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__inserter-toggle.edit-site-header-edit-mode__inserter-toggle{height:36px;padding:0 8px}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover{border-left:none}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover:before{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.edit-site-header-edit-mode.show-icon-labels .block-editor-block-mover .block-editor-block-mover__move-button-container:before{background:#ddd;left:calc(50% + 1px);width:calc(100% - 24px)}.has-fixed-toolbar .selected-block-tools-wrapper{overflow-x:scroll}.has-fixed-toolbar .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group{border-right:none}.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.has-fixed-toolbar .edit-site-header-edit-mode__center.is-collapsed,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after,.has-fixed-toolbar .selected-block-tools-wrapper.is-collapsed{display:none}.edit-site-header-edit-mode__block-tools-toggle{margin-left:2px}.edit-site-list-header{align-items:center;box-sizing:border-box;display:flex;height:60px;justify-content:flex-end;padding-right:16px;position:relative;width:100%}body.is-fullscreen-mode .edit-site-list-header{padding-left:60px;transition:padding-left 20ms linear;transition-delay:80ms}@media (prefers-reduced-motion:reduce){body.is-fullscreen-mode .edit-site-list-header{transition-delay:0s;transition-duration:0s}}.edit-site-list-header .edit-site-list-header__title{font-size:20px;left:0;margin:0;padding:0;position:absolute;text-align:center;width:100%}.edit-site-list-header__right{position:relative}.edit-site .edit-site-list{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8);flex-grow:1}.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:100%}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:0}}.edit-site .edit-site-list .interface-interface-skeleton__content{align-items:center;background:#fff;padding:16px}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__content{padding:72px}}.edit-site-list-table{border:1px solid #ddd;border-radius:2px;border-spacing:0;margin:0 auto;max-width:960px;min-width:100%;overflow:hidden}.edit-site-list-table tr{align-items:center;border-top:1px solid #f0f0f0;box-sizing:border-box;display:flex;margin:0;padding:16px}.edit-site-list-table tr:first-child{border-top:0}@media (min-width:782px){.edit-site-list-table tr{padding:24px 32px}}.edit-site-list-table tr .edit-site-list-table-column:first-child{padding-right:24px;width:calc(60% - 18px)}.edit-site-list-table tr .edit-site-list-table-column:first-child a{display:inline-block;font-weight:500;margin-bottom:4px;text-decoration:none}.edit-site-list-table tr .edit-site-list-table-column:nth-child(2){width:calc(40% - 18px);word-break:break-word}.edit-site-list-table tr .edit-site-list-table-column:nth-child(3){flex-shrink:0;min-width:36px}.edit-site-list-table tr.edit-site-list-table-head{border-bottom:1px solid #ddd;border-top:none;color:#1e1e1e;font-size:16px;font-weight:600;text-align:left}.edit-site-list-table tr.edit-site-list-table-head th{font-weight:inherit}@media (min-width:782px){.edit-site-list.is-navigation-open .components-snackbar-list{margin-left:360px}}.edit-site-list__rename-modal{z-index:1000001}@media (min-width:782px){.edit-site-list__rename-modal .components-base-control{width:320px}}.edit-site-template__actions button:not(:last-child){margin-right:8px}.edit-site-list-added-by__icon{display:flex;flex-shrink:0;height:24px;width:24px}.edit-site-list-added-by__icon svg{fill:currentColor}.edit-site-list-added-by__avatar{align-items:center;display:flex;flex-shrink:0;height:24px;justify-content:center;overflow:hidden;width:24px}.edit-site-list-added-by__avatar img{border-radius:100%;height:20px;object-fit:cover;opacity:0;transition:opacity .1s linear;width:20px}@media (prefers-reduced-motion:reduce){.edit-site-list-added-by__avatar img{transition-delay:0s;transition-duration:0s}}.edit-site-list-added-by__avatar.is-loaded img{opacity:1}.edit-site-list-added-by__customized-info{color:#757575;display:block}.edit-site-page{background:#fff;color:#2f2f2f;height:100%}.edit-site-page-header{background:#fff;border-bottom:1px solid #f0f0f0;min-height:72px;padding:16px 32px;position:sticky;top:0;z-index:2}.edit-site-page-header .components-text{color:#2f2f2f}.edit-site-page-header .components-heading{color:#1e1e1e}.edit-site-page-header .edit-site-page-header__sub-title{color:#757575;margin-top:8px}.edit-site-page-content{display:flex;flex-flow:column;height:100%;overflow:auto;position:relative;z-index:1}.edit-site-page-pages__media-wrapper{background-color:#f0f0f0;border-radius:4px;display:block;height:40px;overflow:hidden;position:relative;width:40px}.edit-site-page-pages__media-wrapper .edit-site-page-pages__featured-image{height:100%;object-fit:cover;width:100%}.edit-site-page-pages__media-wrapper:after{border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.page-pages-preview-field__button{background-color:unset;border:none;border-radius:3px 3px 0 0;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0;width:100%}.page-pages-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns{background:#1e1e1e;border-left:1px solid #2f2f2f;border-radius:0;margin:60px 0 0;min-height:100%;overflow-x:auto;padding:0}.edit-site-patterns .components-base-control{width:100%}@media (min-width:782px){.edit-site-patterns .components-base-control{width:auto}}.edit-site-patterns .components-text{color:#949494}.edit-site-patterns .components-heading{color:#e0e0e0}@media (min-width:782px){.edit-site-patterns{margin:0}}.edit-site-patterns .edit-site-patterns__search-block{flex-grow:1;min-width:-moz-fit-content;min-width:fit-content}.edit-site-patterns .edit-site-patterns__search input[type=search]{background:#2f2f2f;color:#e0e0e0;height:40px}.edit-site-patterns .edit-site-patterns__search input[type=search]:focus{background:#2f2f2f}.edit-site-patterns .edit-site-patterns__search svg{fill:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter{background:#2f2f2f;border:none;height:40px;max-width:100%;min-width:max-content;width:100%}@media (min-width:782px){.edit-site-patterns .edit-site-patterns__sync-status-filter{width:300px}}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:not([aria-checked=true]){color:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:active{background:#757575;color:#f0f0f0}.edit-site-patterns__header{background:#1e1e1e;padding:32px 32px 16px;position:sticky;top:0;z-index:2}.edit-site-patterns__header .edit-site-patterns__button{color:#949494}.edit-site-patterns__section{flex:1;padding:24px 32px}.edit-site-patterns__section-header .screen-reader-shortcut:focus{top:0}.edit-site-patterns__grid{display:grid;gap:32px;grid-template-columns:1fr;margin-bottom:0;margin-top:0}@media (min-width:960px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr}}@media (min-width:1440px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr}}@media (min-width:1920px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr 1fr}}.edit-site-patterns__grid .edit-site-patterns__pattern{break-inside:avoid-column;display:flex;flex-direction:column}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{background-color:unset;border:none;border-radius:4px;box-shadow:none;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:0}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{box-shadow:inset 0 0 0 0 #fff,0 0 0 2px var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{cursor:default}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f;opacity:.8}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{color:#949494}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{flex-shrink:0}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{align-items:center;border:1px dashed #2f2f2f;color:#949494;display:flex;justify-content:center;min-height:64px}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-patterns__grid .edit-site-patterns__preview{flex:0 1 auto;margin-bottom:12px}.edit-site-patterns__load-more{align-self:center}.edit-site-patterns__pattern-title{color:#e0e0e0}.edit-site-patterns__pattern-title .is-link{color:#e0e0e0;text-decoration:none}.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{color:#fff}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{fill:#fff;background:var(--wp-block-synced-color);border-radius:4px}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{fill:currentcolor}.edit-site-patterns__no-results{color:#949494}.edit-site-patterns__delete-modal{width:384px}.edit-site-patterns__pagination{background:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;color:#f0f0f0;padding:24px 32px;position:sticky;z-index:2}.edit-site-patterns__pagination .components-button.is-tertiary{background-color:#2f2f2f;color:#f0f0f0}.edit-site-patterns__pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.edit-site-patterns__pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575}.edit-site-page-patterns-dataviews .page-patterns-preview-field{border-radius:3px 3px 0 0;display:flex;flex-direction:column;height:100%}.edit-site-page-patterns-dataviews .page-patterns-preview-field.is-viewtype-grid .block-editor-block-preview__container{border-radius:3px 3px 0 0;height:100%}.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button{background-color:unset;border:none;border-radius:3px 3px 0 0;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0}.edit-site-page-patterns-dataviews .page-patterns-preview-field .page-patterns-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-icon{fill:var(--wp-block-synced-color);flex-shrink:0}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-lock-icon{min-width:min-content}.edit-site-page-patterns-dataviews .edit-site-patterns__section-header{border-bottom:1px solid #f0f0f0;min-height:72px;padding:16px 32px;position:sticky;top:0;z-index:2}.edit-site-page-patterns-dataviews .edit-site-patterns__pattern-title{color:inherit;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.dataviews-action-modal__duplicate-pattern [role=dialog]>[role=document]{width:350px}.dataviews-action-modal__duplicate-pattern .patterns-menu-items__convert-modal-categories{position:relative}.dataviews-action-modal__duplicate-pattern .components-form-token-field__suggestions-list:not(:empty){background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;box-shadow:0 0 .5px .5px var(--wp-admin-theme-color);box-sizing:border-box;left:-1px;max-height:96px;min-width:auto;position:absolute;width:calc(100% + 2px);z-index:1}@media (min-width:600px){.dataviews-action-modal__duplicate-template-part .components-modal__frame{max-width:500px}}.page-templates-preview-field{border-radius:3px 3px 0 0;display:flex;flex-direction:column;height:100%}.page-templates-preview-field .page-templates-preview-field__button{background-color:unset;border:none;border-radius:3px;box-shadow:none;box-sizing:border-box;cursor:pointer;height:100%;overflow:hidden;padding:0}.page-templates-preview-field .page-templates-preview-field__button:focus-visible{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.page-templates-preview-field.is-viewtype-list .block-editor-block-preview__container{height:120px}.page-templates-preview-field.is-viewtype-grid .block-editor-block-preview__container{height:auto}.page-templates-preview-field.is-viewtype-grid .page-templates-preview-field__button{border-radius:3px 3px 0 0}.page-templates-description{white-space:normal}.edit-site-table-wrapper{padding:32px;width:100%}.edit-site-table{border-collapse:collapse;border-color:inherit;position:relative;text-indent:0;width:100%}.edit-site-table a{text-decoration:none}.edit-site-table th{color:#757575;font-weight:400;padding:0 16px 16px;text-align:left}.edit-site-table td{padding:16px}.edit-site-table td,.edit-site-table th{vertical-align:center}.edit-site-table td:first-child,.edit-site-table th:first-child{padding-left:0}.edit-site-table td:last-child,.edit-site-table th:last-child{padding-right:0;text-align:right}.edit-site-table tr{border-bottom:1px solid #f0f0f0}.edit-site-sidebar-edit-mode{width:280px}.edit-site-sidebar-edit-mode>.components-panel{border-left:0;border-right:0;margin-bottom:-1px;margin-top:-1px}.edit-site-sidebar-edit-mode>.components-panel>.components-panel__header{background:#f0f0f0}.edit-site-sidebar-edit-mode .block-editor-block-inspector__card{margin:0}.edit-site-global-styles-sidebar{display:flex;flex-direction:column;min-height:100%}.edit-site-global-styles-sidebar__navigator-provider,.edit-site-global-styles-sidebar__panel{display:flex;flex:1;flex-direction:column}.edit-site-global-styles-sidebar__navigator-screen{flex:1}.edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon{margin-left:0}.edit-site-global-styles-sidebar__reset-button.components-button{margin-left:auto}.edit-site-global-styles-sidebar .components-navigation__menu-title-heading{font-size:15.6px;font-weight:500}.edit-site-global-styles-sidebar .components-navigation__item>button span{font-weight:500}.edit-site-global-styles-sidebar .block-editor-panel-color-gradient-settings,.edit-site-typography-panel{border:0}.edit-site-global-styles-sidebar .single-column{grid-column:span 1}.edit-site-global-styles-sidebar .components-tools-panel .span-columns{grid-column:1/-1}.edit-site-global-styles-sidebar__blocks-group{border-top:1px solid #e0e0e0;padding-top:24px}.edit-site-global-styles-sidebar__blocks-group-help{padding:0 16px}.edit-site-global-styles-color-palette-panel,.edit-site-global-styles-gradient-palette-panel{padding:16px}.edit-site-global-styles-sidebar hr{margin:0}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon svg{display:none}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.edit-site-page-panels__swap-template__confirm-modal__actions{margin-top:24px}.edit-site-change-status__content .components-popover__content{min-width:320px;padding:16px}.edit-site-change-status__content .edit-site-change-status__options .components-base-control__field>.components-v-stack{gap:8px}.edit-site-change-status__content .edit-site-change-status__options label .components-text{display:block;margin-left:26px}.edit-site-change-status__content .edit-site-change-status__password-legend{margin-bottom:8px;padding:0}.edit-site-summary-field__trigger{display:block;max-width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:16px}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs ul{display:flex}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs li{margin:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 0 0 auto;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-site-sidebar-edit-mode__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-site-sidebar-edit-mode__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-sidebar-card{align-items:flex-start;display:flex}.edit-site-sidebar-card__content{flex-grow:1;margin-bottom:4px}.edit-site-sidebar-card__title{font-weight:500;line-height:24px}.edit-site-sidebar-card__title.edit-site-sidebar-card__title{margin:0}.edit-site-sidebar-card__description{font-size:13px}.edit-site-sidebar-card__icon{flex:0 0 24px;height:24px;margin-right:12px;width:24px}.edit-site-sidebar-card__header{display:flex;justify-content:space-between;margin:0 0 4px}.edit-site-template-card__template-areas{margin-top:16px}.edit-site-template-card__template-areas-list,.edit-site-template-card__template-areas-list>li{margin:0}.edit-site-template-card__template-areas-item{width:100%}.edit-site-template-card__template-areas-item.components-button.has-icon{padding:0}.edit-site-template-card__actions{line-height:0}.edit-site-template-card__actions>.components-button.is-small.has-icon{min-width:auto;padding:0}h3.edit-site-template-card__template-areas-title{font-weight:500;margin:0 0 8px}.edit-site-template-panel__replace-template-modal{z-index:1000001}.edit-site-template-panel__replace-template-modal__content{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-template-panel__replace-template-modal__content{column-count:3}}@media (min-width:1280px){.edit-site-template-panel__replace-template-modal__content{column-count:4}}.edit-site-editor__interface-skeleton{opacity:1;transition:opacity .1s ease-out}@media (prefers-reduced-motion:reduce){.edit-site-editor__interface-skeleton{transition-delay:0s;transition-duration:0s}}.edit-site-editor__interface-skeleton.is-loading{opacity:0}.edit-site-editor__interface-skeleton .interface-interface-skeleton__header{border:0}.edit-site-editor__toggle-save-panel{background-color:#fff;border:1px dotted #ddd;box-sizing:border-box;display:flex;justify-content:center;padding:24px;width:280px}.edit-site .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:absolute;right:0}@media (min-width:783px){.edit-site .components-editor-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-site .components-editor-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-site .components-editor-notices__snackbar{left:160px}}.folded .edit-site .components-editor-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-site .components-editor-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{left:0!important}.edit-site-create-template-part-modal{z-index:1000001}@media (min-width:600px){.edit-site-create-template-part-modal .components-modal__frame{max-width:500px}}.edit-site-create-template-part-modal__area-radio-group{border:1px solid #757575;border-radius:2px;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio{display:block;height:100%;padding:12px;text-align:left;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover{background-color:inherit;border-bottom:1px solid #757575;border-radius:0;margin:0}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:focus){box-shadow:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:focus{border-bottom:1px solid #fff}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:last-of-type{border-bottom:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true]{color:#1e1e1e;cursor:auto}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover) .edit-site-create-template-part-modal__option-label div,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true] .edit-site-create-template-part-modal__option-label div{color:#949494}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label{padding-top:4px;white-space:normal}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label div{font-size:12px;padding-top:4px}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__checkbox{margin-left:auto;min-width:24px}.edit-site-welcome-guide{width:312px}.edit-site-welcome-guide.guide-editor .edit-site-welcome-guide__image .edit-site-welcome-guide.guide-styles .edit-site-welcome-guide__image{background:#00a0d2}.edit-site-welcome-guide.guide-page .edit-site-welcome-guide__video{border-right:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide.guide-template .edit-site-welcome-guide__video{border-left:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide__image{margin:0 0 16px}.edit-site-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-site-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-site-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 16px;padding:0 32px}.edit-site-welcome-guide__text img{vertical-align:bottom}.edit-site-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-site-start-template-options__modal .edit-site-start-template-options__modal__actions{background-color:#fff;border-top:1px solid #ddd;bottom:0;height:92px;margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px;position:absolute;width:100%;z-index:1}.edit-site-start-template-options__modal .block-editor-block-patterns-list{padding-bottom:92px}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-patterns-list__item-title{display:none}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-site-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-site-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-site-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-site-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-site-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-site-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-site-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-site-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.edit-site-layout{background:#1e1e1e;color:#ccc;display:flex;flex-direction:column;height:100%}.edit-site-layout__hub{height:60px;left:0;position:fixed;top:0;width:calc(100vw - 32px);z-index:3}@media (min-width:782px){.edit-site-layout__hub{width:336px}}.edit-site-layout.is-full-canvas .edit-site-layout__hub{border-radius:0;box-shadow:none;padding-right:16px;width:100vw}@media (min-width:782px){.edit-site-layout.is-full-canvas .edit-site-layout__hub{padding-right:0;width:60px}}.edit-site-layout__header-container{z-index:4}.edit-site-layout__header{display:flex;height:60px;z-index:2}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__header{position:fixed;width:100vw}.edit-site-layout__content{display:flex;flex-grow:1;height:100%}.edit-site-layout__sidebar-region{flex-shrink:0;width:100vw;z-index:1}@media (min-width:782px){.edit-site-layout__sidebar-region{width:360px}}.edit-site-layout.is-full-canvas .edit-site-layout__sidebar-region{height:100vh;left:0;position:fixed!important;top:0}.edit-site-layout__sidebar-region .edit-site-layout__sidebar{display:flex;flex-direction:column;height:100%}.edit-site-layout__sidebar-region .resizable-editor__drag-handle{right:0}.edit-site-layout__main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.edit-site-layout__canvas-container{flex-grow:1;position:relative;z-index:2}.edit-site-layout__canvas-container.is-resizing:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:100}.edit-site-layout__canvas{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;top:0;width:100%}.edit-site-layout__canvas.is-right-aligned{justify-content:flex-end}.edit-site-layout__canvas>div{color:#1e1e1e}@media (min-width:782px){.edit-site-layout__canvas{bottom:16px;top:16px;width:calc(100% - 16px)}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{border-radius:8px}}.edit-site-layout.is-full-canvas .edit-site-layout__canvas{bottom:0;top:0;width:100%}.edit-site-layout.is-full-canvas .edit-site-layout__canvas>div{border-radius:0}.edit-site-layout__canvas .interface-interface-skeleton,.edit-site-template-pages-preview .interface-interface-skeleton{min-height:100%!important;position:relative!important}.edit-site-template-pages-preview{height:100%}.edit-site-layout__view-mode-toggle.components-button{align-items:center;border-bottom:1px solid transparent;border-radius:0;color:#fff;display:flex;height:60px;justify-content:center;overflow:hidden;padding:0;position:relative;width:60px}.edit-site-layout.is-full-canvas .edit-site-layout__view-mode-toggle.components-button{border-bottom-color:#e0e0e0;transition:border-bottom-color .15s ease-out .4s}.edit-site-layout__view-mode-toggle.components-button:active,.edit-site-layout__view-mode-toggle.components-button:hover{color:#fff}.edit-site-layout__view-mode-toggle.components-button:focus{box-shadow:none}.edit-site-layout__view-mode-toggle.components-button:before{border-radius:4px;bottom:9px;box-shadow:none;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}@media (prefers-reduced-motion:reduce){.edit-site-layout__view-mode-toggle.components-button:before{transition-delay:0s;transition-duration:0s}}.edit-site-layout__view-mode-toggle.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-layout__view-mode-toggle.components-button .edit-site-layout__view-mode-toggle-icon{align-items:center;border-radius:2px;display:flex;height:64px;justify-content:center;width:64px}.edit-site-layout__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:280px;z-index:100000}.edit-site-layout__actions:focus,.edit-site-layout__actions:focus-within{bottom:0;top:auto}.edit-site-layout__actions.is-entity-save-view-open:focus,.edit-site-layout__actions.is-entity-save-view-open:focus-within{top:0}@media (min-width:782px){.edit-site-layout__actions{border-left:1px solid #ddd}}.edit-site-layout.is-distraction-free .edit-site-layout__header-container{height:60px;left:0;position:absolute;right:0;top:0;width:100%;z-index:4}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within{opacity:1!important}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within div{transform:translateX(0) translateY(0) translateZ(0)!important}.edit-site-layout.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{opacity:1!important}.edit-site-layout.is-distraction-free .edit-site-layout__header,.edit-site-layout.is-distraction-free .edit-site-site-hub{position:absolute;top:0;z-index:2}.edit-site-layout.is-distraction-free .edit-site-site-hub{z-index:3}.edit-site-layout.is-distraction-free .edit-site-layout__header{width:100%}.edit-site-layout__area{flex-grow:1;margin:0;overflow:hidden}@media (min-width:782px){.edit-site-layout__area{border-radius:8px;margin:16px 16px 16px 0}}.edit-site-save-hub{border-top:1px solid #2f2f2f;color:#949494;flex-shrink:0;margin:0;padding:20px 16px}.edit-site-save-hub__button{color:inherit;justify-content:center;width:100%}.edit-site-save-hub__button[aria-disabled=true]{opacity:1}.edit-site-save-hub__button[aria-disabled=true]:hover{color:inherit}.edit-site-save-hub__button:not(.is-primary).is-busy,.edit-site-save-hub__button:not(.is-primary).is-busy[aria-disabled=true]:hover{color:#1e1e1e}@media (min-width:600px){.edit-site-save-panel__modal{width:600px}}.edit-site-sidebar__content{flex-grow:1;overflow-y:auto}.edit-site-sidebar__screen-wrapper{display:flex;flex-direction:column;height:100%;padding:0 12px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:stable;scrollbar-width:thin;will-change:transform}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar{height:12px;width:12px}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-track{background-color:transparent}.edit-site-sidebar__screen-wrapper::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-sidebar__screen-wrapper:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__screen-wrapper:hover::-webkit-scrollbar-thumb{background-color:#757575}.edit-site-sidebar__screen-wrapper:focus,.edit-site-sidebar__screen-wrapper:focus-within,.edit-site-sidebar__screen-wrapper:hover{scrollbar-color:#757575 transparent}@media (hover:none){.edit-site-sidebar__screen-wrapper{scrollbar-color:#757575 transparent}}.edit-site-sidebar__footer{border-top:1px solid #2f2f2f;flex-shrink:0;margin:0 16px;padding:16px 0}.edit-site-sidebar-button{color:#e0e0e0;flex-shrink:0}.edit-site-sidebar-button:focus:not(:disabled){box-shadow:none;outline:none}.edit-site-sidebar-button:focus-visible:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));outline:3px solid transparent}.edit-site-sidebar-button:focus,.edit-site-sidebar-button:focus-visible,.edit-site-sidebar-button:hover,.edit-site-sidebar-button:not([aria-disabled=true]):active,.edit-site-sidebar-button[aria-expanded=true]{color:#f0f0f0}.edit-site-sidebar-navigation-item.components-item{border:none;border-radius:2px;color:#949494;min-height:40px;padding:8px 6px 8px 16px}.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-item.components-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-navigation-item.components-item:focus .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item:hover .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item[aria-current] .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#e0e0e0}.edit-site-sidebar-navigation-item.components-item[aria-current]{background:var(--wp-admin-theme-color);color:#fff}.edit-site-sidebar-navigation-item.components-item .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#949494}.edit-site-sidebar-navigation-item.components-item.with-suffix{padding-right:16px}.edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{cursor:grab;padding:8px 8px 8px 0}.edit-site-sidebar-navigation-screen{display:flex;flex-direction:column;overflow-x:unset!important;position:relative}.edit-site-sidebar-navigation-screen__main{flex-grow:1;margin-bottom:16px}.edit-site-sidebar-navigation-screen__main.has-footer{margin-bottom:0}.edit-site-sidebar-navigation-screen__content{padding:0 16px}.edit-site-sidebar-navigation-screen__content .components-item-group{margin-left:-16px;margin-right:-16px}.edit-site-sidebar-navigation-screen__content .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__content .components-heading{margin-bottom:8px}.edit-site-sidebar-navigation-screen__meta{color:#ccc;margin:0 0 16px 16px}.edit-site-sidebar-navigation-screen__meta .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__page-link{color:#949494;display:inline-block}.edit-site-sidebar-navigation-screen__page-link:focus,.edit-site-sidebar-navigation-screen__page-link:hover{color:#fff}.edit-site-sidebar-navigation-screen__page-link .components-external-link__icon{margin-left:4px}.edit-site-sidebar-navigation-screen__title-icon{background:#1e1e1e;margin-bottom:8px;padding-bottom:8px;padding-top:108px;position:sticky;top:0;z-index:1}.edit-site-sidebar-navigation-screen__title{flex-grow:1;overflow-wrap:break-word;padding:6px 0 0}.edit-site-sidebar-navigation-screen__actions{display:flex;flex-shrink:0}@media (min-width:782px){.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container{max-width:292px}}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #f0f0f0}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__footer{background-color:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;gap:0;margin:16px 0 0;padding:16px 0;position:sticky}.edit-site-sidebar__notice{background:#2f2f2f;color:#ddd;margin:24px 0}.edit-site-sidebar__notice.is-dismissible{padding-right:8px}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]){color:#ccc}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff}.edit-site-sidebar-navigation-screen__input-control{width:100%}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container{background:#2f2f2f}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container .components-button{color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__input{background:#2f2f2f!important;border-radius:2px;color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__backdrop{border:4px!important}.edit-site-sidebar-navigation-screen__input-control .components-base-control__help{color:#949494}.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item[aria-current]{background:none}.edit-site-sidebar-navigation-screen-details-footer .edit-site-sidebar-navigation-screen-details-footer__icon{fill:#949494;margin-left:auto}.sidebar-navigation__more-menu .components-button{color:#e0e0e0}.sidebar-navigation__more-menu .components-button:focus,.sidebar-navigation__more-menu .components-button:hover,.sidebar-navigation__more-menu .components-button[aria-current]{color:#f0f0f0}.edit-site-sidebar-navigation-screen-page__featured-image-wrapper{background-color:#2f2f2f;border-radius:4px;margin-bottom:16px;min-height:128px}.edit-site-sidebar-navigation-screen-page__featured-image{align-items:center;background-position:50% 50%;background-size:cover;border-radius:2px;color:#949494;display:flex;height:128px;justify-content:center;overflow:hidden;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image img{height:100%;object-fit:cover;object-position:50% 50%;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image-description{font-size:12px}.edit-site-sidebar-navigation-screen-page__excerpt{font-size:12px;margin-bottom:24px}.edit-site-sidebar-navigation-screen-page__modified{color:#949494;margin:0 0 16px 16px}.edit-site-sidebar-navigation-screen-page__modified .components-text{color:#949494}.edit-site-sidebar-navigation-screen-page__status{display:inline-flex}.edit-site-sidebar-navigation-screen-page__status time{display:contents}.edit-site-sidebar-navigation-screen-page__status svg{fill:#f0b849;height:16px;margin-right:8px;width:16px}.edit-site-sidebar-navigation-screen-page__status.has-future-status svg,.edit-site-sidebar-navigation-screen-page__status.has-publish-status svg{fill:#4ab866}.edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item{border-top:1px solid #2f2f2f;color:#e0e0e0;font-size:11px;font-weight:500;padding:24px 6px 16px 16px;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel{margin:24px 0}.edit-site-sidebar-navigation-details-screen-panel:last-of-type{margin-bottom:0}.edit-site-sidebar-navigation-details-screen-panel .edit-site-sidebar-navigation-details-screen-panel__heading{color:#ccc;font-size:11px;font-weight:500;margin-bottom:0;padding:0;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel__label.edit-site-sidebar-navigation-details-screen-panel__label{color:#949494;flex-shrink:0;width:100px}.edit-site-sidebar-navigation-details-screen-panel__value.edit-site-sidebar-navigation-details-screen-panel__value{color:#e0e0e0}.edit-site-sidebar-navigation-screen-pattern__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author-icon{height:24px;margin-right:8px;width:24px}.edit-site-sidebar-navigation-screen-patterns__group{margin-bottom:24px}.edit-site-sidebar-navigation-screen-patterns__group:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.edit-site-sidebar-navigation-screen-patterns__group-header{margin-top:16px}.edit-site-sidebar-navigation-screen-patterns__group-header p{color:#949494}.edit-site-sidebar-navigation-screen-patterns__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-navigation-screen-template__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-template__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-template__added-by-description-author img{border-radius:12px;height:20px;width:20px}.edit-site-sidebar-navigation-screen-template__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{align-items:center;display:inline-flex;height:24px;justify-content:center;margin-right:4px;width:24px}.edit-site-sidebar-navigation-screen-template__template-area-button{align-items:center;border-radius:4px;color:#fff;display:flex;flex-wrap:nowrap;width:100%}.edit-site-sidebar-navigation-screen-template__template-area-button:focus,.edit-site-sidebar-navigation-screen-template__template-area-button:hover{background:#2f2f2f;color:#fff}.edit-site-sidebar-navigation-screen-template__template-area-label-text{flex-grow:1;margin:0 16px 0 4px}.edit-site-sidebar-navigation-screen-template__template-icon{display:flex}.edit-site-sidebar-navigation-screen-dataviews__group-header{margin-top:32px}.edit-site-sidebar-navigation-screen-dataviews__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-dataviews-dataview-item{border-radius:2px;padding-right:8px}.edit-site-sidebar-dataviews-dataview-item .edit-site-sidebar-dataviews-dataview-item__dropdown-menu{min-width:auto}.edit-site-sidebar-dataviews-dataview-item:focus,.edit-site-sidebar-dataviews-dataview-item:hover,.edit-site-sidebar-dataviews-dataview-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-dataviews-dataview-item.is-selected{background:var(--wp-admin-theme-color);color:#fff}.edit-site-site-hub{align-items:center;display:flex;gap:8px;justify-content:space-between}.edit-site-site-hub .edit-site-site-hub__container{gap:0}.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub__site-view-link,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{transition:opacity .1s ease}.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub__site-view-link.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{opacity:0!important}.edit-site-site-hub .edit-site-site-hub__site-view-link{flex-grow:0;margin-right:var(--wp-admin-border-width-focus)}.edit-site-site-hub .edit-site-site-hub__site-view-link svg{fill:#e0e0e0}.edit-site-site-hub__post-type{opacity:.6}.edit-site-site-hub__view-mode-toggle-container{background:#1e1e1e;flex-shrink:0;height:60px;width:60px}.edit-site-site-hub__view-mode-toggle-container.has-transparent-background{background:transparent}.edit-site-site-hub__text-content{overflow:hidden}.edit-site-site-hub__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-site-hub__site-title{color:#e0e0e0;flex-grow:1;margin-left:4px}.edit-site-site-hub_toggle-command-center{color:#e0e0e0}.edit-site-site-hub_toggle-command-center:active svg,.edit-site-site-hub_toggle-command-center:hover svg{fill:#f0f0f0}.edit-site-sidebar-navigation-screen__description{margin:0 0 32px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf{border-radius:2px;max-width:calc(100% - 4px)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf[aria-current]{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block__menu{margin-left:-8px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected>td{background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents{color:inherit}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:not(:hover) .block-editor-list-view-block__menu{opacity:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus .block-editor-list-view-block__menu-cell,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover .block-editor-list-view-block__menu-cell{opacity:1}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch):hover{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block__contents-cell{width:100%}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{white-space:normal}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__title{margin-top:3px}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__menu-cell{padding-right:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button{color:#949494}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button[aria-current]{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__loading.components-spinner{display:block;margin-left:auto;margin-right:auto}.edit-site-sidebar-navigation-screen-navigation-menus__helper-block-editor{display:none}.edit-site-site-icon__icon{fill:currentColor}.edit-site-site-icon__image{background:#333;border-radius:4px;height:auto;object-fit:cover;width:100%}.edit-site-layout.is-full-canvas .edit-site-site-icon__image{border-radius:0}.edit-site-style-book{height:100%}.edit-site-style-book.is-button,.edit-site-style-book__iframe.is-button{border-radius:8px}.edit-site-style-book__iframe.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-style-book__tabs [role=tablist]{background:#fff;color:#1e1e1e}.edit-site-style-book__tabs [role=tabpanel]{bottom:0;left:0;overflow:auto;padding:0;position:absolute;right:0;top:48px}.edit-site-editor-canvas-container{background:#fff;border-radius:2px;bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;transition:all .3s}.edit-site-editor-canvas-container__close-button{background:#fff;position:absolute;right:8px;top:6px;z-index:1}.edit-site-resizable-frame__inner{position:relative}body:has(.edit-site-resizable-frame__inner.is-resizing){cursor:col-resize;user-select:none;-webkit-user-select:none}.edit-site-resizable-frame__inner.is-resizing:before{content:"";inset:0;position:absolute;z-index:1}.edit-site-resizable-frame__inner-content{inset:0;position:absolute;z-index:0}.edit-site-resizable-frame__handle{align-items:center;background-color:hsla(0,0%,46%,.4);border:0;border-radius:4px;cursor:col-resize;display:flex;height:64px;justify-content:flex-end;padding:0;position:absolute;top:calc(50% - 32px);width:4px;z-index:100}.edit-site-resizable-frame__handle:before{content:"";height:100%;left:100%;position:absolute;width:32px}.edit-site-resizable-frame__handle:after{content:"";height:100%;position:absolute;right:100%;width:32px}.edit-site-resizable-frame__handle:focus-visible{outline:2px solid transparent}.edit-site-resizable-frame__handle.is-resizing,.edit-site-resizable-frame__handle:focus,.edit-site-resizable-frame__handle:hover{background-color:var(--wp-admin-theme-color)}.edit-site-push-changes-to-global-styles-control .components-button{justify-content:center;width:100%}@media (min-width:782px){.font-library-modal.font-library-modal{width:65vw}}.font-library-modal .components-modal__header{border-bottom:none}.font-library-modal .components-modal__content{padding-top:0}.font-library-modal .font-library-modal__subtitle{font-size:11px;font-weight:500;text-transform:uppercase}.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__main{padding-bottom:64px}.font-library-modal__tabpanel-layout .font-library-modal__tabpanel-layout__footer{background-color:#fff;border-top:1px solid #ddd;bottom:32px;margin:0 -32px -32px;padding:16px 32px;position:absolute;width:100%}.font-library-modal__fonts-grid .font-library-modal__fonts-grid__main{display:flex;flex-direction:column}.font-library-modal__font-card{border:1px solid #e0e0e0;height:auto;margin-top:-1px;padding:16px;width:100%}.font-library-modal__font-card .font-library-modal__font-card__name{font-weight:700}.font-library-modal__font-card .font-library-modal__font-card__count{color:#757575}.font-library-modal__library-font-variant{border:1px solid #e0e0e0;margin-top:-1px;padding:16px}.font-library-modal__font-variant{border-bottom:1px solid #e0e0e0;padding-bottom:16px}.font-library-modal__tabs [role=tablist]{background:#fff;border-bottom:1px solid #ddd;margin:0 -32px;padding:0 16px;position:sticky;top:0;z-index:1}.font-library-modal__upload-area{align-items:center;display:flex;height:256px;justify-content:center;width:100%}button.font-library-modal__upload-area{background-color:#f0f0f0}.font-library-modal__local-fonts{margin:0 auto;width:80%}.font-library-modal__local-fonts .font-library-modal__upload-area__text{color:#757575}.font-library-modal__local-fonts .font-library-modal__upload-area__notice{margin:0}.font-library-modal__font-variant_demo-wrapper{overflow:hidden;position:relative;white-space:nowrap;width:100%}.font-library-modal__font-variant_demo-wrapper:after{background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff);bottom:0;content:"";height:100%;position:absolute;right:0;width:30vw}.font-library__google-fonts-confirm{align-items:center;display:flex;justify-content:center}.font-library__google-fonts-confirm h3{font-size:1.4rem}.font-library__google-fonts-confirm .components-card{max-width:350px;min-width:250px;width:50%}.edit-site-pagination .components-button.is-tertiary{height:32px;justify-content:center;width:32px}body.js #wpadminbar{display:none}body.js #wpbody{padding-top:0}body.js.appearance_page_gutenberg-template-parts,body.js.site-editor-php{background:#fff}body.js.appearance_page_gutenberg-template-parts #wpcontent,body.js.site-editor-php #wpcontent{padding-left:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content,body.js.site-editor-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.appearance_page_gutenberg-template-parts #wpfooter,body.js.site-editor-php #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.site-editor-php #wpfooter{display:none}body.js.appearance_page_gutenberg-template-parts .a11y-speak-region,body.js.site-editor-php .a11y-speak-region{left:-1px;top:-1px}body.js.appearance_page_gutenberg-template-parts ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-template-parts ul#adminmenu>li.current>a.current:after,body.js.site-editor-php ul#adminmenu a.wp-has-current-submenu:after,body.js.site-editor-php ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.appearance_page_gutenberg-template-parts .media-frame select.attachment-filters:last-of-type,body.js.site-editor-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}body.js.site-editor-php{background:#1e1e1e}.components-modal__frame,.edit-site{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.edit-site *,.edit-site :after,.edit-site :before{box-sizing:inherit}.edit-site{height:100vh}@media (min-width:600px){.edit-site{bottom:0;left:0;min-height:100vh;position:fixed;right:0;top:0}}.no-js .edit-site{min-height:0;position:static}.edit-site .interface-interface-skeleton{top:0}.edit-site .interface-complementary-area__pin-unpin-item.components-button{display:none}.edit-site .interface-interface-skeleton__content{background-color:#1e1e1e}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-right:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{left:16px;position:absolute;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-left:160px;padding-left:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-left:48px;margin-top:0}.edit-site-custom-template-modal__contents-wrapper{height:100%;justify-content:flex-start!important}.edit-site-custom-template-modal__contents-wrapper>*{width:100%}.edit-site-custom-template-modal__contents-wrapper__suggestions_list{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px)}.edit-site-custom-template-modal__contents>.components-button{height:auto;justify-content:center}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input{background:#fff;border:1px solid #ddd}.edit-site-custom-template-modal .components-search-control input[type=search].components-search-control__input:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 1px var(--wp-admin-theme-color)}@media (min-width:782px){.edit-site-custom-template-modal{width:456px}}@media (min-width:600px){.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list{overflow:scroll}}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item{display:block;height:auto;overflow-wrap:break-word;padding:8px 12px;text-align:left;white-space:pre-wrap;width:100%}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item mark{background:none;font-weight:700}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover *,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:hover mark{color:var(--wp-admin-theme-color)}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus{background-color:#f0f0f0}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color) inset}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info,.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__title{display:block;overflow:hidden;text-overflow:ellipsis}.edit-site-custom-template-modal .edit-site-custom-template-modal__suggestions_list__list-item__info{color:#757575;word-break:break-all}.edit-site-custom-template-modal__no-results{border:1px solid #ccc;border-radius:2px;padding:16px}.edit-site-custom-generic-template__modal .components-modal__header{border-bottom:none}.edit-site-custom-generic-template__modal .components-modal__content:before{margin-bottom:4px}.edit-site-template-actions-loading-screen-modal{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}.edit-site-template-actions-loading-screen-modal.is-full-screen{background-color:#fff;box-shadow:0 0 0 transparent;min-height:100%;min-width:100%}.edit-site-template-actions-loading-screen-modal__content{align-items:center;display:flex;height:100%;justify-content:center;left:50%;position:absolute;transform:translateX(-50%)}.edit-site-add-new-template__modal{margin-top:64px;max-height:calc(100% - 128px);max-width:832px;width:calc(100% - 64px)}@media (min-width:960px){.edit-site-add-new-template__modal{width:calc(100% - 128px)}}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button svg,.edit-site-add-new-template__modal .edit-site-add-new-template__template-button svg{fill:var(--wp-admin-theme-color)}.edit-site-add-new-template__modal .edit-site-add-new-template__custom-template-button .edit-site-add-new-template__template-name{align-items:flex-start;flex-grow:1}.edit-site-add-new-template__modal .edit-site-add-new-template__template-icon{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-radius:100%;max-height:40px;max-width:40px;padding:8px}.edit-site-add-new-template__template-list__contents>.components-button,.edit-site-custom-template-modal__contents>.components-button{border:1px solid #ddd;border-radius:2px;display:flex;flex-direction:column;justify-content:center;outline:1px solid transparent;padding:32px}.edit-site-add-new-template__template-list__contents>.components-button span:first-child,.edit-site-custom-template-modal__contents>.components-button span:first-child{color:#1e1e1e}.edit-site-add-new-template__template-list__contents>.components-button span,.edit-site-custom-template-modal__contents>.components-button span{color:#757575}.edit-site-add-new-template__template-list__contents>.components-button:hover,.edit-site-custom-template-modal__contents>.components-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04);border-color:transparent;color:var(--wp-admin-theme-color-darker-10)}.edit-site-add-new-template__template-list__contents>.components-button:hover span,.edit-site-custom-template-modal__contents>.components-button:hover span{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents>.components-button:focus,.edit-site-custom-template-modal__contents>.components-button:focus{border-color:transparent;box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:3px solid transparent}.edit-site-add-new-template__template-list__contents>.components-button:focus span:first-child,.edit-site-custom-template-modal__contents>.components-button:focus span:first-child{color:var(--wp-admin-theme-color)}.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__custom-template-button,.edit-site-add-new-template__template-list__contents .edit-site-add-new-template__template-list__prompt,.edit-site-custom-template-modal__contents .edit-site-add-new-template__custom-template-button,.edit-site-custom-template-modal__contents .edit-site-add-new-template__template-list__prompt{grid-column-end:4;grid-column-start:1}.edit-site-add-new-template__template-list__contents>.components-button{align-items:flex-start;height:100%;text-align:start}.edit-site-block-editor__editor-styles-wrapper .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;padding:6px 12px}.edit-site-block-editor__editor-styles-wrapper .components-button.has-icon,.edit-site-block-editor__editor-styles-wrapper .components-button.is-tertiary{padding:6px}.edit-site-block-editor__block-list.is-navigation-block{padding:24px}.edit-site-visual-editor{align-items:center;background-color:#1e1e1e;display:block;height:100%;overflow:hidden;position:relative}.edit-site-visual-editor iframe{background:#fff;display:block;height:100%;width:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas{height:100%}.edit-site-visual-editor .edit-site-visual-editor__editor-canvas.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-layout.is-full-canvas .edit-site-visual-editor.is-focus-mode{padding:48px}.edit-site-visual-editor.is-focus-mode .edit-site-visual-editor__editor-canvas{border-radius:2px;max-height:100%}.edit-site-visual-editor.is-focus-mode .components-resizable-box__container{overflow:visible}.edit-site-visual-editor .components-resizable-box__container{margin:0 auto;overflow:auto}.edit-site-visual-editor.is-view-mode{box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8)}.edit-site-visual-editor.is-view-mode .block-editor-block-contextual-toolbar.is-fixed{display:none}.edit-site-visual-editor__back-button{color:#fff;left:8px;position:absolute;top:8px}.edit-site-visual-editor__back-button:active:not([aria-disabled=true]),.edit-site-visual-editor__back-button:focus:not([aria-disabled=true]),.edit-site-visual-editor__back-button:hover{color:#f0f0f0}.resizable-editor__drag-handle{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:2px;bottom:0;cursor:ew-resize;margin:auto 0;outline:none;padding:0;position:absolute;top:0;width:12px}.resizable-editor__drag-handle.is-variation-default{height:100px}.resizable-editor__drag-handle.is-variation-separator{height:100%;right:0;width:24px}.resizable-editor__drag-handle.is-variation-separator:after{background:transparent;border-radius:0;left:50%;right:0;transform:translateX(-1px);transition:all .2s ease;transition-delay:.1s;width:2px}@media (prefers-reduced-motion:reduce){.resizable-editor__drag-handle.is-variation-separator:after{animation-delay:0s;animation-duration:1ms;transition-delay:0s;transition-duration:0s}}.resizable-editor__drag-handle:after{background:#949494;border-radius:2px;bottom:24px;content:"";left:4px;position:absolute;right:0;top:24px;width:4px}.resizable-editor__drag-handle.is-left{left:-16px}.resizable-editor__drag-handle.is-right{right:-16px}.resizable-editor__drag-handle:active,.resizable-editor__drag-handle:hover{opacity:1}.resizable-editor__drag-handle:active.is-variation-default:after,.resizable-editor__drag-handle:hover.is-variation-default:after{background:#ccc}.resizable-editor__drag-handle:active.is-variation-separator:after,.resizable-editor__drag-handle:hover.is-variation-separator:after{background:var(--wp-admin-theme-color)}.resizable-editor__drag-handle:focus:after{box-shadow:0 0 0 1px #2f2f2f,0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color)}.resizable-editor__drag-handle.is-variation-separator:focus:after{border-radius:2px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color)}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}@media (min-width:783px){.auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}@media (min-width:961px){.auto-fold .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.folded .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}body.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{left:0!important}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;display:flex;height:60px;margin-left:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:240px;top:0}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:144px}}@media (min-width:960px){.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-site-canvas-loader{align-items:center;animation:edit-site-canvas-loader__fade-in-animation .5s ease .2s;animation-fill-mode:forwards;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;width:100%}@media (prefers-reduced-motion:reduce){.edit-site-canvas-loader{animation-delay:0s;animation-duration:1ms}}.edit-site-canvas-loader>div{width:160px}@keyframes edit-site-canvas-loader__fade-in-animation{0%{opacity:0}to{opacity:1}}.edit-site-code-editor{background-color:#fff;min-height:100%;position:relative;width:100%}.edit-site-code-editor__body{margin-left:auto;margin-right:auto;max-width:1080px;padding:12px;width:100%}@media (min-width:960px){.edit-site-code-editor__body{padding:24px}}.edit-site-code-editor__toolbar{background:hsla(0,0%,100%,.8);display:flex;left:0;padding:4px 12px;position:sticky;right:0;top:0;z-index:1}@media (min-width:600px){.edit-site-code-editor__toolbar{padding:12px}}@media (min-width:960px){.edit-site-code-editor__toolbar{padding:12px 24px}}.edit-site-code-editor__toolbar h2{color:#1e1e1e;font-size:13px;line-height:36px;margin:0 auto 0 0}.edit-site-code-editor__toolbar .components-button svg{order:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area{font-size:15px!important;padding:24px}}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-webkit-input-placeholder{color:rgba(30,30,30,.62)}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-site-global-styles-preview{align-items:center;cursor:pointer;display:flex;justify-content:center;line-height:1}.edit-site-global-styles-preview__iframe{display:block;max-width:100%}.edit-site-typography-preview{align-items:center;background:#f0f0f0;border-radius:2px;display:flex;justify-content:center;margin-bottom:16px;min-height:100px;overflow:hidden}.edit-site-typography-panel__full-width-control{grid-column:1/-1;max-width:100%}.edit-site-global-styles-screen-css,.edit-site-global-styles-screen-typography{margin:16px}.edit-site-global-styles-screen-typography__indicator{align-items:center;border-radius:2px;display:flex!important;font-size:14px;height:24px;justify-content:center;width:24px}.edit-site-global-styles-screen-colors{margin:16px}.edit-site-global-styles-screen-colors .color-block-support-panel{border-top:none;padding-left:0;padding-right:0}.edit-site-global-styles-header__description{padding:0 16px}.edit-site-block-types-search{margin-bottom:8px;padding:0 16px}.edit-site-global-styles-header{margin-bottom:0!important}.edit-site-global-styles-subtitle{font-size:11px!important;font-weight:500!important;margin-bottom:0!important;text-transform:uppercase}.edit-site-global-styles-section-title{color:#2f2f2f;font-weight:600;line-height:1.2;margin:0;padding:16px 16px 0}.edit-site-global-styles-variations_item{border-radius:2px;box-sizing:border-box}.edit-site-global-styles-variations_item .edit-site-global-styles-variations_item-preview{border-radius:2px;box-shadow:0 0 0 1px #e0e0e0;outline:1px solid transparent;padding:2px}.edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e;outline-width:3px}.edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-global-styles-variations_item:focus-visible{outline:3px solid transparent;outline-offset:0}.edit-site-global-styles-icon-with-current-color{fill:currentColor}.edit-site-global-styles__color-indicator-wrapper{flex-shrink:0;height:24px}.edit-site-global-styles__block-preview-panel{border:1px solid #e0e0e0;border-radius:2px;overflow:auto;position:relative;width:100%}.edit-site-global-styles-screen-css{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack{flex:1 1 auto}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input,.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field{display:flex;flex:1 1 auto;flex-direction:column}.edit-site-global-styles-screen-css .components-v-stack .block-editor-global-styles-advanced-panel__custom-css-input .components-base-control__field .components-textarea-control__input{direction:ltr;flex:1 1 auto}.edit-site-global-styles-screen-css-help-link{display:block;margin-top:8px}.edit-site-global-styles-screen-variations{border-top:1px solid #ddd;margin-top:16px}.edit-site-global-styles-screen-variations>*{margin:24px 16px}.edit-site-global-styles-sidebar__navigator-screen{display:flex;flex-direction:column}.edit-site-global-styles-screen-root.edit-site-global-styles-screen-root,.edit-site-global-styles-screen-style-variations.edit-site-global-styles-screen-style-variations{background:unset;color:inherit}.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg{fill:currentColor}[class][class].edit-site-global-styles-sidebar__revisions-count-badge{align-items:center;background:#2f2f2f;border-radius:2px;color:#fff;display:inline-flex;justify-content:center;min-height:24px;min-width:24px}.edit-site-global-styles-screen-revisions{margin:16px}.edit-site-global-styles-screen-revisions__revisions-list{list-style:none;margin:0}.edit-site-global-styles-screen-revisions__revisions-list li{border-left:1px solid #ddd;margin-bottom:0}.edit-site-global-styles-screen-revisions__revision-item{padding:8px 0 8px 12px;position:relative}.edit-site-global-styles-screen-revisions__revision-item:first-child{padding-top:0}.edit-site-global-styles-screen-revisions__revision-item:last-child{padding-bottom:0}.edit-site-global-styles-screen-revisions__revision-item:before{background:#ddd;border-radius:50%;content:"\a";display:inline-block;height:8px;left:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba))}.edit-site-global-styles-screen-revisions__revision-button{display:block;height:auto;padding:8px 12px;width:100%}.edit-site-global-styles-screen-revisions__revision-button:hover{background:rgba(var(--wp-admin-theme-color--rgb),.04)}.edit-site-global-styles-screen-revisions__revision-button:hover .edit-site-global-styles-screen-revisions__date{color:var(--wp-admin-theme-color)}.is-selected .edit-site-global-styles-screen-revisions__revision-button{background:rgba(var(--wp-admin-theme-color--rgb),.04);color:var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));opacity:1}.is-selected .edit-site-global-styles-screen-revisions__meta{color:var(--wp-admin-theme-color)}.edit-site-global-styles-screen-revisions__button{justify-content:center;width:100%}.edit-site-global-styles-screen-revisions__description{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.edit-site-global-styles-screen-revisions__meta{align-items:center;color:#757575;display:flex;justify-content:space-between;text-align:left;width:100%}.edit-site-global-styles-screen-revisions__meta img{border-radius:100%;height:16px;width:16px}.edit-site-global-styles-screen-revisions__loading{margin:24px auto!important}.edit-site-header-edit-mode{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-sizing:border-box;color:#1e1e1e;display:flex;height:60px;justify-content:space-between;padding-left:60px;width:100%}.edit-site-header-edit-mode .edit-site-header-edit-mode__start{border:none;display:flex}.edit-site-header-edit-mode .edit-site-header-edit-mode__end{display:flex;justify-content:flex-end}.edit-site-header-edit-mode .edit-site-header-edit-mode__center{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;margin:0 8px;min-width:0}.edit-site-header-edit-mode__toolbar{align-items:center;display:flex;padding-left:8px}@media (min-width:600px){.edit-site-header-edit-mode__toolbar{padding-left:24px}}@media (min-width:1280px){.edit-site-header-edit-mode__toolbar{padding-right:8px}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle{height:32px;margin-right:8px;min-width:32px;padding:0;width:32px}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-site-header-edit-mode__toolbar .edit-site-header-edit-mode__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.edit-site-header-edit-mode__actions{align-items:center;display:inline-flex;gap:4px;padding-right:4px}@media (min-width:600px){.edit-site-header-edit-mode__actions{gap:8px;padding-right:10px}}.edit-site-header-edit-mode__preview-options{opacity:1;transition:opacity .3s}.edit-site-header-edit-mode__preview-options.is-zoomed-out{opacity:0}.edit-site-header-edit-mode__start{border:none;display:flex}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon{height:36px;min-width:36px;padding:6px}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon.is-pressed,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:focus:not(:disabled),.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-button.has-icon:before,.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.components-dropdown>.components-button.has-icon:before{display:none}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-icon{height:32px;margin-right:8px;min-width:32px;padding:0;width:32px}.edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>.edit-site-header-edit-mode__inserter-toggle.has-text.has-icon{padding:0 8px;width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon{width:auto}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon svg{display:none}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon:after{content:attr(aria-label)}.edit-site-header-edit-mode.show-icon-labels .components-button.has-icon[aria-disabled=true]{background-color:transparent}.edit-site-header-edit-mode.show-icon-labels .is-tertiary:active{background-color:transparent;box-shadow:0 0 0 1.5px var(--wp-admin-theme-color)}.edit-site-header-edit-mode.show-icon-labels .edit-site-save-button__button{padding-left:6px;padding-right:6px}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info:after{content:none}.edit-site-header-edit-mode.show-icon-labels .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info,.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__inserter-toggle.edit-site-header-edit-mode__inserter-toggle{height:36px;padding:0 8px}.edit-site-header-edit-mode.show-icon-labels .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar>*+*{margin-left:8px}.edit-site-document-actions{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;height:36px;justify-content:space-between;min-width:0;width:min(100%,450px)}.has-fixed-toolbar .edit-site-document-actions{width:min(100%,380px)}.edit-site-document-actions:hover{background-color:#e0e0e0}.edit-site-document-actions .components-button{border-radius:4px}.edit-site-document-actions .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}@media (min-width:960px){.edit-site-document-actions{width:min(100%,450px)}}.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title,.edit-site-document-actions.is-synced-entity .edit-site-document-actions__title h1{color:var(--wp-block-synced-color)}.edit-site-document-actions__command{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.edit-site-document-actions__title{flex-grow:1;overflow:hidden}@media (min-width:600px){.edit-site-document-actions__title{padding-left:32px}}.edit-site-document-actions__title:hover{color:var(--wp-block-synced-color)}.edit-site-document-actions__title .block-editor-block-icon{flex-shrink:0;min-width:24px}.edit-site-document-actions__title h1{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-document-actions.is-page .edit-site-document-actions__title,.edit-site-document-actions.is-page .edit-site-document-actions__title h1{color:#2f2f2f}.edit-site-document-actions.is-animated .edit-site-document-actions__title{animation:edit-site-document-actions__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated .edit-site-document-actions__title{animation-delay:0s;animation-duration:1ms}}.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{animation:edit-site-document-actions__slide-in-right .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated.is-page .edit-site-document-actions__title{animation-delay:0s;animation-duration:1ms}}.edit-site-document-actions__shortcut{color:#2f2f2f;display:none;min-width:32px}@media (min-width:600px){.edit-site-document-actions__shortcut{display:initial}}.edit-site-document-actions__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px;position:absolute;z-index:1}.edit-site-document-actions__back.components-button.has-icon.has-text:hover{background-color:transparent;color:currentColor}.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{animation:edit-site-document-actions__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.edit-site-document-actions.is-animated .edit-site-document-actions__back.components-button.has-icon.has-text{animation-delay:0s;animation-duration:1ms}}@keyframes edit-site-document-actions__slide-in-right{0%{opacity:0;transform:translateX(-15%)}to{opacity:1;transform:translateX(0)}}@keyframes edit-site-document-actions__slide-in-left{0%{opacity:0;transform:translateX(15%)}to{opacity:1;transform:translateX(0)}}.edit-site-list-header{align-items:center;box-sizing:border-box;display:flex;height:60px;justify-content:flex-end;padding-right:16px;position:relative;width:100%}body.is-fullscreen-mode .edit-site-list-header{padding-left:60px;transition:padding-left 20ms linear;transition-delay:80ms}@media (prefers-reduced-motion:reduce){body.is-fullscreen-mode .edit-site-list-header{transition-delay:0s;transition-duration:0s}}.edit-site-list-header .edit-site-list-header__title{font-size:20px;left:0;margin:0;padding:0;position:absolute;text-align:center;width:100%}.edit-site-list-header__right{position:relative}.edit-site .edit-site-list{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px rgba(0,0,0,.8),0 8px 10px -6px rgba(0,0,0,.8);flex-grow:1}.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:100%}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__editor{min-width:0}}.edit-site .edit-site-list .interface-interface-skeleton__content{align-items:center;background:#fff;padding:16px}@media (min-width:782px){.edit-site .edit-site-list .interface-interface-skeleton__content{padding:72px}}.edit-site-list-table{border:1px solid #ddd;border-radius:2px;border-spacing:0;margin:0 auto;max-width:960px;min-width:100%;overflow:hidden}.edit-site-list-table tr{align-items:center;border-top:1px solid #f0f0f0;box-sizing:border-box;display:flex;margin:0;padding:16px}.edit-site-list-table tr:first-child{border-top:0}@media (min-width:782px){.edit-site-list-table tr{padding:24px 32px}}.edit-site-list-table tr .edit-site-list-table-column:first-child{padding-right:24px;width:calc(60% - 18px)}.edit-site-list-table tr .edit-site-list-table-column:first-child a{display:inline-block;font-weight:500;margin-bottom:4px;text-decoration:none}.edit-site-list-table tr .edit-site-list-table-column:nth-child(2){width:calc(40% - 18px);word-break:break-word}.edit-site-list-table tr .edit-site-list-table-column:nth-child(3){flex-shrink:0;min-width:36px}.edit-site-list-table tr.edit-site-list-table-head{border-bottom:1px solid #ddd;border-top:none;color:#1e1e1e;font-size:16px;font-weight:600;text-align:left}.edit-site-list-table tr.edit-site-list-table-head th{font-weight:inherit}@media (min-width:782px){.edit-site-list.is-navigation-open .components-snackbar-list{margin-left:360px}}.edit-site-list__rename-modal{z-index:1000001}@media (min-width:782px){.edit-site-list__rename-modal .components-base-control{width:320px}}.edit-site-template__actions button:not(:last-child){margin-right:8px}.edit-site-list-added-by__icon{align-items:center;background:#2f2f2f;border-radius:100%;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.edit-site-list-added-by__icon svg{fill:#fff}.edit-site-list-added-by__avatar{background:#2f2f2f;border-radius:100%;flex-shrink:0;height:32px;overflow:hidden;width:32px}.edit-site-list-added-by__avatar img{height:32px;object-fit:cover;opacity:0;transition:opacity .1s linear;width:32px}@media (prefers-reduced-motion:reduce){.edit-site-list-added-by__avatar img{transition-delay:0s;transition-duration:0s}}.edit-site-list-added-by__avatar.is-loaded img{opacity:1}.edit-site-list-added-by__customized-info{color:#757575;display:block}.edit-site-page{background:#fff;color:#2f2f2f;flex-grow:1;margin:60px 0 0;overflow:hidden}@media (min-width:782px){.edit-site-page{border-radius:8px;margin:24px 24px 24px 0}}.edit-site-page-header{background:#fff;border-bottom:1px solid #f0f0f0;min-height:60px;padding:0 32px;position:sticky;top:0;z-index:2}.edit-site-page-header .components-text{color:#2f2f2f}.edit-site-page-header .components-heading{color:#1e1e1e}.edit-site-page-header .edit-site-page-header__sub-title{color:#757575;margin-top:8px}.edit-site-page-content{display:flex;flex-flow:column;height:100%;overflow:auto;position:relative;z-index:1}.edit-site-patterns{background:none;border-left:1px solid #2f2f2f;border-radius:0;margin:60px 0 0;overflow-x:auto;padding:0}.edit-site-patterns .components-base-control{width:100%}@media (min-width:782px){.edit-site-patterns .components-base-control{width:auto}}.edit-site-patterns .components-text{color:#949494}.edit-site-patterns .components-heading{color:#e0e0e0}@media (min-width:782px){.edit-site-patterns{margin:0}}.edit-site-patterns .edit-site-patterns__search-block{flex-grow:1;min-width:-moz-fit-content;min-width:fit-content}.edit-site-patterns .edit-site-patterns__search input[type=search]{background:#2f2f2f;color:#e0e0e0;height:40px}.edit-site-patterns .edit-site-patterns__search input[type=search]:focus{background:#2f2f2f}.edit-site-patterns .edit-site-patterns__search svg{fill:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter{background:#2f2f2f;border:none;height:40px;max-width:100%;min-width:max-content;width:100%}@media (min-width:782px){.edit-site-patterns .edit-site-patterns__sync-status-filter{width:300px}}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:not([aria-checked=true]){color:#949494}.edit-site-patterns .edit-site-patterns__sync-status-filter-option:active{background:#757575;color:#f0f0f0}.edit-site-patterns .edit-site-patterns__grid-pagination{background:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;padding:24px 32px;position:sticky;z-index:2}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary{background-color:#2f2f2f;color:#f0f0f0;height:32px;justify-content:center;width:32px}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:disabled{background:none;color:#949494}.edit-site-patterns .edit-site-patterns__grid-pagination .components-button.is-tertiary:hover:not(:disabled){background-color:#757575}.edit-site-patterns__header{background:#1e1e1e;padding:32px 32px 16px;position:sticky;top:0;z-index:2}.edit-site-patterns__section{flex:1;padding:24px 32px}.edit-site-patterns__section-header .screen-reader-shortcut:focus{top:0}.edit-site-patterns__grid{display:grid;gap:32px;grid-template-columns:1fr;margin-bottom:0;margin-top:0}@media (min-width:960px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr}}@media (min-width:1440px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr}}@media (min-width:1920px){.edit-site-patterns__grid{grid-template-columns:1fr 1fr 1fr 1fr}}.edit-site-patterns__grid .edit-site-patterns__pattern{break-inside:avoid-column;display:flex;flex-direction:column}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview{background-color:unset;border:none;border-radius:4px;box-shadow:none;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:0}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview:focus{box-shadow:inset 0 0 0 0 #fff,0 0 0 2px var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive{cursor:default}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__preview.is-inactive:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) #2f2f2f;opacity:.8}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__button,.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__footer{color:#949494}.edit-site-patterns__grid .edit-site-patterns__pattern .edit-site-patterns__dropdown{flex-shrink:0}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview{align-items:center;border:1px dashed #2f2f2f;color:#949494;display:flex;justify-content:center;min-height:64px}.edit-site-patterns__grid .edit-site-patterns__pattern.is-placeholder .edit-site-patterns__preview:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-patterns__grid .edit-site-patterns__preview{flex:0 1 auto;margin-bottom:12px}.edit-site-patterns__load-more{align-self:center}.edit-site-patterns__pattern-title{color:#e0e0e0}.edit-site-patterns__pattern-title .is-link{color:#e0e0e0;text-decoration:none}.edit-site-patterns__pattern-title .is-link:focus,.edit-site-patterns__pattern-title .is-link:hover{color:#fff}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-icon{fill:#fff;background:var(--wp-block-synced-color);border-radius:4px}.edit-site-patterns__pattern-title .edit-site-patterns__pattern-lock-icon{fill:currentcolor}.edit-site-patterns__no-results{color:#949494}.edit-site-table-wrapper{padding:32px;width:100%}.edit-site-table{border-collapse:collapse;border-color:inherit;position:relative;text-indent:0;width:100%}.edit-site-table a{text-decoration:none}.edit-site-table th{color:#757575;font-weight:400;padding:0 16px 16px;text-align:left}.edit-site-table td{padding:16px}.edit-site-table td,.edit-site-table th{vertical-align:center}.edit-site-table td:first-child,.edit-site-table th:first-child{padding-left:0}.edit-site-table td:last-child,.edit-site-table th:last-child{padding-right:0;text-align:right}.edit-site-table tr{border-bottom:1px solid #f0f0f0}.edit-site-sidebar-edit-mode{width:280px}.edit-site-sidebar-edit-mode>.components-panel{border-left:0;border-right:0;margin-bottom:-1px;margin-top:-1px}.edit-site-sidebar-edit-mode>.components-panel>.components-panel__header{background:#f0f0f0}.edit-site-sidebar-edit-mode .block-editor-block-inspector__card{margin:0}.edit-site-global-styles-sidebar{display:flex;flex-direction:column;min-height:100%}.edit-site-global-styles-sidebar__navigator-provider,.edit-site-global-styles-sidebar__panel{display:flex;flex:1;flex-direction:column}.edit-site-global-styles-sidebar__navigator-screen{flex:1}.edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon{margin-left:0}.edit-site-global-styles-sidebar__reset-button.components-button{margin-left:auto}.edit-site-global-styles-sidebar .components-navigation__menu-title-heading{font-size:15.6px;font-weight:500}.edit-site-global-styles-sidebar .components-navigation__item>button span{font-weight:500}.edit-site-global-styles-sidebar .block-editor-panel-color-gradient-settings,.edit-site-typography-panel{border:0}.edit-site-global-styles-sidebar .single-column{grid-column:span 1}.edit-site-global-styles-sidebar .components-tools-panel .span-columns{grid-column:1/-1}.edit-site-global-styles-sidebar__blocks-group{border-top:1px solid #e0e0e0;padding-top:24px}.edit-site-global-styles-sidebar__blocks-group-help{padding:0 16px}.edit-site-global-styles-color-palette-panel,.edit-site-global-styles-gradient-palette-panel{padding:16px}.edit-site-global-styles-sidebar hr{margin:0}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon svg{display:none}.show-icon-labels .edit-site-global-styles-sidebar__header .components-button.has-icon:after{content:attr(aria-label);font-size:12px}.edit-site-sidebar-fixed-bottom-slot{background:#fff;border-top:1px solid #ddd;bottom:0;box-sizing:content-box;display:flex;padding:16px;position:sticky}.edit-site-swap-template-modal{z-index:1000001}.edit-site-page-panels__swap-template__confirm-modal__actions{margin-top:24px}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px;padding-top:2px}@media (min-width:782px){.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-change-status__content .components-popover__content{min-width:320px;padding:16px}.edit-site-change-status__content .edit-site-change-status__options .components-base-control__field>.components-v-stack{gap:8px}.edit-site-change-status__content .edit-site-change-status__options label .components-text{display:block;margin-left:26px}.edit-site-change-status__content .edit-site-change-status__password-legend{margin-bottom:8px;padding:0}.edit-site-summary-field .components-dropdown{width:70%}.edit-site-summary-field .edit-site-summary-field__trigger{display:block;max-width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.edit-site-summary-field .edit-site-summary-field__label{width:30%}.edit-site-page-panels-edit-template__dropdown .components-popover__content{min-width:240px}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:16px}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs ul{display:flex}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs li{margin:0}.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:none;height:24px;margin:0 0 0 auto;min-width:24px;padding:0}@media (min-width:782px){.components-panel__header.edit-site-sidebar-edit-mode__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-site-sidebar-edit-mode__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-site-sidebar-edit-mode__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-site-sidebar-edit-mode__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-site-sidebar-edit-mode__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-site-sidebar-edit-mode__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-site-sidebar-card{align-items:flex-start;display:flex}.edit-site-sidebar-card__content{flex-grow:1;margin-bottom:4px}.edit-site-sidebar-card__title{font-weight:500;line-height:24px}.edit-site-sidebar-card__title.edit-site-sidebar-card__title{margin:0}.edit-site-sidebar-card__description{font-size:13px}.edit-site-sidebar-card__icon{flex:0 0 24px;height:24px;margin-right:12px;width:24px}.edit-site-sidebar-card__header{display:flex;justify-content:space-between;margin:0 0 4px}.edit-site-template-card__template-areas{margin-top:16px}.edit-site-template-card__template-areas-list,.edit-site-template-card__template-areas-list>li{margin:0}.edit-site-template-card__template-areas-item{width:100%}.edit-site-template-card__template-areas-item.components-button.has-icon{padding:0}.edit-site-template-card__actions{line-height:0}.edit-site-template-card__actions>.components-button.is-small.has-icon{min-width:auto;padding:0}.edit-site-template-revisions{margin-left:-4px}h3.edit-site-template-card__template-areas-title{font-weight:500;margin:0 0 8px}.edit-site-template-panel__replace-template-modal{z-index:1000001}.edit-site-template-panel__replace-template-modal__content{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-template-panel__replace-template-modal__content{column-count:3}}@media (min-width:1280px){.edit-site-template-panel__replace-template-modal__content{column-count:4}}.edit-site-editor__interface-skeleton{opacity:1;transition:opacity .1s ease-out}@media (prefers-reduced-motion:reduce){.edit-site-editor__interface-skeleton{transition-delay:0s;transition-duration:0s}}.edit-site-editor__interface-skeleton.is-loading{opacity:0}.edit-site-editor__interface-skeleton .interface-interface-skeleton__header{border:0}.edit-site-editor__toggle-save-panel{background-color:#fff;border:1px dotted #ddd;box-sizing:border-box;display:flex;justify-content:center;padding:24px;width:280px}.edit-site .components-editor-notices__snackbar{bottom:40px;left:0;padding-left:16px;padding-right:16px;position:absolute;right:0}@media (min-width:783px){.edit-site .components-editor-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-site .components-editor-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-site .components-editor-notices__snackbar{left:160px}}.folded .edit-site .components-editor-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-site .components-editor-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar{left:0!important}.edit-site-create-template-part-modal{z-index:1000001}@media (min-width:600px){.edit-site-create-template-part-modal .components-modal__frame{max-width:500px}}.edit-site-create-template-part-modal__area-radio-group{border:1px solid #757575;border-radius:2px;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio{display:block;height:100%;padding:12px;text-align:left;width:100%}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover{background-color:inherit;border-bottom:1px solid #757575;border-radius:0;margin:0}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:not(:focus),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:focus){box-shadow:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:focus,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:focus{border-bottom:1px solid #fff}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-primary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio.is-secondary:hover:last-of-type,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:last-of-type{border-bottom:none}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover),.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true]{color:#1e1e1e;cursor:auto}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio:not(:hover) .edit-site-create-template-part-modal__option-label div,.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio[aria-checked=true] .edit-site-create-template-part-modal__option-label div{color:#949494}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label{padding-top:4px;white-space:normal}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__option-label div{font-size:12px;padding-top:4px}.edit-site-create-template-part-modal__area-radio-group .components-button.edit-site-create-template-part-modal__area-radio .edit-site-create-template-part-modal__checkbox{margin-left:auto;min-width:24px}.edit-site-editor__inserter-panel,.edit-site-editor__list-view-panel{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.edit-site-editor__list-view-panel{width:350px}}.edit-site-editor__inserter-panel-header{display:flex;justify-content:flex-end;padding-right:8px;padding-top:8px}.edit-site-editor__inserter-panel-content,.edit-site-editor__list-view-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-site-editor__inserter-panel-content{height:100%}}.edit-site-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:16px;padding-right:4px}.edit-site-editor__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.edit-site-editor__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.edit-site-editor__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.edit-site-editor__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-editor__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:focus::-webkit-scrollbar-thumb,.edit-site-editor__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.edit-site-editor__list-view-panel-content:focus,.edit-site-editor__list-view-panel-content:focus-within,.edit-site-editor__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.edit-site-editor__list-view-panel-content{scrollbar-color:#949494 transparent}}.edit-site-welcome-guide{width:312px}.edit-site-welcome-guide.guide-editor .edit-site-welcome-guide__image .edit-site-welcome-guide.guide-styles .edit-site-welcome-guide__image{background:#00a0d2}.edit-site-welcome-guide.guide-page .edit-site-welcome-guide__video{border-right:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide.guide-template .edit-site-welcome-guide__video{border-left:16px solid #3858e9;border-top:16px solid #3858e9}.edit-site-welcome-guide__image{margin:0 0 16px}.edit-site-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-site-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-site-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 16px;padding:0 32px}.edit-site-welcome-guide__text img{vertical-align:bottom}.edit-site-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-site-start-template-options__modal .edit-site-start-template-options__modal__actions{background-color:#fff;border-top:1px solid #ddd;bottom:0;height:92px;margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px;position:absolute;width:100%;z-index:1}.edit-site-start-template-options__modal .block-editor-block-patterns-list{padding-bottom:92px}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:782px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.edit-site-start-template-options__modal-content .block-editor-block-patterns-list{column-count:4}}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item .block-editor-block-patterns-list__item-title{display:none}.edit-site-start-template-options__modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.edit-site-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-site-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-site-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-site-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-site-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-site-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-site-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-site-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-site-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-site-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.edit-site-layout{background:#1e1e1e;color:#ccc;display:flex;flex-direction:column;height:100%}.edit-site-layout__hub{height:60px;left:0;position:fixed;top:0;width:calc(100vw - 48px);z-index:3}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__hub{padding-right:0;width:60px}@media (min-width:782px){.edit-site-layout__hub{width:336px}}.edit-site-layout.is-full-canvas .edit-site-layout__hub{border-radius:0;box-shadow:none;padding-right:16px;width:100vw}@media (min-width:782px){.edit-site-layout.is-full-canvas .edit-site-layout__hub{padding-right:0;width:auto}}.edit-site-layout__header-container{z-index:4}.edit-site-layout__header{display:flex;height:60px;z-index:2}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__header{position:fixed;width:100vw}.edit-site-layout__content{display:flex;flex-grow:1;height:100%}.edit-site-layout__sidebar-region{flex-shrink:0;width:100vw;z-index:1}@media (min-width:782px){.edit-site-layout__sidebar-region{width:360px}}.edit-site-layout.is-full-canvas .edit-site-layout__sidebar-region{height:100vh;left:0;position:fixed!important;top:0}.edit-site-layout__sidebar-region .edit-site-layout__sidebar{display:flex;flex-direction:column;height:100%}.edit-site-layout__sidebar-region .resizable-editor__drag-handle{right:0}.edit-site-layout__main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.edit-site-layout__canvas-container{flex-grow:1;position:relative;z-index:2}.edit-site-layout__canvas-container.is-resizing:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:100}.edit-site-layout__canvas{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;top:0;width:100%}.edit-site-layout__canvas.is-right-aligned{justify-content:flex-end}.edit-site-layout__canvas>div{color:#1e1e1e}@media (min-width:782px){.edit-site-layout__canvas{bottom:24px;top:24px;width:calc(100% - 24px)}.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .edit-site-visual-editor__editor-canvas,.edit-site-layout:not(.is-full-canvas) .edit-site-layout__canvas>div .interface-interface-skeleton__content,.edit-site-layout__canvas>div{border-radius:8px}}.edit-site-layout.is-full-canvas .edit-site-layout__canvas{bottom:0;top:0;width:100%}.edit-site-layout.is-full-canvas .edit-site-layout__canvas>div{border-radius:0}.edit-site-layout__canvas .interface-interface-skeleton{min-height:100%!important;position:relative!important}.edit-site-layout__view-mode-toggle.components-button{align-items:center;border-bottom:1px solid transparent;border-radius:0;color:#fff;display:flex;height:60px;justify-content:center;overflow:hidden;padding:0;position:relative;width:60px}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-layout__view-mode-toggle.components-button{border-bottom-color:#e0e0e0;transition:border-bottom-color .15s ease-out .4s}.edit-site-layout__view-mode-toggle.components-button:active,.edit-site-layout__view-mode-toggle.components-button:hover{color:#fff}.edit-site-layout__view-mode-toggle.components-button:focus{box-shadow:none}.edit-site-layout__view-mode-toggle.components-button:before{border-radius:4px;bottom:9px;box-shadow:none;content:"";display:block;left:9px;position:absolute;right:9px;top:9px;transition:box-shadow .1s ease}@media (prefers-reduced-motion:reduce){.edit-site-layout__view-mode-toggle.components-button:before{transition-delay:0s;transition-duration:0s}}.edit-site-layout__view-mode-toggle.components-button:focus:before{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) hsla(0,0%,100%,.1),inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-layout__view-mode-toggle.components-button .edit-site-layout__view-mode-toggle-icon{align-items:center;border-radius:2px;display:flex;height:64px;justify-content:center;width:64px}.edit-site-layout__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:280px;z-index:100000}.edit-site-layout__actions:focus,.edit-site-layout__actions:focus-within{bottom:0;top:auto}.edit-site-layout__actions.is-entity-save-view-open:focus,.edit-site-layout__actions.is-entity-save-view-open:focus-within{top:0}@media (min-width:782px){.edit-site-layout__actions{border-left:1px solid #ddd}.edit-site-layout.has-fixed-toolbar .edit-site-layout__canvas-container{z-index:5}.edit-site-layout.has-fixed-toolbar .edit-site-site-hub{z-index:4}}@media (min-width:782px){.edit-site-layout.has-fixed-toolbar .edit-site-layout__header:focus-within{z-index:3}}.is-edit-mode.is-distraction-free .edit-site-layout__header-container{height:60px;left:0;position:absolute;right:0;top:0;width:100%;z-index:4}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within{opacity:1!important}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within div{transform:translateX(0) translateY(0) translateZ(0)!important}.is-edit-mode.is-distraction-free .edit-site-layout__header-container:focus-within .edit-site-layout__header{opacity:1!important}.is-edit-mode.is-distraction-free .edit-site-layout__header,.is-edit-mode.is-distraction-free .edit-site-site-hub{position:absolute;top:0;z-index:2}.is-edit-mode.is-distraction-free .edit-site-site-hub{z-index:3}.is-edit-mode.is-distraction-free .edit-site-layout__header{width:100%}.edit-site-save-hub{border-top:1px solid #2f2f2f;color:#949494;flex-shrink:0;margin:0;padding:20px 24px}.edit-site-save-hub__button{color:inherit;justify-content:center;width:100%}.edit-site-save-hub__button[aria-disabled=true]{opacity:1}.edit-site-save-hub__button[aria-disabled=true]:hover{color:inherit}@media (min-width:600px){.edit-site-save-panel__modal{width:600px}}.edit-site-sidebar__content{flex-grow:1;overflow-y:auto}.edit-site-sidebar__content .components-navigator-screen{display:flex;flex-direction:column;height:100%;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:stable;scrollbar-width:thin;will-change:transform}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar{height:12px;width:12px}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-track{background-color:transparent}.edit-site-sidebar__content .components-navigator-screen::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.edit-site-sidebar__content .components-navigator-screen:focus-within::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:focus::-webkit-scrollbar-thumb,.edit-site-sidebar__content .components-navigator-screen:hover::-webkit-scrollbar-thumb{background-color:#757575}.edit-site-sidebar__content .components-navigator-screen:focus,.edit-site-sidebar__content .components-navigator-screen:focus-within,.edit-site-sidebar__content .components-navigator-screen:hover{scrollbar-color:#757575 transparent}@media (hover:none){.edit-site-sidebar__content .components-navigator-screen{scrollbar-color:#757575 transparent}}.edit-site-sidebar__footer{border-top:1px solid #2f2f2f;flex-shrink:0;margin:0 24px;padding:24px 0}.edit-site-sidebar__content>div{padding:0 12px}.edit-site-sidebar-button{color:#e0e0e0;flex-shrink:0}.edit-site-sidebar-button:focus:not(:disabled){box-shadow:none;outline:none}.edit-site-sidebar-button:focus-visible:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent,var(--wp-admin-theme-color,#007cba));outline:3px solid transparent}.edit-site-sidebar-button:focus,.edit-site-sidebar-button:focus-visible,.edit-site-sidebar-button:hover,.edit-site-sidebar-button:not([aria-disabled=true]):active,.edit-site-sidebar-button[aria-expanded=true]{color:#f0f0f0}.edit-site-sidebar-navigation-item.components-item{border:none;border-radius:2px;color:#949494;min-height:40px;padding:8px 6px 8px 16px}.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-item.components-item[aria-current]{background:#2f2f2f;color:#e0e0e0}.edit-site-sidebar-navigation-item.components-item:focus .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item:hover .edit-site-sidebar-navigation-item__drilldown-indicator,.edit-site-sidebar-navigation-item.components-item[aria-current] .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#e0e0e0}.edit-site-sidebar-navigation-item.components-item[aria-current]{background:var(--wp-admin-theme-color);color:#fff}.edit-site-sidebar-navigation-item.components-item .edit-site-sidebar-navigation-item__drilldown-indicator{fill:#949494}.edit-site-sidebar-navigation-item.components-item.with-suffix{padding-right:16px}.edit-site-sidebar-navigation-screen__content .block-editor-list-view-block-select-button{cursor:grab;padding:8px}.edit-site-sidebar-navigation-screen{display:flex;flex-direction:column;overflow-x:unset!important;position:relative}.edit-site-sidebar-navigation-screen__main{flex-grow:1;margin-bottom:16px}.edit-site-sidebar-navigation-screen__main.has-footer{margin-bottom:0}.edit-site-sidebar-navigation-screen__content{padding:0 16px}.edit-site-sidebar-navigation-screen__content .components-item-group{margin-left:-16px;margin-right:-16px}.edit-site-sidebar-navigation-screen__content .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__content .components-heading{margin-bottom:8px}.edit-site-sidebar-navigation-screen__meta{color:#ccc;margin:0 0 16px 16px}.edit-site-sidebar-navigation-screen__meta .components-text{color:#ccc}.edit-site-sidebar-navigation-screen__page-link{color:#949494;display:inline-block}.edit-site-sidebar-navigation-screen__page-link:focus,.edit-site-sidebar-navigation-screen__page-link:hover{color:#fff}.edit-site-sidebar-navigation-screen__page-link .components-external-link__icon{margin-left:4px}.edit-site-sidebar-navigation-screen__title-icon{background:#1e1e1e;margin-bottom:8px;padding-bottom:8px;padding-top:108px;position:sticky;top:0;z-index:1}.edit-site-sidebar-navigation-screen__title{flex-grow:1;overflow-wrap:break-word;padding:6px 0 0}.edit-site-sidebar-navigation-screen__actions{flex-shrink:0}@media (min-width:782px){.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container{max-width:292px}}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #1e1e1e}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item.is-active .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px #f0f0f0}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:hover .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 1px var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__content .edit-site-global-styles-style-variations-container .edit-site-global-styles-variations_item:focus .edit-site-global-styles-variations_item-preview{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen__footer{background-color:#1e1e1e;border-top:1px solid #2f2f2f;bottom:0;gap:0;margin:16px 0 0;padding:16px 0;position:sticky}.edit-site-sidebar__notice{background:#2f2f2f;color:#ddd;margin:24px 0}.edit-site-sidebar__notice.is-dismissible{padding-right:8px}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]){color:#ccc}.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):focus,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):active,.edit-site-sidebar__notice .components-notice__dismiss:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{color:#fff}.edit-site-sidebar-navigation-screen__input-control{width:100%}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container{background:#2f2f2f}.edit-site-sidebar-navigation-screen__input-control .components-input-control__container .components-button{color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__input{background:#2f2f2f!important;border-radius:2px;color:#e0e0e0!important}.edit-site-sidebar-navigation-screen__input-control .components-input-control__backdrop{border:4px!important}.edit-site-sidebar-navigation-screen__input-control .components-base-control__help{color:#949494}.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:focus,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item:hover,.edit-site-sidebar-navigation-screen-details-footer div.edit-site-sidebar-navigation-item.components-item[aria-current]{background:none}.edit-site-sidebar-navigation-screen-details-footer .edit-site-sidebar-navigation-screen-details-footer__icon{fill:#949494;margin-left:auto}.sidebar-navigation__more-menu .components-button{color:#e0e0e0}.sidebar-navigation__more-menu .components-button:focus,.sidebar-navigation__more-menu .components-button:hover,.sidebar-navigation__more-menu .components-button[aria-current]{color:#f0f0f0}.edit-site-sidebar-navigation-screen-page__featured-image-wrapper{background-color:#2f2f2f;border-radius:4px;margin-bottom:16px;min-height:128px}.edit-site-sidebar-navigation-screen-page__featured-image{align-items:center;background-position:50% 50%;background-size:cover;border-radius:2px;color:#949494;display:flex;height:128px;justify-content:center;overflow:hidden;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image img{height:100%;object-fit:cover;object-position:50% 50%;width:100%}.edit-site-sidebar-navigation-screen-page__featured-image-description{font-size:12px}.edit-site-sidebar-navigation-screen-page__excerpt{font-size:12px;margin-bottom:24px}.edit-site-sidebar-navigation-screen-page__modified{color:#949494;margin:0 0 16px 16px}.edit-site-sidebar-navigation-screen-page__modified .components-text{color:#949494}.edit-site-sidebar-navigation-screen-page__status{display:inline-flex}.edit-site-sidebar-navigation-screen-page__status time{display:contents}.edit-site-sidebar-navigation-screen-page__status svg{fill:#f0b849;height:16px;margin-right:8px;width:16px}.edit-site-sidebar-navigation-screen-page__status.has-future-status svg,.edit-site-sidebar-navigation-screen-page__status.has-publish-status svg{fill:#4ab866}.edit-site-sidebar-navigation-details-screen-panel{margin:24px 0}.edit-site-sidebar-navigation-details-screen-panel:last-of-type{margin-bottom:0}.edit-site-sidebar-navigation-details-screen-panel .edit-site-sidebar-navigation-details-screen-panel__heading{color:#ccc;font-size:11px;font-weight:500;margin-bottom:0;padding:0;text-transform:uppercase}.edit-site-sidebar-navigation-details-screen-panel__label.edit-site-sidebar-navigation-details-screen-panel__label{color:#949494;flex-shrink:0;width:100px}.edit-site-sidebar-navigation-details-screen-panel__value.edit-site-sidebar-navigation-details-screen-panel__value{color:#e0e0e0}.edit-site-sidebar-navigation-screen-pattern__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-pattern__added-by-description-author-icon{height:24px;margin-right:8px;width:24px}.edit-site-sidebar-navigation-screen-patterns__group{margin-bottom:24px}.edit-site-sidebar-navigation-screen-patterns__group:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.edit-site-sidebar-navigation-screen-patterns__group-header{margin-top:16px}.edit-site-sidebar-navigation-screen-patterns__group-header p{color:#949494}.edit-site-sidebar-navigation-screen-patterns__group-header h2{font-size:11px;font-weight:500;text-transform:uppercase}.edit-site-sidebar-navigation-screen-template__added-by-description{align-items:center;display:flex;justify-content:space-between;margin-top:24px}.edit-site-sidebar-navigation-screen-template__added-by-description-author{align-items:center;display:inline-flex}.edit-site-sidebar-navigation-screen-template__added-by-description-author img{border-radius:12px}.edit-site-sidebar-navigation-screen-template__added-by-description-author svg{fill:#949494}.edit-site-sidebar-navigation-screen-template__added-by-description-author-icon{height:24px;margin-right:8px;width:24px}.edit-site-sidebar-navigation-screen-template__template-area-button{align-items:center;border-radius:4px;color:#fff;display:flex;flex-wrap:nowrap;width:100%}.edit-site-sidebar-navigation-screen-template__template-area-button:focus,.edit-site-sidebar-navigation-screen-template__template-area-button:hover{background:#2f2f2f;color:#fff}.edit-site-sidebar-navigation-screen-template__template-area-label-text{flex-grow:1;margin:0 16px 0 4px}.edit-site-sidebar-navigation-screen-template__template-icon{display:flex}.edit-site-site-hub{align-items:center;display:flex;gap:8px;justify-content:space-between}.edit-site-site-hub .edit-site-site-hub__container{gap:0}.edit-site-site-hub .edit-site-site-hub__site-title,.edit-site-site-hub .edit-site-site-hub_toggle-command-center{transition:opacity .1s ease}.edit-site-site-hub .edit-site-site-hub__site-title.is-transparent,.edit-site-site-hub .edit-site-site-hub_toggle-command-center.is-transparent{opacity:0!important}.edit-site-site-hub .edit-site-site-hub__site-view-link{flex-grow:0;margin-right:var(--wp-admin-border-width-focus)}@media (min-width:480px){.edit-site-site-hub .edit-site-site-hub__site-view-link{opacity:0;transition:opacity .2s ease-in-out}}.edit-site-site-hub .edit-site-site-hub__site-view-link:focus{opacity:1}.edit-site-site-hub .edit-site-site-hub__site-view-link svg{fill:#e0e0e0}.edit-site-site-hub:hover .edit-site-site-hub__site-view-link{opacity:1}.edit-site-site-hub__post-type{opacity:.6}.edit-site-site-hub__view-mode-toggle-container{background:#1e1e1e;flex-shrink:0;height:60px;width:60px}.edit-site-site-hub__view-mode-toggle-container.has-transparent-background{background:transparent}.edit-site-site-hub__text-content{overflow:hidden}.edit-site-site-hub__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-site-site-hub__site-title{color:#e0e0e0;flex-grow:1;margin-left:4px}.edit-site-site-hub_toggle-command-center{color:#e0e0e0}.edit-site-site-hub_toggle-command-center:hover{color:#f0f0f0}.edit-site-sidebar-navigation-screen__description{margin:0 0 32px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf{border-radius:2px;max-width:calc(100% - 4px)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf[aria-current]{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block__menu{margin-left:-8px}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected>td{background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block-contents{color:inherit}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:not(:hover) .block-editor-list-view-block__menu{opacity:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:focus .block-editor-list-view-block__menu-cell,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected:hover .block-editor-list-view-block__menu-cell{opacity:1}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf .block-editor-list-view-block-contents:focus:after,.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-selected .block-editor-list-view-block__menu:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch){background:transparent}.edit-site-sidebar-navigation-screen-navigation-menus__content .offcanvas-editor-list-view-leaf.is-branch-selected:not(.is-selected):not(.is-synced-branch):hover{background:#2f2f2f}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block__contents-cell{width:100%}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-leaf .block-editor-list-view-block-contents{white-space:normal}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__title{margin-top:3px}.edit-site-sidebar-navigation-screen-navigation-menus__content .block-editor-list-view-block__menu-cell{padding-right:0}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button{color:#949494}.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:focus,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button:hover,.edit-site-sidebar-navigation-screen-navigation-menus__content .components-button[aria-current]{color:#fff}.edit-site-sidebar-navigation-screen-navigation-menus__loading.components-spinner{display:block;margin-left:auto;margin-right:auto}.edit-site-sidebar-navigation-screen-navigation-menus__helper-block-editor{display:none}.edit-site-site-icon__icon{fill:currentColor}.edit-site-site-icon__image{background:#333;border-radius:4px;height:auto;object-fit:cover;width:100%}.edit-site-layout.is-full-canvas.is-edit-mode .edit-site-site-icon__image{border-radius:0}.edit-site-style-book{height:100%}.edit-site-style-book.is-button,.edit-site-style-book__iframe.is-button{border-radius:8px}.edit-site-style-book__iframe.is-focused{outline:calc(var(--wp-admin-border-width-focus)*2) solid var(--wp-admin-theme-color);outline-offset:calc(var(--wp-admin-border-width-focus)*-2)}.edit-site-style-book__tab-panel .components-tab-panel__tabs{background:#fff;color:#1e1e1e}.edit-site-style-book__tab-panel .components-tab-panel__tab-content{bottom:0;left:0;overflow:auto;padding:0;position:absolute;right:0;top:48px}.edit-site-editor-canvas-container{background:#fff;border-radius:2px;bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0;transition:all .3s}.edit-site-editor-canvas-container__close-button{background:#fff;position:absolute;right:8px;top:6px;z-index:1}.edit-site-resizable-frame__inner{position:relative}body:has(.edit-site-resizable-frame__inner.is-resizing){cursor:col-resize;user-select:none;-webkit-user-select:none}.edit-site-resizable-frame__inner.is-resizing:before{content:"";inset:0;position:absolute;z-index:1}.edit-site-resizable-frame__inner-content{inset:0;position:absolute;z-index:0}.edit-site-resizable-frame__handle{align-items:center;background-color:hsla(0,0%,46%,.4);border:0;border-radius:4px;cursor:col-resize;display:flex;height:64px;justify-content:flex-end;padding:0;position:absolute;top:calc(50% - 32px);width:4px;z-index:100}.edit-site-resizable-frame__handle:before{content:"";height:100%;left:100%;position:absolute;width:32px}.edit-site-resizable-frame__handle:after{content:"";height:100%;position:absolute;right:100%;width:32px}.edit-site-resizable-frame__handle:focus-visible{outline:2px solid transparent}.edit-site-resizable-frame__handle.is-resizing,.edit-site-resizable-frame__handle:focus,.edit-site-resizable-frame__handle:hover{background-color:var(--wp-admin-theme-color)}.edit-site-push-changes-to-global-styles-control .components-button{justify-content:center;width:100%}@media (min-width:782px){.font-library-modal.font-library-modal{width:65vw}}.font-library-modal .components-modal__header{border-bottom:none}.font-library-modal .components-modal__content{padding-top:0}.font-library-modal .font-library-modal__subtitle{font-size:11px;font-weight:500;text-transform:uppercase}.font-library-modal__tab-layout main{padding-bottom:4rem}.font-library-modal__tab-layout footer{background-color:#fff;border-top:1px solid #e5e5e5;bottom:32px;margin:0 -32px -32px;padding:16px 32px;position:absolute;width:100%}.font-library-modal__fonts-grid .font-library-modal__fonts-grid__main{display:flex;flex-direction:column}.font-library-modal__font-card{border:1px solid #e5e5e5;height:auto;margin-top:-1px;padding:1rem}.font-library-modal__font-card .font-library-modal__font-card__name{font-weight:700}.font-library-modal__font-card .font-library-modal__font-card__count{color:#6e6e6e}.font-library-modal__library-font-variant{border:1px solid #e5e5e5;margin-top:-1px;padding:1rem}.font-library-modal__font-variant{border-bottom:1px solid #e5e5e5;padding-bottom:1rem}.font-library-modal__tab-panel [role=tablist]{background:#fff;border-bottom:1px solid #e6e6e6;margin:0 -32px;padding:0 16px;position:sticky;top:0;width:calc(100% + 64px);z-index:1}.font-library-modal__upload-area{align-items:center;background-color:#f0f0f0;display:flex;height:250px;justify-content:center;width:100%}.font-library-modal__local-fonts{margin:0 auto;width:80%}.font-library-modal__local-fonts .font-library-modal__upload-area__text{color:#6e6e6e}.font-library-modal__local-fonts .font-library-modal__upload-area__notice{margin:0}.font-library-modal__font-name{font-weight:700}.font-library-modal__font-filename{color:#6e6e6e}.font-library-modal__font-variant_demo-wrapper{overflow:hidden;position:relative;white-space:nowrap;width:100%}.font-library-modal__font-variant_demo-wrapper:after{background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff);bottom:0;content:"";height:100%;position:absolute;right:0;width:30vw}.font-library__google-fonts-confirm{align-items:center;display:flex;justify-content:center}.font-library__google-fonts-confirm h3{font-size:1.4rem}.font-library__google-fonts-confirm .components-card{max-width:350px;min-width:250px;width:50%}.font-library-modal__font-collection__notice{margin:0}body.js #wpadminbar{display:none}body.js #wpbody{padding-top:0}body.js.appearance_page_gutenberg-template-parts,body.js.site-editor-php{background:#fff}body.js.appearance_page_gutenberg-template-parts #wpcontent,body.js.site-editor-php #wpcontent{padding-left:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content,body.js.site-editor-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-template-parts #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.appearance_page_gutenberg-template-parts #wpfooter,body.js.site-editor-php #wpbody-content>div:not(.edit-site):not(#screen-meta),body.js.site-editor-php #wpfooter{display:none}body.js.appearance_page_gutenberg-template-parts .a11y-speak-region,body.js.site-editor-php .a11y-speak-region{left:-1px;top:-1px}body.js.appearance_page_gutenberg-template-parts ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-template-parts ul#adminmenu>li.current>a.current:after,body.js.site-editor-php ul#adminmenu a.wp-has-current-submenu:after,body.js.site-editor-php ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.appearance_page_gutenberg-template-parts .media-frame select.attachment-filters:last-of-type,body.js.site-editor-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}body.js.site-editor-php{background:#1e1e1e}.components-modal__frame,.edit-site{box-sizing:border-box}.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before,.edit-site *,.edit-site :after,.edit-site :before{box-sizing:inherit}.edit-site{height:100vh}@media (min-width:600px){.edit-site{bottom:0;left:0;min-height:100vh;position:fixed;right:0;top:0}}.no-js .edit-site{min-height:0;position:static}.edit-site .interface-interface-skeleton{top:0}.edit-site .interface-complementary-area__pin-unpin-item.components-button{display:none}.edit-site .interface-interface-skeleton__content{background-color:#1e1e1e}@keyframes edit-post__fade-in-animation{0%{opacity:0}to{opacity:1}}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.css index 6fa2151c6a..efca586f3e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-left:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,6 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } +} +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } +} +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } +} +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } +} + +.interface-preferences__tabs .components-tab-panel__tabs{ + position:absolute; + right:16px; + top:84px; + width:160px; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; + font-weight:400; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; + font-weight:500; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-right:160px; + padding-right:24px; +} + +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; + } +} +.interface-preferences-modal__section{ + margin:0 0 2.5rem; +} +.interface-preferences-modal__section:last-child{ + margin:0; +} + +.interface-preferences-modal__section-legend{ + margin-bottom:8px; +} + +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; +} + +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; +} + +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; +} +.interface-preferences-modal__option .components-base-control__help{ + margin-right:48px; + margin-top:0; } .wp-block[data-type="core/widget-area"]{ @@ -444,31 +531,10 @@ body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .c overflow:visible; } } -.edit-widgets-header .selected-block-tools-wrapper{ - overflow-x:hidden; -} -.edit-widgets-header .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group{ - border-left:none; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-right:8px; - margin-top:12px; - width:1px; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after{ - display:none; -} .edit-widgets-header__navigable-toolbar-wrapper{ align-items:center; display:flex; - flex-shrink:2; justify-content:center; padding-right:16px; } @@ -492,7 +558,7 @@ body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .c } .edit-widgets-header-toolbar{ - gap:8px; + border:none; } .edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{ height:36px; @@ -717,6 +783,7 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ .edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{ border-bottom:1px solid rgba(0,0,0,.2); box-sizing:border-box; + margin:0; min-height:60px; padding:0 12px; } @@ -749,6 +816,12 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ } } +@media (min-width:782px){ + .blocks-widgets-container .interface-interface-skeleton__header:not(:focus-within){ + z-index:19; + } +} + .edit-widgets-welcome-guide{ width:312px; } @@ -799,6 +872,89 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ padding:6px; } +.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:160px; + } +} +.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0; +} +@media (min-width:783px){ + .folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:36px; + } +} + +body.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + right:0 !important; +} + +.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; +} +@media (min-width:782px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + border-bottom:none; + display:flex; + height:60px; + margin-right:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:240px; + top:0; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:144px; + } + .blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-right:153.6px; + } + .blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed{ + margin-right:268.8px; + } +} +@media (min-width:960px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } +} + .edit-widgets-editor__list-view-panel{ display:flex; flex-direction:column; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.min.css index bd9bf8262c..c5e7684274 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.wp-block[data-type="core/widget-area"]{margin-left:auto;margin-right:auto;max-width:700px}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:48px;margin:0;position:relative;transform:translateZ(0);z-index:1}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title:hover{background:#fff}.wp-block[data-type="core/widget-area"] .block-list-appender.wp-block{position:relative;width:auto}.wp-block[data-type="core/widget-area"] .editor-styles-wrapper .wp-block.wp-block.wp-block.wp-block.wp-block{max-width:100%}.wp-block[data-type="core/widget-area"] .components-panel__body.is-opened{padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper{margin:0;padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper>.block-editor-block-list__layout{margin-top:-48px;min-height:32px;padding:72px 16px 16px}.wp-block-widget-area__highlight-drop-zone{outline:var(--wp-admin-border-width-focus) solid var(--wp-admin-theme-color)}body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title,body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title *{pointer-events:none}.edit-widgets-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.edit-widgets-header{align-items:center;background:#fff;display:flex;height:60px;justify-content:space-between;overflow:auto}@media (min-width:600px){.edit-widgets-header{overflow:visible}}.edit-widgets-header .selected-block-tools-wrapper{overflow-x:hidden}.edit-widgets-header .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group{border-left:none}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-right:8px;margin-top:12px;width:1px}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after{display:none}.edit-widgets-header__navigable-toolbar-wrapper{align-items:center;display:flex;flex-shrink:2;justify-content:center;padding-right:16px}.edit-widgets-header__title{font-size:20px;margin:0 0 0 20px;padding:0}.edit-widgets-header__actions{align-items:center;display:flex;gap:4px;padding-left:16px}@media (min-width:600px){.edit-widgets-header__actions{gap:8px}}.edit-widgets-header-toolbar{gap:8px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{height:36px;min-width:36px;padding:6px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon.is-pressed,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon.is-pressed{background:#1e1e1e}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:focus:not(:disabled),.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:before,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:before{display:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:12px;padding-right:12px}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle:after{content:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.edit-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.components-panel__header.edit-widgets-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:4px;padding-right:0}.components-panel__header.edit-widgets-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-widgets-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:none;margin-right:auto}@media (min-width:782px){.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-widgets-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-button.edit-widgets-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-widgets-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-widgets-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-widgets-widget-areas__top-container{display:flex;padding:16px}.edit-widgets-widget-areas__top-container .block-editor-block-icon{margin-left:16px}.edit-widgets-notices__snackbar{bottom:20px;left:0;padding-left:16px;padding-right:16px;position:fixed;right:0}@media (min-width:783px){.edit-widgets-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-widgets-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-widgets-notices__snackbar{right:160px}}.folded .edit-widgets-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-widgets-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-widgets-notices__snackbar{right:0!important}.edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;min-height:60px;padding:0 12px}.edit-widgets-notices__dismissible .components-notice .components-notice__dismiss,.edit-widgets-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.edit-widgets-layout__inserter-panel{display:flex;flex-direction:column;height:100%}.edit-widgets-layout__inserter-panel .block-editor-inserter__menu{overflow:hidden}.edit-widgets-layout__inserter-panel-header{display:flex;justify-content:flex-end;padding-left:8px;padding-top:8px}.edit-widgets-layout__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-widgets-layout__inserter-panel-content{height:100%}}.edit-widgets-welcome-guide{width:312px}.edit-widgets-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-widgets-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-widgets-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-widgets-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-widgets-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-widgets-block-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:relative}.edit-widgets-block-editor,.edit-widgets-block-editor .block-editor-writing-flow,.edit-widgets-block-editor>div:last-of-type{display:flex;flex-direction:column;flex-grow:1}.edit-widgets-block-editor .edit-widgets-main-block-list{height:100%}.edit-widgets-block-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.edit-widgets-block-editor .components-button.has-icon,.edit-widgets-block-editor .components-button.is-tertiary{padding:6px}.edit-widgets-editor__list-view-panel{display:flex;flex-direction:column;height:100%;min-width:350px}.edit-widgets-editor__list-view-panel-content{height:calc(100% - 44px);overflow-y:auto;padding:8px}.edit-widgets-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:4px;padding-right:16px}body.js.appearance_page_gutenberg-widgets,body.js.widgets-php{background:#fff}body.js.appearance_page_gutenberg-widgets #wpcontent,body.js.widgets-php #wpcontent{padding-right:0}body.js.appearance_page_gutenberg-widgets #wpbody-content,body.js.widgets-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-widgets #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.appearance_page_gutenberg-widgets #wpfooter,body.js.widgets-php #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.widgets-php #wpfooter{display:none}body.js.appearance_page_gutenberg-widgets .a11y-speak-region,body.js.widgets-php .a11y-speak-region{right:-1px;top:-1px}body.js.appearance_page_gutenberg-widgets ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-widgets ul#adminmenu>li.current>a.current:after,body.js.widgets-php ul#adminmenu a.wp-has-current-submenu:after,body.js.widgets-php ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.appearance_page_gutenberg-widgets .media-frame select.attachment-filters:last-of-type,body.js.widgets-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.blocks-widgets-container,.components-modal__frame{box-sizing:border-box}.blocks-widgets-container *,.blocks-widgets-container :after,.blocks-widgets-container :before,.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before{box-sizing:inherit}@media (min-width:600px){.blocks-widgets-container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.blocks-widgets-container{min-height:calc(100vh - 32px)}}.blocks-widgets-container .interface-interface-skeleton__content{background-color:#f0f0f0}.blocks-widgets-container .editor-styles-wrapper{margin:auto;max-width:700px}.edit-widgets-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}.js .widgets-php .notice{display:none!important}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-right:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-right:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media (min-width:783px){.interface-interface-skeleton{right:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{right:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media (min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-right:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-left:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{position:absolute;right:16px;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-right:160px;padding-right:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-right:48px;margin-top:0}.wp-block[data-type="core/widget-area"]{margin-left:auto;margin-right:auto;max-width:700px}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:48px;margin:0;position:relative;transform:translateZ(0);z-index:1}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title:hover{background:#fff}.wp-block[data-type="core/widget-area"] .block-list-appender.wp-block{position:relative;width:auto}.wp-block[data-type="core/widget-area"] .editor-styles-wrapper .wp-block.wp-block.wp-block.wp-block.wp-block{max-width:100%}.wp-block[data-type="core/widget-area"] .components-panel__body.is-opened{padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper{margin:0;padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper>.block-editor-block-list__layout{margin-top:-48px;min-height:32px;padding:72px 16px 16px}.wp-block-widget-area__highlight-drop-zone{outline:var(--wp-admin-border-width-focus) solid var(--wp-admin-theme-color)}body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title,body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title *{pointer-events:none}.edit-widgets-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.edit-widgets-header{align-items:center;background:#fff;display:flex;height:60px;justify-content:space-between;overflow:auto}@media (min-width:600px){.edit-widgets-header{overflow:visible}}.edit-widgets-header__navigable-toolbar-wrapper{align-items:center;display:flex;justify-content:center;padding-right:16px}.edit-widgets-header__title{font-size:20px;margin:0 0 0 20px;padding:0}.edit-widgets-header__actions{align-items:center;display:flex;gap:4px;padding-left:16px}@media (min-width:600px){.edit-widgets-header__actions{gap:8px}}.edit-widgets-header-toolbar{border:none}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{height:36px;min-width:36px;padding:6px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon.is-pressed,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon.is-pressed{background:#1e1e1e}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:focus:not(:disabled),.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:before,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:before{display:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:12px;padding-right:12px}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle:after{content:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.edit-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 1rem 0 0;text-align:left}.edit-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 .2rem 0 0}.components-panel__header.edit-widgets-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:4px;padding-right:0}.components-panel__header.edit-widgets-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-widgets-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:none;margin-right:auto}@media (min-width:782px){.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-widgets-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-right:0;padding:3px 16px;position:relative}.components-button.edit-widgets-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-widgets-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-widgets-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-widgets-widget-areas__top-container{display:flex;padding:16px}.edit-widgets-widget-areas__top-container .block-editor-block-icon{margin-left:16px}.edit-widgets-notices__snackbar{bottom:20px;left:0;padding-left:16px;padding-right:16px;position:fixed;right:0}@media (min-width:783px){.edit-widgets-notices__snackbar{right:160px}}@media (min-width:783px){.auto-fold .edit-widgets-notices__snackbar{right:36px}}@media (min-width:961px){.auto-fold .edit-widgets-notices__snackbar{right:160px}}.folded .edit-widgets-notices__snackbar{right:0}@media (min-width:783px){.folded .edit-widgets-notices__snackbar{right:36px}}body.is-fullscreen-mode .edit-widgets-notices__snackbar{right:0!important}.edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;margin:0;min-height:60px;padding:0 12px}.edit-widgets-notices__dismissible .components-notice .components-notice__dismiss,.edit-widgets-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.edit-widgets-layout__inserter-panel{display:flex;flex-direction:column;height:100%}.edit-widgets-layout__inserter-panel .block-editor-inserter__menu{overflow:hidden}.edit-widgets-layout__inserter-panel-header{display:flex;justify-content:flex-end;padding-left:8px;padding-top:8px}.edit-widgets-layout__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-widgets-layout__inserter-panel-content{height:100%}}@media (min-width:782px){.blocks-widgets-container .interface-interface-skeleton__header:not(:focus-within){z-index:19}}.edit-widgets-welcome-guide{width:312px}.edit-widgets-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-widgets-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-widgets-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-widgets-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-widgets-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-widgets-block-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:relative}.edit-widgets-block-editor,.edit-widgets-block-editor .block-editor-writing-flow,.edit-widgets-block-editor>div:last-of-type{display:flex;flex-direction:column;flex-grow:1}.edit-widgets-block-editor .edit-widgets-main-block-list{height:100%}.edit-widgets-block-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.edit-widgets-block-editor .components-button.has-icon,.edit-widgets-block-editor .components-button.is-tertiary{padding:6px}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}@media (min-width:783px){.auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}@media (min-width:961px){.auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:160px}}.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:0}@media (min-width:783px){.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:36px}}body.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{right:0!important}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;border-bottom:none;display:flex;height:60px;margin-right:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:240px;top:0}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:144px}.blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-right:153.6px}.blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed{margin-right:268.8px}}@media (min-width:960px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-widgets-editor__list-view-panel{display:flex;flex-direction:column;height:100%;min-width:350px}.edit-widgets-editor__list-view-panel-content{height:calc(100% - 44px);overflow-y:auto;padding:8px}.edit-widgets-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:4px;padding-right:16px}body.js.appearance_page_gutenberg-widgets,body.js.widgets-php{background:#fff}body.js.appearance_page_gutenberg-widgets #wpcontent,body.js.widgets-php #wpcontent{padding-right:0}body.js.appearance_page_gutenberg-widgets #wpbody-content,body.js.widgets-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-widgets #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.appearance_page_gutenberg-widgets #wpfooter,body.js.widgets-php #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.widgets-php #wpfooter{display:none}body.js.appearance_page_gutenberg-widgets .a11y-speak-region,body.js.widgets-php .a11y-speak-region{right:-1px;top:-1px}body.js.appearance_page_gutenberg-widgets ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-widgets ul#adminmenu>li.current>a.current:after,body.js.widgets-php ul#adminmenu a.wp-has-current-submenu:after,body.js.widgets-php ul#adminmenu>li.current>a.current:after{border-left-color:#fff}body.js.appearance_page_gutenberg-widgets .media-frame select.attachment-filters:last-of-type,body.js.widgets-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.blocks-widgets-container,.components-modal__frame{box-sizing:border-box}.blocks-widgets-container *,.blocks-widgets-container :after,.blocks-widgets-container :before,.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before{box-sizing:inherit}@media (min-width:600px){.blocks-widgets-container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.blocks-widgets-container{min-height:calc(100vh - 32px)}}.blocks-widgets-container .interface-interface-skeleton__content{background-color:#f0f0f0}.blocks-widgets-container .editor-styles-wrapper{margin:auto;max-width:700px}.edit-widgets-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}.js .widgets-php .notice{display:none!important}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.css index a5560007dc..6b9f2be260 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.css @@ -359,7 +359,8 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items{ display:flex; - gap:8px; + gap:4px; + margin-right:-4px; } .interface-pinned-items .components-button{ display:none; @@ -376,6 +377,92 @@ body.is-fullscreen-mode .interface-interface-skeleton{ .interface-pinned-items .components-button{ display:flex; } + .interface-preferences-modal{ + height:calc(100% - 120px); + width:calc(100% - 32px); + } +} +@media (min-width:782px){ + .interface-preferences-modal{ + width:750px; + } +} +@media (min-width:960px){ + .interface-preferences-modal{ + height:70%; + } +} +@media (max-width:781px){ + .interface-preferences-modal .components-modal__content{ + padding:0; + } +} + +.interface-preferences__tabs .components-tab-panel__tabs{ + left:16px; + position:absolute; + top:84px; + width:160px; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{ + border-radius:2px; + font-weight:400; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{ + background:#f0f0f0; + box-shadow:none; + font-weight:500; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){ + box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); + outline:2px solid transparent; +} +.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{ + content:none; +} +.interface-preferences__tabs .components-tab-panel__tab-content{ + margin-left:160px; + padding-left:24px; +} + +@media (max-width:781px){ + .interface-preferences__provider{ + height:100%; + } +} +.interface-preferences-modal__section{ + margin:0 0 2.5rem; +} +.interface-preferences-modal__section:last-child{ + margin:0; +} + +.interface-preferences-modal__section-legend{ + margin-bottom:8px; +} + +.interface-preferences-modal__section-title{ + font-size:.9rem; + font-weight:600; + margin-top:0; +} + +.interface-preferences-modal__section-description{ + color:#757575; + font-size:12px; + font-style:normal; + margin:-8px 0 8px; +} + +.interface-preferences-modal__option+.interface-preferences-modal__option{ + margin-top:16px; +} +.interface-preferences-modal__option .components-base-control__help{ + margin-left:48px; + margin-top:0; } .wp-block[data-type="core/widget-area"]{ @@ -444,31 +531,10 @@ body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .c overflow:visible; } } -.edit-widgets-header .selected-block-tools-wrapper{ - overflow-x:hidden; -} -.edit-widgets-header .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{ - border-bottom:0; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group{ - border-right:none; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar:after{ - background-color:#ddd; - content:""; - margin-bottom:12px; - margin-left:8px; - margin-top:12px; - width:1px; -} -.edit-widgets-header .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after{ - display:none; -} .edit-widgets-header__navigable-toolbar-wrapper{ align-items:center; display:flex; - flex-shrink:2; justify-content:center; padding-left:16px; } @@ -492,7 +558,7 @@ body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .c } .edit-widgets-header-toolbar{ - gap:8px; + border:none; } .edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{ height:36px; @@ -717,6 +783,7 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ .edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{ border-bottom:1px solid rgba(0,0,0,.2); box-sizing:border-box; + margin:0; min-height:60px; padding:0 12px; } @@ -749,6 +816,12 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ } } +@media (min-width:782px){ + .blocks-widgets-container .interface-interface-skeleton__header:not(:focus-within){ + z-index:19; + } +} + .edit-widgets-welcome-guide{ width:312px; } @@ -799,6 +872,89 @@ body.is-fullscreen-mode .edit-widgets-notices__snackbar{ padding:6px; } +.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +@media (min-width:783px){ + .auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} +@media (min-width:961px){ + .auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:160px; + } +} +.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0; +} +@media (min-width:783px){ + .folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:36px; + } +} + +body.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + left:0 !important; +} + +.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + display:block; + position:sticky; + top:0; + width:100%; + z-index:31; +} +@media (min-width:782px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + align-items:center; + border-bottom:none; + display:flex; + height:60px; + margin-left:180px; + min-height:auto; + position:fixed; + top:32px; + width:calc(100% - 180px); + } + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:240px; + top:0; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{ + width:auto; + } + .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:80px; + width:calc(100% - 140px); + } + .is-fullscreen-mode .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:144px; + } + .blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + margin-left:153.6px; + } + .blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed{ + margin-left:268.8px; + } +} +@media (min-width:960px){ + .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:auto; + } + .is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{ + width:calc(100% - 536px); + } +} + .edit-widgets-editor__list-view-panel{ display:flex; flex-direction:column; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.min.css index a665e8376b..7b0890ba1a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/edit-widgets/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:8px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}}.wp-block[data-type="core/widget-area"]{margin-left:auto;margin-right:auto;max-width:700px}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:48px;margin:0;position:relative;transform:translateZ(0);z-index:1}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title:hover{background:#fff}.wp-block[data-type="core/widget-area"] .block-list-appender.wp-block{position:relative;width:auto}.wp-block[data-type="core/widget-area"] .editor-styles-wrapper .wp-block.wp-block.wp-block.wp-block.wp-block{max-width:100%}.wp-block[data-type="core/widget-area"] .components-panel__body.is-opened{padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper{margin:0;padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper>.block-editor-block-list__layout{margin-top:-48px;min-height:32px;padding:72px 16px 16px}.wp-block-widget-area__highlight-drop-zone{outline:var(--wp-admin-border-width-focus) solid var(--wp-admin-theme-color)}body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title,body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title *{pointer-events:none}.edit-widgets-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.edit-widgets-header{align-items:center;background:#fff;display:flex;height:60px;justify-content:space-between;overflow:auto}@media (min-width:600px){.edit-widgets-header{overflow:visible}}.edit-widgets-header .selected-block-tools-wrapper{overflow-x:hidden}.edit-widgets-header .selected-block-tools-wrapper .block-editor-block-contextual-toolbar{border-bottom:0}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group{border-right:none}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar:after{background-color:#ddd;content:"";margin-bottom:12px;margin-left:8px;margin-top:12px;width:1px}.edit-widgets-header .selected-block-tools-wrapper .components-toolbar .components-toolbar-group.components-toolbar-group:after,.edit-widgets-header .selected-block-tools-wrapper .components-toolbar-group .components-toolbar-group.components-toolbar-group:after{display:none}.edit-widgets-header__navigable-toolbar-wrapper{align-items:center;display:flex;flex-shrink:2;justify-content:center;padding-left:16px}.edit-widgets-header__title{font-size:20px;margin:0 20px 0 0;padding:0}.edit-widgets-header__actions{align-items:center;display:flex;gap:4px;padding-right:16px}@media (min-width:600px){.edit-widgets-header__actions{gap:8px}}.edit-widgets-header-toolbar{gap:8px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{height:36px;min-width:36px;padding:6px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon.is-pressed,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon.is-pressed{background:#1e1e1e}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:focus:not(:disabled),.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:before,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:before{display:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:12px;padding-right:12px}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle:after{content:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.edit-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.components-panel__header.edit-widgets-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:4px}.components-panel__header.edit-widgets-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-widgets-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:none;margin-left:auto}@media (min-width:782px){.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-widgets-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-button.edit-widgets-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-widgets-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-widgets-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-widgets-widget-areas__top-container{display:flex;padding:16px}.edit-widgets-widget-areas__top-container .block-editor-block-icon{margin-right:16px}.edit-widgets-notices__snackbar{bottom:20px;left:0;padding-left:16px;padding-right:16px;position:fixed;right:0}@media (min-width:783px){.edit-widgets-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-widgets-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-widgets-notices__snackbar{left:160px}}.folded .edit-widgets-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-widgets-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-widgets-notices__snackbar{left:0!important}.edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;min-height:60px;padding:0 12px}.edit-widgets-notices__dismissible .components-notice .components-notice__dismiss,.edit-widgets-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.edit-widgets-layout__inserter-panel{display:flex;flex-direction:column;height:100%}.edit-widgets-layout__inserter-panel .block-editor-inserter__menu{overflow:hidden}.edit-widgets-layout__inserter-panel-header{display:flex;justify-content:flex-end;padding-right:8px;padding-top:8px}.edit-widgets-layout__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-widgets-layout__inserter-panel-content{height:100%}}.edit-widgets-welcome-guide{width:312px}.edit-widgets-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-widgets-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-widgets-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-widgets-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-widgets-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-widgets-block-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:relative}.edit-widgets-block-editor,.edit-widgets-block-editor .block-editor-writing-flow,.edit-widgets-block-editor>div:last-of-type{display:flex;flex-direction:column;flex-grow:1}.edit-widgets-block-editor .edit-widgets-main-block-list{height:100%}.edit-widgets-block-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.edit-widgets-block-editor .components-button.has-icon,.edit-widgets-block-editor .components-button.is-tertiary{padding:6px}.edit-widgets-editor__list-view-panel{display:flex;flex-direction:column;height:100%;min-width:350px}.edit-widgets-editor__list-view-panel-content{height:calc(100% - 44px);overflow-y:auto;padding:8px}.edit-widgets-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:16px;padding-right:4px}body.js.appearance_page_gutenberg-widgets,body.js.widgets-php{background:#fff}body.js.appearance_page_gutenberg-widgets #wpcontent,body.js.widgets-php #wpcontent{padding-left:0}body.js.appearance_page_gutenberg-widgets #wpbody-content,body.js.widgets-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-widgets #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.appearance_page_gutenberg-widgets #wpfooter,body.js.widgets-php #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.widgets-php #wpfooter{display:none}body.js.appearance_page_gutenberg-widgets .a11y-speak-region,body.js.widgets-php .a11y-speak-region{left:-1px;top:-1px}body.js.appearance_page_gutenberg-widgets ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-widgets ul#adminmenu>li.current>a.current:after,body.js.widgets-php ul#adminmenu a.wp-has-current-submenu:after,body.js.widgets-php ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.appearance_page_gutenberg-widgets .media-frame select.attachment-filters:last-of-type,body.js.widgets-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.blocks-widgets-container,.components-modal__frame{box-sizing:border-box}.blocks-widgets-container *,.blocks-widgets-container :after,.blocks-widgets-container :before,.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before{box-sizing:inherit}@media (min-width:600px){.blocks-widgets-container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.blocks-widgets-container{min-height:calc(100vh - 32px)}}.blocks-widgets-container .interface-interface-skeleton__content{background-color:#f0f0f0}.blocks-widgets-container .editor-styles-wrapper{margin:auto;max-width:700px}.edit-widgets-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}.js .widgets-php .notice{display:none!important}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media (min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area-header .components-button.has-icon{display:none;margin-left:auto}.interface-complementary-area-header .components-button.has-icon~.components-button{margin-left:0}@media (min-width:782px){.interface-complementary-area-header .components-button.has-icon{display:flex}.components-panel__header+.interface-complementary-area-header{margin-top:0}}.interface-complementary-area{background:#fff;color:#1e1e1e}@media (min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media (min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media (min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p:not(.components-base-control__help){margin-top:0}.interface-complementary-area h2{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area h3{color:#1e1e1e;font-size:11px;font-weight:500;margin-bottom:1.5em;text-transform:uppercase}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media (min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media (min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media (min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media (min-width:783px){.interface-interface-skeleton{left:160px}}@media (min-width:783px){.auto-fold .interface-interface-skeleton{left:36px}}@media (min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media (min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__body{display:flex;flex-grow:1;overflow:auto;overscroll-behavior-y:none}@media (min-width:782px){.has-footer .interface-interface-skeleton__body{padding-bottom:25px}}.interface-interface-skeleton__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;z-index:20}@media (min-width:782px){.interface-interface-skeleton__content{z-index:auto}}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto}.is-sidebar-opened .interface-interface-skeleton__secondary-sidebar,.is-sidebar-opened .interface-interface-skeleton__sidebar{z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media (min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media (min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{background:#fff;bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:100vw;z-index:100000}@media (min-width:782px){.interface-interface-skeleton__actions{width:280px}}.interface-interface-skeleton__actions:focus,.interface-interface-skeleton__actions:focus-within{bottom:0;top:auto}.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:46px}@media (min-width:782px){.is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{border-left:1px solid #ddd;top:32px}.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus,.is-fullscreen-mode .is-entity-save-view-open .interface-interface-skeleton__actions:focus-within{top:0}}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media (min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media (min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex;gap:4px;margin-right:-4px}.interface-pinned-items .components-button{display:none;margin:0}.interface-pinned-items .components-button[aria-controls="edit-post:block"],.interface-pinned-items .components-button[aria-controls="edit-post:document"],.interface-pinned-items .components-button[aria-controls="edit-site:block-inspector"],.interface-pinned-items .components-button[aria-controls="edit-site:global-styles"],.interface-pinned-items .components-button[aria-controls="edit-site:template"]{display:flex}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}@media (min-width:600px){.interface-pinned-items .components-button{display:flex}.interface-preferences-modal{height:calc(100% - 120px);width:calc(100% - 32px)}}@media (min-width:782px){.interface-preferences-modal{width:750px}}@media (min-width:960px){.interface-preferences-modal{height:70%}}@media (max-width:781px){.interface-preferences-modal .components-modal__content{padding:0}}.interface-preferences__tabs .components-tab-panel__tabs{left:16px;position:absolute;top:84px;width:160px}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item{border-radius:2px;font-weight:400}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active{background:#f0f0f0;box-shadow:none;font-weight:500}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item.is-active:after{content:none}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus:not(:disabled){box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.interface-preferences__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item:focus-visible:before{content:none}.interface-preferences__tabs .components-tab-panel__tab-content{margin-left:160px;padding-left:24px}@media (max-width:781px){.interface-preferences__provider{height:100%}}.interface-preferences-modal__section{margin:0 0 2.5rem}.interface-preferences-modal__section:last-child{margin:0}.interface-preferences-modal__section-legend{margin-bottom:8px}.interface-preferences-modal__section-title{font-size:.9rem;font-weight:600;margin-top:0}.interface-preferences-modal__section-description{color:#757575;font-size:12px;font-style:normal;margin:-8px 0 8px}.interface-preferences-modal__option+.interface-preferences-modal__option{margin-top:16px}.interface-preferences-modal__option .components-base-control__help{margin-left:48px;margin-top:0}.wp-block[data-type="core/widget-area"]{margin-left:auto;margin-right:auto;max-width:700px}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:48px;margin:0;position:relative;transform:translateZ(0);z-index:1}.wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title:hover{background:#fff}.wp-block[data-type="core/widget-area"] .block-list-appender.wp-block{position:relative;width:auto}.wp-block[data-type="core/widget-area"] .editor-styles-wrapper .wp-block.wp-block.wp-block.wp-block.wp-block{max-width:100%}.wp-block[data-type="core/widget-area"] .components-panel__body.is-opened{padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper{margin:0;padding:0}.blocks-widgets-container .wp-block-widget-area__inner-blocks.editor-styles-wrapper>.block-editor-block-list__layout{margin-top:-48px;min-height:32px;padding:72px 16px 16px}.wp-block-widget-area__highlight-drop-zone{outline:var(--wp-admin-border-width-focus) solid var(--wp-admin-theme-color)}body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title,body.is-dragging-components-draggable .wp-block[data-type="core/widget-area"] .components-panel__body>.components-panel__body-title *{pointer-events:none}.edit-widgets-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.edit-widgets-header{align-items:center;background:#fff;display:flex;height:60px;justify-content:space-between;overflow:auto}@media (min-width:600px){.edit-widgets-header{overflow:visible}}.edit-widgets-header__navigable-toolbar-wrapper{align-items:center;display:flex;justify-content:center;padding-left:16px}.edit-widgets-header__title{font-size:20px;margin:0 20px 0 0;padding:0}.edit-widgets-header__actions{align-items:center;display:flex;gap:4px;padding-right:16px}@media (min-width:600px){.edit-widgets-header__actions{gap:8px}}.edit-widgets-header-toolbar{border:none}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon{height:36px;min-width:36px;padding:6px}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon.is-pressed,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon.is-pressed{background:#1e1e1e}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:focus:not(:disabled),.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.edit-widgets-header-toolbar>.components-button.has-icon.has-icon.has-icon:before,.edit-widgets-header-toolbar>.components-dropdown>.components-button.has-icon.has-icon:before{display:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:8px;padding-right:8px}@media (min-width:600px){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle{padding-left:12px;padding-right:12px}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle:after{content:none}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.edit-widgets-header-toolbar__inserter-toggle.edit-widgets-header-toolbar__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.edit-widgets-keyboard-shortcut-help-modal__section{margin:0 0 2rem}.edit-widgets-keyboard-shortcut-help-modal__section-title{font-size:.9rem;font-weight:600}.edit-widgets-keyboard-shortcut-help-modal__shortcut{align-items:baseline;border-top:1px solid #ddd;display:flex;margin-bottom:0;padding:.6rem 0}.edit-widgets-keyboard-shortcut-help-modal__shortcut:last-child{border-bottom:1px solid #ddd}.edit-widgets-keyboard-shortcut-help-modal__shortcut:empty{display:none}.edit-widgets-keyboard-shortcut-help-modal__shortcut-term{font-weight:600;margin:0 0 0 1rem;text-align:right}.edit-widgets-keyboard-shortcut-help-modal__shortcut-description{flex:1;flex-basis:auto;margin:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{background:none;display:block;margin:0;padding:0}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination+.edit-widgets-keyboard-shortcut-help-modal__shortcut-key-combination{margin-top:10px}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key{border-radius:8%;margin:0 .2rem;padding:.25rem .5rem}.edit-widgets-keyboard-shortcut-help-modal__shortcut-key:last-child{margin:0 0 0 .2rem}.components-panel__header.edit-widgets-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:4px}.components-panel__header.edit-widgets-sidebar__panel-tabs ul{display:flex}.components-panel__header.edit-widgets-sidebar__panel-tabs li{margin:0}.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:none;margin-left:auto}@media (min-width:782px){.components-panel__header.edit-widgets-sidebar__panel-tabs .components-button.has-icon{display:flex}}.components-button.edit-widgets-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;font-weight:500;height:48px;margin-left:0;padding:3px 16px;position:relative}.components-button.edit-widgets-sidebar__panel-tab:focus:not(:disabled){box-shadow:none;outline:none;position:relative}.components-button.edit-widgets-sidebar__panel-tab:after{background:var(--wp-admin-theme-color);border-radius:0;bottom:0;content:"";height:calc(var(--wp-admin-border-width-focus)*0);left:0;pointer-events:none;position:absolute;right:0;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:after{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab.is-active:after{height:calc(var(--wp-admin-border-width-focus)*1);outline:2px solid transparent;outline-offset:-1px}.components-button.edit-widgets-sidebar__panel-tab:before{border-radius:2px;bottom:12px;box-shadow:0 0 0 0 transparent;content:"";left:12px;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .1s linear}@media (prefers-reduced-motion:reduce){.components-button.edit-widgets-sidebar__panel-tab:before{transition-delay:0s;transition-duration:0s}}.components-button.edit-widgets-sidebar__panel-tab:focus-visible:before{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.edit-widgets-widget-areas__top-container{display:flex;padding:16px}.edit-widgets-widget-areas__top-container .block-editor-block-icon{margin-right:16px}.edit-widgets-notices__snackbar{bottom:20px;left:0;padding-left:16px;padding-right:16px;position:fixed;right:0}@media (min-width:783px){.edit-widgets-notices__snackbar{left:160px}}@media (min-width:783px){.auto-fold .edit-widgets-notices__snackbar{left:36px}}@media (min-width:961px){.auto-fold .edit-widgets-notices__snackbar{left:160px}}.folded .edit-widgets-notices__snackbar{left:0}@media (min-width:783px){.folded .edit-widgets-notices__snackbar{left:36px}}body.is-fullscreen-mode .edit-widgets-notices__snackbar{left:0!important}.edit-widgets-notices__dismissible .components-notice,.edit-widgets-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;margin:0;min-height:60px;padding:0 12px}.edit-widgets-notices__dismissible .components-notice .components-notice__dismiss,.edit-widgets-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.edit-widgets-layout__inserter-panel{display:flex;flex-direction:column;height:100%}.edit-widgets-layout__inserter-panel .block-editor-inserter__menu{overflow:hidden}.edit-widgets-layout__inserter-panel-header{display:flex;justify-content:flex-end;padding-right:8px;padding-top:8px}.edit-widgets-layout__inserter-panel-content{height:calc(100% - 44px)}@media (min-width:782px){.edit-widgets-layout__inserter-panel-content{height:100%}}@media (min-width:782px){.blocks-widgets-container .interface-interface-skeleton__header:not(:focus-within){z-index:19}}.edit-widgets-welcome-guide{width:312px}.edit-widgets-welcome-guide__image{background:#00a0d2;margin:0 0 16px}.edit-widgets-welcome-guide__image>img{display:block;max-width:100%;object-fit:cover}.edit-widgets-welcome-guide__heading{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:24px;line-height:1.4;margin:16px 0;padding:0 32px}.edit-widgets-welcome-guide__text{font-size:13px;line-height:1.4;margin:0 0 24px;padding:0 32px}.edit-widgets-welcome-guide__inserter-icon{margin:0 4px;vertical-align:text-top}.edit-widgets-block-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:relative}.edit-widgets-block-editor,.edit-widgets-block-editor .block-editor-writing-flow,.edit-widgets-block-editor>div:last-of-type{display:flex;flex-direction:column;flex-grow:1}.edit-widgets-block-editor .edit-widgets-main-block-list{height:100%}.edit-widgets-block-editor .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.edit-widgets-block-editor .components-button.has-icon,.edit-widgets-block-editor .components-button.is-tertiary{padding:6px}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}@media (min-width:783px){.auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}@media (min-width:961px){.auto-fold .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:160px}}.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:0}@media (min-width:783px){.folded .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:36px}}body.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{left:0!important}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{display:block;position:sticky;top:0;width:100%;z-index:31}@media (min-width:782px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{align-items:center;border-bottom:none;display:flex;height:60px;margin-left:180px;min-height:auto;position:fixed;top:32px;width:calc(100% - 180px)}.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:240px;top:0}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed,.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed:empty{width:auto}.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:80px;width:calc(100% - 140px)}.is-fullscreen-mode .show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:144px}.blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{margin-left:153.6px}.blocks-widgets-container .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed.is-collapsed{margin-left:268.8px}}@media (min-width:960px){.edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed,.show-icon-labels .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{width:auto}.is-fullscreen-mode .edit-widgets-block-editor .block-editor-block-contextual-toolbar.is-fixed{width:calc(100% - 536px)}}.edit-widgets-editor__list-view-panel{display:flex;flex-direction:column;height:100%;min-width:350px}.edit-widgets-editor__list-view-panel-content{height:calc(100% - 44px);overflow-y:auto;padding:8px}.edit-widgets-editor__list-view-panel-header{align-items:center;border-bottom:1px solid #ddd;display:flex;height:48px;justify-content:space-between;padding-left:16px;padding-right:4px}body.js.appearance_page_gutenberg-widgets,body.js.widgets-php{background:#fff}body.js.appearance_page_gutenberg-widgets #wpcontent,body.js.widgets-php #wpcontent{padding-left:0}body.js.appearance_page_gutenberg-widgets #wpbody-content,body.js.widgets-php #wpbody-content{padding-bottom:0}body.js.appearance_page_gutenberg-widgets #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.appearance_page_gutenberg-widgets #wpfooter,body.js.widgets-php #wpbody-content>div:not(.blocks-widgets-container):not(#screen-meta),body.js.widgets-php #wpfooter{display:none}body.js.appearance_page_gutenberg-widgets .a11y-speak-region,body.js.widgets-php .a11y-speak-region{left:-1px;top:-1px}body.js.appearance_page_gutenberg-widgets ul#adminmenu a.wp-has-current-submenu:after,body.js.appearance_page_gutenberg-widgets ul#adminmenu>li.current>a.current:after,body.js.widgets-php ul#adminmenu a.wp-has-current-submenu:after,body.js.widgets-php ul#adminmenu>li.current>a.current:after{border-right-color:#fff}body.js.appearance_page_gutenberg-widgets .media-frame select.attachment-filters:last-of-type,body.js.widgets-php .media-frame select.attachment-filters:last-of-type{max-width:100%;width:auto}.blocks-widgets-container,.components-modal__frame{box-sizing:border-box}.blocks-widgets-container *,.blocks-widgets-container :after,.blocks-widgets-container :before,.components-modal__frame *,.components-modal__frame :after,.components-modal__frame :before{box-sizing:inherit}@media (min-width:600px){.blocks-widgets-container{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.blocks-widgets-container{min-height:calc(100vh - 32px)}}.blocks-widgets-container .interface-interface-skeleton__content{background-color:#f0f0f0}.blocks-widgets-container .editor-styles-wrapper{margin:auto;max-width:700px}.edit-widgets-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}.js .widgets-php .notice{display:none!important}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.css index 7c5673af77..3110134ce5 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.css @@ -52,208 +52,6 @@ color:var(--wp-admin-theme-color); } -.editor-block-manager__no-results{ - font-style:italic; - padding:24px 0; - text-align:center; -} - -.editor-block-manager__search{ - margin:16px 0; -} - -.editor-block-manager__disabled-blocks-count{ - background-color:#fff; - border:1px solid #ddd; - border-width:1px 0; - box-shadow:32px 0 0 0 #fff,-32px 0 0 0 #fff; - padding:8px; - position:sticky; - text-align:center; - top:-5px; - z-index:2; -} -.editor-block-manager__disabled-blocks-count~.editor-block-manager__results .editor-block-manager__category-title{ - top:31px; -} -.editor-block-manager__disabled-blocks-count .is-link{ - margin-right:12px; -} - -.editor-block-manager__category{ - margin:0 0 24px; -} - -.editor-block-manager__category-title{ - background-color:#fff; - padding:16px 0; - position:sticky; - top:-4px; - z-index:1; -} -.editor-block-manager__category-title .components-checkbox-control__label{ - font-weight:600; -} - -.editor-block-manager__checklist{ - margin-top:0; -} - -.editor-block-manager__category-title,.editor-block-manager__checklist-item{ - border-bottom:1px solid #ddd; -} - -.editor-block-manager__checklist-item{ - align-items:center; - display:flex; - justify-content:space-between; - margin-bottom:0; - padding:8px 16px 8px 0; -} -.components-modal__content .editor-block-manager__checklist-item.components-checkbox-control__input-container{ - margin:0 8px; -} -.editor-block-manager__checklist-item .block-editor-block-icon{ - fill:#1e1e1e; - margin-left:10px; -} - -.editor-block-manager__results{ - border-top:1px solid #ddd; -} - -.editor-block-manager__disabled-blocks-count+.editor-block-manager__results{ - border-top-width:0; -} - -.editor-document-bar{ - align-items:center; - background:#f0f0f0; - border-radius:4px; - display:flex; - height:32px; - justify-content:space-between; - min-width:0; - width:min(100%, 450px); -} -.editor-document-bar:hover{ - background-color:#e0e0e0; -} -.editor-document-bar .components-button{ - border-radius:4px; -} -.editor-document-bar .components-button:hover{ - background:#e0e0e0; - color:var(--wp-block-synced-color); -} -@media (min-width:960px){ - .editor-document-bar{ - width:min(100%, 450px); - } -} - -.editor-document-bar__command{ - color:var(--wp-block-synced-color); - flex-grow:1; - overflow:hidden; -} - -.editor-document-bar__title{ - color:#2f2f2f; - flex-grow:1; - overflow:hidden; -} -@media (min-width:600px){ - .editor-document-bar__title{ - padding-right:32px; - } -} -.editor-document-bar.is-global .editor-document-bar__title,.editor-document-bar__title:hover{ - color:var(--wp-block-synced-color); -} -.editor-document-bar__title .block-editor-block-icon{ - flex-shrink:0; - min-width:24px; -} -.editor-document-bar__title h1{ - color:currentColor; - max-width:50%; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{ - animation:editor-document-bar__slide-in-left .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated.has-back-button .editor-document-bar__title{ - animation-delay:0s; - animation-duration:1ms; - } -} -.editor-document-bar.is-animated .editor-document-bar__title{ - animation:editor-document-bar__slide-in-right .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated .editor-document-bar__title{ - animation-delay:0s; - animation-duration:1ms; - } -} - -.editor-document-bar__shortcut{ - color:#2f2f2f; - display:none; - min-width:32px; -} -@media (min-width:782px){ - .editor-document-bar__shortcut{ - display:initial; - } -} - -.editor-document-bar__back.components-button.has-icon.has-text{ - color:#757575; - flex-shrink:0; - gap:0; - min-width:36px; - position:absolute; - z-index:1; -} -.editor-document-bar__back.components-button.has-icon.has-text:hover{ - background-color:transparent; - color:var(--wp-block-synced-color); -} -.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{ - animation:editor-document-bar__slide-in-left .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{ - animation-delay:0s; - animation-duration:1ms; - } -} - -@keyframes editor-document-bar__slide-in-right{ - 0%{ - opacity:0; - transform:translateX(15%); - } - to{ - opacity:1; - transform:translateX(0); - } -} -@keyframes editor-document-bar__slide-in-left{ - 0%{ - opacity:0; - transform:translateX(-15%); - } - to{ - opacity:1; - transform:translateX(0); - } -} .document-outline{ margin:20px 0; } @@ -325,103 +123,6 @@ padding:1px 0; } -.editor-document-outline.has-no-headings{ - color:#757575; - text-align:center; -} -.editor-document-outline.has-no-headings>svg{ - margin-top:28px; -} -.editor-document-outline.has-no-headings>p{ - padding-left:32px; - padding-right:32px; -} - -.editor-document-tools{ - align-items:center; - display:inline-flex; -} -.editor-document-tools .editor-document-tools__left>.components-button{ - display:none; -} -@media (min-width:600px){ - .editor-document-tools .editor-document-tools__left>.components-button{ - display:inline-flex; - } -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle{ - display:inline-flex; -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{ - transition:transform .2s cubic-bezier(.165, .84, .44, 1); -} -@media (prefers-reduced-motion:reduce){ - .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{ - transition-delay:0s; - transition-duration:0s; - } -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.is-pressed svg{ - transform:rotate(-45deg); -} -.editor-document-tools .block-editor-list-view{ - display:none; -} -@media (min-width:600px){ - .editor-document-tools .block-editor-list-view{ - display:flex; - } -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon{ - height:32px; - min-width:32px; - padding:4px; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon.is-pressed,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon.is-pressed{ - background:#1e1e1e; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon:focus:not(:disabled),.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; - outline:1px solid transparent; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon:before,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:before{ - display:none; -} - -.editor-document-tools__left{ - align-items:center; - display:inline-flex; - gap:8px; - margin-left:8px; - padding-right:16px; -} -@media (min-width:782px){ - .editor-document-tools__left{ - padding-right:20px; - } -} -@media (min-width:1280px){ - .editor-document-tools__left{ - padding-left:8px; - } -} - -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{ - height:32px; - min-width:32px; - padding:0; - width:32px; -} -.show-icon-labels .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{ - height:32px; - padding:0 8px; - width:auto; -} - -.show-icon-labels .editor-document-tools__left>*+*{ - margin-right:8px; -} - .components-editor-notices__dismissible,.components-editor-notices__pinned{ color:#1e1e1e; left:0; @@ -432,6 +133,7 @@ .components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{ border-bottom:1px solid rgba(0,0,0,.2); box-sizing:border-box; + margin:0; min-height:60px; padding:0 12px; } @@ -451,14 +153,6 @@ .entities-saved-states__text-prompt{ padding:16px 16px 4px; } -.entities-saved-states__text-prompt .entities-saved-states__text-prompt--header{ - display:block; - margin-bottom:12px; -} - -.entities-saved-states__description-heading{ - font-size:13px; -} .editor-error-boundary{ box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15); @@ -467,134 +161,6 @@ padding:20px; } -.editor-inserter-sidebar{ - box-sizing:border-box; - display:flex; - flex-direction:column; - height:100%; -} -.editor-inserter-sidebar *,.editor-inserter-sidebar :after,.editor-inserter-sidebar :before{ - box-sizing:inherit; -} - -.editor-inserter-sidebar__header{ - display:flex; - justify-content:flex-end; - padding-left:8px; - padding-top:8px; -} - -.editor-inserter-sidebar__content{ - height:calc(100% - 44px); -} -@media (min-width:782px){ - .editor-inserter-sidebar__content{ - height:100%; - } -} - -.editor-list-view-sidebar{ - display:flex; - flex-direction:column; - height:100%; -} -@media (min-width:782px){ - .editor-list-view-sidebar{ - width:350px; - } -} -.editor-list-view-sidebar .editor-list-view-sidebar__close-button{ - background:#fff; - left:8px; - position:absolute; - top:6px; - z-index:1; -} -.editor-list-view-sidebar .components-tab-panel__tabs{ - border-bottom:1px solid #ddd; - box-sizing:border-box; - display:flex; - padding-left:56px; - width:100%; -} -.editor-list-view-sidebar .components-tab-panel__tabs .editor-list-view-sidebar__panel-tab{ - margin-bottom:-1px; - width:50%; -} -.editor-list-view-sidebar .components-tab-panel__tab-content{ - height:calc(100% - 47px); -} - -.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{ - height:100%; - overflow:auto; - padding:8px 6px; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-gutter:auto; - scrollbar-width:thin; - will-change:transform; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar{ - height:12px; - width:12px; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-track,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-track{ - background-color:transparent; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.editor-list-view-sidebar__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:hover::-webkit-scrollbar-thumb{ - background-color:#949494; -} -.editor-list-view-sidebar__list-view-container>.document-outline:focus,.editor-list-view-sidebar__list-view-container>.document-outline:focus-within,.editor-list-view-sidebar__list-view-container>.document-outline:hover,.editor-list-view-sidebar__list-view-panel-content:focus,.editor-list-view-sidebar__list-view-panel-content:focus-within,.editor-list-view-sidebar__list-view-panel-content:hover{ - scrollbar-color:#949494 transparent; -} -@media (hover:none){ - .editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{ - scrollbar-color:#949494 transparent; - } -} - -.editor-list-view-sidebar__list-view-container{ - display:flex; - flex-direction:column; - height:100%; -} - -.editor-list-view-sidebar__tab-panel{ - height:100%; -} - -.editor-list-view-sidebar__outline{ - border-bottom:1px solid #ddd; - display:flex; - flex-direction:column; - gap:8px; - padding:16px; -} -.editor-list-view-sidebar__outline>div>span:first-child{ - display:inline-block; - width:90px; -} -.editor-list-view-sidebar__outline>div>span{ - color:#757575; - font-size:12px; - line-height:1.4; -} - -.editor-post-author__panel{ - padding-top:8px; -} - -.editor-post-author__panel .editor-post-panel__row-control>div{ - width:100%; -} - .editor-post-excerpt__textarea{ margin-bottom:10px; width:100%; @@ -705,12 +271,10 @@ box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } -.components-panel__body.is-opened.editor-post-last-revision__panel{ - height:48px; - padding:0; -} -.components-panel__body.is-opened.editor-post-last-revision__panel .editor-post-last-revision__title.components-button.components-button{ - padding:16px; +@media (min-width:600px){ + .editor-post-locked-modal{ + max-width:480px; + } } .editor-post-locked-modal__buttons{ @@ -723,28 +287,6 @@ min-width:auto !important; } -.editor-post-panel__row{ - align-items:flex-start !important; - justify-content:flex-start !important; - min-height:36px; - width:100%; -} - -.editor-post-panel__row-label{ - align-items:center; - display:flex; - flex-shrink:0; - min-height:36px; - width:30%; -} - -.editor-post-panel__row-control{ - align-items:center; - display:flex; - flex-grow:1; - min-height:36px; -} - .editor-post-publish-button__button.has-changes-dot:before{ background:currentcolor; border-radius:4px; @@ -958,27 +500,20 @@ margin-left:0; } -.editor-post-schedule__panel-dropdown{ +.edit-post-sync-status{ + align-items:flex-start; + justify-content:flex-start; + position:relative; width:100%; } - -.editor-post-schedule__dialog .components-popover__content{ - min-width:320px; - padding:16px; -} - -.editor-post-schedule__dialog-toggle.components-button{ +.edit-post-sync-status>span{ display:block; - height:auto; - line-height:16px; - max-width:100%; - overflow:hidden; - padding:10px 12px; - text-align:right; - white-space:unset; + flex-shrink:0; + padding:6px 0; + width:45%; + word-break:break-word; } - -.editor-post-sync-status__value{ +.edit-post-sync-status>div{ padding:6px 12px 6px 0; } @@ -1018,50 +553,6 @@ font-size:12px; } -.editor-post-template__swap-template-modal{ - z-index:1000001; -} - -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:2; - column-gap:24px; - padding-top:2px; -} -@media (min-width:782px){ - .editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:3; - } -} -@media (min-width:1280px){ - .editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:4; - } -} -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{ - break-inside:avoid-column; -} -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{ - box-shadow:0 0 0 1px #ddd; -} - -.editor-post-template__dropdown .components-popover__content{ - min-width:240px; -} -.editor-post-template__dropdown .components-button.is-pressed,.editor-post-template__dropdown .components-button.is-pressed:hover{ - background:inherit; - color:inherit; -} - -@media (min-width:782px){ - .editor-post-template__create-form{ - width:320px; - } -} - -.editor-post-template__classic-theme-dropdown{ - padding:8px; -} - .edit-post-text-editor__body textarea.editor-post-text-editor{ border:1px solid #949494; border-radius:0; @@ -1106,30 +597,6 @@ color:rgba(30,30,30,.62); } -.edit-post-text-editor__body .editor-post-title.is-raw-text{ - margin-bottom:24px; - margin-top:2px; - max-width:none; -} - -.editor-post-url__panel-dropdown{ - width:100%; -} - -.components-button.editor-post-url__panel-toggle{ - display:block; - max-width:100%; - overflow:hidden; - text-align:right; - text-overflow:ellipsis; - white-space:nowrap; -} - -.editor-post-url__panel-dialog .editor-post-url{ - margin:8px; - min-width:248px; -} - .editor-post-url__link-label{ font-size:13px; font-weight:400; @@ -1271,12 +738,6 @@ justify-content:center; } -.editor-preview-dropdown__button-external{ - display:flex; - justify-content:space-between; - width:100%; -} - .table-of-contents__popover.components-popover .components-popover__content{ min-width:380px; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.min.css index 0e796bcacf..e1542f3685 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style-rtl.min.css @@ -1 +1 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.editor-autocompleters__user .editor-autocompleters__no-avatar:before{content:"";font:normal 20px/1 dashicons;margin-left:5px;vertical-align:middle}.editor-autocompleters__user .editor-autocompleters__user-avatar{flex-grow:0;flex-shrink:0;height:24px;margin-left:8px;max-width:none;width:24px}.editor-autocompleters__user .editor-autocompleters__user-name{flex-grow:1;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user .editor-autocompleters__user-slug{color:#757575;flex-grow:0;flex-shrink:0;margin-right:8px;max-width:100px;overflow:none;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user:hover .editor-autocompleters__user-slug{color:var(--wp-admin-theme-color)}.editor-block-manager__no-results{font-style:italic;padding:24px 0;text-align:center}.editor-block-manager__search{margin:16px 0}.editor-block-manager__disabled-blocks-count{background-color:#fff;border:1px solid #ddd;border-width:1px 0;box-shadow:32px 0 0 0 #fff,-32px 0 0 0 #fff;padding:8px;position:sticky;text-align:center;top:-5px;z-index:2}.editor-block-manager__disabled-blocks-count~.editor-block-manager__results .editor-block-manager__category-title{top:31px}.editor-block-manager__disabled-blocks-count .is-link{margin-right:12px}.editor-block-manager__category{margin:0 0 24px}.editor-block-manager__category-title{background-color:#fff;padding:16px 0;position:sticky;top:-4px;z-index:1}.editor-block-manager__category-title .components-checkbox-control__label{font-weight:600}.editor-block-manager__checklist{margin-top:0}.editor-block-manager__category-title,.editor-block-manager__checklist-item{border-bottom:1px solid #ddd}.editor-block-manager__checklist-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:0;padding:8px 16px 8px 0}.components-modal__content .editor-block-manager__checklist-item.components-checkbox-control__input-container{margin:0 8px}.editor-block-manager__checklist-item .block-editor-block-icon{fill:#1e1e1e;margin-left:10px}.editor-block-manager__results{border-top:1px solid #ddd}.editor-block-manager__disabled-blocks-count+.editor-block-manager__results{border-top-width:0}.editor-document-bar{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;height:32px;justify-content:space-between;min-width:0;width:min(100%,450px)}.editor-document-bar:hover{background-color:#e0e0e0}.editor-document-bar .components-button{border-radius:4px}.editor-document-bar .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}@media (min-width:960px){.editor-document-bar{width:min(100%,450px)}}.editor-document-bar__command{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.editor-document-bar__title{color:#2f2f2f;flex-grow:1;overflow:hidden}@media (min-width:600px){.editor-document-bar__title{padding-right:32px}}.editor-document-bar.is-global .editor-document-bar__title,.editor-document-bar__title:hover{color:var(--wp-block-synced-color)}.editor-document-bar__title .block-editor-block-icon{flex-shrink:0;min-width:24px}.editor-document-bar__title h1{color:currentColor;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{animation:editor-document-bar__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{animation-delay:0s;animation-duration:1ms}}.editor-document-bar.is-animated .editor-document-bar__title{animation:editor-document-bar__slide-in-right .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated .editor-document-bar__title{animation-delay:0s;animation-duration:1ms}}.editor-document-bar__shortcut{color:#2f2f2f;display:none;min-width:32px}@media (min-width:782px){.editor-document-bar__shortcut{display:initial}}.editor-document-bar__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px;position:absolute;z-index:1}.editor-document-bar__back.components-button.has-icon.has-text:hover{background-color:transparent;color:var(--wp-block-synced-color)}.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{animation:editor-document-bar__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{animation-delay:0s;animation-duration:1ms}}@keyframes editor-document-bar__slide-in-right{0%{opacity:0;transform:translateX(15%)}to{opacity:1;transform:translateX(0)}}@keyframes editor-document-bar__slide-in-left{0%{opacity:0;transform:translateX(-15%)}to{opacity:1;transform:translateX(0)}}.document-outline{margin:20px 0}.document-outline ul{margin:0;padding:0}.document-outline__item{display:flex;margin:4px 0}.document-outline__item a{text-decoration:none}.document-outline__item .document-outline__emdash:before{color:#ddd;margin-left:4px}.document-outline__item.is-h2 .document-outline__emdash:before{content:"—"}.document-outline__item.is-h3 .document-outline__emdash:before{content:"——"}.document-outline__item.is-h4 .document-outline__emdash:before{content:"———"}.document-outline__item.is-h5 .document-outline__emdash:before{content:"————"}.document-outline__item.is-h6 .document-outline__emdash:before{content:"—————"}.document-outline__button{align-items:flex-start;background:none;border:none;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;margin:0 -1px 0 0;padding:2px 1px 2px 5px;text-align:right}.document-outline__button:disabled{cursor:default}.document-outline__button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.document-outline__level{background:#ddd;border-radius:3px;color:#1e1e1e;font-size:13px;margin-left:4px;padding:1px 6px}.is-invalid .document-outline__level{background:#f0b849}.document-outline__item-content{padding:1px 0}.editor-document-outline.has-no-headings{color:#757575;text-align:center}.editor-document-outline.has-no-headings>svg{margin-top:28px}.editor-document-outline.has-no-headings>p{padding-left:32px;padding-right:32px}.editor-document-tools{align-items:center;display:inline-flex}.editor-document-tools .editor-document-tools__left>.components-button{display:none}@media (min-width:600px){.editor-document-tools .editor-document-tools__left>.components-button{display:inline-flex}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle{display:inline-flex}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.is-pressed svg{transform:rotate(-45deg)}.editor-document-tools .block-editor-list-view{display:none}@media (min-width:600px){.editor-document-tools .block-editor-list-view{display:flex}}.editor-document-tools .editor-document-tools__left>.components-button.has-icon,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon{height:32px;min-width:32px;padding:4px}.editor-document-tools .editor-document-tools__left>.components-button.has-icon.is-pressed,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.editor-document-tools .editor-document-tools__left>.components-button.has-icon:focus:not(:disabled),.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.editor-document-tools .editor-document-tools__left>.components-button.has-icon:before,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:before{display:none}.editor-document-tools__left{align-items:center;display:inline-flex;gap:8px;margin-left:8px;padding-right:16px}@media (min-width:782px){.editor-document-tools__left{padding-right:20px}}@media (min-width:1280px){.editor-document-tools__left{padding-left:8px}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{height:32px;min-width:32px;padding:0;width:32px}.show-icon-labels .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{height:32px;padding:0 8px;width:auto}.show-icon-labels .editor-document-tools__left>*+*{margin-right:8px}.components-editor-notices__dismissible,.components-editor-notices__pinned{color:#1e1e1e;left:0;position:relative;right:0;top:0}.components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;min-height:60px;padding:0 12px}.components-editor-notices__dismissible .components-notice .components-notice__dismiss,.components-editor-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.entities-saved-states__panel-header{background:#fff;border-bottom:1px solid #ddd;box-sizing:border-box;height:60px;padding-left:8px;padding-right:8px}.entities-saved-states__text-prompt{padding:16px 16px 4px}.entities-saved-states__text-prompt .entities-saved-states__text-prompt--header{display:block;margin-bottom:12px}.entities-saved-states__description-heading{font-size:13px}.editor-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.editor-inserter-sidebar{box-sizing:border-box;display:flex;flex-direction:column;height:100%}.editor-inserter-sidebar *,.editor-inserter-sidebar :after,.editor-inserter-sidebar :before{box-sizing:inherit}.editor-inserter-sidebar__header{display:flex;justify-content:flex-end;padding-left:8px;padding-top:8px}.editor-inserter-sidebar__content{height:calc(100% - 44px)}@media (min-width:782px){.editor-inserter-sidebar__content{height:100%}}.editor-list-view-sidebar{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.editor-list-view-sidebar{width:350px}}.editor-list-view-sidebar .editor-list-view-sidebar__close-button{background:#fff;left:8px;position:absolute;top:6px;z-index:1}.editor-list-view-sidebar .components-tab-panel__tabs{border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;padding-left:56px;width:100%}.editor-list-view-sidebar .components-tab-panel__tabs .editor-list-view-sidebar__panel-tab{margin-bottom:-1px;width:50%}.editor-list-view-sidebar .components-tab-panel__tab-content{height:calc(100% - 47px)}.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-track,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.editor-list-view-sidebar__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.editor-list-view-sidebar__list-view-container>.document-outline:focus,.editor-list-view-sidebar__list-view-container>.document-outline:focus-within,.editor-list-view-sidebar__list-view-container>.document-outline:hover,.editor-list-view-sidebar__list-view-panel-content:focus,.editor-list-view-sidebar__list-view-panel-content:focus-within,.editor-list-view-sidebar__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{scrollbar-color:#949494 transparent}}.editor-list-view-sidebar__list-view-container{display:flex;flex-direction:column;height:100%}.editor-list-view-sidebar__tab-panel{height:100%}.editor-list-view-sidebar__outline{border-bottom:1px solid #ddd;display:flex;flex-direction:column;gap:8px;padding:16px}.editor-list-view-sidebar__outline>div>span:first-child{display:inline-block;width:90px}.editor-list-view-sidebar__outline>div>span{color:#757575;font-size:12px;line-height:1.4}.editor-post-author__panel{padding-top:8px}.editor-post-author__panel .editor-post-panel__row-control>div{width:100%}.editor-post-excerpt__textarea{margin-bottom:10px;width:100%}.editor-post-featured-image{padding:0}.editor-post-featured-image .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.editor-post-featured-image .components-responsive-wrapper__content{max-width:100%;width:auto}.editor-post-featured-image__container{position:relative}.editor-post-featured-image__container:focus .editor-post-featured-image__actions,.editor-post-featured-image__container:focus-within .editor-post-featured-image__actions,.editor-post-featured-image__container:hover .editor-post-featured-image__actions{opacity:1}.editor-post-featured-image__preview,.editor-post-featured-image__toggle{box-shadow:0 0 0 0 var(--wp-admin-theme-color);display:flex;justify-content:center;max-height:150px;overflow:hidden;padding:0;transition:all .1s ease-out;width:100%}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__preview,.editor-post-featured-image__toggle{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__preview{height:auto}.editor-post-featured-image__preview .components-responsive-wrapper{background:#f0f0f0;width:100%}.editor-post-featured-image__toggle{background-color:#f0f0f0;border-radius:2px;line-height:20px;min-height:90px;padding:8px 0;text-align:center}.editor-post-featured-image__toggle:hover{background:#ddd;color:#1e1e1e}.editor-post-featured-image__actions{bottom:0;opacity:0;padding:8px;position:absolute;transition:opacity 50ms ease-out}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__actions{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__action{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:hsla(0,0%,100%,.75);flex-grow:1;justify-content:center}[class].editor-post-format__suggestion{margin:4px 0 0}.editor-post-last-revision__title{font-weight:600;width:100%}.editor-post-last-revision__title .dashicon{margin-left:5px}.components-button.editor-post-last-revision__title{height:100%}.components-button.editor-post-last-revision__title:active,.components-button.editor-post-last-revision__title:hover{background:#f0f0f0}.components-button.editor-post-last-revision__title:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-panel__body.is-opened.editor-post-last-revision__panel{height:48px;padding:0}.components-panel__body.is-opened.editor-post-last-revision__panel .editor-post-last-revision__title.components-button.components-button{padding:16px}.editor-post-locked-modal__buttons{margin-top:24px}.editor-post-locked-modal__avatar{border-radius:2px;margin-top:16px;min-width:auto!important}.editor-post-panel__row{align-items:flex-start!important;justify-content:flex-start!important;min-height:36px;width:100%}.editor-post-panel__row-label{align-items:center;display:flex;flex-shrink:0;min-height:36px;width:30%}.editor-post-panel__row-control{align-items:center;display:flex;flex-grow:1;min-height:36px}.editor-post-publish-button__button.has-changes-dot:before{background:currentcolor;border-radius:4px;content:"";height:8px;margin:auto -3px auto 5px;width:8px}.editor-post-publish-panel{background:#fff}.editor-post-publish-panel__content{min-height:calc(100% - 144px)}.editor-post-publish-panel__content>.components-spinner{display:block;margin:100px auto 0}.editor-post-publish-panel__header{align-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #ddd;display:flex;height:61px;padding-left:16px;padding-right:16px}.editor-post-publish-panel__header .components-button{justify-content:center;width:100%}.editor-post-publish-panel__header .has-icon{margin-right:auto;width:auto}.components-site-card{align-items:center;display:flex;margin:16px 0}.components-site-icon{border:none;border-radius:2px;height:36px;margin-left:12px;width:36px}.components-site-name{display:block;font-size:14px}.components-site-home{color:#757575;display:block;font-size:12px}.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{flex:1}@media (min-width:480px){.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{max-width:160px}}.editor-post-publish-panel__header-publish-button{padding-left:4px}.editor-post-publish-panel__header-cancel-button{padding-right:4px}.editor-post-publish-panel__header-published{flex-grow:1}.editor-post-publish-panel__footer{padding:16px}.components-button.editor-post-publish-panel__toggle.is-primary{align-items:center;display:inline-flex}.components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon{display:none}.components-button.editor-post-publish-panel__toggle.is-primary .dashicon{margin-left:-4px}.editor-post-publish-panel__link{font-weight:400;padding-right:4px}.editor-post-publish-panel__prepublish{padding:16px}.editor-post-publish-panel__prepublish strong{color:#1e1e1e}.editor-post-publish-panel__prepublish .components-panel__body{background:#fff;margin-left:-16px;margin-right:-16px}.editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend{display:none}.post-publish-panel__postpublish .components-panel__body{border-bottom:1px solid #e0e0e0;border-top:none}.post-publish-panel__postpublish-buttons{align-content:space-between;display:flex;flex-wrap:wrap;gap:16px}.post-publish-panel__postpublish-buttons .components-button{flex:1;justify-content:center}.post-publish-panel__postpublish-buttons .components-clipboard-button{width:100%}.post-publish-panel__postpublish-post-address-container{align-items:flex-end;display:flex;margin-bottom:16px}.post-publish-panel__postpublish-post-address-container .post-publish-panel__postpublish-post-address{flex:1}.post-publish-panel__postpublish-post-address-container input[readonly]{background:#f0f0f0;border-color:#ccc;height:36px;overflow:hidden;padding:16px;text-overflow:ellipsis}.post-publish-panel__postpublish-post-address__copy-button-wrap{flex-shrink:0;margin-right:16px}.post-publish-panel__postpublish-header{font-weight:500}.post-publish-panel__postpublish-subheader{margin:0 0 8px}.post-publish-panel__tip{color:#f0b849}@media screen and (max-width:782px){.post-publish-panel__postpublish-post-address__button-wrap .components-button{height:40px}}.editor-post-saved-state{align-items:center;color:#757575;display:flex;overflow:hidden;padding:12px 4px;white-space:nowrap;width:28px}.editor-post-saved-state.is-saved[aria-disabled=true],.editor-post-saved-state.is-saved[aria-disabled=true]:hover,.editor-post-saved-state.is-saving[aria-disabled=true],.editor-post-saved-state.is-saving[aria-disabled=true]:hover{background:transparent;color:#757575}.editor-post-saved-state svg{fill:currentColor;display:inline-block;flex:0 0 auto;margin-left:8px}@media (min-width:600px){.editor-post-saved-state{padding:8px 12px;text-indent:inherit;width:auto}.editor-post-saved-state svg{margin-left:0}}.editor-post-save-draft.has-text.has-icon svg{margin-left:0}.editor-post-schedule__panel-dropdown{width:100%}.editor-post-schedule__dialog .components-popover__content{min-width:320px;padding:16px}.editor-post-schedule__dialog-toggle.components-button{display:block;height:auto;line-height:16px;max-width:100%;overflow:hidden;padding:10px 12px;text-align:right;white-space:unset}.editor-post-sync-status__value{padding:6px 12px 6px 0}.editor-post-taxonomies__hierarchical-terms-list{margin-right:-6px;margin-top:-6px;max-height:14em;overflow:auto;padding-right:6px;padding-top:6px}.editor-post-taxonomies__hierarchical-terms-choice{margin-bottom:8px}.editor-post-taxonomies__hierarchical-terms-choice:last-child{margin-bottom:4px}.editor-post-taxonomies__hierarchical-terms-subchoices{margin-right:16px;margin-top:8px}.editor-post-taxonomies__flat-term-most-used .editor-post-taxonomies__flat-term-most-used-label{margin-bottom:4px}.editor-post-taxonomies__flat-term-most-used-list{margin:0}.editor-post-taxonomies__flat-term-most-used-list li{display:inline-block;margin-left:8px}.editor-post-taxonomies__flat-term-most-used-list .components-button{font-size:12px}.editor-post-template__swap-template-modal{z-index:1000001}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px;padding-top:2px}@media (min-width:782px){.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:4}}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.editor-post-template__dropdown .components-popover__content{min-width:240px}.editor-post-template__dropdown .components-button.is-pressed,.editor-post-template__dropdown .components-button.is-pressed:hover{background:inherit;color:inherit}@media (min-width:782px){.editor-post-template__create-form{width:320px}}.editor-post-template__classic-theme-dropdown{padding:8px}.edit-post-text-editor__body textarea.editor-post-text-editor{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.edit-post-text-editor__body textarea.editor-post-text-editor{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-text-editor__body textarea.editor-post-text-editor{font-size:15px!important;padding:24px}}.edit-post-text-editor__body textarea.editor-post-text-editor:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}.edit-post-text-editor__body textarea.editor-post-text-editor::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body textarea.editor-post-text-editor::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.edit-post-text-editor__body textarea.editor-post-text-editor:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body .editor-post-title.is-raw-text{margin-bottom:24px;margin-top:2px;max-width:none}.editor-post-url__panel-dropdown{width:100%}.components-button.editor-post-url__panel-toggle{display:block;max-width:100%;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.editor-post-url__panel-dialog .editor-post-url{margin:8px;min-width:248px}.editor-post-url__link-label{font-size:13px;font-weight:400;margin:0}.editor-post-url__link{direction:ltr;word-break:break-word}.editor-post-url__link-slug{font-weight:600}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-left:12px;margin-top:2px;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{height:20px;width:20px}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(-7px,7px);width:8px}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{transform:translate(-5px,5px)}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__info{color:#757575;margin-right:36px;margin-top:.5em}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__info{margin-right:32px}}.editor-post-visibility__fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__info{margin-bottom:0}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin-right:32px;padding:6px 8px;transition:box-shadow .1s linear;width:calc(100% - 32px)}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-trash.components-button{flex-grow:1;justify-content:center}.editor-preview-dropdown__button-external{display:flex;justify-content:space-between;width:100%}.table-of-contents__popover.components-popover .components-popover__content{min-width:380px}.components-popover.table-of-contents__popover{z-index:99998}.table-of-contents__popover .components-popover__content{padding:16px}@media (min-width:600px){.table-of-contents__popover .components-popover__content{max-height:calc(100vh - 120px);overflow-y:auto}}.table-of-contents__popover hr{margin:10px -16px 0}.table-of-contents__wrapper:focus:before{bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.table-of-contents__counts{display:flex;flex-wrap:wrap;margin:-8px 0 0}.table-of-contents__count{color:#1e1e1e;display:flex;flex-basis:33%;flex-direction:column;font-size:13px;margin-bottom:0;margin-top:8px;padding-left:8px}.table-of-contents__count:nth-child(4n){padding-left:0}.table-of-contents__number,.table-of-contents__popover .word-count{color:#1e1e1e;font-size:21px;font-weight:400;line-height:30px}.table-of-contents__title{display:block;font-size:15px;font-weight:600;margin-top:20px}.editor-template-validation-notice{align-items:center;display:flex;justify-content:space-between}.editor-template-validation-notice .components-button{margin-right:5px} \ No newline at end of file +@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.editor-autocompleters__user .editor-autocompleters__no-avatar:before{content:"";font:normal 20px/1 dashicons;margin-left:5px;vertical-align:middle}.editor-autocompleters__user .editor-autocompleters__user-avatar{flex-grow:0;flex-shrink:0;height:24px;margin-left:8px;max-width:none;width:24px}.editor-autocompleters__user .editor-autocompleters__user-name{flex-grow:1;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user .editor-autocompleters__user-slug{color:#757575;flex-grow:0;flex-shrink:0;margin-right:8px;max-width:100px;overflow:none;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user:hover .editor-autocompleters__user-slug{color:var(--wp-admin-theme-color)}.document-outline{margin:20px 0}.document-outline ul{margin:0;padding:0}.document-outline__item{display:flex;margin:4px 0}.document-outline__item a{text-decoration:none}.document-outline__item .document-outline__emdash:before{color:#ddd;margin-left:4px}.document-outline__item.is-h2 .document-outline__emdash:before{content:"—"}.document-outline__item.is-h3 .document-outline__emdash:before{content:"——"}.document-outline__item.is-h4 .document-outline__emdash:before{content:"———"}.document-outline__item.is-h5 .document-outline__emdash:before{content:"————"}.document-outline__item.is-h6 .document-outline__emdash:before{content:"—————"}.document-outline__button{align-items:flex-start;background:none;border:none;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;margin:0 -1px 0 0;padding:2px 1px 2px 5px;text-align:right}.document-outline__button:disabled{cursor:default}.document-outline__button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.document-outline__level{background:#ddd;border-radius:3px;color:#1e1e1e;font-size:13px;margin-left:4px;padding:1px 6px}.is-invalid .document-outline__level{background:#f0b849}.document-outline__item-content{padding:1px 0}.components-editor-notices__dismissible,.components-editor-notices__pinned{color:#1e1e1e;left:0;position:relative;right:0;top:0}.components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;margin:0;min-height:60px;padding:0 12px}.components-editor-notices__dismissible .components-notice .components-notice__dismiss,.components-editor-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.entities-saved-states__panel-header{background:#fff;border-bottom:1px solid #ddd;box-sizing:border-box;height:60px;padding-left:8px;padding-right:8px}.entities-saved-states__text-prompt{padding:16px 16px 4px}.editor-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),-.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.editor-post-excerpt__textarea{margin-bottom:10px;width:100%}.editor-post-featured-image{padding:0}.editor-post-featured-image .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.editor-post-featured-image .components-responsive-wrapper__content{max-width:100%;width:auto}.editor-post-featured-image__container{position:relative}.editor-post-featured-image__container:focus .editor-post-featured-image__actions,.editor-post-featured-image__container:focus-within .editor-post-featured-image__actions,.editor-post-featured-image__container:hover .editor-post-featured-image__actions{opacity:1}.editor-post-featured-image__preview,.editor-post-featured-image__toggle{box-shadow:0 0 0 0 var(--wp-admin-theme-color);display:flex;justify-content:center;max-height:150px;overflow:hidden;padding:0;transition:all .1s ease-out;width:100%}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__preview,.editor-post-featured-image__toggle{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__preview{height:auto}.editor-post-featured-image__preview .components-responsive-wrapper{background:#f0f0f0;width:100%}.editor-post-featured-image__toggle{background-color:#f0f0f0;border-radius:2px;line-height:20px;min-height:90px;padding:8px 0;text-align:center}.editor-post-featured-image__toggle:hover{background:#ddd;color:#1e1e1e}.editor-post-featured-image__actions{bottom:0;opacity:0;padding:8px;position:absolute;transition:opacity 50ms ease-out}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__actions{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__action{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:hsla(0,0%,100%,.75);flex-grow:1;justify-content:center}[class].editor-post-format__suggestion{margin:4px 0 0}.editor-post-last-revision__title{font-weight:600;width:100%}.editor-post-last-revision__title .dashicon{margin-left:5px}.components-button.editor-post-last-revision__title{height:100%}.components-button.editor-post-last-revision__title:active,.components-button.editor-post-last-revision__title:hover{background:#f0f0f0}.components-button.editor-post-last-revision__title:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}@media (min-width:600px){.editor-post-locked-modal{max-width:480px}}.editor-post-locked-modal__buttons{margin-top:24px}.editor-post-locked-modal__avatar{border-radius:2px;margin-top:16px;min-width:auto!important}.editor-post-publish-button__button.has-changes-dot:before{background:currentcolor;border-radius:4px;content:"";height:8px;margin:auto -3px auto 5px;width:8px}.editor-post-publish-panel{background:#fff}.editor-post-publish-panel__content{min-height:calc(100% - 144px)}.editor-post-publish-panel__content>.components-spinner{display:block;margin:100px auto 0}.editor-post-publish-panel__header{align-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #ddd;display:flex;height:61px;padding-left:16px;padding-right:16px}.editor-post-publish-panel__header .components-button{justify-content:center;width:100%}.editor-post-publish-panel__header .has-icon{margin-right:auto;width:auto}.components-site-card{align-items:center;display:flex;margin:16px 0}.components-site-icon{border:none;border-radius:2px;height:36px;margin-left:12px;width:36px}.components-site-name{display:block;font-size:14px}.components-site-home{color:#757575;display:block;font-size:12px}.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{flex:1}@media (min-width:480px){.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{max-width:160px}}.editor-post-publish-panel__header-publish-button{padding-left:4px}.editor-post-publish-panel__header-cancel-button{padding-right:4px}.editor-post-publish-panel__header-published{flex-grow:1}.editor-post-publish-panel__footer{padding:16px}.components-button.editor-post-publish-panel__toggle.is-primary{align-items:center;display:inline-flex}.components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon{display:none}.components-button.editor-post-publish-panel__toggle.is-primary .dashicon{margin-left:-4px}.editor-post-publish-panel__link{font-weight:400;padding-right:4px}.editor-post-publish-panel__prepublish{padding:16px}.editor-post-publish-panel__prepublish strong{color:#1e1e1e}.editor-post-publish-panel__prepublish .components-panel__body{background:#fff;margin-left:-16px;margin-right:-16px}.editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend{display:none}.post-publish-panel__postpublish .components-panel__body{border-bottom:1px solid #e0e0e0;border-top:none}.post-publish-panel__postpublish-buttons{align-content:space-between;display:flex;flex-wrap:wrap;gap:16px}.post-publish-panel__postpublish-buttons .components-button{flex:1;justify-content:center}.post-publish-panel__postpublish-buttons .components-clipboard-button{width:100%}.post-publish-panel__postpublish-post-address-container{align-items:flex-end;display:flex;margin-bottom:16px}.post-publish-panel__postpublish-post-address-container .post-publish-panel__postpublish-post-address{flex:1}.post-publish-panel__postpublish-post-address-container input[readonly]{background:#f0f0f0;border-color:#ccc;height:36px;overflow:hidden;padding:16px;text-overflow:ellipsis}.post-publish-panel__postpublish-post-address__copy-button-wrap{flex-shrink:0;margin-right:16px}.post-publish-panel__postpublish-header{font-weight:500}.post-publish-panel__postpublish-subheader{margin:0 0 8px}.post-publish-panel__tip{color:#f0b849}@media screen and (max-width:782px){.post-publish-panel__postpublish-post-address__button-wrap .components-button{height:40px}}.editor-post-saved-state{align-items:center;color:#757575;display:flex;overflow:hidden;padding:12px 4px;white-space:nowrap;width:28px}.editor-post-saved-state.is-saved[aria-disabled=true],.editor-post-saved-state.is-saved[aria-disabled=true]:hover,.editor-post-saved-state.is-saving[aria-disabled=true],.editor-post-saved-state.is-saving[aria-disabled=true]:hover{background:transparent;color:#757575}.editor-post-saved-state svg{fill:currentColor;display:inline-block;flex:0 0 auto;margin-left:8px}@media (min-width:600px){.editor-post-saved-state{padding:8px 12px;text-indent:inherit;width:auto}.editor-post-saved-state svg{margin-left:0}}.editor-post-save-draft.has-text.has-icon svg{margin-left:0}.edit-post-sync-status{align-items:flex-start;justify-content:flex-start;position:relative;width:100%}.edit-post-sync-status>span{display:block;flex-shrink:0;padding:6px 0;width:45%;word-break:break-word}.edit-post-sync-status>div{padding:6px 12px 6px 0}.editor-post-taxonomies__hierarchical-terms-list{margin-right:-6px;margin-top:-6px;max-height:14em;overflow:auto;padding-right:6px;padding-top:6px}.editor-post-taxonomies__hierarchical-terms-choice{margin-bottom:8px}.editor-post-taxonomies__hierarchical-terms-choice:last-child{margin-bottom:4px}.editor-post-taxonomies__hierarchical-terms-subchoices{margin-right:16px;margin-top:8px}.editor-post-taxonomies__flat-term-most-used .editor-post-taxonomies__flat-term-most-used-label{margin-bottom:4px}.editor-post-taxonomies__flat-term-most-used-list{margin:0}.editor-post-taxonomies__flat-term-most-used-list li{display:inline-block;margin-left:8px}.editor-post-taxonomies__flat-term-most-used-list .components-button{font-size:12px}.edit-post-text-editor__body textarea.editor-post-text-editor{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.edit-post-text-editor__body textarea.editor-post-text-editor{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-text-editor__body textarea.editor-post-text-editor{font-size:15px!important;padding:24px}}.edit-post-text-editor__body textarea.editor-post-text-editor:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}.edit-post-text-editor__body textarea.editor-post-text-editor::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body textarea.editor-post-text-editor::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.edit-post-text-editor__body textarea.editor-post-text-editor:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-url__link-label{font-size:13px;font-weight:400;margin:0}.editor-post-url__link{direction:ltr;word-break:break-word}.editor-post-url__link-slug{font-weight:600}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-left:12px;margin-top:2px;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{height:20px;width:20px}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(-7px,7px);width:8px}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{transform:translate(-5px,5px)}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__info{color:#757575;margin-right:36px;margin-top:.5em}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__info{margin-right:32px}}.editor-post-visibility__fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__info{margin-bottom:0}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin-right:32px;padding:6px 8px;transition:box-shadow .1s linear;width:calc(100% - 32px)}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-trash.components-button{flex-grow:1;justify-content:center}.table-of-contents__popover.components-popover .components-popover__content{min-width:380px}.components-popover.table-of-contents__popover{z-index:99998}.table-of-contents__popover .components-popover__content{padding:16px}@media (min-width:600px){.table-of-contents__popover .components-popover__content{max-height:calc(100vh - 120px);overflow-y:auto}}.table-of-contents__popover hr{margin:10px -16px 0}.table-of-contents__wrapper:focus:before{bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.table-of-contents__counts{display:flex;flex-wrap:wrap;margin:-8px 0 0}.table-of-contents__count{color:#1e1e1e;display:flex;flex-basis:33%;flex-direction:column;font-size:13px;margin-bottom:0;margin-top:8px;padding-left:8px}.table-of-contents__count:nth-child(4n){padding-left:0}.table-of-contents__number,.table-of-contents__popover .word-count{color:#1e1e1e;font-size:21px;font-weight:400;line-height:30px}.table-of-contents__title{display:block;font-size:15px;font-weight:600;margin-top:20px}.editor-template-validation-notice{align-items:center;display:flex;justify-content:space-between}.editor-template-validation-notice .components-button{margin-right:5px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.css index 594f9ce832..c4c8afcf4f 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.css @@ -52,208 +52,6 @@ color:var(--wp-admin-theme-color); } -.editor-block-manager__no-results{ - font-style:italic; - padding:24px 0; - text-align:center; -} - -.editor-block-manager__search{ - margin:16px 0; -} - -.editor-block-manager__disabled-blocks-count{ - background-color:#fff; - border:1px solid #ddd; - border-width:1px 0; - box-shadow:-32px 0 0 0 #fff,32px 0 0 0 #fff; - padding:8px; - position:sticky; - text-align:center; - top:-5px; - z-index:2; -} -.editor-block-manager__disabled-blocks-count~.editor-block-manager__results .editor-block-manager__category-title{ - top:31px; -} -.editor-block-manager__disabled-blocks-count .is-link{ - margin-left:12px; -} - -.editor-block-manager__category{ - margin:0 0 24px; -} - -.editor-block-manager__category-title{ - background-color:#fff; - padding:16px 0; - position:sticky; - top:-4px; - z-index:1; -} -.editor-block-manager__category-title .components-checkbox-control__label{ - font-weight:600; -} - -.editor-block-manager__checklist{ - margin-top:0; -} - -.editor-block-manager__category-title,.editor-block-manager__checklist-item{ - border-bottom:1px solid #ddd; -} - -.editor-block-manager__checklist-item{ - align-items:center; - display:flex; - justify-content:space-between; - margin-bottom:0; - padding:8px 0 8px 16px; -} -.components-modal__content .editor-block-manager__checklist-item.components-checkbox-control__input-container{ - margin:0 8px; -} -.editor-block-manager__checklist-item .block-editor-block-icon{ - fill:#1e1e1e; - margin-right:10px; -} - -.editor-block-manager__results{ - border-top:1px solid #ddd; -} - -.editor-block-manager__disabled-blocks-count+.editor-block-manager__results{ - border-top-width:0; -} - -.editor-document-bar{ - align-items:center; - background:#f0f0f0; - border-radius:4px; - display:flex; - height:32px; - justify-content:space-between; - min-width:0; - width:min(100%, 450px); -} -.editor-document-bar:hover{ - background-color:#e0e0e0; -} -.editor-document-bar .components-button{ - border-radius:4px; -} -.editor-document-bar .components-button:hover{ - background:#e0e0e0; - color:var(--wp-block-synced-color); -} -@media (min-width:960px){ - .editor-document-bar{ - width:min(100%, 450px); - } -} - -.editor-document-bar__command{ - color:var(--wp-block-synced-color); - flex-grow:1; - overflow:hidden; -} - -.editor-document-bar__title{ - color:#2f2f2f; - flex-grow:1; - overflow:hidden; -} -@media (min-width:600px){ - .editor-document-bar__title{ - padding-left:32px; - } -} -.editor-document-bar.is-global .editor-document-bar__title,.editor-document-bar__title:hover{ - color:var(--wp-block-synced-color); -} -.editor-document-bar__title .block-editor-block-icon{ - flex-shrink:0; - min-width:24px; -} -.editor-document-bar__title h1{ - color:currentColor; - max-width:50%; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} -.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{ - animation:editor-document-bar__slide-in-left .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated.has-back-button .editor-document-bar__title{ - animation-delay:0s; - animation-duration:1ms; - } -} -.editor-document-bar.is-animated .editor-document-bar__title{ - animation:editor-document-bar__slide-in-right .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated .editor-document-bar__title{ - animation-delay:0s; - animation-duration:1ms; - } -} - -.editor-document-bar__shortcut{ - color:#2f2f2f; - display:none; - min-width:32px; -} -@media (min-width:782px){ - .editor-document-bar__shortcut{ - display:initial; - } -} - -.editor-document-bar__back.components-button.has-icon.has-text{ - color:#757575; - flex-shrink:0; - gap:0; - min-width:36px; - position:absolute; - z-index:1; -} -.editor-document-bar__back.components-button.has-icon.has-text:hover{ - background-color:transparent; - color:var(--wp-block-synced-color); -} -.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{ - animation:editor-document-bar__slide-in-left .3s; -} -@media (prefers-reduced-motion:reduce){ - .editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{ - animation-delay:0s; - animation-duration:1ms; - } -} - -@keyframes editor-document-bar__slide-in-right{ - 0%{ - opacity:0; - transform:translateX(-15%); - } - to{ - opacity:1; - transform:translateX(0); - } -} -@keyframes editor-document-bar__slide-in-left{ - 0%{ - opacity:0; - transform:translateX(15%); - } - to{ - opacity:1; - transform:translateX(0); - } -} .document-outline{ margin:20px 0; } @@ -325,103 +123,6 @@ padding:1px 0; } -.editor-document-outline.has-no-headings{ - color:#757575; - text-align:center; -} -.editor-document-outline.has-no-headings>svg{ - margin-top:28px; -} -.editor-document-outline.has-no-headings>p{ - padding-left:32px; - padding-right:32px; -} - -.editor-document-tools{ - align-items:center; - display:inline-flex; -} -.editor-document-tools .editor-document-tools__left>.components-button{ - display:none; -} -@media (min-width:600px){ - .editor-document-tools .editor-document-tools__left>.components-button{ - display:inline-flex; - } -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle{ - display:inline-flex; -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{ - transition:transform .2s cubic-bezier(.165, .84, .44, 1); -} -@media (prefers-reduced-motion:reduce){ - .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{ - transition-delay:0s; - transition-duration:0s; - } -} -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.is-pressed svg{ - transform:rotate(45deg); -} -.editor-document-tools .block-editor-list-view{ - display:none; -} -@media (min-width:600px){ - .editor-document-tools .block-editor-list-view{ - display:flex; - } -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon{ - height:32px; - min-width:32px; - padding:4px; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon.is-pressed,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon.is-pressed{ - background:#1e1e1e; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon:focus:not(:disabled),.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){ - box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 1px #fff; - outline:1px solid transparent; -} -.editor-document-tools .editor-document-tools__left>.components-button.has-icon:before,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:before{ - display:none; -} - -.editor-document-tools__left{ - align-items:center; - display:inline-flex; - gap:8px; - margin-right:8px; - padding-left:16px; -} -@media (min-width:782px){ - .editor-document-tools__left{ - padding-left:20px; - } -} -@media (min-width:1280px){ - .editor-document-tools__left{ - padding-right:8px; - } -} - -.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{ - height:32px; - min-width:32px; - padding:0; - width:32px; -} -.show-icon-labels .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{ - height:32px; - padding:0 8px; - width:auto; -} - -.show-icon-labels .editor-document-tools__left>*+*{ - margin-left:8px; -} - .components-editor-notices__dismissible,.components-editor-notices__pinned{ color:#1e1e1e; left:0; @@ -432,6 +133,7 @@ .components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{ border-bottom:1px solid rgba(0,0,0,.2); box-sizing:border-box; + margin:0; min-height:60px; padding:0 12px; } @@ -451,14 +153,6 @@ .entities-saved-states__text-prompt{ padding:16px 16px 4px; } -.entities-saved-states__text-prompt .entities-saved-states__text-prompt--header{ - display:block; - margin-bottom:12px; -} - -.entities-saved-states__description-heading{ - font-size:13px; -} .editor-error-boundary{ box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15); @@ -467,134 +161,6 @@ padding:20px; } -.editor-inserter-sidebar{ - box-sizing:border-box; - display:flex; - flex-direction:column; - height:100%; -} -.editor-inserter-sidebar *,.editor-inserter-sidebar :after,.editor-inserter-sidebar :before{ - box-sizing:inherit; -} - -.editor-inserter-sidebar__header{ - display:flex; - justify-content:flex-end; - padding-right:8px; - padding-top:8px; -} - -.editor-inserter-sidebar__content{ - height:calc(100% - 44px); -} -@media (min-width:782px){ - .editor-inserter-sidebar__content{ - height:100%; - } -} - -.editor-list-view-sidebar{ - display:flex; - flex-direction:column; - height:100%; -} -@media (min-width:782px){ - .editor-list-view-sidebar{ - width:350px; - } -} -.editor-list-view-sidebar .editor-list-view-sidebar__close-button{ - background:#fff; - position:absolute; - right:8px; - top:6px; - z-index:1; -} -.editor-list-view-sidebar .components-tab-panel__tabs{ - border-bottom:1px solid #ddd; - box-sizing:border-box; - display:flex; - padding-right:56px; - width:100%; -} -.editor-list-view-sidebar .components-tab-panel__tabs .editor-list-view-sidebar__panel-tab{ - margin-bottom:-1px; - width:50%; -} -.editor-list-view-sidebar .components-tab-panel__tab-content{ - height:calc(100% - 47px); -} - -.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{ - height:100%; - overflow:auto; - padding:8px 6px; - scrollbar-color:transparent transparent; - scrollbar-gutter:stable both-edges; - scrollbar-gutter:auto; - scrollbar-width:thin; - will-change:transform; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar{ - height:12px; - width:12px; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-track,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-track{ - background-color:transparent; -} -.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-thumb{ - background-clip:padding-box; - background-color:transparent; - border:3px solid transparent; - border-radius:8px; -} -.editor-list-view-sidebar__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:hover::-webkit-scrollbar-thumb{ - background-color:#949494; -} -.editor-list-view-sidebar__list-view-container>.document-outline:focus,.editor-list-view-sidebar__list-view-container>.document-outline:focus-within,.editor-list-view-sidebar__list-view-container>.document-outline:hover,.editor-list-view-sidebar__list-view-panel-content:focus,.editor-list-view-sidebar__list-view-panel-content:focus-within,.editor-list-view-sidebar__list-view-panel-content:hover{ - scrollbar-color:#949494 transparent; -} -@media (hover:none){ - .editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{ - scrollbar-color:#949494 transparent; - } -} - -.editor-list-view-sidebar__list-view-container{ - display:flex; - flex-direction:column; - height:100%; -} - -.editor-list-view-sidebar__tab-panel{ - height:100%; -} - -.editor-list-view-sidebar__outline{ - border-bottom:1px solid #ddd; - display:flex; - flex-direction:column; - gap:8px; - padding:16px; -} -.editor-list-view-sidebar__outline>div>span:first-child{ - display:inline-block; - width:90px; -} -.editor-list-view-sidebar__outline>div>span{ - color:#757575; - font-size:12px; - line-height:1.4; -} - -.editor-post-author__panel{ - padding-top:8px; -} - -.editor-post-author__panel .editor-post-panel__row-control>div{ - width:100%; -} - .editor-post-excerpt__textarea{ margin-bottom:10px; width:100%; @@ -705,12 +271,10 @@ box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color); } -.components-panel__body.is-opened.editor-post-last-revision__panel{ - height:48px; - padding:0; -} -.components-panel__body.is-opened.editor-post-last-revision__panel .editor-post-last-revision__title.components-button.components-button{ - padding:16px; +@media (min-width:600px){ + .editor-post-locked-modal{ + max-width:480px; + } } .editor-post-locked-modal__buttons{ @@ -723,28 +287,6 @@ min-width:auto !important; } -.editor-post-panel__row{ - align-items:flex-start !important; - justify-content:flex-start !important; - min-height:36px; - width:100%; -} - -.editor-post-panel__row-label{ - align-items:center; - display:flex; - flex-shrink:0; - min-height:36px; - width:30%; -} - -.editor-post-panel__row-control{ - align-items:center; - display:flex; - flex-grow:1; - min-height:36px; -} - .editor-post-publish-button__button.has-changes-dot:before{ background:currentcolor; border-radius:4px; @@ -958,27 +500,20 @@ margin-right:0; } -.editor-post-schedule__panel-dropdown{ +.edit-post-sync-status{ + align-items:flex-start; + justify-content:flex-start; + position:relative; width:100%; } - -.editor-post-schedule__dialog .components-popover__content{ - min-width:320px; - padding:16px; -} - -.editor-post-schedule__dialog-toggle.components-button{ +.edit-post-sync-status>span{ display:block; - height:auto; - line-height:16px; - max-width:100%; - overflow:hidden; - padding:10px 12px; - text-align:left; - white-space:unset; + flex-shrink:0; + padding:6px 0; + width:45%; + word-break:break-word; } - -.editor-post-sync-status__value{ +.edit-post-sync-status>div{ padding:6px 0 6px 12px; } @@ -1018,50 +553,6 @@ font-size:12px; } -.editor-post-template__swap-template-modal{ - z-index:1000001; -} - -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:2; - column-gap:24px; - padding-top:2px; -} -@media (min-width:782px){ - .editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:3; - } -} -@media (min-width:1280px){ - .editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{ - column-count:4; - } -} -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{ - break-inside:avoid-column; -} -.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{ - box-shadow:0 0 0 1px #ddd; -} - -.editor-post-template__dropdown .components-popover__content{ - min-width:240px; -} -.editor-post-template__dropdown .components-button.is-pressed,.editor-post-template__dropdown .components-button.is-pressed:hover{ - background:inherit; - color:inherit; -} - -@media (min-width:782px){ - .editor-post-template__create-form{ - width:320px; - } -} - -.editor-post-template__classic-theme-dropdown{ - padding:8px; -} - .edit-post-text-editor__body textarea.editor-post-text-editor{ border:1px solid #949494; border-radius:0; @@ -1106,30 +597,6 @@ color:rgba(30,30,30,.62); } -.edit-post-text-editor__body .editor-post-title.is-raw-text{ - margin-bottom:24px; - margin-top:2px; - max-width:none; -} - -.editor-post-url__panel-dropdown{ - width:100%; -} - -.components-button.editor-post-url__panel-toggle{ - display:block; - max-width:100%; - overflow:hidden; - text-align:left; - text-overflow:ellipsis; - white-space:nowrap; -} - -.editor-post-url__panel-dialog .editor-post-url{ - margin:8px; - min-width:248px; -} - .editor-post-url__link-label{ font-size:13px; font-weight:400; @@ -1271,12 +738,6 @@ justify-content:center; } -.editor-preview-dropdown__button-external{ - display:flex; - justify-content:space-between; - width:100%; -} - .table-of-contents__popover.components-popover .components-popover__content{ min-width:380px; } diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.min.css index 328c7ba4d8..14071d7037 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/editor/style.min.css @@ -1 +1 @@ -@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.editor-autocompleters__user .editor-autocompleters__no-avatar:before{content:"";font:normal 20px/1 dashicons;margin-right:5px;vertical-align:middle}.editor-autocompleters__user .editor-autocompleters__user-avatar{flex-grow:0;flex-shrink:0;height:24px;margin-right:8px;max-width:none;width:24px}.editor-autocompleters__user .editor-autocompleters__user-name{flex-grow:1;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user .editor-autocompleters__user-slug{color:#757575;flex-grow:0;flex-shrink:0;margin-left:8px;max-width:100px;overflow:none;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user:hover .editor-autocompleters__user-slug{color:var(--wp-admin-theme-color)}.editor-block-manager__no-results{font-style:italic;padding:24px 0;text-align:center}.editor-block-manager__search{margin:16px 0}.editor-block-manager__disabled-blocks-count{background-color:#fff;border:1px solid #ddd;border-width:1px 0;box-shadow:-32px 0 0 0 #fff,32px 0 0 0 #fff;padding:8px;position:sticky;text-align:center;top:-5px;z-index:2}.editor-block-manager__disabled-blocks-count~.editor-block-manager__results .editor-block-manager__category-title{top:31px}.editor-block-manager__disabled-blocks-count .is-link{margin-left:12px}.editor-block-manager__category{margin:0 0 24px}.editor-block-manager__category-title{background-color:#fff;padding:16px 0;position:sticky;top:-4px;z-index:1}.editor-block-manager__category-title .components-checkbox-control__label{font-weight:600}.editor-block-manager__checklist{margin-top:0}.editor-block-manager__category-title,.editor-block-manager__checklist-item{border-bottom:1px solid #ddd}.editor-block-manager__checklist-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:0;padding:8px 0 8px 16px}.components-modal__content .editor-block-manager__checklist-item.components-checkbox-control__input-container{margin:0 8px}.editor-block-manager__checklist-item .block-editor-block-icon{fill:#1e1e1e;margin-right:10px}.editor-block-manager__results{border-top:1px solid #ddd}.editor-block-manager__disabled-blocks-count+.editor-block-manager__results{border-top-width:0}.editor-document-bar{align-items:center;background:#f0f0f0;border-radius:4px;display:flex;height:32px;justify-content:space-between;min-width:0;width:min(100%,450px)}.editor-document-bar:hover{background-color:#e0e0e0}.editor-document-bar .components-button{border-radius:4px}.editor-document-bar .components-button:hover{background:#e0e0e0;color:var(--wp-block-synced-color)}@media (min-width:960px){.editor-document-bar{width:min(100%,450px)}}.editor-document-bar__command{color:var(--wp-block-synced-color);flex-grow:1;overflow:hidden}.editor-document-bar__title{color:#2f2f2f;flex-grow:1;overflow:hidden}@media (min-width:600px){.editor-document-bar__title{padding-left:32px}}.editor-document-bar.is-global .editor-document-bar__title,.editor-document-bar__title:hover{color:var(--wp-block-synced-color)}.editor-document-bar__title .block-editor-block-icon{flex-shrink:0;min-width:24px}.editor-document-bar__title h1{color:currentColor;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{animation:editor-document-bar__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated.has-back-button .editor-document-bar__title{animation-delay:0s;animation-duration:1ms}}.editor-document-bar.is-animated .editor-document-bar__title{animation:editor-document-bar__slide-in-right .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated .editor-document-bar__title{animation-delay:0s;animation-duration:1ms}}.editor-document-bar__shortcut{color:#2f2f2f;display:none;min-width:32px}@media (min-width:782px){.editor-document-bar__shortcut{display:initial}}.editor-document-bar__back.components-button.has-icon.has-text{color:#757575;flex-shrink:0;gap:0;min-width:36px;position:absolute;z-index:1}.editor-document-bar__back.components-button.has-icon.has-text:hover{background-color:transparent;color:var(--wp-block-synced-color)}.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{animation:editor-document-bar__slide-in-left .3s}@media (prefers-reduced-motion:reduce){.editor-document-bar.is-animated .editor-document-bar__back.components-button.has-icon.has-text{animation-delay:0s;animation-duration:1ms}}@keyframes editor-document-bar__slide-in-right{0%{opacity:0;transform:translateX(-15%)}to{opacity:1;transform:translateX(0)}}@keyframes editor-document-bar__slide-in-left{0%{opacity:0;transform:translateX(15%)}to{opacity:1;transform:translateX(0)}}.document-outline{margin:20px 0}.document-outline ul{margin:0;padding:0}.document-outline__item{display:flex;margin:4px 0}.document-outline__item a{text-decoration:none}.document-outline__item .document-outline__emdash:before{color:#ddd;margin-right:4px}.document-outline__item.is-h2 .document-outline__emdash:before{content:"—"}.document-outline__item.is-h3 .document-outline__emdash:before{content:"——"}.document-outline__item.is-h4 .document-outline__emdash:before{content:"———"}.document-outline__item.is-h5 .document-outline__emdash:before{content:"————"}.document-outline__item.is-h6 .document-outline__emdash:before{content:"—————"}.document-outline__button{align-items:flex-start;background:none;border:none;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;margin:0 0 0 -1px;padding:2px 5px 2px 1px;text-align:left}.document-outline__button:disabled{cursor:default}.document-outline__button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.document-outline__level{background:#ddd;border-radius:3px;color:#1e1e1e;font-size:13px;margin-right:4px;padding:1px 6px}.is-invalid .document-outline__level{background:#f0b849}.document-outline__item-content{padding:1px 0}.editor-document-outline.has-no-headings{color:#757575;text-align:center}.editor-document-outline.has-no-headings>svg{margin-top:28px}.editor-document-outline.has-no-headings>p{padding-left:32px;padding-right:32px}.editor-document-tools{align-items:center;display:inline-flex}.editor-document-tools .editor-document-tools__left>.components-button{display:none}@media (min-width:600px){.editor-document-tools .editor-document-tools__left>.components-button{display:inline-flex}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle{display:inline-flex}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media (prefers-reduced-motion:reduce){.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle svg{transition-delay:0s;transition-duration:0s}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.is-pressed svg{transform:rotate(45deg)}.editor-document-tools .block-editor-list-view{display:none}@media (min-width:600px){.editor-document-tools .block-editor-list-view{display:flex}}.editor-document-tools .editor-document-tools__left>.components-button.has-icon,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon{height:32px;min-width:32px;padding:4px}.editor-document-tools .editor-document-tools__left>.components-button.has-icon.is-pressed,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon.is-pressed{background:#1e1e1e}.editor-document-tools .editor-document-tools__left>.components-button.has-icon:focus:not(:disabled),.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:focus:not(:disabled){box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 0 0 1px #fff;outline:1px solid transparent}.editor-document-tools .editor-document-tools__left>.components-button.has-icon:before,.editor-document-tools .editor-document-tools__left>.components-dropdown>.components-button.has-icon:before{display:none}.editor-document-tools__left{align-items:center;display:inline-flex;gap:8px;margin-right:8px;padding-left:16px}@media (min-width:782px){.editor-document-tools__left{padding-left:20px}}@media (min-width:1280px){.editor-document-tools__left{padding-right:8px}}.editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{height:32px;min-width:32px;padding:0;width:32px}.show-icon-labels .editor-document-tools .editor-document-tools__left>.editor-document-tools__inserter-toggle.has-icon{height:32px;padding:0 8px;width:auto}.show-icon-labels .editor-document-tools__left>*+*{margin-left:8px}.components-editor-notices__dismissible,.components-editor-notices__pinned{color:#1e1e1e;left:0;position:relative;right:0;top:0}.components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;min-height:60px;padding:0 12px}.components-editor-notices__dismissible .components-notice .components-notice__dismiss,.components-editor-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.entities-saved-states__panel-header{background:#fff;border-bottom:1px solid #ddd;box-sizing:border-box;height:60px;padding-left:8px;padding-right:8px}.entities-saved-states__text-prompt{padding:16px 16px 4px}.entities-saved-states__text-prompt .entities-saved-states__text-prompt--header{display:block;margin-bottom:12px}.entities-saved-states__description-heading{font-size:13px}.editor-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.editor-inserter-sidebar{box-sizing:border-box;display:flex;flex-direction:column;height:100%}.editor-inserter-sidebar *,.editor-inserter-sidebar :after,.editor-inserter-sidebar :before{box-sizing:inherit}.editor-inserter-sidebar__header{display:flex;justify-content:flex-end;padding-right:8px;padding-top:8px}.editor-inserter-sidebar__content{height:calc(100% - 44px)}@media (min-width:782px){.editor-inserter-sidebar__content{height:100%}}.editor-list-view-sidebar{display:flex;flex-direction:column;height:100%}@media (min-width:782px){.editor-list-view-sidebar{width:350px}}.editor-list-view-sidebar .editor-list-view-sidebar__close-button{background:#fff;position:absolute;right:8px;top:6px;z-index:1}.editor-list-view-sidebar .components-tab-panel__tabs{border-bottom:1px solid #ddd;box-sizing:border-box;display:flex;padding-right:56px;width:100%}.editor-list-view-sidebar .components-tab-panel__tabs .editor-list-view-sidebar__panel-tab{margin-bottom:-1px;width:50%}.editor-list-view-sidebar .components-tab-panel__tab-content{height:calc(100% - 47px)}.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{height:100%;overflow:auto;padding:8px 6px;scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto;scrollbar-width:thin;will-change:transform}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar{height:12px;width:12px}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-track,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-track{background-color:transparent}.editor-list-view-sidebar__list-view-container>.document-outline::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.editor-list-view-sidebar__list-view-container>.document-outline:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-container>.document-outline:hover::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus-within::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:focus::-webkit-scrollbar-thumb,.editor-list-view-sidebar__list-view-panel-content:hover::-webkit-scrollbar-thumb{background-color:#949494}.editor-list-view-sidebar__list-view-container>.document-outline:focus,.editor-list-view-sidebar__list-view-container>.document-outline:focus-within,.editor-list-view-sidebar__list-view-container>.document-outline:hover,.editor-list-view-sidebar__list-view-panel-content:focus,.editor-list-view-sidebar__list-view-panel-content:focus-within,.editor-list-view-sidebar__list-view-panel-content:hover{scrollbar-color:#949494 transparent}@media (hover:none){.editor-list-view-sidebar__list-view-container>.document-outline,.editor-list-view-sidebar__list-view-panel-content{scrollbar-color:#949494 transparent}}.editor-list-view-sidebar__list-view-container{display:flex;flex-direction:column;height:100%}.editor-list-view-sidebar__tab-panel{height:100%}.editor-list-view-sidebar__outline{border-bottom:1px solid #ddd;display:flex;flex-direction:column;gap:8px;padding:16px}.editor-list-view-sidebar__outline>div>span:first-child{display:inline-block;width:90px}.editor-list-view-sidebar__outline>div>span{color:#757575;font-size:12px;line-height:1.4}.editor-post-author__panel{padding-top:8px}.editor-post-author__panel .editor-post-panel__row-control>div{width:100%}.editor-post-excerpt__textarea{margin-bottom:10px;width:100%}.editor-post-featured-image{padding:0}.editor-post-featured-image .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.editor-post-featured-image .components-responsive-wrapper__content{max-width:100%;width:auto}.editor-post-featured-image__container{position:relative}.editor-post-featured-image__container:focus .editor-post-featured-image__actions,.editor-post-featured-image__container:focus-within .editor-post-featured-image__actions,.editor-post-featured-image__container:hover .editor-post-featured-image__actions{opacity:1}.editor-post-featured-image__preview,.editor-post-featured-image__toggle{box-shadow:0 0 0 0 var(--wp-admin-theme-color);display:flex;justify-content:center;max-height:150px;overflow:hidden;padding:0;transition:all .1s ease-out;width:100%}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__preview,.editor-post-featured-image__toggle{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__preview{height:auto}.editor-post-featured-image__preview .components-responsive-wrapper{background:#f0f0f0;width:100%}.editor-post-featured-image__toggle{background-color:#f0f0f0;border-radius:2px;line-height:20px;min-height:90px;padding:8px 0;text-align:center}.editor-post-featured-image__toggle:hover{background:#ddd;color:#1e1e1e}.editor-post-featured-image__actions{bottom:0;opacity:0;padding:8px;position:absolute;transition:opacity 50ms ease-out}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__actions{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__action{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:hsla(0,0%,100%,.75);flex-grow:1;justify-content:center}[class].editor-post-format__suggestion{margin:4px 0 0}.editor-post-last-revision__title{font-weight:600;width:100%}.editor-post-last-revision__title .dashicon{margin-right:5px}.components-button.editor-post-last-revision__title{height:100%}.components-button.editor-post-last-revision__title:active,.components-button.editor-post-last-revision__title:hover{background:#f0f0f0}.components-button.editor-post-last-revision__title:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-panel__body.is-opened.editor-post-last-revision__panel{height:48px;padding:0}.components-panel__body.is-opened.editor-post-last-revision__panel .editor-post-last-revision__title.components-button.components-button{padding:16px}.editor-post-locked-modal__buttons{margin-top:24px}.editor-post-locked-modal__avatar{border-radius:2px;margin-top:16px;min-width:auto!important}.editor-post-panel__row{align-items:flex-start!important;justify-content:flex-start!important;min-height:36px;width:100%}.editor-post-panel__row-label{align-items:center;display:flex;flex-shrink:0;min-height:36px;width:30%}.editor-post-panel__row-control{align-items:center;display:flex;flex-grow:1;min-height:36px}.editor-post-publish-button__button.has-changes-dot:before{background:currentcolor;border-radius:4px;content:"";height:8px;margin:auto 5px auto -3px;width:8px}.editor-post-publish-panel{background:#fff}.editor-post-publish-panel__content{min-height:calc(100% - 144px)}.editor-post-publish-panel__content>.components-spinner{display:block;margin:100px auto 0}.editor-post-publish-panel__header{align-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #ddd;display:flex;height:61px;padding-left:16px;padding-right:16px}.editor-post-publish-panel__header .components-button{justify-content:center;width:100%}.editor-post-publish-panel__header .has-icon{margin-left:auto;width:auto}.components-site-card{align-items:center;display:flex;margin:16px 0}.components-site-icon{border:none;border-radius:2px;height:36px;margin-right:12px;width:36px}.components-site-name{display:block;font-size:14px}.components-site-home{color:#757575;display:block;font-size:12px}.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{flex:1}@media (min-width:480px){.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{max-width:160px}}.editor-post-publish-panel__header-publish-button{padding-right:4px}.editor-post-publish-panel__header-cancel-button{padding-left:4px}.editor-post-publish-panel__header-published{flex-grow:1}.editor-post-publish-panel__footer{padding:16px}.components-button.editor-post-publish-panel__toggle.is-primary{align-items:center;display:inline-flex}.components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon{display:none}.components-button.editor-post-publish-panel__toggle.is-primary .dashicon{margin-right:-4px}.editor-post-publish-panel__link{font-weight:400;padding-left:4px}.editor-post-publish-panel__prepublish{padding:16px}.editor-post-publish-panel__prepublish strong{color:#1e1e1e}.editor-post-publish-panel__prepublish .components-panel__body{background:#fff;margin-left:-16px;margin-right:-16px}.editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend{display:none}.post-publish-panel__postpublish .components-panel__body{border-bottom:1px solid #e0e0e0;border-top:none}.post-publish-panel__postpublish-buttons{align-content:space-between;display:flex;flex-wrap:wrap;gap:16px}.post-publish-panel__postpublish-buttons .components-button{flex:1;justify-content:center}.post-publish-panel__postpublish-buttons .components-clipboard-button{width:100%}.post-publish-panel__postpublish-post-address-container{align-items:flex-end;display:flex;margin-bottom:16px}.post-publish-panel__postpublish-post-address-container .post-publish-panel__postpublish-post-address{flex:1}.post-publish-panel__postpublish-post-address-container input[readonly]{background:#f0f0f0;border-color:#ccc;height:36px;overflow:hidden;padding:16px;text-overflow:ellipsis}.post-publish-panel__postpublish-post-address__copy-button-wrap{flex-shrink:0;margin-left:16px}.post-publish-panel__postpublish-header{font-weight:500}.post-publish-panel__postpublish-subheader{margin:0 0 8px}.post-publish-panel__tip{color:#f0b849}@media screen and (max-width:782px){.post-publish-panel__postpublish-post-address__button-wrap .components-button{height:40px}}.editor-post-saved-state{align-items:center;color:#757575;display:flex;overflow:hidden;padding:12px 4px;white-space:nowrap;width:28px}.editor-post-saved-state.is-saved[aria-disabled=true],.editor-post-saved-state.is-saved[aria-disabled=true]:hover,.editor-post-saved-state.is-saving[aria-disabled=true],.editor-post-saved-state.is-saving[aria-disabled=true]:hover{background:transparent;color:#757575}.editor-post-saved-state svg{fill:currentColor;display:inline-block;flex:0 0 auto;margin-right:8px}@media (min-width:600px){.editor-post-saved-state{padding:8px 12px;text-indent:inherit;width:auto}.editor-post-saved-state svg{margin-right:0}}.editor-post-save-draft.has-text.has-icon svg{margin-right:0}.editor-post-schedule__panel-dropdown{width:100%}.editor-post-schedule__dialog .components-popover__content{min-width:320px;padding:16px}.editor-post-schedule__dialog-toggle.components-button{display:block;height:auto;line-height:16px;max-width:100%;overflow:hidden;padding:10px 12px;text-align:left;white-space:unset}.editor-post-sync-status__value{padding:6px 0 6px 12px}.editor-post-taxonomies__hierarchical-terms-list{margin-left:-6px;margin-top:-6px;max-height:14em;overflow:auto;padding-left:6px;padding-top:6px}.editor-post-taxonomies__hierarchical-terms-choice{margin-bottom:8px}.editor-post-taxonomies__hierarchical-terms-choice:last-child{margin-bottom:4px}.editor-post-taxonomies__hierarchical-terms-subchoices{margin-left:16px;margin-top:8px}.editor-post-taxonomies__flat-term-most-used .editor-post-taxonomies__flat-term-most-used-label{margin-bottom:4px}.editor-post-taxonomies__flat-term-most-used-list{margin:0}.editor-post-taxonomies__flat-term-most-used-list li{display:inline-block;margin-right:8px}.editor-post-taxonomies__flat-term-most-used-list .components-button{font-size:12px}.editor-post-template__swap-template-modal{z-index:1000001}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:2;column-gap:24px;padding-top:2px}@media (min-width:782px){.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:3}}@media (min-width:1280px){.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list{column-count:4}}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.editor-post-template__swap-template-modal-content .block-editor-block-patterns-list .block-editor-block-patterns-list__item:not(:focus):not(:hover) .block-editor-block-preview__container{box-shadow:0 0 0 1px #ddd}.editor-post-template__dropdown .components-popover__content{min-width:240px}.editor-post-template__dropdown .components-button.is-pressed,.editor-post-template__dropdown .components-button.is-pressed:hover{background:inherit;color:inherit}@media (min-width:782px){.editor-post-template__create-form{width:320px}}.editor-post-template__classic-theme-dropdown{padding:8px}.edit-post-text-editor__body textarea.editor-post-text-editor{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.edit-post-text-editor__body textarea.editor-post-text-editor{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-text-editor__body textarea.editor-post-text-editor{font-size:15px!important;padding:24px}}.edit-post-text-editor__body textarea.editor-post-text-editor:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}.edit-post-text-editor__body textarea.editor-post-text-editor::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body textarea.editor-post-text-editor::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.edit-post-text-editor__body textarea.editor-post-text-editor:-ms-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body .editor-post-title.is-raw-text{margin-bottom:24px;margin-top:2px;max-width:none}.editor-post-url__panel-dropdown{width:100%}.components-button.editor-post-url__panel-toggle{display:block;max-width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.editor-post-url__panel-dialog .editor-post-url{margin:8px;min-width:248px}.editor-post-url__link-label{font-size:13px;font-weight:400;margin:0}.editor-post-url__link{direction:ltr;word-break:break-word}.editor-post-url__link-slug{font-weight:600}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-right:12px;margin-top:2px;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{height:20px;width:20px}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(7px,7px);width:8px}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{transform:translate(5px,5px)}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__info{color:#757575;margin-left:36px;margin-top:.5em}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__info{margin-left:32px}}.editor-post-visibility__fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__info{margin-bottom:0}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin-left:32px;padding:6px 8px;transition:box-shadow .1s linear;width:calc(100% - 32px)}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-trash.components-button{flex-grow:1;justify-content:center}.editor-preview-dropdown__button-external{display:flex;justify-content:space-between;width:100%}.table-of-contents__popover.components-popover .components-popover__content{min-width:380px}.components-popover.table-of-contents__popover{z-index:99998}.table-of-contents__popover .components-popover__content{padding:16px}@media (min-width:600px){.table-of-contents__popover .components-popover__content{max-height:calc(100vh - 120px);overflow-y:auto}}.table-of-contents__popover hr{margin:10px -16px 0}.table-of-contents__wrapper:focus:before{bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.table-of-contents__counts{display:flex;flex-wrap:wrap;margin:-8px 0 0}.table-of-contents__count{color:#1e1e1e;display:flex;flex-basis:33%;flex-direction:column;font-size:13px;margin-bottom:0;margin-top:8px;padding-right:8px}.table-of-contents__count:nth-child(4n){padding-right:0}.table-of-contents__number,.table-of-contents__popover .word-count{color:#1e1e1e;font-size:21px;font-weight:400;line-height:30px}.table-of-contents__title{display:block;font-size:15px;font-weight:600;margin-top:20px}.editor-template-validation-notice{align-items:center;display:flex;justify-content:space-between}.editor-template-validation-notice .components-button{margin-left:5px} \ No newline at end of file +@charset "UTF-8";:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.editor-autocompleters__user .editor-autocompleters__no-avatar:before{content:"";font:normal 20px/1 dashicons;margin-right:5px;vertical-align:middle}.editor-autocompleters__user .editor-autocompleters__user-avatar{flex-grow:0;flex-shrink:0;height:24px;margin-right:8px;max-width:none;width:24px}.editor-autocompleters__user .editor-autocompleters__user-name{flex-grow:1;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user .editor-autocompleters__user-slug{color:#757575;flex-grow:0;flex-shrink:0;margin-left:8px;max-width:100px;overflow:none;text-overflow:ellipsis;white-space:nowrap}.editor-autocompleters__user:hover .editor-autocompleters__user-slug{color:var(--wp-admin-theme-color)}.document-outline{margin:20px 0}.document-outline ul{margin:0;padding:0}.document-outline__item{display:flex;margin:4px 0}.document-outline__item a{text-decoration:none}.document-outline__item .document-outline__emdash:before{color:#ddd;margin-right:4px}.document-outline__item.is-h2 .document-outline__emdash:before{content:"—"}.document-outline__item.is-h3 .document-outline__emdash:before{content:"——"}.document-outline__item.is-h4 .document-outline__emdash:before{content:"———"}.document-outline__item.is-h5 .document-outline__emdash:before{content:"————"}.document-outline__item.is-h6 .document-outline__emdash:before{content:"—————"}.document-outline__button{align-items:flex-start;background:none;border:none;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;margin:0 0 0 -1px;padding:2px 5px 2px 1px;text-align:left}.document-outline__button:disabled{cursor:default}.document-outline__button:focus{box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);outline:2px solid transparent}.document-outline__level{background:#ddd;border-radius:3px;color:#1e1e1e;font-size:13px;margin-right:4px;padding:1px 6px}.is-invalid .document-outline__level{background:#f0b849}.document-outline__item-content{padding:1px 0}.components-editor-notices__dismissible,.components-editor-notices__pinned{color:#1e1e1e;left:0;position:relative;right:0;top:0}.components-editor-notices__dismissible .components-notice,.components-editor-notices__pinned .components-notice{border-bottom:1px solid rgba(0,0,0,.2);box-sizing:border-box;margin:0;min-height:60px;padding:0 12px}.components-editor-notices__dismissible .components-notice .components-notice__dismiss,.components-editor-notices__pinned .components-notice .components-notice__dismiss{margin-top:12px}.entities-saved-states__panel-header{background:#fff;border-bottom:1px solid #ddd;box-sizing:border-box;height:60px;padding-left:8px;padding-right:8px}.entities-saved-states__text-prompt{padding:16px 16px 4px}.editor-error-boundary{box-shadow:0 .7px 1px rgba(0,0,0,.15),0 2.7px 3.8px -.2px rgba(0,0,0,.15),0 5.5px 7.8px -.3px rgba(0,0,0,.15),.1px 11.5px 16.4px -.5px rgba(0,0,0,.15);margin:60px auto auto;max-width:780px;padding:20px}.editor-post-excerpt__textarea{margin-bottom:10px;width:100%}.editor-post-featured-image{padding:0}.editor-post-featured-image .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.editor-post-featured-image .components-responsive-wrapper__content{max-width:100%;width:auto}.editor-post-featured-image__container{position:relative}.editor-post-featured-image__container:focus .editor-post-featured-image__actions,.editor-post-featured-image__container:focus-within .editor-post-featured-image__actions,.editor-post-featured-image__container:hover .editor-post-featured-image__actions{opacity:1}.editor-post-featured-image__preview,.editor-post-featured-image__toggle{box-shadow:0 0 0 0 var(--wp-admin-theme-color);display:flex;justify-content:center;max-height:150px;overflow:hidden;padding:0;transition:all .1s ease-out;width:100%}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__preview,.editor-post-featured-image__toggle{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__preview{height:auto}.editor-post-featured-image__preview .components-responsive-wrapper{background:#f0f0f0;width:100%}.editor-post-featured-image__toggle{background-color:#f0f0f0;border-radius:2px;line-height:20px;min-height:90px;padding:8px 0;text-align:center}.editor-post-featured-image__toggle:hover{background:#ddd;color:#1e1e1e}.editor-post-featured-image__actions{bottom:0;opacity:0;padding:8px;position:absolute;transition:opacity 50ms ease-out}@media (prefers-reduced-motion:reduce){.editor-post-featured-image__actions{transition-delay:0s;transition-duration:0s}}.editor-post-featured-image__action{-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background:hsla(0,0%,100%,.75);flex-grow:1;justify-content:center}[class].editor-post-format__suggestion{margin:4px 0 0}.editor-post-last-revision__title{font-weight:600;width:100%}.editor-post-last-revision__title .dashicon{margin-right:5px}.components-button.editor-post-last-revision__title{height:100%}.components-button.editor-post-last-revision__title:active,.components-button.editor-post-last-revision__title:hover{background:#f0f0f0}.components-button.editor-post-last-revision__title:focus{border-radius:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}@media (min-width:600px){.editor-post-locked-modal{max-width:480px}}.editor-post-locked-modal__buttons{margin-top:24px}.editor-post-locked-modal__avatar{border-radius:2px;margin-top:16px;min-width:auto!important}.editor-post-publish-button__button.has-changes-dot:before{background:currentcolor;border-radius:4px;content:"";height:8px;margin:auto 5px auto -3px;width:8px}.editor-post-publish-panel{background:#fff}.editor-post-publish-panel__content{min-height:calc(100% - 144px)}.editor-post-publish-panel__content>.components-spinner{display:block;margin:100px auto 0}.editor-post-publish-panel__header{align-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #ddd;display:flex;height:61px;padding-left:16px;padding-right:16px}.editor-post-publish-panel__header .components-button{justify-content:center;width:100%}.editor-post-publish-panel__header .has-icon{margin-left:auto;width:auto}.components-site-card{align-items:center;display:flex;margin:16px 0}.components-site-icon{border:none;border-radius:2px;height:36px;margin-right:12px;width:36px}.components-site-name{display:block;font-size:14px}.components-site-home{color:#757575;display:block;font-size:12px}.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{flex:1}@media (min-width:480px){.editor-post-publish-panel__header-cancel-button,.editor-post-publish-panel__header-publish-button{max-width:160px}}.editor-post-publish-panel__header-publish-button{padding-right:4px}.editor-post-publish-panel__header-cancel-button{padding-left:4px}.editor-post-publish-panel__header-published{flex-grow:1}.editor-post-publish-panel__footer{padding:16px}.components-button.editor-post-publish-panel__toggle.is-primary{align-items:center;display:inline-flex}.components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon{display:none}.components-button.editor-post-publish-panel__toggle.is-primary .dashicon{margin-right:-4px}.editor-post-publish-panel__link{font-weight:400;padding-left:4px}.editor-post-publish-panel__prepublish{padding:16px}.editor-post-publish-panel__prepublish strong{color:#1e1e1e}.editor-post-publish-panel__prepublish .components-panel__body{background:#fff;margin-left:-16px;margin-right:-16px}.editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend{display:none}.post-publish-panel__postpublish .components-panel__body{border-bottom:1px solid #e0e0e0;border-top:none}.post-publish-panel__postpublish-buttons{align-content:space-between;display:flex;flex-wrap:wrap;gap:16px}.post-publish-panel__postpublish-buttons .components-button{flex:1;justify-content:center}.post-publish-panel__postpublish-buttons .components-clipboard-button{width:100%}.post-publish-panel__postpublish-post-address-container{align-items:flex-end;display:flex;margin-bottom:16px}.post-publish-panel__postpublish-post-address-container .post-publish-panel__postpublish-post-address{flex:1}.post-publish-panel__postpublish-post-address-container input[readonly]{background:#f0f0f0;border-color:#ccc;height:36px;overflow:hidden;padding:16px;text-overflow:ellipsis}.post-publish-panel__postpublish-post-address__copy-button-wrap{flex-shrink:0;margin-left:16px}.post-publish-panel__postpublish-header{font-weight:500}.post-publish-panel__postpublish-subheader{margin:0 0 8px}.post-publish-panel__tip{color:#f0b849}@media screen and (max-width:782px){.post-publish-panel__postpublish-post-address__button-wrap .components-button{height:40px}}.editor-post-saved-state{align-items:center;color:#757575;display:flex;overflow:hidden;padding:12px 4px;white-space:nowrap;width:28px}.editor-post-saved-state.is-saved[aria-disabled=true],.editor-post-saved-state.is-saved[aria-disabled=true]:hover,.editor-post-saved-state.is-saving[aria-disabled=true],.editor-post-saved-state.is-saving[aria-disabled=true]:hover{background:transparent;color:#757575}.editor-post-saved-state svg{fill:currentColor;display:inline-block;flex:0 0 auto;margin-right:8px}@media (min-width:600px){.editor-post-saved-state{padding:8px 12px;text-indent:inherit;width:auto}.editor-post-saved-state svg{margin-right:0}}.editor-post-save-draft.has-text.has-icon svg{margin-right:0}.edit-post-sync-status{align-items:flex-start;justify-content:flex-start;position:relative;width:100%}.edit-post-sync-status>span{display:block;flex-shrink:0;padding:6px 0;width:45%;word-break:break-word}.edit-post-sync-status>div{padding:6px 0 6px 12px}.editor-post-taxonomies__hierarchical-terms-list{margin-left:-6px;margin-top:-6px;max-height:14em;overflow:auto;padding-left:6px;padding-top:6px}.editor-post-taxonomies__hierarchical-terms-choice{margin-bottom:8px}.editor-post-taxonomies__hierarchical-terms-choice:last-child{margin-bottom:4px}.editor-post-taxonomies__hierarchical-terms-subchoices{margin-left:16px;margin-top:8px}.editor-post-taxonomies__flat-term-most-used .editor-post-taxonomies__flat-term-most-used-label{margin-bottom:4px}.editor-post-taxonomies__flat-term-most-used-list{margin:0}.editor-post-taxonomies__flat-term-most-used-list li{display:inline-block;margin-right:8px}.editor-post-taxonomies__flat-term-most-used-list .components-button{font-size:12px}.edit-post-text-editor__body textarea.editor-post-text-editor{border:1px solid #949494;border-radius:0;box-shadow:none;display:block;font-family:Menlo,Consolas,monaco,monospace;font-size:16px!important;line-height:2.4;margin:0;min-height:200px;overflow:hidden;padding:16px;resize:none;transition:border .1s ease-out,box-shadow .1s linear;width:100%}@media (prefers-reduced-motion:reduce){.edit-post-text-editor__body textarea.editor-post-text-editor{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.edit-post-text-editor__body textarea.editor-post-text-editor{font-size:15px!important;padding:24px}}.edit-post-text-editor__body textarea.editor-post-text-editor:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);position:relative}.edit-post-text-editor__body textarea.editor-post-text-editor::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.edit-post-text-editor__body textarea.editor-post-text-editor::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.edit-post-text-editor__body textarea.editor-post-text-editor:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-url__link-label{font-size:13px;font-weight:400;margin:0}.editor-post-url__link{direction:ltr;word-break:break-word}.editor-post-url__link-slug{font-weight:600}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{border:1px solid #1e1e1e;border-radius:2px;border-radius:50%;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;height:24px;line-height:normal;margin-right:12px;margin-top:2px;padding:6px 8px;transition:box-shadow .1s linear;transition:none;width:24px}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:-ms-input-placeholder{color:rgba(30,30,30,.62)}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]{height:20px;width:20px}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{background-color:#fff;border:4px solid #fff;box-sizing:inherit;height:8px;margin:0;transform:translate(7px,7px);width:8px}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked:before{transform:translate(5px,5px)}}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__radio[type=radio]:checked{background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color)}.editor-post-visibility__fieldset .editor-post-visibility__info{color:#757575;margin-left:36px;margin-top:.5em}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__info{margin-left:32px}}.editor-post-visibility__fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__info{margin-bottom:0}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{border:1px solid #949494;border-radius:2px;box-shadow:0 0 0 transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:normal;margin-left:32px;padding:6px 8px;transition:box-shadow .1s linear;width:calc(100% - 32px)}@media (prefers-reduced-motion:reduce){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{transition-delay:0s;transition-duration:0s}}@media (min-width:600px){.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]{font-size:13px;line-height:normal}}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:focus{border-color:var(--wp-admin-theme-color);box-shadow:0 0 0 .5px var(--wp-admin-theme-color);outline:2px solid transparent}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-webkit-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]::-moz-placeholder{color:rgba(30,30,30,.62);opacity:1}.editor-post-visibility__fieldset .editor-post-visibility__password .editor-post-visibility__password-input[type=text]:-ms-input-placeholder{color:rgba(30,30,30,.62)}.editor-post-trash.components-button{flex-grow:1;justify-content:center}.table-of-contents__popover.components-popover .components-popover__content{min-width:380px}.components-popover.table-of-contents__popover{z-index:99998}.table-of-contents__popover .components-popover__content{padding:16px}@media (min-width:600px){.table-of-contents__popover .components-popover__content{max-height:calc(100vh - 120px);overflow-y:auto}}.table-of-contents__popover hr{margin:10px -16px 0}.table-of-contents__wrapper:focus:before{bottom:0;box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.table-of-contents__counts{display:flex;flex-wrap:wrap;margin:-8px 0 0}.table-of-contents__count{color:#1e1e1e;display:flex;flex-basis:33%;flex-direction:column;font-size:13px;margin-bottom:0;margin-top:8px;padding-right:8px}.table-of-contents__count:nth-child(4n){padding-right:0}.table-of-contents__number,.table-of-contents__popover .word-count{color:#1e1e1e;font-size:21px;font-weight:400;line-height:30px}.table-of-contents__title{display:block;font-size:15px;font-weight:600;margin-top:20px}.editor-template-validation-notice{align-items:center;display:flex;justify-content:space-between}.editor-template-validation-notice .components-button{margin-left:5px} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.css index ce2f5d4f76..961b7e4a83 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.css @@ -47,9 +47,21 @@ color:#cc1818; } -.format-library__inline-color-popover [role=tabpanel]{ +.components-inline-color-popover .components-popover__content .components-tab-panel__tab-content{ padding:16px; } +.components-inline-color-popover .components-popover__content .components-color-palette{ + margin-top:.6rem; +} +.components-inline-color-popover .components-popover__content .components-base-control__title{ + color:#191e23; + display:block; + font-weight:600; + margin-bottom:16px; +} +.components-inline-color-popover .components-popover__content .component-color-indicator{ + vertical-align:text-bottom; +} .block-editor-format-toolbar__language-popover .components-popover__content{ padding:1rem; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.min.css index dbcd03266e..e193ded771 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-format-toolbar__image-popover{z-index:159990}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-value{margin:7px;max-width:500px;min-width:150px}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-button{height:30px;margin-bottom:8px;margin-left:8px}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#cc1818}.format-library__inline-color-popover [role=tabpanel]{padding:16px}.block-editor-format-toolbar__language-popover .components-popover__content{padding:1rem;width:auto} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-format-toolbar__image-popover{z-index:159990}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-value{margin:7px;max-width:500px;min-width:150px}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-button{height:30px;margin-bottom:8px;margin-left:8px}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#cc1818}.components-inline-color-popover .components-popover__content .components-tab-panel__tab-content{padding:16px}.components-inline-color-popover .components-popover__content .components-color-palette{margin-top:.6rem}.components-inline-color-popover .components-popover__content .components-base-control__title{color:#191e23;display:block;font-weight:600;margin-bottom:16px}.components-inline-color-popover .components-popover__content .component-color-indicator{vertical-align:text-bottom}.block-editor-format-toolbar__language-popover .components-popover__content{padding:1rem;width:auto} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.css index 1ecdfbb26f..90750fa86b 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.css @@ -47,9 +47,21 @@ color:#cc1818; } -.format-library__inline-color-popover [role=tabpanel]{ +.components-inline-color-popover .components-popover__content .components-tab-panel__tab-content{ padding:16px; } +.components-inline-color-popover .components-popover__content .components-color-palette{ + margin-top:.6rem; +} +.components-inline-color-popover .components-popover__content .components-base-control__title{ + color:#191e23; + display:block; + font-weight:600; + margin-bottom:16px; +} +.components-inline-color-popover .components-popover__content .component-color-indicator{ + vertical-align:text-bottom; +} .block-editor-format-toolbar__language-popover .components-popover__content{ padding:1rem; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.min.css index b2c8b0572d..6df54a1cf4 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/format-library/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-format-toolbar__image-popover{z-index:159990}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-value{margin:7px;max-width:500px;min-width:150px}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-button{height:30px;margin-bottom:8px;margin-right:8px}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#cc1818}.format-library__inline-color-popover [role=tabpanel]{padding:16px}.block-editor-format-toolbar__language-popover .components-popover__content{padding:1rem;width:auto} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.block-editor-format-toolbar__image-popover{z-index:159990}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-value{margin:7px;max-width:500px;min-width:150px}.block-editor-format-toolbar__image-popover .block-editor-format-toolbar__image-container-button{height:30px;margin-bottom:8px;margin-right:8px}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{flex-grow:1;flex-shrink:1;margin:7px;max-width:500px;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#cc1818}.components-inline-color-popover .components-popover__content .components-tab-panel__tab-content{padding:16px}.components-inline-color-popover .components-popover__content .components-color-palette{margin-top:.6rem}.components-inline-color-popover .components-popover__content .components-base-control__title{color:#191e23;display:block;font-weight:600;margin-bottom:16px}.components-inline-color-popover .components-popover__content .component-color-indicator{vertical-align:text-bottom}.block-editor-format-toolbar__language-popover .components-popover__content{padding:1rem;width:auto} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.css index 99504b76e5..f35bfe0a43 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.css @@ -22,16 +22,18 @@ width:350px; } .patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{ + min-height:40px; position:relative; + width:100%; } -.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list:not(:empty){ +.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{ background-color:#fff; border:1px solid var(--wp-admin-theme-color); border-bottom-left-radius:2px; border-bottom-right-radius:2px; - box-shadow:0 0 .5px .5px var(--wp-admin-theme-color); + border-top:none; + box-shadow:0 0 0 .5px var(--wp-admin-theme-color); box-sizing:border-box; - max-height:96px; min-width:auto; position:absolute; right:-1px; @@ -41,6 +43,7 @@ .patterns-create-modal__name-input input[type=text]{ margin:0; + min-height:40px; } .patterns-rename-pattern-category-modal__validation-message{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.min.css index 70f30cd6d1..b19828bf25 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style-rtl.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{position:relative}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list:not(:empty){background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;box-shadow:0 0 .5px .5px var(--wp-admin-theme-color);box-sizing:border-box;max-height:96px;min-width:auto;position:absolute;right:-1px;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0}.patterns-rename-pattern-category-modal__validation-message{color:#cc1818}@media (min-width:782px){.patterns-rename-pattern-category-modal__validation-message{width:320px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{min-height:40px;position:relative;width:100%}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:none;box-shadow:0 0 0 .5px var(--wp-admin-theme-color);box-sizing:border-box;min-width:auto;position:absolute;right:-1px;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0;min-height:40px}.patterns-rename-pattern-category-modal__validation-message{color:#cc1818}@media (min-width:782px){.patterns-rename-pattern-category-modal__validation-message{width:320px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.css index 28af8c7286..0960975dd1 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.css @@ -22,17 +22,19 @@ width:350px; } .patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{ + min-height:40px; position:relative; + width:100%; } -.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list:not(:empty){ +.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{ background-color:#fff; border:1px solid var(--wp-admin-theme-color); border-bottom-left-radius:2px; border-bottom-right-radius:2px; - box-shadow:0 0 .5px .5px var(--wp-admin-theme-color); + border-top:none; + box-shadow:0 0 0 .5px var(--wp-admin-theme-color); box-sizing:border-box; left:-1px; - max-height:96px; min-width:auto; position:absolute; width:calc(100% + 2px); @@ -41,6 +43,7 @@ .patterns-create-modal__name-input input[type=text]{ margin:0; + min-height:40px; } .patterns-rename-pattern-category-modal__validation-message{ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.min.css index 5d0506b892..b776f08812 100644 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/dist/patterns/style.min.css @@ -1 +1 @@ -:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{position:relative}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list:not(:empty){background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;box-shadow:0 0 .5px .5px var(--wp-admin-theme-color);box-sizing:border-box;left:-1px;max-height:96px;min-width:auto;position:absolute;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0}.patterns-rename-pattern-category-modal__validation-message{color:#cc1818}@media (min-width:782px){.patterns-rename-pattern-category-modal__validation-message{width:320px}} \ No newline at end of file +:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{min-height:40px;position:relative;width:100%}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:none;box-shadow:0 0 0 .5px var(--wp-admin-theme-color);box-sizing:border-box;left:-1px;min-width:auto;position:absolute;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0;min-height:40px}.patterns-rename-pattern-category-modal__validation-message{color:#cc1818}@media (min-width:782px){.patterns-rename-pattern-category-modal__validation-message{width:320px}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.css index dd3ff5ce47..c1a935faff 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.css @@ -1846,6 +1846,7 @@ html:lang(he-il) .rtl .quicktags-toolbar input { /* HiDPI */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-media-buttons .add_media span.wp-media-buttons-icon { background: none; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.min.css index 463668c6cc..9629ed9f01 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.mce-tinymce{box-shadow:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;transition:none;background:#000}.mce-window{border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fff;border-bottom:1px solid #dcdcde;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#3c434a;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:normal 20px/36px dashicons;text-align:center;color:#646970;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#135e96}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #dcdcde}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #dcdcde;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(2n),.mce-window .wp-editor-help table.fixed th:nth-child(2n){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#f0f0f1;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 12px 6px 15px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #dcdcde}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dcdcde;background:#f6f7f7;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a7aaad;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-webkit-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a7aaad;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a7aaad;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f6f7f7;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f6f7f7;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}div.mce-statusbar{border-top:1px solid #dcdcde}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#f6f7f7;border-color:#50575e;color:#1d2327;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#f0f0f1;border-color:#50575e;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#1d2327}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a7aaad;background:0 0;border-color:#dcdcde;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#50575e}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:1.53846153;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#50575e}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #72aee6}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:rtl;background:#fff;border:1px solid #dcdcde;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#c3c4c7}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #50575e;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#1d2327}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #1d2327;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#2271b1;color:#fff}.mce-menu .mce-menu-item.mce-selected .mce-caret,.mce-menu .mce-menu-item:focus .mce-caret,.mce-menu .mce-menu-item:hover .mce-caret{border-right-color:#fff}.rtl .mce-menu .mce-menu-item.mce-selected .mce-caret,.rtl .mce-menu .mce-menu-item:focus .mce-caret,.rtl .mce-menu .mce-menu-item:hover .mce-caret{border-left-color:inherit;border-right-color:#fff}.mce-menu .mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu .mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu .mce-menu-item.mce-disabled:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:focus .mce-menu-shortcut,.mce-menu .mce-menu-item:focus .mce-text,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-menu-shortcut,.mce-menu .mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#c3c4c7}div.mce-menubar{border-color:#dcdcde;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #dcdcde;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-menu.mce-menu-align .mce-menu-item-normal{position:relative}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:1.85714285}.mce-window .mce-btn{color:#50575e;background:#f6f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #c3c4c7;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #c3c4c7}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.mce-window .mce-btn:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.mce-window .mce-btn:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a7aaad!important;border-color:#dcdcde!important;background:#f6f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;transform:none!important}.mce-window .mce-btn.mce-primary{background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #135e96,-1px 0 1px #135e96,0 1px 1px #135e96,1px 0 1px #135e96}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}.mce-window .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#9ec2e6!important;background:#4f94d4!important;border-color:#3582c4!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dcdcde;cursor:pointer}.mce-charmap td:hover{background:#f6f7f7}.mce-charmap td div{width:18px;height:22px;line-height:1.57142857}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#50575e;line-height:1;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-dfw{color:#50575e;line-height:1;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#1d2327}div.mce-notification{right:10%!important;left:10%}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#50575e}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:normal 20px/1 dashicons;padding:0;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px;padding-left:2px}.qt-dfw{font:normal 20px/1 dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #dcdcde}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;box-sizing:content-box;position:relative;top:1px;background:#f0f0f1;color:#646970;cursor:pointer;font-size:13px;line-height:1.46153846;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #dcdcde}.wp-switch-editor:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:0;color:#1d2327}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f6f7f7;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f6f7f7;color:#50575e;border-bottom-color:#f6f7f7}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#3c434a;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:20px;height:20px;line-height:1;vertical-align:middle;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{content:"\f104"}.mce-content-body dl.wp-caption{max-width:100%}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:7px 0 0 7px}.qt-dfw{margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;min-height:26px;line-height:2}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{background-color:#f0f0f1;margin:2px;padding:2px;border:1px solid #8c8f94;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#50575e;background-color:#c3c4c7}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-right:-250px;margin-top:-125px;position:fixed;top:50%;right:50%;z-index:100105;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap{height:600px;margin-top:-300px}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fff;border-bottom:1px solid #dcdcde;font-size:18px;font-weight:600;line-height:2;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#646970;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#135e96}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:calc(2.15384615em + 16px);right:0;left:0;bottom:calc(2.15384615em + 19px);display:flex;flex-direction:column;overflow:auto}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:120px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block}#wp-link .query-results{position:absolute;width:calc(100% - 32px)}#wp-link .link-search-wrapper .spinner{float:none;margin:-3px 4px 0 0}#wp-link .link-target{padding:3px 0 0}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dcdcde solid;margin:0 0 12px;background:#fff;overflow:auto;max-height:290px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f0f0f1;color:#2c3338;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dcdcde;background-color:#fff;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #72aee6}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dcdcde;background-color:#f6f7f7}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d63638}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#f0f6fc;color:#101517}#wp-link li.unselectable{border-bottom:1px solid #dcdcde}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#2c3338}#wp-link li.selected{background:#dcdcde;color:#2c3338}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#646970;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:1.92307692;float:right}#wp-link-update{line-height:1.76923076;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:calc(2.71428571em + 23px)}#wp-link-cancel{line-height:2.46153846}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:620px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#2271b1;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#d63638}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box;line-height:1.28571429;min-height:26px}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #4f94d4;box-shadow:0 1px 2px rgba(79,148,212,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#dcdcde;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file +.mce-tinymce{box-shadow:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;transition:none;background:#000}.mce-window{border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fff;border-bottom:1px solid #dcdcde;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#3c434a;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:normal 20px/36px dashicons;text-align:center;color:#646970;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#135e96}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #dcdcde}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #dcdcde;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(2n),.mce-window .wp-editor-help table.fixed th:nth-child(2n){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#f0f0f1;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 12px 6px 15px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #dcdcde}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dcdcde;background:#f6f7f7;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a7aaad;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-webkit-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a7aaad;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a7aaad;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f6f7f7;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f6f7f7;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}div.mce-statusbar{border-top:1px solid #dcdcde}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#f6f7f7;border-color:#50575e;color:#1d2327;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#f0f0f1;border-color:#50575e;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#1d2327}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a7aaad;background:0 0;border-color:#dcdcde;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#50575e}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:1.53846153;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#50575e}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #72aee6}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:rtl;background:#fff;border:1px solid #dcdcde;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#c3c4c7}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #50575e;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#1d2327}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #1d2327;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#2271b1;color:#fff}.mce-menu .mce-menu-item.mce-selected .mce-caret,.mce-menu .mce-menu-item:focus .mce-caret,.mce-menu .mce-menu-item:hover .mce-caret{border-right-color:#fff}.rtl .mce-menu .mce-menu-item.mce-selected .mce-caret,.rtl .mce-menu .mce-menu-item:focus .mce-caret,.rtl .mce-menu .mce-menu-item:hover .mce-caret{border-left-color:inherit;border-right-color:#fff}.mce-menu .mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu .mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu .mce-menu-item.mce-disabled:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:focus .mce-menu-shortcut,.mce-menu .mce-menu-item:focus .mce-text,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-menu-shortcut,.mce-menu .mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#c3c4c7}div.mce-menubar{border-color:#dcdcde;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #dcdcde;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-menu.mce-menu-align .mce-menu-item-normal{position:relative}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:1.85714285}.mce-window .mce-btn{color:#50575e;background:#f6f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #c3c4c7;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #c3c4c7}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.mce-window .mce-btn:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.mce-window .mce-btn:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a7aaad!important;border-color:#dcdcde!important;background:#f6f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;transform:none!important}.mce-window .mce-btn.mce-primary{background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #135e96,-1px 0 1px #135e96,0 1px 1px #135e96,1px 0 1px #135e96}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}.mce-window .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#9ec2e6!important;background:#4f94d4!important;border-color:#3582c4!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dcdcde;cursor:pointer}.mce-charmap td:hover{background:#f6f7f7}.mce-charmap td div{width:18px;height:22px;line-height:1.57142857}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#50575e;line-height:1;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-dfw{color:#50575e;line-height:1;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#1d2327}div.mce-notification{right:10%!important;left:10%}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#50575e}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:normal 20px/1 dashicons;padding:0;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px;padding-left:2px}.qt-dfw{font:normal 20px/1 dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #dcdcde}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;box-sizing:content-box;position:relative;top:1px;background:#f0f0f1;color:#646970;cursor:pointer;font-size:13px;line-height:1.46153846;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #dcdcde}.wp-switch-editor:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:0;color:#1d2327}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f6f7f7;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f6f7f7;color:#50575e;border-bottom-color:#f6f7f7}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#3c434a;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:20px;height:20px;line-height:1;vertical-align:middle;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{content:"\f104"}.mce-content-body dl.wp-caption{max-width:100%}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:7px 0 0 7px}.qt-dfw{margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;min-height:26px;line-height:2}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{background-color:#f0f0f1;margin:2px;padding:2px;border:1px solid #8c8f94;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#50575e;background-color:#c3c4c7}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-right:-250px;margin-top:-125px;position:fixed;top:50%;right:50%;z-index:100105;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap{height:600px;margin-top:-300px}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fff;border-bottom:1px solid #dcdcde;font-size:18px;font-weight:600;line-height:2;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#646970;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#135e96}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:calc(2.15384615em + 16px);right:0;left:0;bottom:calc(2.15384615em + 19px);display:flex;flex-direction:column;overflow:auto}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:120px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block}#wp-link .query-results{position:absolute;width:calc(100% - 32px)}#wp-link .link-search-wrapper .spinner{float:none;margin:-3px 4px 0 0}#wp-link .link-target{padding:3px 0 0}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dcdcde solid;margin:0 0 12px;background:#fff;overflow:auto;max-height:290px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f0f0f1;color:#2c3338;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dcdcde;background-color:#fff;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #72aee6}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dcdcde;background-color:#f6f7f7}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d63638}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#f0f6fc;color:#101517}#wp-link li.unselectable{border-bottom:1px solid #dcdcde}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#2c3338}#wp-link li.selected{background:#dcdcde;color:#2c3338}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#646970;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:1.92307692;float:right}#wp-link-update{line-height:1.76923076;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:calc(2.71428571em + 23px)}#wp-link-cancel{line-height:2.46153846}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:620px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#2271b1;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#d63638}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box;line-height:1.28571429;min-height:26px}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #4f94d4;box-shadow:0 1px 2px rgba(79,148,212,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#dcdcde;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.css index 969b880873..c445a32b43 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.css @@ -1845,6 +1845,7 @@ html:lang(he-il) .rtl .quicktags-toolbar input { /* HiDPI */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-media-buttons .add_media span.wp-media-buttons-icon { background: none; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.min.css index 61cd92e85c..6950f60b16 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/editor.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.mce-tinymce{box-shadow:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;transition:none;background:#000}.mce-window{border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fff;border-bottom:1px solid #dcdcde;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#3c434a;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:normal 20px/36px dashicons;text-align:center;color:#646970;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#135e96}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #dcdcde}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #dcdcde;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(2n),.mce-window .wp-editor-help table.fixed th:nth-child(2n){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#f0f0f1;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 15px 6px 12px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #dcdcde}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dcdcde;background:#f6f7f7;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a7aaad;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-webkit-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a7aaad;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a7aaad;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f6f7f7;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f6f7f7;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}div.mce-statusbar{border-top:1px solid #dcdcde}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#f6f7f7;border-color:#50575e;color:#1d2327;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#f0f0f1;border-color:#50575e;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#1d2327}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a7aaad;background:0 0;border-color:#dcdcde;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#50575e}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:1.53846153;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#50575e}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #72aee6}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:ltr;background:#fff;border:1px solid #dcdcde;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#c3c4c7}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #50575e;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#1d2327}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #1d2327;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#2271b1;color:#fff}.mce-menu .mce-menu-item.mce-selected .mce-caret,.mce-menu .mce-menu-item:focus .mce-caret,.mce-menu .mce-menu-item:hover .mce-caret{border-left-color:#fff}.rtl .mce-menu .mce-menu-item.mce-selected .mce-caret,.rtl .mce-menu .mce-menu-item:focus .mce-caret,.rtl .mce-menu .mce-menu-item:hover .mce-caret{border-left-color:inherit;border-right-color:#fff}.mce-menu .mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu .mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu .mce-menu-item.mce-disabled:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:focus .mce-menu-shortcut,.mce-menu .mce-menu-item:focus .mce-text,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-menu-shortcut,.mce-menu .mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#c3c4c7}div.mce-menubar{border-color:#dcdcde;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #dcdcde;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-menu.mce-menu-align .mce-menu-item-normal{position:relative}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:1.85714285}.mce-window .mce-btn{color:#50575e;background:#f6f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #c3c4c7;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #c3c4c7}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.mce-window .mce-btn:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.mce-window .mce-btn:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a7aaad!important;border-color:#dcdcde!important;background:#f6f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;transform:none!important}.mce-window .mce-btn.mce-primary{background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #135e96,1px 0 1px #135e96,0 1px 1px #135e96,-1px 0 1px #135e96}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}.mce-window .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#9ec2e6!important;background:#4f94d4!important;border-color:#3582c4!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dcdcde;cursor:pointer}.mce-charmap td:hover{background:#f6f7f7}.mce-charmap td div{width:18px;height:22px;line-height:1.57142857}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#50575e;line-height:1;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-dfw{color:#50575e;line-height:1;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#1d2327}div.mce-notification{left:10%!important;right:10%}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#50575e}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:normal 20px/1 dashicons;padding:0;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px;padding-right:2px}.qt-dfw{font:normal 20px/1 dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #dcdcde}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;box-sizing:content-box;position:relative;top:1px;background:#f0f0f1;color:#646970;cursor:pointer;font-size:13px;line-height:1.46153846;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #dcdcde}.wp-switch-editor:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:0;color:#1d2327}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f6f7f7;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f6f7f7;color:#50575e;border-bottom-color:#f6f7f7}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#3c434a;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:20px;height:20px;line-height:1;vertical-align:middle;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{content:"\f104"}.mce-content-body dl.wp-caption{max-width:100%}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:7px 7px 0 0}.qt-dfw{margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;min-height:26px;line-height:2}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{background-color:#f0f0f1;margin:2px;padding:2px;border:1px solid #8c8f94;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#50575e;background-color:#c3c4c7}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-left:-250px;margin-top:-125px;position:fixed;top:50%;left:50%;z-index:100105;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap{height:600px;margin-top:-300px}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fff;border-bottom:1px solid #dcdcde;font-size:18px;font-weight:600;line-height:2;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#646970;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#135e96}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:calc(2.15384615em + 16px);left:0;right:0;bottom:calc(2.15384615em + 19px);display:flex;flex-direction:column;overflow:auto}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:120px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block}#wp-link .query-results{position:absolute;width:calc(100% - 32px)}#wp-link .link-search-wrapper .spinner{float:none;margin:-3px 0 0 4px}#wp-link .link-target{padding:3px 0 0}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dcdcde solid;margin:0 0 12px;background:#fff;overflow:auto;max-height:290px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f0f0f1;color:#2c3338;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dcdcde;background-color:#fff;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #72aee6}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dcdcde;background-color:#f6f7f7}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d63638}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#f0f6fc;color:#101517}#wp-link li.unselectable{border-bottom:1px solid #dcdcde}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#2c3338}#wp-link li.selected{background:#dcdcde;color:#2c3338}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#646970;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:1.92307692;float:left}#wp-link-update{line-height:1.76923076;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:calc(2.71428571em + 23px)}#wp-link-cancel{line-height:2.46153846}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:620px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#2271b1;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#d63638}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box;line-height:1.28571429;min-height:26px}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #4f94d4;box-shadow:0 1px 2px rgba(79,148,212,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#dcdcde;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file +.mce-tinymce{box-shadow:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;transition:none;background:#000}.mce-window{border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fff;border-bottom:1px solid #dcdcde;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#3c434a;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:normal 20px/36px dashicons;text-align:center;color:#646970;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#135e96}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #dcdcde}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #dcdcde;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#4f94d4;box-shadow:0 0 2px rgba(79,148,212,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(2n),.mce-window .wp-editor-help table.fixed th:nth-child(2n){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#f0f0f1;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 15px 6px 12px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #dcdcde}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dcdcde;background:#f6f7f7;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a7aaad;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-webkit-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a7aaad;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a7aaad;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f6f7f7;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f6f7f7;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child){display:none}.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar{display:block}div.mce-statusbar{border-top:1px solid #dcdcde}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#f6f7f7;border-color:#50575e;color:#1d2327;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#f0f0f1;border-color:#50575e;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#1d2327}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a7aaad;background:0 0;border-color:#dcdcde;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#50575e}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:1.53846153;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#50575e}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #72aee6}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:ltr;background:#fff;border:1px solid #dcdcde;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#c3c4c7}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #50575e;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#1d2327}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #1d2327;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item.mce-active.mce-menu-item-normal,.mce-menu .mce-menu-item.mce-active.mce-menu-item-preview,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#2271b1;color:#fff}.mce-menu .mce-menu-item.mce-selected .mce-caret,.mce-menu .mce-menu-item:focus .mce-caret,.mce-menu .mce-menu-item:hover .mce-caret{border-left-color:#fff}.rtl .mce-menu .mce-menu-item.mce-selected .mce-caret,.rtl .mce-menu .mce-menu-item:focus .mce-caret,.rtl .mce-menu .mce-menu-item:hover .mce-caret{border-left-color:inherit;border-right-color:#fff}.mce-menu .mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu .mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu .mce-menu-item.mce-disabled:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:focus .mce-menu-shortcut,.mce-menu .mce-menu-item:focus .mce-text,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-menu-shortcut,.mce-menu .mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#c3c4c7}div.mce-menubar{border-color:#dcdcde;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#043959;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #dcdcde;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-menu.mce-menu-align .mce-menu-item-normal{position:relative}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:1.85714285}.mce-window .mce-btn{color:#50575e;background:#f6f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #c3c4c7;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #c3c4c7}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.mce-window .mce-btn:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.mce-window .mce-btn:active{background:#f0f0f1;border-color:#8c8f94;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a7aaad!important;border-color:#dcdcde!important;background:#f6f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;transform:none!important}.mce-window .mce-btn.mce-primary{background:#3582c4;border-color:#2271b1 #135e96 #135e96;box-shadow:0 1px 0 #135e96;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #135e96,1px 0 1px #135e96,0 1px 1px #135e96,-1px 0 1px #135e96}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#4f94d4;border-color:#135e96;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #2271b1,0 0 2px 1px #72aee6}.mce-window .mce-btn.mce-primary:active{background:#2271b1;border-color:#135e96;box-shadow:inset 0 2px 0 #135e96;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#9ec2e6!important;background:#4f94d4!important;border-color:#3582c4!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dcdcde;cursor:pointer}.mce-charmap td:hover{background:#f6f7f7}.mce-charmap td div{width:18px;height:22px;line-height:1.57142857}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#50575e;line-height:1;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-dfw{color:#50575e;line-height:1;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#1d2327}div.mce-notification{left:10%!important;right:10%}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#50575e}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:normal 20px/1 dashicons;padding:0;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px;padding-right:2px}.qt-dfw{font:normal 20px/1 dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #dcdcde}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;box-sizing:content-box;position:relative;top:1px;background:#f0f0f1;color:#646970;cursor:pointer;font-size:13px;line-height:1.46153846;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #dcdcde}.wp-switch-editor:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:0;color:#1d2327}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f6f7f7;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f6f7f7;color:#50575e;border-bottom-color:#f6f7f7}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#3c434a;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:20px;height:20px;line-height:1;vertical-align:middle;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:normal 18px/1 dashicons;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{content:"\f104"}.mce-content-body dl.wp-caption{max-width:100%}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dcdcde;background:#f6f7f7;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:7px 7px 0 0}.qt-dfw{margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;min-height:26px;line-height:2}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{background-color:#f0f0f1;margin:2px;padding:2px;border:1px solid #8c8f94;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#50575e;background-color:#c3c4c7}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-left:-250px;margin-top:-125px;position:fixed;top:50%;left:50%;z-index:100105;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap{height:600px;margin-top:-300px}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fff;border-bottom:1px solid #dcdcde;font-size:18px;font-weight:600;line-height:2;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#646970;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#135e96}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:2px solid transparent;outline-offset:-2px}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:calc(2.15384615em + 16px);left:0;right:0;bottom:calc(2.15384615em + 19px);display:flex;flex-direction:column;overflow:auto}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:120px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block}#wp-link .query-results{position:absolute;width:calc(100% - 32px)}#wp-link .link-search-wrapper .spinner{float:none;margin:-3px 0 0 4px}#wp-link .link-target{padding:3px 0 0}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dcdcde solid;margin:0 0 12px;background:#fff;overflow:auto;max-height:290px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f0f0f1;color:#2c3338;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dcdcde;background-color:#fff;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #72aee6}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dcdcde;background-color:#f6f7f7}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d63638}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#f0f6fc;color:#101517}#wp-link li.unselectable{border-bottom:1px solid #dcdcde}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#2c3338}#wp-link li.selected{background:#dcdcde;color:#2c3338}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#646970;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fff;border-top:1px solid #dcdcde;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:1.92307692;float:left}#wp-link-update{line-height:1.76923076;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:calc(2.71428571em + 23px)}#wp-link-cancel{line-height:2.46153846}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:620px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#2271b1;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#d63638}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box;line-height:1.28571429;min-height:26px}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #4f94d4;box-shadow:0 1px 2px rgba(79,148,212,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#dcdcde;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.css index d88c530fcf..97c5e68533 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.css @@ -2906,6 +2906,7 @@ * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-core-ui .media-modal-icon { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.min.css index 74672d32e1..5f6322e7cb 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views-rtl.min.css @@ -6,4 +6,4 @@ * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;top:0;left:0;width:50px;height:50px;margin:0;padding:0;border:1px solid transparent;background:0 0;color:#646970;z-index:1000;cursor:pointer;outline:0;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active,.media-modal-close:hover{color:#135e96}.media-modal-close:focus{color:#135e96;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.media-modal-close span.media-modal-icon{background-image:none}.media-modal-close .media-modal-icon:before{content:"\f158";font:normal 20px/1 dashicons;speak:never;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fff;-webkit-font-smoothing:subpixel-antialiased}.media-modal-content .media-frame select.attachment-filters{margin-top:32px;margin-left:2%;width:42%;width:calc(48% - 12px)}.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dcdcde;overflow:hidden}.media-frame-toolbar .media-toolbar{top:auto;bottom:-47px;height:auto;overflow:visible;border-top:1px solid #dcdcde}.media-toolbar-primary{float:left;height:100%;position:relative}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px;z-index:75;background:#f6f7f7;border-right:1px solid #dcdcde;overflow:auto;-webkit-overflow-scrolling:touch}.media-sidebar::after{content:"";display:flex;clear:both;height:24px}.hide-toolbar .media-sidebar{bottom:0}.image-details .media-embed h2,.media-sidebar h2{position:relative;font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:right;width:100%;margin:0 0 10px}.media-sidebar .collection-settings .setting{margin:1px 0}.attachment-details .setting.has-description,.media-sidebar .setting.has-description{margin-bottom:5px}.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting .name,.attachment-details .setting span,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px;text-align:left;word-wrap:break-word}.media-sidebar .setting .name{max-width:80px}.media-sidebar .setting .value{text-align:right}.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting .name,.attachment-details .setting .value,.attachment-details .setting span,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:1.33333333;font-weight:400;color:#646970}.media-sidebar .checkbox-label-inline{font-size:12px}.attachment-details .copy-to-clipboard-container,.media-sidebar .copy-to-clipboard-container{flex-wrap:wrap;margin-top:10px;margin-right:calc(35% - 1px);padding-top:10px}.attachment-details .attachment-info .copy-to-clipboard-container{float:none}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{padding:0;min-height:0;line-height:2.18181818;text-align:right;color:#007017}.compat-item label span{text-align:left}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{box-sizing:border-box;margin:1px;width:65%;float:left}.attachment-details .setting .value,.attachment-details .setting+.description,.media-sidebar .setting .value{margin:0 1px;text-align:right}.attachment-details .setting+.description{clear:both;font-size:12px;font-style:normal;margin-bottom:10px}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.alt-text textarea,.attachment-details .alt-text textarea,.compat-item .alt-text textarea,.media-sidebar .alt-text textarea{height:50px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:65%;margin:1px}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url],.compat-item .field textarea{width:100%;margin:0;box-sizing:border-box}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:50px 0 10px;background:#f6f7f7;border-left-width:1px;border-left-style:solid;border-left-color:#c3c4c7;-webkit-user-select:none;user-select:none}.media-menu .media-menu-item{display:block;box-sizing:border-box;width:100%;position:relative;border:0;margin:0;padding:8px 20px;font-size:14px;line-height:1.28571428;background:0 0;color:#2271b1;text-align:right;text-decoration:none;cursor:pointer}.media-menu .media-menu-item:hover{background:rgba(0,0,0,.04)}.media-menu .media-menu-item:active{color:#2271b1;outline:0}.media-menu .active,.media-menu .active:hover{color:#1d2327;font-weight:600}.media-menu .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #dcdcde}.media-router{position:relative;padding:0 6px;margin:0;clear:both}.media-router .media-menu-item{position:relative;float:right;border:0;margin:0;padding:8px 10px 9px;height:18px;line-height:1.28571428;font-size:14px;text-decoration:none;background:0 0;cursor:pointer;transition:none}.media-router .media-menu-item:last-child{border-left:0}.media-router .media-menu-item:active,.media-router .media-menu-item:hover{color:#2271b1}.media-router .active,.media-router .active:hover{color:#1d2327}.media-router .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-router .active,.media-router .media-menu-item.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #dcdcde;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #dcdcde}.media-frame-toolbar{position:absolute;right:200px;left:0;z-index:100;bottom:60px;height:auto}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-menu .media-frame-menu,.media-frame.hide-menu .media-frame-menu-heading,.media-frame.hide-router .media-frame-router,.media-frame.hide-toolbar .media-frame-toolbar{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:2.27272727;margin:0}.media-attachments-filter-heading,.media-frame-menu-heading{position:absolute;right:20px;top:22px;margin:0;font-size:13px;line-height:1;z-index:151}.media-attachments-filter-heading{top:10px;right:16px}.mode-grid .media-attachments-filter-heading{top:0;right:-9999px}.mode-grid .media-frame-actions-heading{display:none}.wp-core-ui .button.media-frame-menu-toggle{display:none}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.wp-customizer:not(.mobile) .media-frame-content .crop-content.site-icon{margin-left:300px}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:2%;max-width:42%;max-width:calc(48% - 12px)}.media-frame select.attachment-filters:last-of-type{margin-left:0}.media-frame .search{margin:32px 0 0;padding:4px;font-size:13px;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-appearance:none}.media-toolbar-primary .search{max-width:100%}.media-modal .media-frame .media-search-input-label{position:absolute;right:0;top:10px;margin:0;line-height:1}.wp-core-ui .attachments{margin:0;-webkit-overflow-scrolling:touch}.wp-core-ui .attachment{position:relative;float:right;padding:8px;margin:0;color:#3c434a;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;user-select:none;width:25%;box-sizing:border-box}.wp-core-ui .attachment.details:focus,.wp-core-ui .attachment:focus,.wp-core-ui .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.wp-core-ui .selected.attachment{box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #c3c4c7}.wp-core-ui .attachment.details{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #2271b1}.wp-core-ui .attachment-preview{position:relative;box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#f0f0f1;cursor:pointer}.wp-core-ui .attachment-preview:before{content:"";display:block;padding-top:100%}.wp-core-ui .attachment .icon{margin:0 auto;overflow:hidden}.wp-core-ui .attachment .thumbnail{overflow:hidden;position:absolute;top:0;left:0;bottom:0;right:0;opacity:1;transition:opacity .1s}.wp-core-ui .attachment .portrait img{max-width:100%}.wp-core-ui .attachment .landscape img{max-height:100%}.wp-core-ui .attachment .thumbnail:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.wp-core-ui .attachment .thumbnail img{top:0;right:0}.wp-core-ui .attachment .thumbnail .centered{position:absolute;top:0;right:0;width:100%;height:100%;transform:translate(-50%,50%)}.wp-core-ui .attachment .thumbnail .centered img{transform:translate(50%,-50%)}.wp-core-ui .attachments-browser .attachment .thumbnail .centered img.icon{transform:translate(50%,-70%)}.wp-core-ui .attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:600;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.wp-core-ui .attachment .filename div{padding:5px 10px}.wp-core-ui .attachment .thumbnail img{position:absolute}.wp-core-ui .attachment-close{display:block;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;background-color:#fff;background-position:-96px 4px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.3);transition:none}.wp-core-ui .attachment-close:focus,.wp-core-ui .attachment-close:hover{background-position:-36px 4px}.wp-core-ui .attachment .check{display:none;height:24px;width:24px;padding:0;border:0;position:absolute;z-index:10;top:0;left:0;outline:0;background:#f0f0f1;cursor:pointer;box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.wp-core-ui .attachment .check .media-modal-icon{display:block;background-position:-1px 0;height:15px;width:15px;margin:5px}.wp-core-ui .attachment .check:hover .media-modal-icon{background-position:-40px 0}.wp-core-ui .attachment.selected .check{display:block}.wp-core-ui .attachment.details .check,.wp-core-ui .attachment.selected .check:focus,.wp-core-ui .media-frame.mode-grid .attachment.selected .check{background-color:#2271b1;box-shadow:0 0 0 1px #fff,0 0 0 2px #2271b1}.wp-core-ui .attachment.selected .check:focus{outline:2px solid transparent}.wp-core-ui .attachment.details .check .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check .media-modal-icon{background-position:-21px 0}.wp-core-ui .attachment.details .check:hover .media-modal-icon,.wp-core-ui .attachment.selected .check:focus .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check:hover .media-modal-icon{background-position:-60px 0}.wp-core-ui .media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:0 8px;font-size:12px;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:72px;background:#fff}.attachments-browser.hide-sidebar .media-toolbar{left:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:10px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper,.attachments-browser:not(.has-load-more) .attachments{position:absolute;top:72px;right:0;left:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.attachments-browser .media-toolbar-primary{max-width:33%}.mode-grid .attachments-browser .media-toolbar-primary{display:flex;align-items:center;column-gap:.5rem}.mode-grid .attachments-browser .media-toolbar-mode-select .media-toolbar-primary{display:none}.attachments-browser .media-toolbar-secondary{max-width:66%}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;outline:0;padding:0;position:absolute;left:2px;text-align:center;top:2px;width:48px;z-index:1}.uploader-inline .close:before{font:normal 30px/1 dashicons!important;color:#50575e;display:inline-block;content:"\f335";font-weight:300;margin-top:1px}.uploader-inline .close:focus{outline:1px solid #4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{left:0;margin-left:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:1.38461538;font-size:13px;color:#646970}.attachments-browser .no-media{padding:2em 2em 0 0}.more-loaded .attachment:not(.found-media){background:#dcdcde}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 10px 0 -30px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 12px 0 0}.attachment.new-media{outline:2px dotted #c3c4c7}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 10px 0 -30px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 12px 0 0}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;border-radius:10px;background:#dcdcde;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#2271b1;border-radius:10px;transition:width .3s}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.uploader-inline .media-uploader-status h2{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#646970}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#3c434a}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{transition:none;text-decoration:none}.upload-errors .upload-error{padding:12px;margin-bottom:12px;background:#fff;border-right:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.uploader-inline .upload-errors .upload-error{padding:12px 30px;background-color:#fcf0f1;box-shadow:none}.upload-errors .upload-error-filename{font-weight:600}.upload-errors .upload-error-message{display:block;padding-top:8px;word-wrap:break-word}.uploader-window,.wp-editor-wrap .uploader-editor{top:0;right:0;left:0;bottom:0;text-align:center;display:none}.uploader-window{position:fixed;z-index:250000;opacity:0;transition:opacity 250ms}.wp-editor-wrap .uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9)}.uploader-window,.wp-editor-wrap .uploader-editor.droppable{background:rgba(10,75,120,.9)}.uploader-window-content,.wp-editor-wrap .uploader-editor-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window .uploader-editor-title,.uploader-window h1,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.wp-editor-wrap .uploader-editor .uploader-editor-title{display:none}.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h2{font-size:20px;line-height:1.4;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#3c434a;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty{display:none}.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:1.42857142;font-weight:600}.media-selection .button-link{float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:1.4;border-left:1px solid #dcdcde;color:#2271b1;text-decoration:none}.media-selection .button-link:focus,.media-selection .button-link:hover{color:#135e96}.media-selection .button-link:last-child{border-left:0;margin-left:0}.selection-info .clear-selection{color:#d63638}.selection-info .clear-selection:focus,.selection-info .clear-selection:hover{color:#d63638}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:40px;padding:0;margin:4px}.media-selection .attachment .thumbnail{top:0;left:0;bottom:0;right:0}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{box-shadow:none;background:0 0}.wp-core-ui .media-selection .attachment.details:focus,.wp-core-ui .media-selection .attachment:focus,.wp-core-ui .media-selection .selected.attachment:focus{box-shadow:0 0 0 1px #fff,0 0 2px 3px #4f94d4;outline:2px solid transparent}.wp-core-ui .media-selection .selected.attachment{box-shadow:none}.wp-core-ui .media-selection .attachment.details{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.media-selection:after{content:"";display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:linear-gradient(to right,#fff,rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;float:left;display:inline-block;visibility:hidden;opacity:.7;width:20px;height:20px;margin:0;vertical-align:middle}.media-frame.mode-grid .spinner{margin:0;float:none;vertical-align:middle}.media-modal .media-toolbar .spinner{float:none;vertical-align:bottom;margin:0 5px 5px 0}.media-frame .instructions+.spinner.is-active{vertical-align:middle}.media-frame .spinner.is-active{visibility:visible}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:left;text-transform:none;font-weight:400}.attachment-details .settings-save-status .spinner{float:none;margin-right:5px}.attachment-details .settings-save-status .saved{display:none}.attachment-details.save-waiting .settings-save-status .spinner{visibility:visible}.attachment-details.save-complete .settings-save-status .saved{display:inline-block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:1.5;color:#646970;border-bottom:1px solid #dcdcde;padding-bottom:11px}.attachment-info .wp-media-wrapper{margin-bottom:8px}.attachment-info .wp-media-wrapper.wp-audio{margin-top:13px}.attachment-info .filename{font-weight:600;color:#3c434a;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment{display:none}.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{display:inline;padding:0;color:#d63638}.media-modal .delete-attachment:focus,.media-modal .delete-attachment:hover,.media-modal .trash-attachment:focus,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:focus,.media-modal .untrash-attachment:hover{color:#d63638}.attachment-display-settings{width:100%;float:right;overflow:hidden}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting .name,.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px 16px 0;overflow:visible}.media-modal .imgedit-wrap .imgedit-save-target{margin:8px 0 24px}.media-modal .imgedit-group{background:0 0;border:none;box-shadow:none;margin:0;padding:0;position:relative}.media-modal .imgedit-group.imgedit-panel-active{margin-bottom:16px;padding-bottom:16px}.media-modal .imgedit-group-top{margin:0}.media-modal .imgedit-group-top h2,.media-modal .imgedit-group-top h2 .button-link{display:inline-block;text-transform:uppercase;font-size:12px;color:#646970;margin:0;margin-top:3px}.media-modal .imgedit-group-top h2 .button-link,.media-modal .imgedit-group-top h2 a{text-decoration:none;color:#646970}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:active,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:hover{border:1px solid transparent;margin:0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.wp-core-ui.media-modal .imgedit-group-top .dashicons-arrow-down.imgedit-help-toggle{margin-top:-3px}.wp-core-ui.media-modal .image-editor h3 .imgedit-help-toggle{margin-top:-2px}.media-modal .imgedit-help-toggled span.dashicons:before{content:"\f142"}.media-modal .imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}.media-modal .imgedit-wrap .notice,.media-modal .imgedit-wrap div.updated{margin:0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;line-height:1.22222222;padding:12px 14px 12px 40px;width:100%;min-width:200px;box-shadow:inset -2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url input::-ms-clear{display:none}.media-frame .embed-url .spinner{position:absolute;top:32px;left:26px}.media-frame .embed-loading .embed-url .spinner{visibility:visible}.embed-link-settings,.embed-media-settings{position:absolute;top:82px;right:0;left:0;bottom:0;padding:0 16px;overflow:auto}.media-embed .embed-link-settings .link-text{margin-top:0}.embed-link-settings::after,.embed-media-settings::after{content:"";display:flex;clear:both;height:24px}.media-embed .embed-link-settings{overflow:visible}.embed-preview embed,.embed-preview iframe,.embed-preview img,.mejs-container video{max-width:100%;vertical-align:middle}.embed-preview a{display:inline-block}.embed-preview img{display:block;height:auto}.mejs-container:focus{outline:1px solid #4f94d4;box-shadow:0 0 2px 1px rgba(79,148,212,.8)}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings::after{content:none}.image-details .embed-media-settings,.image-details .embed-media-settings div{box-sizing:border-box}.image-details .column-settings{background:#f6f7f7;border-left:1px solid #dcdcde;min-height:100%;width:55%;position:absolute;top:0;right:0}.image-details .column-settings h2{margin:20px;padding-top:20px;border-top:1px solid #dcdcde;color:#1d2327}.image-details .column-image{width:45%;position:absolute;right:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{padding:0;color:#646970;text-transform:uppercase;text-decoration:none}.image-details .advanced-toggle:active,.image-details .advanced-toggle:hover{color:#646970}.image-details .advanced-toggle:after{font:normal 20px/1 dashicons;speak:never;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f140";display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:"\f142"}.image-details .custom-size .custom-size-setting,.image-details .custom-size label{display:block;float:right}.image-details .custom-size .custom-size-setting label{float:none}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size .description{margin-right:0}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting,.media-embed .setting-group{width:100%;margin:10px 0;float:right;display:block;clear:both}.media-embed .setting-group .setting:not(.checkbox-setting){margin:0}.media-embed .setting.has-description{margin-bottom:5px}.media-embed .description{clear:both;font-style:normal}.media-embed .content-track+.description{line-height:1.4;max-width:none!important}.media-embed .remove-track{margin-bottom:10px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea,.media-embed fieldset{display:block;width:100%;max-width:400px}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .description,.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting-group{margin-right:27%;width:70%}.image-details .description{font-style:normal;margin-top:0}.image-details .embed-media-settings .link-target{margin-top:16px}.audio-details .checkbox-label,.image-details .checkbox-label,.video-details .checkbox-label{vertical-align:baseline}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting .name,.media-embed .setting span,.media-embed .setting-group .name{display:inline-block;font-size:13px;line-height:1.84615384;color:#646970}.media-embed .setting span{display:block;width:200px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.image-details .embed-media-settings .setting .button-group,.media-frame .setting-group .button-group{width:auto}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}.media-frame .setting .button-group{display:flex;margin:0!important;max-width:none!important}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:900px){.media-modal .media-frame-title{height:40px}.media-modal .media-frame-title h1{line-height:2.22222222;font-size:18px}.media-modal-close{width:42px;height:42px}.media-frame .media-frame-title{position:static;padding:0 44px;text-align:center}.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-toolbar{right:0}.media-frame:not(.hide-menu) .media-frame-router{top:80px}.media-frame:not(.hide-menu) .media-frame-content{top:114px}.media-frame.hide-router .media-frame-content{top:80px}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{display:none;width:auto;max-width:80%;overflow:auto;z-index:2000;top:75px;right:50%;transform:translateX(50%);left:auto;bottom:auto;padding:5px 0;border:1px solid #c3c4c7}.media-frame:not(.hide-menu) .media-menu.visible{display:block}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame-menu-heading{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;width:1px;word-wrap:normal!important}.wp-core-ui .media-frame:not(.hide-menu) .button.media-frame-menu-toggle{display:inline-flex;align-items:center;position:absolute;right:50%;transform:translateX(50%);margin:-6px 0 0;padding:0 12px 0 2px;font-size:.875rem;font-weight:600;text-decoration:none;background:0 0;height:.1%;min-height:40px}.wp-core-ui .button.media-frame-menu-toggle:active,.wp-core-ui .button.media-frame-menu-toggle:hover{background:0 0;transform:none}.wp-core-ui .button.media-frame-menu-toggle:focus{outline:1px solid transparent}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .attachments-wrapper,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper{left:262px}.attachments-browser .media-toolbar{height:82px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{top:82px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting .name,.attachment-details .setting input,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting .name,.media-sidebar .setting input,.media-sidebar .setting textarea{float:none;display:inline-block}.attachment-details .setting span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting span{float:none}.media-sidebar .setting .select-label-inline{display:inline}.attachment-details .setting .name,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 2px}.attachment-details .attachment-info .copy-to-clipboard-container,.media-sidebar .setting .copy-to-clipboard-container{margin-right:0;padding-top:0}.attachment-details .attachment-info .copy-attachment-url,.media-sidebar .setting .copy-attachment-url{margin:0 1px}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.media-frame .media-toolbar input[type=search]{line-height:2.25}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.wp-admin .media-frame select{min-height:40px;font-size:16px;line-height:1.625;padding:5px 8px 5px 24px}.image-details .column-image{width:30%;right:70%}.image-details .column-settings{width:70%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{margin:20px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px;margin-right:0}.media-modal .legend-inline{position:static;transform:none;margin-right:0;margin-bottom:6px}.image-details .embed-media-settings .setting-group .setting{margin-bottom:0}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .setting.has-description{margin-bottom:5px}.image-details .description{width:auto;margin:0 20px}.image-details .embed-media-settings .custom-size{margin-right:20px}.collection-settings .setting input[type=checkbox]{float:none;margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:left}.media-modal .attachments-browser .media-toolbar .attachment-filters{height:auto}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px;line-height:1.5}.media-frame .media-toolbar input[type=search]{line-height:2.3755}.media-modal .media-toolbar .spinner{margin-bottom:10px}}@media screen and (max-width:782px){.imgedit-panel-content{grid-template-columns:auto}.media-frame-toolbar .media-toolbar{bottom:-54px}.mode-grid .attachments-browser .media-toolbar-primary{display:flex}.mode-grid .attachments-browser .media-toolbar-primary input[type=search]{width:100%}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{font-size:14px;line-height:2.71428571}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{left:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;right:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (min-width:901px) and (max-height:400px){.media-frame:not(.hide-menu) .media-menu,.media-menu{top:0;padding-top:44px}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (max-width:480px){.wp-core-ui.wp-customizer .media-button{margin-top:13px}}@media print,(min-resolution:120dpi){.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons-2x.png);background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;top:0;left:0;width:50px;height:50px;margin:0;padding:0;border:1px solid transparent;background:0 0;color:#646970;z-index:1000;cursor:pointer;outline:0;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active,.media-modal-close:hover{color:#135e96}.media-modal-close:focus{color:#135e96;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.media-modal-close span.media-modal-icon{background-image:none}.media-modal-close .media-modal-icon:before{content:"\f158";font:normal 20px/1 dashicons;speak:never;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fff;-webkit-font-smoothing:subpixel-antialiased}.media-modal-content .media-frame select.attachment-filters{margin-top:32px;margin-left:2%;width:42%;width:calc(48% - 12px)}.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dcdcde;overflow:hidden}.media-frame-toolbar .media-toolbar{top:auto;bottom:-47px;height:auto;overflow:visible;border-top:1px solid #dcdcde}.media-toolbar-primary{float:left;height:100%;position:relative}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px;z-index:75;background:#f6f7f7;border-right:1px solid #dcdcde;overflow:auto;-webkit-overflow-scrolling:touch}.media-sidebar::after{content:"";display:flex;clear:both;height:24px}.hide-toolbar .media-sidebar{bottom:0}.image-details .media-embed h2,.media-sidebar h2{position:relative;font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:right;width:100%;margin:0 0 10px}.media-sidebar .collection-settings .setting{margin:1px 0}.attachment-details .setting.has-description,.media-sidebar .setting.has-description{margin-bottom:5px}.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting .name,.attachment-details .setting span,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px;text-align:left;word-wrap:break-word}.media-sidebar .setting .name{max-width:80px}.media-sidebar .setting .value{text-align:right}.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting .name,.attachment-details .setting .value,.attachment-details .setting span,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:1.33333333;font-weight:400;color:#646970}.media-sidebar .checkbox-label-inline{font-size:12px}.attachment-details .copy-to-clipboard-container,.media-sidebar .copy-to-clipboard-container{flex-wrap:wrap;margin-top:10px;margin-right:calc(35% - 1px);padding-top:10px}.attachment-details .attachment-info .copy-to-clipboard-container{float:none}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{padding:0;min-height:0;line-height:2.18181818;text-align:right;color:#007017}.compat-item label span{text-align:left}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{box-sizing:border-box;margin:1px;width:65%;float:left}.attachment-details .setting .value,.attachment-details .setting+.description,.media-sidebar .setting .value{margin:0 1px;text-align:right}.attachment-details .setting+.description{clear:both;font-size:12px;font-style:normal;margin-bottom:10px}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.alt-text textarea,.attachment-details .alt-text textarea,.compat-item .alt-text textarea,.media-sidebar .alt-text textarea{height:50px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:65%;margin:1px}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url],.compat-item .field textarea{width:100%;margin:0;box-sizing:border-box}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:50px 0 10px;background:#f6f7f7;border-left-width:1px;border-left-style:solid;border-left-color:#c3c4c7;-webkit-user-select:none;user-select:none}.media-menu .media-menu-item{display:block;box-sizing:border-box;width:100%;position:relative;border:0;margin:0;padding:8px 20px;font-size:14px;line-height:1.28571428;background:0 0;color:#2271b1;text-align:right;text-decoration:none;cursor:pointer}.media-menu .media-menu-item:hover{background:rgba(0,0,0,.04)}.media-menu .media-menu-item:active{color:#2271b1;outline:0}.media-menu .active,.media-menu .active:hover{color:#1d2327;font-weight:600}.media-menu .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #dcdcde}.media-router{position:relative;padding:0 6px;margin:0;clear:both}.media-router .media-menu-item{position:relative;float:right;border:0;margin:0;padding:8px 10px 9px;height:18px;line-height:1.28571428;font-size:14px;text-decoration:none;background:0 0;cursor:pointer;transition:none}.media-router .media-menu-item:last-child{border-left:0}.media-router .media-menu-item:active,.media-router .media-menu-item:hover{color:#2271b1}.media-router .active,.media-router .active:hover{color:#1d2327}.media-router .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-router .active,.media-router .media-menu-item.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #dcdcde;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #dcdcde}.media-frame-toolbar{position:absolute;right:200px;left:0;z-index:100;bottom:60px;height:auto}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-menu .media-frame-menu,.media-frame.hide-menu .media-frame-menu-heading,.media-frame.hide-router .media-frame-router,.media-frame.hide-toolbar .media-frame-toolbar{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:2.27272727;margin:0}.media-attachments-filter-heading,.media-frame-menu-heading{position:absolute;right:20px;top:22px;margin:0;font-size:13px;line-height:1;z-index:151}.media-attachments-filter-heading{top:10px;right:16px}.mode-grid .media-attachments-filter-heading{top:0;right:-9999px}.mode-grid .media-frame-actions-heading{display:none}.wp-core-ui .button.media-frame-menu-toggle{display:none}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.wp-customizer:not(.mobile) .media-frame-content .crop-content.site-icon{margin-left:300px}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:2%;max-width:42%;max-width:calc(48% - 12px)}.media-frame select.attachment-filters:last-of-type{margin-left:0}.media-frame .search{margin:32px 0 0;padding:4px;font-size:13px;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-appearance:none}.media-toolbar-primary .search{max-width:100%}.media-modal .media-frame .media-search-input-label{position:absolute;right:0;top:10px;margin:0;line-height:1}.wp-core-ui .attachments{margin:0;-webkit-overflow-scrolling:touch}.wp-core-ui .attachment{position:relative;float:right;padding:8px;margin:0;color:#3c434a;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;user-select:none;width:25%;box-sizing:border-box}.wp-core-ui .attachment.details:focus,.wp-core-ui .attachment:focus,.wp-core-ui .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.wp-core-ui .selected.attachment{box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #c3c4c7}.wp-core-ui .attachment.details{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #2271b1}.wp-core-ui .attachment-preview{position:relative;box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#f0f0f1;cursor:pointer}.wp-core-ui .attachment-preview:before{content:"";display:block;padding-top:100%}.wp-core-ui .attachment .icon{margin:0 auto;overflow:hidden}.wp-core-ui .attachment .thumbnail{overflow:hidden;position:absolute;top:0;left:0;bottom:0;right:0;opacity:1;transition:opacity .1s}.wp-core-ui .attachment .portrait img{max-width:100%}.wp-core-ui .attachment .landscape img{max-height:100%}.wp-core-ui .attachment .thumbnail:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.wp-core-ui .attachment .thumbnail img{top:0;right:0}.wp-core-ui .attachment .thumbnail .centered{position:absolute;top:0;right:0;width:100%;height:100%;transform:translate(-50%,50%)}.wp-core-ui .attachment .thumbnail .centered img{transform:translate(50%,-50%)}.wp-core-ui .attachments-browser .attachment .thumbnail .centered img.icon{transform:translate(50%,-70%)}.wp-core-ui .attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:600;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.wp-core-ui .attachment .filename div{padding:5px 10px}.wp-core-ui .attachment .thumbnail img{position:absolute}.wp-core-ui .attachment-close{display:block;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;background-color:#fff;background-position:-96px 4px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.3);transition:none}.wp-core-ui .attachment-close:focus,.wp-core-ui .attachment-close:hover{background-position:-36px 4px}.wp-core-ui .attachment .check{display:none;height:24px;width:24px;padding:0;border:0;position:absolute;z-index:10;top:0;left:0;outline:0;background:#f0f0f1;cursor:pointer;box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.wp-core-ui .attachment .check .media-modal-icon{display:block;background-position:-1px 0;height:15px;width:15px;margin:5px}.wp-core-ui .attachment .check:hover .media-modal-icon{background-position:-40px 0}.wp-core-ui .attachment.selected .check{display:block}.wp-core-ui .attachment.details .check,.wp-core-ui .attachment.selected .check:focus,.wp-core-ui .media-frame.mode-grid .attachment.selected .check{background-color:#2271b1;box-shadow:0 0 0 1px #fff,0 0 0 2px #2271b1}.wp-core-ui .attachment.selected .check:focus{outline:2px solid transparent}.wp-core-ui .attachment.details .check .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check .media-modal-icon{background-position:-21px 0}.wp-core-ui .attachment.details .check:hover .media-modal-icon,.wp-core-ui .attachment.selected .check:focus .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check:hover .media-modal-icon{background-position:-60px 0}.wp-core-ui .media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:0 8px;font-size:12px;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:72px;background:#fff}.attachments-browser.hide-sidebar .media-toolbar{left:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:10px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper,.attachments-browser:not(.has-load-more) .attachments{position:absolute;top:72px;right:0;left:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.attachments-browser .media-toolbar-primary{max-width:33%}.mode-grid .attachments-browser .media-toolbar-primary{display:flex;align-items:center;column-gap:.5rem}.mode-grid .attachments-browser .media-toolbar-mode-select .media-toolbar-primary{display:none}.attachments-browser .media-toolbar-secondary{max-width:66%}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;outline:0;padding:0;position:absolute;left:2px;text-align:center;top:2px;width:48px;z-index:1}.uploader-inline .close:before{font:normal 30px/1 dashicons!important;color:#50575e;display:inline-block;content:"\f335";font-weight:300;margin-top:1px}.uploader-inline .close:focus{outline:1px solid #4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{left:0;margin-left:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:1.38461538;font-size:13px;color:#646970}.attachments-browser .no-media{padding:2em 2em 0 0}.more-loaded .attachment:not(.found-media){background:#dcdcde}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 10px 0 -30px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 12px 0 0}.attachment.new-media{outline:2px dotted #c3c4c7}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 10px 0 -30px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 12px 0 0}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;border-radius:10px;background:#dcdcde;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#2271b1;border-radius:10px;transition:width .3s}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.uploader-inline .media-uploader-status h2{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#646970}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#3c434a}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{transition:none;text-decoration:none}.upload-errors .upload-error{padding:12px;margin-bottom:12px;background:#fff;border-right:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.uploader-inline .upload-errors .upload-error{padding:12px 30px;background-color:#fcf0f1;box-shadow:none}.upload-errors .upload-error-filename{font-weight:600}.upload-errors .upload-error-message{display:block;padding-top:8px;word-wrap:break-word}.uploader-window,.wp-editor-wrap .uploader-editor{top:0;right:0;left:0;bottom:0;text-align:center;display:none}.uploader-window{position:fixed;z-index:250000;opacity:0;transition:opacity 250ms}.wp-editor-wrap .uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9)}.uploader-window,.wp-editor-wrap .uploader-editor.droppable{background:rgba(10,75,120,.9)}.uploader-window-content,.wp-editor-wrap .uploader-editor-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window .uploader-editor-title,.uploader-window h1,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.wp-editor-wrap .uploader-editor .uploader-editor-title{display:none}.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h2{font-size:20px;line-height:1.4;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#3c434a;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty{display:none}.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:1.42857142;font-weight:600}.media-selection .button-link{float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:1.4;border-left:1px solid #dcdcde;color:#2271b1;text-decoration:none}.media-selection .button-link:focus,.media-selection .button-link:hover{color:#135e96}.media-selection .button-link:last-child{border-left:0;margin-left:0}.selection-info .clear-selection{color:#d63638}.selection-info .clear-selection:focus,.selection-info .clear-selection:hover{color:#d63638}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:40px;padding:0;margin:4px}.media-selection .attachment .thumbnail{top:0;left:0;bottom:0;right:0}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{box-shadow:none;background:0 0}.wp-core-ui .media-selection .attachment.details:focus,.wp-core-ui .media-selection .attachment:focus,.wp-core-ui .media-selection .selected.attachment:focus{box-shadow:0 0 0 1px #fff,0 0 2px 3px #4f94d4;outline:2px solid transparent}.wp-core-ui .media-selection .selected.attachment{box-shadow:none}.wp-core-ui .media-selection .attachment.details{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.media-selection:after{content:"";display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:linear-gradient(to right,#fff,rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;float:left;display:inline-block;visibility:hidden;opacity:.7;width:20px;height:20px;margin:0;vertical-align:middle}.media-frame.mode-grid .spinner{margin:0;float:none;vertical-align:middle}.media-modal .media-toolbar .spinner{float:none;vertical-align:bottom;margin:0 5px 5px 0}.media-frame .instructions+.spinner.is-active{vertical-align:middle}.media-frame .spinner.is-active{visibility:visible}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:left;text-transform:none;font-weight:400}.attachment-details .settings-save-status .spinner{float:none;margin-right:5px}.attachment-details .settings-save-status .saved{display:none}.attachment-details.save-waiting .settings-save-status .spinner{visibility:visible}.attachment-details.save-complete .settings-save-status .saved{display:inline-block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:1.5;color:#646970;border-bottom:1px solid #dcdcde;padding-bottom:11px}.attachment-info .wp-media-wrapper{margin-bottom:8px}.attachment-info .wp-media-wrapper.wp-audio{margin-top:13px}.attachment-info .filename{font-weight:600;color:#3c434a;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment{display:none}.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{display:inline;padding:0;color:#d63638}.media-modal .delete-attachment:focus,.media-modal .delete-attachment:hover,.media-modal .trash-attachment:focus,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:focus,.media-modal .untrash-attachment:hover{color:#d63638}.attachment-display-settings{width:100%;float:right;overflow:hidden}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting .name,.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px 16px 0;overflow:visible}.media-modal .imgedit-wrap .imgedit-save-target{margin:8px 0 24px}.media-modal .imgedit-group{background:0 0;border:none;box-shadow:none;margin:0;padding:0;position:relative}.media-modal .imgedit-group.imgedit-panel-active{margin-bottom:16px;padding-bottom:16px}.media-modal .imgedit-group-top{margin:0}.media-modal .imgedit-group-top h2,.media-modal .imgedit-group-top h2 .button-link{display:inline-block;text-transform:uppercase;font-size:12px;color:#646970;margin:0;margin-top:3px}.media-modal .imgedit-group-top h2 .button-link,.media-modal .imgedit-group-top h2 a{text-decoration:none;color:#646970}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:active,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:hover{border:1px solid transparent;margin:0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.wp-core-ui.media-modal .imgedit-group-top .dashicons-arrow-down.imgedit-help-toggle{margin-top:-3px}.wp-core-ui.media-modal .image-editor h3 .imgedit-help-toggle{margin-top:-2px}.media-modal .imgedit-help-toggled span.dashicons:before{content:"\f142"}.media-modal .imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}.media-modal .imgedit-wrap .notice,.media-modal .imgedit-wrap div.updated{margin:0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;line-height:1.22222222;padding:12px 14px 12px 40px;width:100%;min-width:200px;box-shadow:inset -2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url input::-ms-clear{display:none}.media-frame .embed-url .spinner{position:absolute;top:32px;left:26px}.media-frame .embed-loading .embed-url .spinner{visibility:visible}.embed-link-settings,.embed-media-settings{position:absolute;top:82px;right:0;left:0;bottom:0;padding:0 16px;overflow:auto}.media-embed .embed-link-settings .link-text{margin-top:0}.embed-link-settings::after,.embed-media-settings::after{content:"";display:flex;clear:both;height:24px}.media-embed .embed-link-settings{overflow:visible}.embed-preview embed,.embed-preview iframe,.embed-preview img,.mejs-container video{max-width:100%;vertical-align:middle}.embed-preview a{display:inline-block}.embed-preview img{display:block;height:auto}.mejs-container:focus{outline:1px solid #4f94d4;box-shadow:0 0 2px 1px rgba(79,148,212,.8)}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings::after{content:none}.image-details .embed-media-settings,.image-details .embed-media-settings div{box-sizing:border-box}.image-details .column-settings{background:#f6f7f7;border-left:1px solid #dcdcde;min-height:100%;width:55%;position:absolute;top:0;right:0}.image-details .column-settings h2{margin:20px;padding-top:20px;border-top:1px solid #dcdcde;color:#1d2327}.image-details .column-image{width:45%;position:absolute;right:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{padding:0;color:#646970;text-transform:uppercase;text-decoration:none}.image-details .advanced-toggle:active,.image-details .advanced-toggle:hover{color:#646970}.image-details .advanced-toggle:after{font:normal 20px/1 dashicons;speak:never;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f140";display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:"\f142"}.image-details .custom-size .custom-size-setting,.image-details .custom-size label{display:block;float:right}.image-details .custom-size .custom-size-setting label{float:none}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size .description{margin-right:0}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:"";display:block;position:absolute;top:0;right:0;left:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting,.media-embed .setting-group{width:100%;margin:10px 0;float:right;display:block;clear:both}.media-embed .setting-group .setting:not(.checkbox-setting){margin:0}.media-embed .setting.has-description{margin-bottom:5px}.media-embed .description{clear:both;font-style:normal}.media-embed .content-track+.description{line-height:1.4;max-width:none!important}.media-embed .remove-track{margin-bottom:10px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea,.media-embed fieldset{display:block;width:100%;max-width:400px}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .description,.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting-group{margin-right:27%;width:70%}.image-details .description{font-style:normal;margin-top:0}.image-details .embed-media-settings .link-target{margin-top:16px}.audio-details .checkbox-label,.image-details .checkbox-label,.video-details .checkbox-label{vertical-align:baseline}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting .name,.media-embed .setting span,.media-embed .setting-group .name{display:inline-block;font-size:13px;line-height:1.84615384;color:#646970}.media-embed .setting span{display:block;width:200px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.image-details .embed-media-settings .setting .button-group,.media-frame .setting-group .button-group{width:auto}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}.media-frame .setting .button-group{display:flex;margin:0!important;max-width:none!important}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:900px){.media-modal .media-frame-title{height:40px}.media-modal .media-frame-title h1{line-height:2.22222222;font-size:18px}.media-modal-close{width:42px;height:42px}.media-frame .media-frame-title{position:static;padding:0 44px;text-align:center}.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-toolbar{right:0}.media-frame:not(.hide-menu) .media-frame-router{top:80px}.media-frame:not(.hide-menu) .media-frame-content{top:114px}.media-frame.hide-router .media-frame-content{top:80px}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{display:none;width:auto;max-width:80%;overflow:auto;z-index:2000;top:75px;right:50%;transform:translateX(50%);left:auto;bottom:auto;padding:5px 0;border:1px solid #c3c4c7}.media-frame:not(.hide-menu) .media-menu.visible{display:block}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame-menu-heading{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;width:1px;word-wrap:normal!important}.wp-core-ui .media-frame:not(.hide-menu) .button.media-frame-menu-toggle{display:inline-flex;align-items:center;position:absolute;right:50%;transform:translateX(50%);margin:-6px 0 0;padding:0 12px 0 2px;font-size:.875rem;font-weight:600;text-decoration:none;background:0 0;height:.1%;min-height:40px}.wp-core-ui .button.media-frame-menu-toggle:active,.wp-core-ui .button.media-frame-menu-toggle:hover{background:0 0;transform:none}.wp-core-ui .button.media-frame-menu-toggle:focus{outline:1px solid transparent}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .attachments-wrapper,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper{left:262px}.attachments-browser .media-toolbar{height:82px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{top:82px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting .name,.attachment-details .setting input,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting .name,.media-sidebar .setting input,.media-sidebar .setting textarea{float:none;display:inline-block}.attachment-details .setting span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting span{float:none}.media-sidebar .setting .select-label-inline{display:inline}.attachment-details .setting .name,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 2px}.attachment-details .attachment-info .copy-to-clipboard-container,.media-sidebar .setting .copy-to-clipboard-container{margin-right:0;padding-top:0}.attachment-details .attachment-info .copy-attachment-url,.media-sidebar .setting .copy-attachment-url{margin:0 1px}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.media-frame .media-toolbar input[type=search]{line-height:2.25}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.wp-admin .media-frame select{min-height:40px;font-size:16px;line-height:1.625;padding:5px 8px 5px 24px}.image-details .column-image{width:30%;right:70%}.image-details .column-settings{width:70%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{margin:20px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px;margin-right:0}.media-modal .legend-inline{position:static;transform:none;margin-right:0;margin-bottom:6px}.image-details .embed-media-settings .setting-group .setting{margin-bottom:0}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .setting.has-description{margin-bottom:5px}.image-details .description{width:auto;margin:0 20px}.image-details .embed-media-settings .custom-size{margin-right:20px}.collection-settings .setting input[type=checkbox]{float:none;margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:left}.media-modal .attachments-browser .media-toolbar .attachment-filters{height:auto}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px;line-height:1.5}.media-frame .media-toolbar input[type=search]{line-height:2.3755}.media-modal .media-toolbar .spinner{margin-bottom:10px}}@media screen and (max-width:782px){.imgedit-panel-content{grid-template-columns:auto}.media-frame-toolbar .media-toolbar{bottom:-54px}.mode-grid .attachments-browser .media-toolbar-primary{display:flex}.mode-grid .attachments-browser .media-toolbar-primary input[type=search]{width:100%}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{font-size:14px;line-height:2.71428571}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{left:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;right:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (min-width:901px) and (max-height:400px){.media-frame:not(.hide-menu) .media-menu,.media-menu{top:0;padding-top:44px}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (max-width:480px){.wp-core-ui.wp-customizer .media-button{margin-top:13px}}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons-2x.png);background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.css index 95c0dc5a31..eaa9562fca 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.css @@ -2905,6 +2905,7 @@ * HiDPI Displays */ @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { .wp-core-ui .media-modal-icon { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.min.css index 0e25aa0c4f..80b6f62bb2 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/media-views.min.css @@ -6,4 +6,4 @@ * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;top:0;right:0;width:50px;height:50px;margin:0;padding:0;border:1px solid transparent;background:0 0;color:#646970;z-index:1000;cursor:pointer;outline:0;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active,.media-modal-close:hover{color:#135e96}.media-modal-close:focus{color:#135e96;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.media-modal-close span.media-modal-icon{background-image:none}.media-modal-close .media-modal-icon:before{content:"\f158";font:normal 20px/1 dashicons;speak:never;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fff;-webkit-font-smoothing:subpixel-antialiased}.media-modal-content .media-frame select.attachment-filters{margin-top:32px;margin-right:2%;width:42%;width:calc(48% - 12px)}.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dcdcde;overflow:hidden}.media-frame-toolbar .media-toolbar{top:auto;bottom:-47px;height:auto;overflow:visible;border-top:1px solid #dcdcde}.media-toolbar-primary{float:right;height:100%;position:relative}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px;z-index:75;background:#f6f7f7;border-left:1px solid #dcdcde;overflow:auto;-webkit-overflow-scrolling:touch}.media-sidebar::after{content:"";display:flex;clear:both;height:24px}.hide-toolbar .media-sidebar{bottom:0}.image-details .media-embed h2,.media-sidebar h2{position:relative;font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:left;width:100%;margin:0 0 10px}.media-sidebar .collection-settings .setting{margin:1px 0}.attachment-details .setting.has-description,.media-sidebar .setting.has-description{margin-bottom:5px}.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting .name,.attachment-details .setting span,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px;text-align:right;word-wrap:break-word}.media-sidebar .setting .name{max-width:80px}.media-sidebar .setting .value{text-align:left}.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting .name,.attachment-details .setting .value,.attachment-details .setting span,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:1.33333333;font-weight:400;color:#646970}.media-sidebar .checkbox-label-inline{font-size:12px}.attachment-details .copy-to-clipboard-container,.media-sidebar .copy-to-clipboard-container{flex-wrap:wrap;margin-top:10px;margin-left:calc(35% - 1px);padding-top:10px}.attachment-details .attachment-info .copy-to-clipboard-container{float:none}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{padding:0;min-height:0;line-height:2.18181818;text-align:left;color:#007017}.compat-item label span{text-align:right}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{box-sizing:border-box;margin:1px;width:65%;float:right}.attachment-details .setting .value,.attachment-details .setting+.description,.media-sidebar .setting .value{margin:0 1px;text-align:left}.attachment-details .setting+.description{clear:both;font-size:12px;font-style:normal;margin-bottom:10px}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.alt-text textarea,.attachment-details .alt-text textarea,.compat-item .alt-text textarea,.media-sidebar .alt-text textarea{height:50px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:65%;margin:1px}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url],.compat-item .field textarea{width:100%;margin:0;box-sizing:border-box}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:50px 0 10px;background:#f6f7f7;border-right-width:1px;border-right-style:solid;border-right-color:#c3c4c7;-webkit-user-select:none;user-select:none}.media-menu .media-menu-item{display:block;box-sizing:border-box;width:100%;position:relative;border:0;margin:0;padding:8px 20px;font-size:14px;line-height:1.28571428;background:0 0;color:#2271b1;text-align:left;text-decoration:none;cursor:pointer}.media-menu .media-menu-item:hover{background:rgba(0,0,0,.04)}.media-menu .media-menu-item:active{color:#2271b1;outline:0}.media-menu .active,.media-menu .active:hover{color:#1d2327;font-weight:600}.media-menu .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #dcdcde}.media-router{position:relative;padding:0 6px;margin:0;clear:both}.media-router .media-menu-item{position:relative;float:left;border:0;margin:0;padding:8px 10px 9px;height:18px;line-height:1.28571428;font-size:14px;text-decoration:none;background:0 0;cursor:pointer;transition:none}.media-router .media-menu-item:last-child{border-right:0}.media-router .media-menu-item:active,.media-router .media-menu-item:hover{color:#2271b1}.media-router .active,.media-router .active:hover{color:#1d2327}.media-router .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-router .active,.media-router .media-menu-item.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #dcdcde;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #dcdcde}.media-frame-toolbar{position:absolute;left:200px;right:0;z-index:100;bottom:60px;height:auto}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-menu .media-frame-menu,.media-frame.hide-menu .media-frame-menu-heading,.media-frame.hide-router .media-frame-router,.media-frame.hide-toolbar .media-frame-toolbar{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:2.27272727;margin:0}.media-attachments-filter-heading,.media-frame-menu-heading{position:absolute;left:20px;top:22px;margin:0;font-size:13px;line-height:1;z-index:151}.media-attachments-filter-heading{top:10px;left:16px}.mode-grid .media-attachments-filter-heading{top:0;left:-9999px}.mode-grid .media-frame-actions-heading{display:none}.wp-core-ui .button.media-frame-menu-toggle{display:none}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.wp-customizer:not(.mobile) .media-frame-content .crop-content.site-icon{margin-right:300px}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:2%;max-width:42%;max-width:calc(48% - 12px)}.media-frame select.attachment-filters:last-of-type{margin-right:0}.media-frame .search{margin:32px 0 0;padding:4px;font-size:13px;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-appearance:none}.media-toolbar-primary .search{max-width:100%}.media-modal .media-frame .media-search-input-label{position:absolute;left:0;top:10px;margin:0;line-height:1}.wp-core-ui .attachments{margin:0;-webkit-overflow-scrolling:touch}.wp-core-ui .attachment{position:relative;float:left;padding:8px;margin:0;color:#3c434a;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;user-select:none;width:25%;box-sizing:border-box}.wp-core-ui .attachment.details:focus,.wp-core-ui .attachment:focus,.wp-core-ui .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.wp-core-ui .selected.attachment{box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #c3c4c7}.wp-core-ui .attachment.details{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #2271b1}.wp-core-ui .attachment-preview{position:relative;box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#f0f0f1;cursor:pointer}.wp-core-ui .attachment-preview:before{content:"";display:block;padding-top:100%}.wp-core-ui .attachment .icon{margin:0 auto;overflow:hidden}.wp-core-ui .attachment .thumbnail{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;transition:opacity .1s}.wp-core-ui .attachment .portrait img{max-width:100%}.wp-core-ui .attachment .landscape img{max-height:100%}.wp-core-ui .attachment .thumbnail:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.wp-core-ui .attachment .thumbnail img{top:0;left:0}.wp-core-ui .attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;transform:translate(50%,50%)}.wp-core-ui .attachment .thumbnail .centered img{transform:translate(-50%,-50%)}.wp-core-ui .attachments-browser .attachment .thumbnail .centered img.icon{transform:translate(-50%,-70%)}.wp-core-ui .attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:600;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.wp-core-ui .attachment .filename div{padding:5px 10px}.wp-core-ui .attachment .thumbnail img{position:absolute}.wp-core-ui .attachment-close{display:block;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;background-color:#fff;background-position:-96px 4px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.3);transition:none}.wp-core-ui .attachment-close:focus,.wp-core-ui .attachment-close:hover{background-position:-36px 4px}.wp-core-ui .attachment .check{display:none;height:24px;width:24px;padding:0;border:0;position:absolute;z-index:10;top:0;right:0;outline:0;background:#f0f0f1;cursor:pointer;box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.wp-core-ui .attachment .check .media-modal-icon{display:block;background-position:-1px 0;height:15px;width:15px;margin:5px}.wp-core-ui .attachment .check:hover .media-modal-icon{background-position:-40px 0}.wp-core-ui .attachment.selected .check{display:block}.wp-core-ui .attachment.details .check,.wp-core-ui .attachment.selected .check:focus,.wp-core-ui .media-frame.mode-grid .attachment.selected .check{background-color:#2271b1;box-shadow:0 0 0 1px #fff,0 0 0 2px #2271b1}.wp-core-ui .attachment.selected .check:focus{outline:2px solid transparent}.wp-core-ui .attachment.details .check .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check .media-modal-icon{background-position:-21px 0}.wp-core-ui .attachment.details .check:hover .media-modal-icon,.wp-core-ui .attachment.selected .check:focus .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check:hover .media-modal-icon{background-position:-60px 0}.wp-core-ui .media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:0 8px;font-size:12px;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:72px;background:#fff}.attachments-browser.hide-sidebar .media-toolbar{right:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:10px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper,.attachments-browser:not(.has-load-more) .attachments{position:absolute;top:72px;left:0;right:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.attachments-browser .media-toolbar-primary{max-width:33%}.mode-grid .attachments-browser .media-toolbar-primary{display:flex;align-items:center;column-gap:.5rem}.mode-grid .attachments-browser .media-toolbar-mode-select .media-toolbar-primary{display:none}.attachments-browser .media-toolbar-secondary{max-width:66%}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;outline:0;padding:0;position:absolute;right:2px;text-align:center;top:2px;width:48px;z-index:1}.uploader-inline .close:before{font:normal 30px/1 dashicons!important;color:#50575e;display:inline-block;content:"\f335";font-weight:300;margin-top:1px}.uploader-inline .close:focus{outline:1px solid #4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{right:0;margin-right:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:1.38461538;font-size:13px;color:#646970}.attachments-browser .no-media{padding:2em 0 0 2em}.more-loaded .attachment:not(.found-media){background:#dcdcde}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 -30px 0 10px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 0 0 12px}.attachment.new-media{outline:2px dotted #c3c4c7}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 -30px 0 10px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 0 0 12px}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;border-radius:10px;background:#dcdcde;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#2271b1;border-radius:10px;transition:width .3s}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.uploader-inline .media-uploader-status h2{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#646970}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#3c434a}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{transition:none;text-decoration:none}.upload-errors .upload-error{padding:12px;margin-bottom:12px;background:#fff;border-left:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.uploader-inline .upload-errors .upload-error{padding:12px 30px;background-color:#fcf0f1;box-shadow:none}.upload-errors .upload-error-filename{font-weight:600}.upload-errors .upload-error-message{display:block;padding-top:8px;word-wrap:break-word}.uploader-window,.wp-editor-wrap .uploader-editor{top:0;left:0;right:0;bottom:0;text-align:center;display:none}.uploader-window{position:fixed;z-index:250000;opacity:0;transition:opacity 250ms}.wp-editor-wrap .uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9)}.uploader-window,.wp-editor-wrap .uploader-editor.droppable{background:rgba(10,75,120,.9)}.uploader-window-content,.wp-editor-wrap .uploader-editor-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window .uploader-editor-title,.uploader-window h1,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.wp-editor-wrap .uploader-editor .uploader-editor-title{display:none}.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h2{font-size:20px;line-height:1.4;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#3c434a;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty{display:none}.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:1.42857142;font-weight:600}.media-selection .button-link{float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:1.4;border-right:1px solid #dcdcde;color:#2271b1;text-decoration:none}.media-selection .button-link:focus,.media-selection .button-link:hover{color:#135e96}.media-selection .button-link:last-child{border-right:0;margin-right:0}.selection-info .clear-selection{color:#d63638}.selection-info .clear-selection:focus,.selection-info .clear-selection:hover{color:#d63638}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:40px;padding:0;margin:4px}.media-selection .attachment .thumbnail{top:0;right:0;bottom:0;left:0}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{box-shadow:none;background:0 0}.wp-core-ui .media-selection .attachment.details:focus,.wp-core-ui .media-selection .attachment:focus,.wp-core-ui .media-selection .selected.attachment:focus{box-shadow:0 0 0 1px #fff,0 0 2px 3px #4f94d4;outline:2px solid transparent}.wp-core-ui .media-selection .selected.attachment{box-shadow:none}.wp-core-ui .media-selection .attachment.details{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.media-selection:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:linear-gradient(to left,#fff,rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;float:right;display:inline-block;visibility:hidden;opacity:.7;width:20px;height:20px;margin:0;vertical-align:middle}.media-frame.mode-grid .spinner{margin:0;float:none;vertical-align:middle}.media-modal .media-toolbar .spinner{float:none;vertical-align:bottom;margin:0 0 5px 5px}.media-frame .instructions+.spinner.is-active{vertical-align:middle}.media-frame .spinner.is-active{visibility:visible}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:right;text-transform:none;font-weight:400}.attachment-details .settings-save-status .spinner{float:none;margin-left:5px}.attachment-details .settings-save-status .saved{display:none}.attachment-details.save-waiting .settings-save-status .spinner{visibility:visible}.attachment-details.save-complete .settings-save-status .saved{display:inline-block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:1.5;color:#646970;border-bottom:1px solid #dcdcde;padding-bottom:11px}.attachment-info .wp-media-wrapper{margin-bottom:8px}.attachment-info .wp-media-wrapper.wp-audio{margin-top:13px}.attachment-info .filename{font-weight:600;color:#3c434a;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment{display:none}.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{display:inline;padding:0;color:#d63638}.media-modal .delete-attachment:focus,.media-modal .delete-attachment:hover,.media-modal .trash-attachment:focus,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:focus,.media-modal .untrash-attachment:hover{color:#d63638}.attachment-display-settings{width:100%;float:left;overflow:hidden}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting .name,.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px 16px 0;overflow:visible}.media-modal .imgedit-wrap .imgedit-save-target{margin:8px 0 24px}.media-modal .imgedit-group{background:0 0;border:none;box-shadow:none;margin:0;padding:0;position:relative}.media-modal .imgedit-group.imgedit-panel-active{margin-bottom:16px;padding-bottom:16px}.media-modal .imgedit-group-top{margin:0}.media-modal .imgedit-group-top h2,.media-modal .imgedit-group-top h2 .button-link{display:inline-block;text-transform:uppercase;font-size:12px;color:#646970;margin:0;margin-top:3px}.media-modal .imgedit-group-top h2 .button-link,.media-modal .imgedit-group-top h2 a{text-decoration:none;color:#646970}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:active,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:hover{border:1px solid transparent;margin:0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.wp-core-ui.media-modal .imgedit-group-top .dashicons-arrow-down.imgedit-help-toggle{margin-top:-3px}.wp-core-ui.media-modal .image-editor h3 .imgedit-help-toggle{margin-top:-2px}.media-modal .imgedit-help-toggled span.dashicons:before{content:"\f142"}.media-modal .imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}.media-modal .imgedit-wrap .notice,.media-modal .imgedit-wrap div.updated{margin:0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;line-height:1.22222222;padding:12px 40px 12px 14px;width:100%;min-width:200px;box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url input::-ms-clear{display:none}.media-frame .embed-url .spinner{position:absolute;top:32px;right:26px}.media-frame .embed-loading .embed-url .spinner{visibility:visible}.embed-link-settings,.embed-media-settings{position:absolute;top:82px;left:0;right:0;bottom:0;padding:0 16px;overflow:auto}.media-embed .embed-link-settings .link-text{margin-top:0}.embed-link-settings::after,.embed-media-settings::after{content:"";display:flex;clear:both;height:24px}.media-embed .embed-link-settings{overflow:visible}.embed-preview embed,.embed-preview iframe,.embed-preview img,.mejs-container video{max-width:100%;vertical-align:middle}.embed-preview a{display:inline-block}.embed-preview img{display:block;height:auto}.mejs-container:focus{outline:1px solid #4f94d4;box-shadow:0 0 2px 1px rgba(79,148,212,.8)}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings::after{content:none}.image-details .embed-media-settings,.image-details .embed-media-settings div{box-sizing:border-box}.image-details .column-settings{background:#f6f7f7;border-right:1px solid #dcdcde;min-height:100%;width:55%;position:absolute;top:0;left:0}.image-details .column-settings h2{margin:20px;padding-top:20px;border-top:1px solid #dcdcde;color:#1d2327}.image-details .column-image{width:45%;position:absolute;left:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{padding:0;color:#646970;text-transform:uppercase;text-decoration:none}.image-details .advanced-toggle:active,.image-details .advanced-toggle:hover{color:#646970}.image-details .advanced-toggle:after{font:normal 20px/1 dashicons;speak:never;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f140";display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:"\f142"}.image-details .custom-size .custom-size-setting,.image-details .custom-size label{display:block;float:left}.image-details .custom-size .custom-size-setting label{float:none}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size .description{margin-left:0}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting,.media-embed .setting-group{width:100%;margin:10px 0;float:left;display:block;clear:both}.media-embed .setting-group .setting:not(.checkbox-setting){margin:0}.media-embed .setting.has-description{margin-bottom:5px}.media-embed .description{clear:both;font-style:normal}.media-embed .content-track+.description{line-height:1.4;max-width:none!important}.media-embed .remove-track{margin-bottom:10px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea,.media-embed fieldset{display:block;width:100%;max-width:400px}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .description,.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting-group{margin-left:27%;width:70%}.image-details .description{font-style:normal;margin-top:0}.image-details .embed-media-settings .link-target{margin-top:16px}.audio-details .checkbox-label,.image-details .checkbox-label,.video-details .checkbox-label{vertical-align:baseline}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting .name,.media-embed .setting span,.media-embed .setting-group .name{display:inline-block;font-size:13px;line-height:1.84615384;color:#646970}.media-embed .setting span{display:block;width:200px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.image-details .embed-media-settings .setting .button-group,.media-frame .setting-group .button-group{width:auto}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}.media-frame .setting .button-group{display:flex;margin:0!important;max-width:none!important}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:900px){.media-modal .media-frame-title{height:40px}.media-modal .media-frame-title h1{line-height:2.22222222;font-size:18px}.media-modal-close{width:42px;height:42px}.media-frame .media-frame-title{position:static;padding:0 44px;text-align:center}.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-toolbar{left:0}.media-frame:not(.hide-menu) .media-frame-router{top:80px}.media-frame:not(.hide-menu) .media-frame-content{top:114px}.media-frame.hide-router .media-frame-content{top:80px}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{display:none;width:auto;max-width:80%;overflow:auto;z-index:2000;top:75px;left:50%;transform:translateX(-50%);right:auto;bottom:auto;padding:5px 0;border:1px solid #c3c4c7}.media-frame:not(.hide-menu) .media-menu.visible{display:block}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame-menu-heading{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;width:1px;word-wrap:normal!important}.wp-core-ui .media-frame:not(.hide-menu) .button.media-frame-menu-toggle{display:inline-flex;align-items:center;position:absolute;left:50%;transform:translateX(-50%);margin:-6px 0 0;padding:0 2px 0 12px;font-size:.875rem;font-weight:600;text-decoration:none;background:0 0;height:.1%;min-height:40px}.wp-core-ui .button.media-frame-menu-toggle:active,.wp-core-ui .button.media-frame-menu-toggle:hover{background:0 0;transform:none}.wp-core-ui .button.media-frame-menu-toggle:focus{outline:1px solid transparent}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .attachments-wrapper,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper{right:262px}.attachments-browser .media-toolbar{height:82px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{top:82px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting .name,.attachment-details .setting input,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting .name,.media-sidebar .setting input,.media-sidebar .setting textarea{float:none;display:inline-block}.attachment-details .setting span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting span{float:none}.media-sidebar .setting .select-label-inline{display:inline}.attachment-details .setting .name,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 2px}.attachment-details .attachment-info .copy-to-clipboard-container,.media-sidebar .setting .copy-to-clipboard-container{margin-left:0;padding-top:0}.attachment-details .attachment-info .copy-attachment-url,.media-sidebar .setting .copy-attachment-url{margin:0 1px}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.media-frame .media-toolbar input[type=search]{line-height:2.25}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.wp-admin .media-frame select{min-height:40px;font-size:16px;line-height:1.625;padding:5px 24px 5px 8px}.image-details .column-image{width:30%;left:70%}.image-details .column-settings{width:70%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{margin:20px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px;margin-left:0}.media-modal .legend-inline{position:static;transform:none;margin-left:0;margin-bottom:6px}.image-details .embed-media-settings .setting-group .setting{margin-bottom:0}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .setting.has-description{margin-bottom:5px}.image-details .description{width:auto;margin:0 20px}.image-details .embed-media-settings .custom-size{margin-left:20px}.collection-settings .setting input[type=checkbox]{float:none;margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:right}.media-modal .attachments-browser .media-toolbar .attachment-filters{height:auto}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px;line-height:1.5}.media-frame .media-toolbar input[type=search]{line-height:2.3755}.media-modal .media-toolbar .spinner{margin-bottom:10px}}@media screen and (max-width:782px){.imgedit-panel-content{grid-template-columns:auto}.media-frame-toolbar .media-toolbar{bottom:-54px}.mode-grid .attachments-browser .media-toolbar-primary{display:flex}.mode-grid .attachments-browser .media-toolbar-primary input[type=search]{width:100%}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{font-size:14px;line-height:2.71428571}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{right:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;left:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (min-width:901px) and (max-height:400px){.media-frame:not(.hide-menu) .media-menu,.media-menu{top:0;padding-top:44px}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (max-width:480px){.wp-core-ui.wp-customizer .media-button{margin-top:13px}}@media print,(min-resolution:120dpi){.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons-2x.png);background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;top:0;right:0;width:50px;height:50px;margin:0;padding:0;border:1px solid transparent;background:0 0;color:#646970;z-index:1000;cursor:pointer;outline:0;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active,.media-modal-close:hover{color:#135e96}.media-modal-close:focus{color:#135e96;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.media-modal-close span.media-modal-icon{background-image:none}.media-modal-close .media-modal-icon:before{content:"\f158";font:normal 20px/1 dashicons;speak:never;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fff;-webkit-font-smoothing:subpixel-antialiased}.media-modal-content .media-frame select.attachment-filters{margin-top:32px;margin-right:2%;width:42%;width:calc(48% - 12px)}.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dcdcde;overflow:hidden}.media-frame-toolbar .media-toolbar{top:auto;bottom:-47px;height:auto;overflow:visible;border-top:1px solid #dcdcde}.media-toolbar-primary{float:right;height:100%;position:relative}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px;z-index:75;background:#f6f7f7;border-left:1px solid #dcdcde;overflow:auto;-webkit-overflow-scrolling:touch}.media-sidebar::after{content:"";display:flex;clear:both;height:24px}.hide-toolbar .media-sidebar{bottom:0}.image-details .media-embed h2,.media-sidebar h2{position:relative;font-weight:600;text-transform:uppercase;font-size:12px;color:#646970;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:left;width:100%;margin:0 0 10px}.media-sidebar .collection-settings .setting{margin:1px 0}.attachment-details .setting.has-description,.media-sidebar .setting.has-description{margin-bottom:5px}.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting .name,.attachment-details .setting span,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px;text-align:right;word-wrap:break-word}.media-sidebar .setting .name{max-width:80px}.media-sidebar .setting .value{text-align:left}.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting .name,.attachment-details .setting .value,.attachment-details .setting span,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name,.media-sidebar .setting .value,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:1.33333333;font-weight:400;color:#646970}.media-sidebar .checkbox-label-inline{font-size:12px}.attachment-details .copy-to-clipboard-container,.media-sidebar .copy-to-clipboard-container{flex-wrap:wrap;margin-top:10px;margin-left:calc(35% - 1px);padding-top:10px}.attachment-details .attachment-info .copy-to-clipboard-container{float:none}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{padding:0;min-height:0;line-height:2.18181818;text-align:left;color:#007017}.compat-item label span{text-align:right}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{box-sizing:border-box;margin:1px;width:65%;float:right}.attachment-details .setting .value,.attachment-details .setting+.description,.media-sidebar .setting .value{margin:0 1px;text-align:left}.attachment-details .setting+.description{clear:both;font-size:12px;font-style:normal;margin-bottom:10px}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.alt-text textarea,.attachment-details .alt-text textarea,.compat-item .alt-text textarea,.media-sidebar .alt-text textarea{height:50px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:65%;margin:1px}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url],.compat-item .field textarea{width:100%;margin:0;box-sizing:border-box}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:50px 0 10px;background:#f6f7f7;border-right-width:1px;border-right-style:solid;border-right-color:#c3c4c7;-webkit-user-select:none;user-select:none}.media-menu .media-menu-item{display:block;box-sizing:border-box;width:100%;position:relative;border:0;margin:0;padding:8px 20px;font-size:14px;line-height:1.28571428;background:0 0;color:#2271b1;text-align:left;text-decoration:none;cursor:pointer}.media-menu .media-menu-item:hover{background:rgba(0,0,0,.04)}.media-menu .media-menu-item:active{color:#2271b1;outline:0}.media-menu .active,.media-menu .active:hover{color:#1d2327;font-weight:600}.media-menu .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #dcdcde}.media-router{position:relative;padding:0 6px;margin:0;clear:both}.media-router .media-menu-item{position:relative;float:left;border:0;margin:0;padding:8px 10px 9px;height:18px;line-height:1.28571428;font-size:14px;text-decoration:none;background:0 0;cursor:pointer;transition:none}.media-router .media-menu-item:last-child{border-right:0}.media-router .media-menu-item:active,.media-router .media-menu-item:hover{color:#2271b1}.media-router .active,.media-router .active:hover{color:#1d2327}.media-router .media-menu-item:focus{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);color:#043959;outline:1px solid transparent}.media-router .active,.media-router .media-menu-item.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #dcdcde;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #dcdcde}.media-frame-toolbar{position:absolute;left:200px;right:0;z-index:100;bottom:60px;height:auto}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-menu .media-frame-menu,.media-frame.hide-menu .media-frame-menu-heading,.media-frame.hide-router .media-frame-router,.media-frame.hide-toolbar .media-frame-toolbar{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:2.27272727;margin:0}.media-attachments-filter-heading,.media-frame-menu-heading{position:absolute;left:20px;top:22px;margin:0;font-size:13px;line-height:1;z-index:151}.media-attachments-filter-heading{top:10px;left:16px}.mode-grid .media-attachments-filter-heading{top:0;left:-9999px}.mode-grid .media-frame-actions-heading{display:none}.wp-core-ui .button.media-frame-menu-toggle{display:none}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.wp-customizer:not(.mobile) .media-frame-content .crop-content.site-icon{margin-right:300px}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:2%;max-width:42%;max-width:calc(48% - 12px)}.media-frame select.attachment-filters:last-of-type{margin-right:0}.media-frame .search{margin:32px 0 0;padding:4px;font-size:13px;color:#3c434a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-appearance:none}.media-toolbar-primary .search{max-width:100%}.media-modal .media-frame .media-search-input-label{position:absolute;left:0;top:10px;margin:0;line-height:1}.wp-core-ui .attachments{margin:0;-webkit-overflow-scrolling:touch}.wp-core-ui .attachment{position:relative;float:left;padding:8px;margin:0;color:#3c434a;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;user-select:none;width:25%;box-sizing:border-box}.wp-core-ui .attachment.details:focus,.wp-core-ui .attachment:focus,.wp-core-ui .selected.attachment:focus{box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #4f94d4;outline:2px solid transparent;outline-offset:-6px}.wp-core-ui .selected.attachment{box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #c3c4c7}.wp-core-ui .attachment.details{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #2271b1}.wp-core-ui .attachment-preview{position:relative;box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#f0f0f1;cursor:pointer}.wp-core-ui .attachment-preview:before{content:"";display:block;padding-top:100%}.wp-core-ui .attachment .icon{margin:0 auto;overflow:hidden}.wp-core-ui .attachment .thumbnail{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;transition:opacity .1s}.wp-core-ui .attachment .portrait img{max-width:100%}.wp-core-ui .attachment .landscape img{max-height:100%}.wp-core-ui .attachment .thumbnail:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.wp-core-ui .attachment .thumbnail img{top:0;left:0}.wp-core-ui .attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;transform:translate(50%,50%)}.wp-core-ui .attachment .thumbnail .centered img{transform:translate(-50%,-50%)}.wp-core-ui .attachments-browser .attachment .thumbnail .centered img.icon{transform:translate(-50%,-70%)}.wp-core-ui .attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:600;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.wp-core-ui .attachment .filename div{padding:5px 10px}.wp-core-ui .attachment .thumbnail img{position:absolute}.wp-core-ui .attachment-close{display:block;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;background-color:#fff;background-position:-96px 4px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.3);transition:none}.wp-core-ui .attachment-close:focus,.wp-core-ui .attachment-close:hover{background-position:-36px 4px}.wp-core-ui .attachment .check{display:none;height:24px;width:24px;padding:0;border:0;position:absolute;z-index:10;top:0;right:0;outline:0;background:#f0f0f1;cursor:pointer;box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.wp-core-ui .attachment .check .media-modal-icon{display:block;background-position:-1px 0;height:15px;width:15px;margin:5px}.wp-core-ui .attachment .check:hover .media-modal-icon{background-position:-40px 0}.wp-core-ui .attachment.selected .check{display:block}.wp-core-ui .attachment.details .check,.wp-core-ui .attachment.selected .check:focus,.wp-core-ui .media-frame.mode-grid .attachment.selected .check{background-color:#2271b1;box-shadow:0 0 0 1px #fff,0 0 0 2px #2271b1}.wp-core-ui .attachment.selected .check:focus{outline:2px solid transparent}.wp-core-ui .attachment.details .check .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check .media-modal-icon{background-position:-21px 0}.wp-core-ui .attachment.details .check:hover .media-modal-icon,.wp-core-ui .attachment.selected .check:focus .media-modal-icon,.wp-core-ui .media-frame.mode-grid .attachment.selected .check:hover .media-modal-icon{background-position:-60px 0}.wp-core-ui .media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:0 8px;font-size:12px;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:72px;background:#fff}.attachments-browser.hide-sidebar .media-toolbar{right:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:10px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper,.attachments-browser:not(.has-load-more) .attachments{position:absolute;top:72px;left:0;right:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.attachments-browser .media-toolbar-primary{max-width:33%}.mode-grid .attachments-browser .media-toolbar-primary{display:flex;align-items:center;column-gap:.5rem}.mode-grid .attachments-browser .media-toolbar-mode-select .media-toolbar-primary{display:none}.attachments-browser .media-toolbar-secondary{max-width:66%}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;outline:0;padding:0;position:absolute;right:2px;text-align:center;top:2px;width:48px;z-index:1}.uploader-inline .close:before{font:normal 30px/1 dashicons!important;color:#50575e;display:inline-block;content:"\f335";font-weight:300;margin-top:1px}.uploader-inline .close:focus{outline:1px solid #4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{right:0;margin-right:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:1.38461538;font-size:13px;color:#646970}.attachments-browser .no-media{padding:2em 0 0 2em}.more-loaded .attachment:not(.found-media){background:#dcdcde}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 -30px 0 10px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 0 0 12px}.attachment.new-media{outline:2px dotted #c3c4c7}.load-more-wrapper{clear:both;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:1em 0}.load-more-wrapper .load-more-count{min-width:100%;margin:0 0 1em;text-align:center}.load-more-wrapper .load-more{margin:0}.media-frame .load-more-wrapper .load-more+.spinner{float:none;margin:0 -30px 0 10px}.media-frame .load-more-wrapper .load-more.hidden+.spinner{margin:0}.load-more-wrapper::after{content:"";min-width:100%;order:1}.load-more-wrapper .load-more-jump{margin:0 0 0 12px}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;border-radius:10px;background:#dcdcde;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#2271b1;border-radius:10px;transition:width .3s}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.uploader-inline .media-uploader-status h2{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#646970}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#3c434a}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{transition:none;text-decoration:none}.upload-errors .upload-error{padding:12px;margin-bottom:12px;background:#fff;border-left:4px solid #d63638;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.uploader-inline .upload-errors .upload-error{padding:12px 30px;background-color:#fcf0f1;box-shadow:none}.upload-errors .upload-error-filename{font-weight:600}.upload-errors .upload-error-message{display:block;padding-top:8px;word-wrap:break-word}.uploader-window,.wp-editor-wrap .uploader-editor{top:0;left:0;right:0;bottom:0;text-align:center;display:none}.uploader-window{position:fixed;z-index:250000;opacity:0;transition:opacity 250ms}.wp-editor-wrap .uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9)}.uploader-window,.wp-editor-wrap .uploader-editor.droppable{background:rgba(10,75,120,.9)}.uploader-window-content,.wp-editor-wrap .uploader-editor-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window .uploader-editor-title,.uploader-window h1,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.wp-editor-wrap .uploader-editor .uploader-editor-title{display:none}.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h2{font-size:20px;line-height:1.4;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#3c434a;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty{display:none}.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:1.42857142;font-weight:600}.media-selection .button-link{float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:1.4;border-right:1px solid #dcdcde;color:#2271b1;text-decoration:none}.media-selection .button-link:focus,.media-selection .button-link:hover{color:#135e96}.media-selection .button-link:last-child{border-right:0;margin-right:0}.selection-info .clear-selection{color:#d63638}.selection-info .clear-selection:focus,.selection-info .clear-selection:hover{color:#d63638}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:40px;padding:0;margin:4px}.media-selection .attachment .thumbnail{top:0;right:0;bottom:0;left:0}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{box-shadow:none;background:0 0}.wp-core-ui .media-selection .attachment.details:focus,.wp-core-ui .media-selection .attachment:focus,.wp-core-ui .media-selection .selected.attachment:focus{box-shadow:0 0 0 1px #fff,0 0 2px 3px #4f94d4;outline:2px solid transparent}.wp-core-ui .media-selection .selected.attachment{box-shadow:none}.wp-core-ui .media-selection .attachment.details{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.media-selection:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:linear-gradient(to left,#fff,rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;float:right;display:inline-block;visibility:hidden;opacity:.7;width:20px;height:20px;margin:0;vertical-align:middle}.media-frame.mode-grid .spinner{margin:0;float:none;vertical-align:middle}.media-modal .media-toolbar .spinner{float:none;vertical-align:bottom;margin:0 0 5px 5px}.media-frame .instructions+.spinner.is-active{vertical-align:middle}.media-frame .spinner.is-active{visibility:visible}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:right;text-transform:none;font-weight:400}.attachment-details .settings-save-status .spinner{float:none;margin-left:5px}.attachment-details .settings-save-status .saved{display:none}.attachment-details.save-waiting .settings-save-status .spinner{visibility:visible}.attachment-details.save-complete .settings-save-status .saved{display:inline-block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:1.5;color:#646970;border-bottom:1px solid #dcdcde;padding-bottom:11px}.attachment-info .wp-media-wrapper{margin-bottom:8px}.attachment-info .wp-media-wrapper.wp-audio{margin-top:13px}.attachment-info .filename{font-weight:600;color:#3c434a;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment{display:none}.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{display:inline;padding:0;color:#d63638}.media-modal .delete-attachment:focus,.media-modal .delete-attachment:hover,.media-modal .trash-attachment:focus,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:focus,.media-modal .untrash-attachment:hover{color:#d63638}.attachment-display-settings{width:100%;float:left;overflow:hidden}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting .name,.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px 16px 0;overflow:visible}.media-modal .imgedit-wrap .imgedit-save-target{margin:8px 0 24px}.media-modal .imgedit-group{background:0 0;border:none;box-shadow:none;margin:0;padding:0;position:relative}.media-modal .imgedit-group.imgedit-panel-active{margin-bottom:16px;padding-bottom:16px}.media-modal .imgedit-group-top{margin:0}.media-modal .imgedit-group-top h2,.media-modal .imgedit-group-top h2 .button-link{display:inline-block;text-transform:uppercase;font-size:12px;color:#646970;margin:0;margin-top:3px}.media-modal .imgedit-group-top h2 .button-link,.media-modal .imgedit-group-top h2 a{text-decoration:none;color:#646970}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:active,.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:hover{border:1px solid transparent;margin:0;padding:0;background:0 0;color:#2271b1;font-size:20px;line-height:1;cursor:pointer;box-sizing:content-box;box-shadow:none}.wp-core-ui.media-modal .image-editor .imgedit-help-toggle:focus{color:#2271b1;border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8);outline:2px solid transparent}.wp-core-ui.media-modal .imgedit-group-top .dashicons-arrow-down.imgedit-help-toggle{margin-top:-3px}.wp-core-ui.media-modal .image-editor h3 .imgedit-help-toggle{margin-top:-2px}.media-modal .imgedit-help-toggled span.dashicons:before{content:"\f142"}.media-modal .imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}.media-modal .imgedit-wrap .notice,.media-modal .imgedit-wrap div.updated{margin:0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;line-height:1.22222222;padding:12px 40px 12px 14px;width:100%;min-width:200px;box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url input::-ms-clear{display:none}.media-frame .embed-url .spinner{position:absolute;top:32px;right:26px}.media-frame .embed-loading .embed-url .spinner{visibility:visible}.embed-link-settings,.embed-media-settings{position:absolute;top:82px;left:0;right:0;bottom:0;padding:0 16px;overflow:auto}.media-embed .embed-link-settings .link-text{margin-top:0}.embed-link-settings::after,.embed-media-settings::after{content:"";display:flex;clear:both;height:24px}.media-embed .embed-link-settings{overflow:visible}.embed-preview embed,.embed-preview iframe,.embed-preview img,.mejs-container video{max-width:100%;vertical-align:middle}.embed-preview a{display:inline-block}.embed-preview img{display:block;height:auto}.mejs-container:focus{outline:1px solid #4f94d4;box-shadow:0 0 2px 1px rgba(79,148,212,.8)}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings::after{content:none}.image-details .embed-media-settings,.image-details .embed-media-settings div{box-sizing:border-box}.image-details .column-settings{background:#f6f7f7;border-right:1px solid #dcdcde;min-height:100%;width:55%;position:absolute;top:0;left:0}.image-details .column-settings h2{margin:20px;padding-top:20px;border-top:1px solid #dcdcde;color:#1d2327}.image-details .column-image{width:45%;position:absolute;left:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{padding:0;color:#646970;text-transform:uppercase;text-decoration:none}.image-details .advanced-toggle:active,.image-details .advanced-toggle:hover{color:#646970}.image-details .advanced-toggle:after{font:normal 20px/1 dashicons;speak:never;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f140";display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:"\f142"}.image-details .custom-size .custom-size-setting,.image-details .custom-size label{display:block;float:left}.image-details .custom-size .custom-size-setting label{float:none}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size .description{margin-left:0}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting,.media-embed .setting-group{width:100%;margin:10px 0;float:left;display:block;clear:both}.media-embed .setting-group .setting:not(.checkbox-setting){margin:0}.media-embed .setting.has-description{margin-bottom:5px}.media-embed .description{clear:both;font-style:normal}.media-embed .content-track+.description{line-height:1.4;max-width:none!important}.media-embed .remove-track{margin-bottom:10px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea,.media-embed fieldset{display:block;width:100%;max-width:400px}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .description,.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting-group{margin-left:27%;width:70%}.image-details .description{font-style:normal;margin-top:0}.image-details .embed-media-settings .link-target{margin-top:16px}.audio-details .checkbox-label,.image-details .checkbox-label,.video-details .checkbox-label{vertical-align:baseline}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting .name,.media-embed .setting span,.media-embed .setting-group .name{display:inline-block;font-size:13px;line-height:1.84615384;color:#646970}.media-embed .setting span{display:block;width:200px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.image-details .embed-media-settings .setting .button-group,.media-frame .setting-group .button-group{width:auto}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}.media-frame .setting .button-group{display:flex;margin:0!important;max-width:none!important}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:900px){.media-modal .media-frame-title{height:40px}.media-modal .media-frame-title h1{line-height:2.22222222;font-size:18px}.media-modal-close{width:42px;height:42px}.media-frame .media-frame-title{position:static;padding:0 44px;text-align:center}.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-toolbar{left:0}.media-frame:not(.hide-menu) .media-frame-router{top:80px}.media-frame:not(.hide-menu) .media-frame-content{top:114px}.media-frame.hide-router .media-frame-content{top:80px}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{display:none;width:auto;max-width:80%;overflow:auto;z-index:2000;top:75px;left:50%;transform:translateX(-50%);right:auto;bottom:auto;padding:5px 0;border:1px solid #c3c4c7}.media-frame:not(.hide-menu) .media-menu.visible{display:block}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame-menu-heading{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;width:1px;word-wrap:normal!important}.wp-core-ui .media-frame:not(.hide-menu) .button.media-frame-menu-toggle{display:inline-flex;align-items:center;position:absolute;left:50%;transform:translateX(-50%);margin:-6px 0 0;padding:0 2px 0 12px;font-size:.875rem;font-weight:600;text-decoration:none;background:0 0;height:.1%;min-height:40px}.wp-core-ui .button.media-frame-menu-toggle:active,.wp-core-ui .button.media-frame-menu-toggle:hover{background:0 0;transform:none}.wp-core-ui .button.media-frame-menu-toggle:focus{outline:1px solid transparent}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .attachments-wrapper,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.attachments-browser.has-load-more .attachments-wrapper{right:262px}.attachments-browser .media-toolbar{height:82px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{top:82px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting .name,.attachment-details .setting input,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting .name,.media-sidebar .setting input,.media-sidebar .setting textarea{float:none;display:inline-block}.attachment-details .setting span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting span{float:none}.media-sidebar .setting .select-label-inline{display:inline}.attachment-details .setting .name,.compat-item label span,.media-sidebar .checkbox-label-inline,.media-sidebar .setting .name{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 2px}.attachment-details .attachment-info .copy-to-clipboard-container,.media-sidebar .setting .copy-to-clipboard-container{margin-left:0;padding-top:0}.attachment-details .attachment-info .copy-attachment-url,.media-sidebar .setting .copy-attachment-url{margin:0 1px}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.attachment-details .setting+.description,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.media-frame .media-toolbar input[type=search]{line-height:2.25}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.wp-admin .media-frame select{min-height:40px;font-size:16px;line-height:1.625;padding:5px 24px 5px 8px}.image-details .column-image{width:30%;left:70%}.image-details .column-settings{width:70%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting,.image-details .embed-media-settings .setting-group{margin:20px}.image-details .embed-media-settings .setting .name,.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px;margin-left:0}.media-modal .legend-inline{position:static;transform:none;margin-left:0;margin-bottom:6px}.image-details .embed-media-settings .setting-group .setting{margin-bottom:0}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .setting.has-description{margin-bottom:5px}.image-details .description{width:auto;margin:0 20px}.image-details .embed-media-settings .custom-size{margin-left:20px}.collection-settings .setting input[type=checkbox]{float:none;margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:right}.media-modal .attachments-browser .media-toolbar .attachment-filters{height:auto}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px;line-height:1.5}.media-frame .media-toolbar input[type=search]{line-height:2.3755}.media-modal .media-toolbar .spinner{margin-bottom:10px}}@media screen and (max-width:782px){.imgedit-panel-content{grid-template-columns:auto}.media-frame-toolbar .media-toolbar{bottom:-54px}.mode-grid .attachments-browser .media-toolbar-primary{display:flex}.mode-grid .attachments-browser .media-toolbar-primary input[type=search]{width:100%}.attachment-details .copy-to-clipboard-container .success,.media-sidebar .copy-to-clipboard-container .success{font-size:14px;line-height:2.71428571}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline,.media-frame-content .attachments-browser .attachments-wrapper{right:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;left:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (min-width:901px) and (max-height:400px){.media-frame:not(.hide-menu) .media-menu,.media-menu{top:0;padding-top:44px}.load-more-wrapper .load-more-jump{margin:12px 0 0}}@media only screen and (max-width:480px){.wp-core-ui.wp-customizer .media-button{margin-top:13px}}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-core-ui .media-modal-icon{background-image:url(../images/uploader-icons-2x.png);background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.css index 4b03957448..77570b6ca2 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.css @@ -69,6 +69,7 @@ } @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #wp-auth-check-form.loading:before { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.min.css index ce8ea9d1c0..9f9e1c5cfa 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;right:0;left:0;background:#000;opacity:.7;z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;right:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 -190px 0 0;padding:30px 0 0;background-color:#f0f0f1;z-index:1000011;box-shadow:0 3px 6px rgba(0,0,0,.3)}@media screen and (max-width:380px){#wp-auth-check-wrap #wp-auth-check{right:0;width:100%;margin:0}}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{height:100%;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}#wp-auth-check-form.loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(min-resolution:120dpi){#wp-auth-check-form.loading:before{background-image:url(../images/spinner-2x.gif)}}#wp-auth-check-wrap #wp-auth-check-form iframe{height:98%;width:100%}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:5px;left:5px;height:22px;width:22px;color:#787c82;text-decoration:none;text-align:center}#wp-auth-check-wrap .wp-auth-check-close:before{content:"\f158";font:normal 20px/22px dashicons;speak:never;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:focus,#wp-auth-check-wrap .wp-auth-check-close:hover{color:#2271b1}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:1.5;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block} \ No newline at end of file +#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;right:0;left:0;background:#000;opacity:.7;z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;right:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 -190px 0 0;padding:30px 0 0;background-color:#f0f0f1;z-index:1000011;box-shadow:0 3px 6px rgba(0,0,0,.3)}@media screen and (max-width:380px){#wp-auth-check-wrap #wp-auth-check{right:0;width:100%;margin:0}}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{height:100%;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}#wp-auth-check-form.loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-auth-check-form.loading:before{background-image:url(../images/spinner-2x.gif)}}#wp-auth-check-wrap #wp-auth-check-form iframe{height:98%;width:100%}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:5px;left:5px;height:22px;width:22px;color:#787c82;text-decoration:none;text-align:center}#wp-auth-check-wrap .wp-auth-check-close:before{content:"\f158";font:normal 20px/22px dashicons;speak:never;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:focus,#wp-auth-check-wrap .wp-auth-check-close:hover{color:#2271b1}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:1.5;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.css index 42f623e8e1..8994f4933a 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.css @@ -68,6 +68,7 @@ } @media print, + (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { #wp-auth-check-form.loading:before { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.min.css b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.min.css index 121ec485bc..e693244a14 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.min.css +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/css/wp-auth-check.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;opacity:.7;z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;left:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 0 0 -190px;padding:30px 0 0;background-color:#f0f0f1;z-index:1000011;box-shadow:0 3px 6px rgba(0,0,0,.3)}@media screen and (max-width:380px){#wp-auth-check-wrap #wp-auth-check{left:0;width:100%;margin:0}}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{height:100%;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}#wp-auth-check-form.loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(min-resolution:120dpi){#wp-auth-check-form.loading:before{background-image:url(../images/spinner-2x.gif)}}#wp-auth-check-wrap #wp-auth-check-form iframe{height:98%;width:100%}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:5px;right:5px;height:22px;width:22px;color:#787c82;text-decoration:none;text-align:center}#wp-auth-check-wrap .wp-auth-check-close:before{content:"\f158";font:normal 20px/22px dashicons;speak:never;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:focus,#wp-auth-check-wrap .wp-auth-check-close:hover{color:#2271b1}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:1.5;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block} \ No newline at end of file +#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;opacity:.7;z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;left:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 0 0 -190px;padding:30px 0 0;background-color:#f0f0f1;z-index:1000011;box-shadow:0 3px 6px rgba(0,0,0,.3)}@media screen and (max-width:380px){#wp-auth-check-wrap #wp-auth-check{left:0;width:100%;margin:0}}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{height:100%;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}#wp-auth-check-form.loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-auth-check-form.loading:before{background-image:url(../images/spinner-2x.gif)}}#wp-auth-check-wrap #wp-auth-check-form iframe{height:98%;width:100%}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:5px;right:5px;height:22px;width:22px;color:#787c82;text-decoration:none;text-align:center}#wp-auth-check-wrap .wp-auth-check-close:before{content:"\f158";font:normal 20px/22px dashicons;speak:never;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:focus,#wp-auth-check-wrap .wp-auth-check-close:hover{color:#2271b1}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:1.5;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block} \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_cry.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_cry.gif index 15a571ff7b..b78b2b33fc 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_cry.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_cry.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_lol.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_lol.gif index 4ad3baa3a7..83bcad32b5 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_lol.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_lol.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_redface.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_redface.gif index 6dd3a617fe..c837b6276b 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_redface.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_redface.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_rolleyes.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_rolleyes.gif index f038278b88..20fbc902ab 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_rolleyes.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/smilies/icon_rolleyes.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin-2x.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin-2x.gif index 978f585b98..08e47e8211 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin-2x.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin-2x.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin.gif index b9b7ae4875..fbf9be46c1 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/wpspin.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/xit.gif b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/xit.gif index 9e62856adb..b11c5d43e9 100755 Binary files a/packages/playground/wordpress/public/wp-nightly/wp-includes/images/xit.gif and b/packages/playground/wordpress/public/wp-nightly/wp-includes/images/xit.gif differ diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.js index 2c3b02ce65..9eb3e325ab 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.js @@ -553,32 +553,19 @@ const mediaUploadMiddleware = (options, next) => { * This appends a `wp_theme_preview` parameter to the REST API request URL if * the admin URL contains a `theme` GET parameter. * - * If the REST API request URL has contained the `wp_theme_preview` parameter as `''`, - * then bypass this middleware. - * * @param {Record} themePath * @return {import('../types').APIFetchMiddleware} Preloading middleware. */ const createThemePreviewMiddleware = themePath => (options, next) => { - if (typeof options.url === 'string') { - const wpThemePreview = (0,external_wp_url_namespaceObject.getQueryArg)(options.url, 'wp_theme_preview'); - if (wpThemePreview === undefined) { - options.url = (0,external_wp_url_namespaceObject.addQueryArgs)(options.url, { - wp_theme_preview: themePath - }); - } else if (wpThemePreview === '') { - options.url = (0,external_wp_url_namespaceObject.removeQueryArgs)(options.url, 'wp_theme_preview'); - } + if (typeof options.url === 'string' && !(0,external_wp_url_namespaceObject.hasQueryArg)(options.url, 'wp_theme_preview')) { + options.url = (0,external_wp_url_namespaceObject.addQueryArgs)(options.url, { + wp_theme_preview: themePath + }); } - if (typeof options.path === 'string') { - const wpThemePreview = (0,external_wp_url_namespaceObject.getQueryArg)(options.path, 'wp_theme_preview'); - if (wpThemePreview === undefined) { - options.path = (0,external_wp_url_namespaceObject.addQueryArgs)(options.path, { - wp_theme_preview: themePath - }); - } else if (wpThemePreview === '') { - options.path = (0,external_wp_url_namespaceObject.removeQueryArgs)(options.path, 'wp_theme_preview'); - } + if (typeof options.path === 'string' && !(0,external_wp_url_namespaceObject.hasQueryArg)(options.path, 'wp_theme_preview')) { + options.path = (0,external_wp_url_namespaceObject.addQueryArgs)(options.path, { + wp_theme_preview: themePath + }); } return next(options); }; diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.min.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.min.js index 880e09748b..b1e717713e 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.min.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/api-fetch.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(){"use strict";var e={d:function(r,t){for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},o:function(e,r){return Object.prototype.hasOwnProperty.call(e,r)}},r={};e.d(r,{default:function(){return T}});var t=window.wp.i18n;var n=function(e){const r=(e,t)=>{const{headers:n={}}=e;for(const o in n)if("x-wp-nonce"===o.toLowerCase()&&n[o]===r.nonce)return t(e);return t({...e,headers:{...n,"X-WP-Nonce":r.nonce}})};return r.nonce=e,r};var o=(e,r)=>{let t,n,o=e.path;return"string"==typeof e.namespace&&"string"==typeof e.endpoint&&(t=e.namespace.replace(/^\/|\/$/g,""),n=e.endpoint.replace(/^\//,""),o=n?t+"/"+n:t),delete e.namespace,delete e.endpoint,r({...e,path:o})};var a=e=>(r,t)=>o(r,(r=>{let n,o=r.url,a=r.path;return"string"==typeof a&&(n=e,-1!==e.indexOf("?")&&(a=a.replace("?","&")),a=a.replace(/^\//,""),"string"==typeof n&&-1!==n.indexOf("?")&&(a=a.replace("?","&")),o=n+a),t({...r,url:o})})),s=window.wp.url;function i(e,r){return Promise.resolve(r?e.body:new window.Response(JSON.stringify(e.body),{status:200,statusText:"OK",headers:e.headers}))}var c=function(e){const r=Object.fromEntries(Object.entries(e).map((([e,r])=>[(0,s.normalizePath)(e),r])));return(e,t)=>{const{parse:n=!0}=e;let o=e.path;if(!o&&e.url){const{rest_route:r,...t}=(0,s.getQueryArgs)(e.url);"string"==typeof r&&(o=(0,s.addQueryArgs)(r,t))}if("string"!=typeof o)return t(e);const a=e.method||"GET",c=(0,s.normalizePath)(o);if("GET"===a&&r[c]){const e=r[c];return delete r[c],i(e,!!n)}if("OPTIONS"===a&&r[a]&&r[a][c]){const e=r[a][c];return delete r[a][c],i(e,!!n)}return t(e)}};const p=({path:e,url:r,...t},n)=>({...t,url:r&&(0,s.addQueryArgs)(r,n),path:e&&(0,s.addQueryArgs)(e,n)}),d=e=>e.json?e.json():Promise.reject(e),u=e=>{const{next:r}=(e=>{if(!e)return{};const r=e.match(/<([^>]+)>; rel="next"/);return r?{next:r[1]}:{}})(e.headers.get("link"));return r};var h=async(e,r)=>{if(!1===e.parse)return r(e);if(!(e=>{const r=!!e.path&&-1!==e.path.indexOf("per_page=-1"),t=!!e.url&&-1!==e.url.indexOf("per_page=-1");return r||t})(e))return r(e);const t=await T({...p(e,{per_page:100}),parse:!1}),n=await d(t);if(!Array.isArray(n))return n;let o=u(t);if(!o)return n;let a=[].concat(n);for(;o;){const r=await T({...e,path:void 0,url:o,parse:!1}),t=await d(r);a=a.concat(t),o=u(r)}return a};const l=new Set(["PATCH","PUT","DELETE"]),f="GET";const w=(e,r=!0)=>Promise.resolve(((e,r=!0)=>r?204===e.status?null:e.json?e.json():Promise.reject(e):e)(e,r)).catch((e=>m(e,r)));function m(e,r=!0){if(!r)throw e;return(e=>{const r={code:"invalid_json",message:(0,t.__)("The response is not a valid JSON response.")};if(!e||!e.json)throw r;return e.json().catch((()=>{throw r}))})(e).then((e=>{const r={code:"unknown_error",message:(0,t.__)("An unknown error occurred.")};throw e||r}))}var g=(e,r)=>{if(!function(e){const r=!!e.method&&"POST"===e.method;return(!!e.path&&-1!==e.path.indexOf("/wp/v2/media")||!!e.url&&-1!==e.url.indexOf("/wp/v2/media"))&&r}(e))return r(e);let n=0;const o=e=>(n++,r({path:`/wp/v2/media/${e}/post-process`,method:"POST",data:{action:"create-image-subsizes"},parse:!1}).catch((()=>n<5?o(e):(r({path:`/wp/v2/media/${e}?force=true`,method:"DELETE"}),Promise.reject()))));return r({...e,parse:!1}).catch((r=>{const n=r.headers.get("x-wp-upload-attachment-id");return r.status>=500&&r.status<600&&n?o(n).catch((()=>!1!==e.parse?Promise.reject({code:"post_process",message:(0,t.__)("Media upload failed. If this is a photo or a large image, please scale it down and try again.")}):Promise.reject(r))):m(r,e.parse)})).then((r=>w(r,e.parse)))};var y=e=>(r,t)=>{if("string"==typeof r.url){const t=(0,s.getQueryArg)(r.url,"wp_theme_preview");void 0===t?r.url=(0,s.addQueryArgs)(r.url,{wp_theme_preview:e}):""===t&&(r.url=(0,s.removeQueryArgs)(r.url,"wp_theme_preview"))}if("string"==typeof r.path){const t=(0,s.getQueryArg)(r.path,"wp_theme_preview");void 0===t?r.path=(0,s.addQueryArgs)(r.path,{wp_theme_preview:e}):""===t&&(r.path=(0,s.removeQueryArgs)(r.path,"wp_theme_preview"))}return t(r)};const _={Accept:"application/json, */*;q=0.1"},v={credentials:"include"},P=[(e,r)=>("string"!=typeof e.url||(0,s.hasQueryArg)(e.url,"_locale")||(e.url=(0,s.addQueryArgs)(e.url,{_locale:"user"})),"string"!=typeof e.path||(0,s.hasQueryArg)(e.path,"_locale")||(e.path=(0,s.addQueryArgs)(e.path,{_locale:"user"})),r(e)),o,(e,r)=>{const{method:t=f}=e;return l.has(t.toUpperCase())&&(e={...e,headers:{...e.headers,"X-HTTP-Method-Override":t,"Content-Type":"application/json"},method:"POST"}),r(e)},h];const A=e=>{if(e.status>=200&&e.status<300)return e;throw e};let O=e=>{const{url:r,path:n,data:o,parse:a=!0,...s}=e;let{body:i,headers:c}=e;c={..._,...c},o&&(i=JSON.stringify(o),c["Content-Type"]="application/json");return window.fetch(r||n||window.location.href,{...v,...s,body:i,headers:c}).then((e=>Promise.resolve(e).then(A).catch((e=>m(e,a))).then((e=>w(e,a)))),(e=>{if(e&&"AbortError"===e.name)throw e;throw{code:"fetch_error",message:(0,t.__)("You are probably offline.")}}))};function j(e){return P.reduceRight(((e,r)=>t=>r(t,e)),O)(e).catch((r=>"rest_cookie_invalid_nonce"!==r.code?Promise.reject(r):window.fetch(j.nonceEndpoint).then(A).then((e=>e.text())).then((r=>(j.nonceMiddleware.nonce=r,j(e))))))}j.use=function(e){P.unshift(e)},j.setFetchHandler=function(e){O=e},j.createNonceMiddleware=n,j.createPreloadingMiddleware=c,j.createRootURLMiddleware=a,j.fetchAllMiddleware=h,j.mediaUploadMiddleware=g,j.createThemePreviewMiddleware=y;var T=j;(window.wp=window.wp||{}).apiFetch=r.default}(); \ No newline at end of file +!function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return T}});var r=window.wp.i18n;var n=function(e){const t=(e,r)=>{const{headers:n={}}=e;for(const a in n)if("x-wp-nonce"===a.toLowerCase()&&n[a]===t.nonce)return r(e);return r({...e,headers:{...n,"X-WP-Nonce":t.nonce}})};return t.nonce=e,t};var a=(e,t)=>{let r,n,a=e.path;return"string"==typeof e.namespace&&"string"==typeof e.endpoint&&(r=e.namespace.replace(/^\/|\/$/g,""),n=e.endpoint.replace(/^\//,""),a=n?r+"/"+n:r),delete e.namespace,delete e.endpoint,t({...e,path:a})};var o=e=>(t,r)=>a(t,(t=>{let n,a=t.url,o=t.path;return"string"==typeof o&&(n=e,-1!==e.indexOf("?")&&(o=o.replace("?","&")),o=o.replace(/^\//,""),"string"==typeof n&&-1!==n.indexOf("?")&&(o=o.replace("?","&")),a=n+o),r({...t,url:a})})),s=window.wp.url;function i(e,t){return Promise.resolve(t?e.body:new window.Response(JSON.stringify(e.body),{status:200,statusText:"OK",headers:e.headers}))}var c=function(e){const t=Object.fromEntries(Object.entries(e).map((([e,t])=>[(0,s.normalizePath)(e),t])));return(e,r)=>{const{parse:n=!0}=e;let a=e.path;if(!a&&e.url){const{rest_route:t,...r}=(0,s.getQueryArgs)(e.url);"string"==typeof t&&(a=(0,s.addQueryArgs)(t,r))}if("string"!=typeof a)return r(e);const o=e.method||"GET",c=(0,s.normalizePath)(a);if("GET"===o&&t[c]){const e=t[c];return delete t[c],i(e,!!n)}if("OPTIONS"===o&&t[o]&&t[o][c]){const e=t[o][c];return delete t[o][c],i(e,!!n)}return r(e)}};const d=({path:e,url:t,...r},n)=>({...r,url:t&&(0,s.addQueryArgs)(t,n),path:e&&(0,s.addQueryArgs)(e,n)}),p=e=>e.json?e.json():Promise.reject(e),u=e=>{const{next:t}=(e=>{if(!e)return{};const t=e.match(/<([^>]+)>; rel="next"/);return t?{next:t[1]}:{}})(e.headers.get("link"));return t};var h=async(e,t)=>{if(!1===e.parse)return t(e);if(!(e=>{const t=!!e.path&&-1!==e.path.indexOf("per_page=-1"),r=!!e.url&&-1!==e.url.indexOf("per_page=-1");return t||r})(e))return t(e);const r=await T({...d(e,{per_page:100}),parse:!1}),n=await p(r);if(!Array.isArray(n))return n;let a=u(r);if(!a)return n;let o=[].concat(n);for(;a;){const t=await T({...e,path:void 0,url:a,parse:!1}),r=await p(t);o=o.concat(r),a=u(t)}return o};const l=new Set(["PATCH","PUT","DELETE"]),f="GET";const w=(e,t=!0)=>Promise.resolve(((e,t=!0)=>t?204===e.status?null:e.json?e.json():Promise.reject(e):e)(e,t)).catch((e=>m(e,t)));function m(e,t=!0){if(!t)throw e;return(e=>{const t={code:"invalid_json",message:(0,r.__)("The response is not a valid JSON response.")};if(!e||!e.json)throw t;return e.json().catch((()=>{throw t}))})(e).then((e=>{const t={code:"unknown_error",message:(0,r.__)("An unknown error occurred.")};throw e||t}))}var g=(e,t)=>{if(!function(e){const t=!!e.method&&"POST"===e.method;return(!!e.path&&-1!==e.path.indexOf("/wp/v2/media")||!!e.url&&-1!==e.url.indexOf("/wp/v2/media"))&&t}(e))return t(e);let n=0;const a=e=>(n++,t({path:`/wp/v2/media/${e}/post-process`,method:"POST",data:{action:"create-image-subsizes"},parse:!1}).catch((()=>n<5?a(e):(t({path:`/wp/v2/media/${e}?force=true`,method:"DELETE"}),Promise.reject()))));return t({...e,parse:!1}).catch((t=>{const n=t.headers.get("x-wp-upload-attachment-id");return t.status>=500&&t.status<600&&n?a(n).catch((()=>!1!==e.parse?Promise.reject({code:"post_process",message:(0,r.__)("Media upload failed. If this is a photo or a large image, please scale it down and try again.")}):Promise.reject(t))):m(t,e.parse)})).then((t=>w(t,e.parse)))};var y=e=>(t,r)=>("string"!=typeof t.url||(0,s.hasQueryArg)(t.url,"wp_theme_preview")||(t.url=(0,s.addQueryArgs)(t.url,{wp_theme_preview:e})),"string"!=typeof t.path||(0,s.hasQueryArg)(t.path,"wp_theme_preview")||(t.path=(0,s.addQueryArgs)(t.path,{wp_theme_preview:e})),r(t));const _={Accept:"application/json, */*;q=0.1"},v={credentials:"include"},P=[(e,t)=>("string"!=typeof e.url||(0,s.hasQueryArg)(e.url,"_locale")||(e.url=(0,s.addQueryArgs)(e.url,{_locale:"user"})),"string"!=typeof e.path||(0,s.hasQueryArg)(e.path,"_locale")||(e.path=(0,s.addQueryArgs)(e.path,{_locale:"user"})),t(e)),a,(e,t)=>{const{method:r=f}=e;return l.has(r.toUpperCase())&&(e={...e,headers:{...e.headers,"X-HTTP-Method-Override":r,"Content-Type":"application/json"},method:"POST"}),t(e)},h];const O=e=>{if(e.status>=200&&e.status<300)return e;throw e};let j=e=>{const{url:t,path:n,data:a,parse:o=!0,...s}=e;let{body:i,headers:c}=e;c={..._,...c},a&&(i=JSON.stringify(a),c["Content-Type"]="application/json");return window.fetch(t||n||window.location.href,{...v,...s,body:i,headers:c}).then((e=>Promise.resolve(e).then(O).catch((e=>m(e,o))).then((e=>w(e,o)))),(e=>{if(e&&"AbortError"===e.name)throw e;throw{code:"fetch_error",message:(0,r.__)("You are probably offline.")}}))};function A(e){return P.reduceRight(((e,t)=>r=>t(r,e)),j)(e).catch((t=>"rest_cookie_invalid_nonce"!==t.code?Promise.reject(t):window.fetch(A.nonceEndpoint).then(O).then((e=>e.text())).then((t=>(A.nonceMiddleware.nonce=t,A(e))))))}A.use=function(e){P.unshift(e)},A.setFetchHandler=function(e){j=e},A.createNonceMiddleware=n,A.createPreloadingMiddleware=c,A.createRootURLMiddleware=o,A.fetchAllMiddleware=h,A.mediaUploadMiddleware=g,A.createThemePreviewMiddleware=y;var T=A;(window.wp=window.wp||{}).apiFetch=t.default}(); \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.js index 81668defc0..ae44e99b86 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.js @@ -37,7 +37,6 @@ var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ createBlobURL: function() { return /* binding */ createBlobURL; }, -/* harmony export */ downloadBlob: function() { return /* binding */ downloadBlob; }, /* harmony export */ getBlobByURL: function() { return /* binding */ getBlobByURL; }, /* harmony export */ getBlobTypeByURL: function() { return /* binding */ getBlobTypeByURL; }, /* harmony export */ isBlobURL: function() { return /* binding */ isBlobURL; }, @@ -113,47 +112,6 @@ function isBlobURL(url) { return url.indexOf('blob:') === 0; } -/** - * Downloads a file, e.g., a text or readable stream, in the browser. - * Appropriate for downloading smaller file sizes, e.g., < 5 MB. - * - * Example usage: - * - * ```js - * const fileContent = JSON.stringify( - * { - * "title": "My Post", - * }, - * null, - * 2 - * ); - * const filename = 'file.json'; - * - * downloadBlob( filename, fileContent, 'application/json' ); - * ``` - * - * @param {string} filename File name. - * @param {BlobPart} content File content (BufferSource | Blob | string). - * @param {string} contentType (Optional) File mime type. Default is `''`. - */ -function downloadBlob(filename, content, contentType = '') { - if (!filename || !content) { - return; - } - const file = new window.Blob([content], { - type: contentType - }); - const url = window.URL.createObjectURL(file); - const anchorElement = document.createElement('a'); - anchorElement.href = url; - anchorElement.download = filename; - anchorElement.style.display = 'none'; - document.body.appendChild(anchorElement); - anchorElement.click(); - document.body.removeChild(anchorElement); - window.URL.revokeObjectURL(url); -} - (window.wp = window.wp || {}).blob = __webpack_exports__; /******/ })() ; \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.min.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.min.js index bd51509693..056215c577 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.min.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/blob.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(){"use strict";var e={d:function(n,t){for(var o in t)e.o(t,o)&&!e.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:t[o]})},o:function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{createBlobURL:function(){return o},downloadBlob:function(){return d},getBlobByURL:function(){return r},getBlobTypeByURL:function(){return i},isBlobURL:function(){return u},revokeBlobURL:function(){return c}});const t={};function o(e){const n=window.URL.createObjectURL(e);return t[n]=e,n}function r(e){return t[e]}function i(e){return r(e)?.type.split("/")[0]}function c(e){t[e]&&window.URL.revokeObjectURL(e),delete t[e]}function u(e){return!(!e||!e.indexOf)&&0===e.indexOf("blob:")}function d(e,n,t=""){if(!e||!n)return;const o=new window.Blob([n],{type:t}),r=window.URL.createObjectURL(o),i=document.createElement("a");i.href=r,i.download=e,i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(r)}(window.wp=window.wp||{}).blob=n}(); \ No newline at end of file +!function(){"use strict";var e={d:function(n,t){for(var o in t)e.o(t,o)&&!e.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:t[o]})},o:function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{createBlobURL:function(){return o},getBlobByURL:function(){return r},getBlobTypeByURL:function(){return u},isBlobURL:function(){return c},revokeBlobURL:function(){return i}});const t={};function o(e){const n=window.URL.createObjectURL(e);return t[n]=e,n}function r(e){return t[e]}function u(e){return r(e)?.type.split("/")[0]}function i(e){t[e]&&window.URL.revokeObjectURL(e),delete t[e]}function c(e){return!(!e||!e.indexOf)&&0===e.indexOf("blob:")}(window.wp=window.wp||{}).blob=n}(); \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.js index 8856d8acbd..8caf74d61b 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.js @@ -90,8 +90,8 @@ __webpack_require__.d(resolvers_namespaceObject, { getDownloadableBlocks: function() { return resolvers_getDownloadableBlocks; } }); -;// CONCATENATED MODULE: external "React" -var external_React_namespaceObject = window["React"]; +;// CONCATENATED MODULE: external ["wp","element"] +var external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","plugins"] var external_wp_plugins_namespaceObject = window["wp"]["plugins"]; ;// CONCATENATED MODULE: external ["wp","hooks"] @@ -100,8 +100,6 @@ var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; ;// CONCATENATED MODULE: external ["wp","data"] var external_wp_data_namespaceObject = window["wp"]["data"]; -;// CONCATENATED MODULE: external ["wp","element"] -var external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","editor"] var external_wp_editor_namespaceObject = window["wp"]["editor"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/reducer.js @@ -1355,10 +1353,10 @@ var external_wp_primitives_namespaceObject = window["wp"]["primitives"]; * WordPress dependencies */ -const starFilled = (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { +const starFilled = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z" })); /* harmony default export */ var star_filled = (starFilled); @@ -1369,10 +1367,10 @@ const starFilled = (0,external_React_namespaceObject.createElement)(external_wp_ * WordPress dependencies */ -const starHalf = (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { +const starHalf = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { d: "M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z" })); /* harmony default export */ var star_half = (starHalf); @@ -1383,10 +1381,10 @@ const starHalf = (0,external_React_namespaceObject.createElement)(external_wp_pr * WordPress dependencies */ -const starEmpty = (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { +const starEmpty = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { fillRule: "evenodd", d: "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z", clipRule: "evenodd" @@ -1407,26 +1405,26 @@ function Stars({ const fullStarCount = Math.floor(rating); const halfStarCount = Math.ceil(rating - fullStarCount); const emptyStarCount = 5 - (fullStarCount + halfStarCount); - return (0,external_React_namespaceObject.createElement)("span", { + return (0,external_wp_element_namespaceObject.createElement)("span", { "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of stars. */ (0,external_wp_i18n_namespaceObject.__)('%s out of 5 stars'), stars) }, Array.from({ length: fullStarCount - }).map((_, i) => (0,external_React_namespaceObject.createElement)(icon, { + }).map((_, i) => (0,external_wp_element_namespaceObject.createElement)(icon, { key: `full_stars_${i}`, className: "block-directory-block-ratings__star-full", icon: star_filled, size: 16 })), Array.from({ length: halfStarCount - }).map((_, i) => (0,external_React_namespaceObject.createElement)(icon, { + }).map((_, i) => (0,external_wp_element_namespaceObject.createElement)(icon, { key: `half_stars_${i}`, className: "block-directory-block-ratings__star-half-full", icon: star_half, size: 16 })), Array.from({ length: emptyStarCount - }).map((_, i) => (0,external_React_namespaceObject.createElement)(icon, { + }).map((_, i) => (0,external_wp_element_namespaceObject.createElement)(icon, { key: `empty_stars_${i}`, className: "block-directory-block-ratings__star-empty", icon: star_empty, @@ -1443,9 +1441,9 @@ function Stars({ const BlockRatings = ({ rating -}) => (0,external_React_namespaceObject.createElement)("span", { +}) => (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-block-ratings" -}, (0,external_React_namespaceObject.createElement)(stars, { +}, (0,external_wp_element_namespaceObject.createElement)(stars, { rating: rating })); /* harmony default export */ var block_ratings = (BlockRatings); @@ -1460,11 +1458,11 @@ function DownloadableBlockIcon({ icon }) { const className = 'block-directory-downloadable-block-icon'; - return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? (0,external_React_namespaceObject.createElement)("img", { + return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? (0,external_wp_element_namespaceObject.createElement)("img", { className: className, src: icon, alt: "" - }) : (0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { + }) : (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockIcon, { className: className, icon: icon, showColors: true @@ -1491,26 +1489,14 @@ const DownloadableBlockNotice = ({ if (!errorNotice) { return null; } - return (0,external_React_namespaceObject.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-block-notice" - }, (0,external_React_namespaceObject.createElement)("div", { + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-block-notice__content" }, errorNotice.message, errorNotice.isFatal ? ' ' + (0,external_wp_i18n_namespaceObject.__)('Try reloading the page.') : null)); }; /* harmony default export */ var downloadable_block_notice = (DownloadableBlockNotice); -;// CONCATENATED MODULE: external ["wp","privateApis"] -var external_wp_privateApis_namespaceObject = window["wp"]["privateApis"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/lock-unlock.js -/** - * WordPress dependencies - */ - -const { - lock, - unlock -} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/block-directory'); - ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-list-item/index.js /** @@ -1531,10 +1517,6 @@ const { -const { - CompositeItemV2: CompositeItem -} = unlock(external_wp_components_namespaceObject.privateApis); - // Return the appropriate block item label, given the block data and status. function getDownloadableBlockLabel({ title, @@ -1604,50 +1586,48 @@ function DownloadableBlockListItem({ } else if (isInstalling) { statusText = (0,external_wp_i18n_namespaceObject.__)('Installing…'); } - return (0,external_React_namespaceObject.createElement)(CompositeItem, { - render: (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { - __experimentalIsFocusable: true, - type: "button", - role: "option", - className: "block-directory-downloadable-block-list-item", - isBusy: isInstalling, - onClick: event => { - event.preventDefault(); - onClick(); - }, - label: getDownloadableBlockLabel(item, { - hasNotice, - isInstalled, - isInstalling - }), - showTooltip: true, - tooltipPosition: "top center" + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + __experimentalIsFocusable: true, + role: "option", + as: external_wp_components_namespaceObject.Button, + ...composite, + className: "block-directory-downloadable-block-list-item", + onClick: event => { + event.preventDefault(); + onClick(); + }, + isBusy: isInstalling, + disabled: isInstalling || !isInstallable, + label: getDownloadableBlockLabel(item, { + hasNotice, + isInstalled, + isInstalling }), - store: composite, - disabled: isInstalling || !isInstallable - }, (0,external_React_namespaceObject.createElement)("div", { + showTooltip: true, + tooltipPosition: "top center" + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-block-list-item__icon" - }, (0,external_React_namespaceObject.createElement)(downloadable_block_icon, { + }, (0,external_wp_element_namespaceObject.createElement)(downloadable_block_icon, { icon: icon, title: title - }), isInstalling ? (0,external_React_namespaceObject.createElement)("span", { + }), isInstalling ? (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-downloadable-block-list-item__spinner" - }, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)) : (0,external_React_namespaceObject.createElement)(block_ratings, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)) : (0,external_wp_element_namespaceObject.createElement)(block_ratings, { rating: rating - })), (0,external_React_namespaceObject.createElement)("span", { + })), (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-downloadable-block-list-item__details" - }, (0,external_React_namespaceObject.createElement)("span", { + }, (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-downloadable-block-list-item__title" }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %1$s: block title, %2$s: author name. */ (0,external_wp_i18n_namespaceObject.__)('%1$s by %2$s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title), author), { - span: (0,external_React_namespaceObject.createElement)("span", { + span: (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-downloadable-block-list-item__author" }) - })), hasNotice ? (0,external_React_namespaceObject.createElement)(downloadable_block_notice, { + })), hasNotice ? (0,external_wp_element_namespaceObject.createElement)(downloadable_block_notice, { block: item - }) : (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)("span", { + }) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", { className: "block-directory-downloadable-block-list-item__desc" - }, !!statusText ? statusText : (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(description)), isInstallable && !(isInstalled || isInstalling) && (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Install block'))))); + }, !!statusText ? statusText : (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(description)), isInstallable && !(isInstalled || isInstalling) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Install block'))))); } /* harmony default export */ var downloadable_block_list_item = (DownloadableBlockListItem); @@ -1666,31 +1646,26 @@ function DownloadableBlockListItem({ */ - -const { - CompositeV2: Composite, - useCompositeStoreV2: useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); const noop = () => {}; function DownloadableBlocksList({ items, onHover = noop, onSelect }) { - const composite = useCompositeStore(); + const composite = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)(); const { installBlockType } = (0,external_wp_data_namespaceObject.useDispatch)(store); if (!items.length) { return null; } - return (0,external_React_namespaceObject.createElement)(Composite, { - store: composite, + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableComposite, { + ...composite, role: "listbox", className: "block-directory-downloadable-blocks-list", "aria-label": (0,external_wp_i18n_namespaceObject.__)('Blocks available for install') }, items.map(item => { - return (0,external_React_namespaceObject.createElement)(downloadable_block_list_item, { + return (0,external_wp_element_namespaceObject.createElement)(downloadable_block_list_item, { key: item.id, composite: composite, onClick: () => { @@ -1735,17 +1710,17 @@ function DownloadableBlocksInserterPanel({ (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of available blocks. */ (0,external_wp_i18n_namespaceObject._n)('%d additional block is available to install.', '%d additional blocks are available to install.', count), count)); }, [count]); - return (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, !hasLocalBlocks && (0,external_React_namespaceObject.createElement)("p", { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !hasLocalBlocks && (0,external_wp_element_namespaceObject.createElement)("p", { className: "block-directory-downloadable-blocks-panel__no-local" - }, (0,external_wp_i18n_namespaceObject.__)('No results available from your installed blocks.')), (0,external_React_namespaceObject.createElement)("div", { + }, (0,external_wp_i18n_namespaceObject.__)('No results available from your installed blocks.')), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-editor-inserter__quick-inserter-separator" - }), (0,external_React_namespaceObject.createElement)("div", { + }), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-blocks-panel" - }, (0,external_React_namespaceObject.createElement)("div", { + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-blocks-panel__header" - }, (0,external_React_namespaceObject.createElement)("h2", { + }, (0,external_wp_element_namespaceObject.createElement)("h2", { className: "block-directory-downloadable-blocks-panel__title" - }, (0,external_wp_i18n_namespaceObject.__)('Available to install')), (0,external_React_namespaceObject.createElement)("p", { + }, (0,external_wp_i18n_namespaceObject.__)('Available to install')), (0,external_wp_element_namespaceObject.createElement)("p", { className: "block-directory-downloadable-blocks-panel__description" }, (0,external_wp_i18n_namespaceObject.__)('Select a block to install and add it to your post.'))), children)); } @@ -1757,10 +1732,10 @@ function DownloadableBlocksInserterPanel({ * WordPress dependencies */ -const blockDefault = (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { +const blockDefault = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z" })); /* harmony default export */ var block_default = (blockDefault); @@ -1774,14 +1749,14 @@ const blockDefault = (0,external_React_namespaceObject.createElement)(external_w function DownloadableBlocksNoResults() { - return (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-editor-inserter__no-results" - }, (0,external_React_namespaceObject.createElement)(icon, { + }, (0,external_wp_element_namespaceObject.createElement)(icon, { className: "block-editor-inserter__no-results-icon", icon: block_default - }), (0,external_React_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('No results found.'))), (0,external_React_namespaceObject.createElement)("div", { + }), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('No results found.'))), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-editor-inserter__tips" - }, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Tip, null, (0,external_wp_i18n_namespaceObject.__)('Interested in creating your own block?'), (0,external_React_namespaceObject.createElement)("br", null), (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tip, null, (0,external_wp_i18n_namespaceObject.__)('Interested in creating your own block?'), (0,external_wp_element_namespaceObject.createElement)("br", null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { href: "https://developer.wordpress.org/block-editor/" }, (0,external_wp_i18n_namespaceObject.__)('Get started here'), ".")))); } @@ -1798,6 +1773,7 @@ function DownloadableBlocksNoResults() { + /** * Internal dependencies */ @@ -1806,86 +1782,70 @@ function DownloadableBlocksNoResults() { const EMPTY_ARRAY = []; -const useDownloadableBlocks = filterValue => (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getDownloadableBlocks, - isRequestingDownloadableBlocks, - getInstalledBlockTypes - } = select(store); - const hasPermission = select(external_wp_coreData_namespaceObject.store).canUser('read', 'block-directory/search'); - let downloadableBlocks = EMPTY_ARRAY; - if (hasPermission) { - downloadableBlocks = getDownloadableBlocks(filterValue); - - // Filter out blocks that are already installed. - const installedBlockTypes = getInstalledBlockTypes(); - const installableBlocks = downloadableBlocks.filter(({ - name - }) => { - // Check if the block has just been installed, in which case it - // should still show in the list to avoid suddenly disappearing. - // `installedBlockTypes` only returns blocks stored in state - // immediately after installation, not all installed blocks. - const isJustInstalled = installedBlockTypes.some(blockType => blockType.name === name); - const isPreviouslyInstalled = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - return isJustInstalled || !isPreviouslyInstalled; - }); - - // Keep identity of the `downloadableBlocks` array if nothing was filtered out - if (installableBlocks.length !== downloadableBlocks.length) { - downloadableBlocks = installableBlocks; - } - - // Return identical empty array when there are no blocks - if (downloadableBlocks.length === 0) { - downloadableBlocks = EMPTY_ARRAY; - } - } - return { - hasPermission, - downloadableBlocks, - isLoading: isRequestingDownloadableBlocks(filterValue) - }; -}, [filterValue]); function DownloadableBlocksPanel({ + downloadableItems, onSelect, onHover, hasLocalBlocks, - isTyping, - filterValue + hasPermission, + isLoading, + isTyping }) { - const { - hasPermission, - downloadableBlocks, - isLoading - } = useDownloadableBlocks(filterValue); - if (hasPermission === undefined || isLoading || isTyping) { - return (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, hasPermission && !hasLocalBlocks && (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)("p", { + if (typeof hasPermission === 'undefined' || isLoading || isTyping) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasPermission && !hasLocalBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("p", { className: "block-directory-downloadable-blocks-panel__no-local" - }, (0,external_wp_i18n_namespaceObject.__)('No results available from your installed blocks.')), (0,external_React_namespaceObject.createElement)("div", { + }, (0,external_wp_i18n_namespaceObject.__)('No results available from your installed blocks.')), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-editor-inserter__quick-inserter-separator" - })), (0,external_React_namespaceObject.createElement)("div", { + })), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-downloadable-blocks-panel has-blocks-loading" - }, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))); + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null))); } if (false === hasPermission) { if (!hasLocalBlocks) { - return (0,external_React_namespaceObject.createElement)(no_results, null); + return (0,external_wp_element_namespaceObject.createElement)(no_results, null); } return null; } - if (downloadableBlocks.length === 0) { - return hasLocalBlocks ? null : (0,external_React_namespaceObject.createElement)(no_results, null); - } - return (0,external_React_namespaceObject.createElement)(inserter_panel, { - downloadableItems: downloadableBlocks, + return !!downloadableItems.length ? (0,external_wp_element_namespaceObject.createElement)(inserter_panel, { + downloadableItems: downloadableItems, hasLocalBlocks: hasLocalBlocks - }, (0,external_React_namespaceObject.createElement)(downloadable_blocks_list, { - items: downloadableBlocks, + }, (0,external_wp_element_namespaceObject.createElement)(downloadable_blocks_list, { + items: downloadableItems, onSelect: onSelect, onHover: onHover - })); + })) : !hasLocalBlocks && (0,external_wp_element_namespaceObject.createElement)(no_results, null); } +/* harmony default export */ var downloadable_blocks_panel = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, { + filterValue, + rootClientId = null +}) => { + const { + getDownloadableBlocks, + isRequestingDownloadableBlocks + } = select(store); + const { + canInsertBlockType + } = select(external_wp_blockEditor_namespaceObject.store); + const hasPermission = select(external_wp_coreData_namespaceObject.store).canUser('read', 'block-directory/search'); + function getInstallableBlocks(term) { + const downloadableBlocks = getDownloadableBlocks(term); + const installableBlocks = downloadableBlocks.filter(block => canInsertBlockType(block, rootClientId, true)); + if (downloadableBlocks.length === installableBlocks.length) { + return downloadableBlocks; + } + return installableBlocks; + } + let downloadableItems = hasPermission ? getInstallableBlocks(filterValue) : []; + if (downloadableItems.length === 0) { + downloadableItems = EMPTY_ARRAY; + } + const isLoading = isRequestingDownloadableBlocks(filterValue); + return { + downloadableItems, + hasPermission, + isLoading + }; +})])(DownloadableBlocksPanel)); ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js @@ -1903,11 +1863,12 @@ function DownloadableBlocksPanel({ function InserterMenuDownloadableBlocksPanel() { const [debouncedFilterValue, setFilterValue] = (0,external_wp_element_namespaceObject.useState)(''); const debouncedSetFilterValue = (0,external_wp_compose_namespaceObject.debounce)(setFilterValue, 400); - return (0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableInserterMenuExtension, null, ({ + return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableInserterMenuExtension, null, ({ onSelect, onHover, filterValue, - hasItems + hasItems, + rootClientId }) => { if (debouncedFilterValue !== filterValue) { debouncedSetFilterValue(filterValue); @@ -1915,9 +1876,10 @@ function InserterMenuDownloadableBlocksPanel() { if (!debouncedFilterValue) { return null; } - return (0,external_React_namespaceObject.createElement)(DownloadableBlocksPanel, { + return (0,external_wp_element_namespaceObject.createElement)(downloadable_blocks_panel, { onSelect: onSelect, onHover: onHover, + rootClientId: rootClientId, filterValue: debouncedFilterValue, hasLocalBlocks: hasItems, isTyping: filterValue !== debouncedFilterValue @@ -1943,24 +1905,24 @@ function CompactList({ if (!items.length) { return null; } - return (0,external_React_namespaceObject.createElement)("ul", { + return (0,external_wp_element_namespaceObject.createElement)("ul", { className: "block-directory-compact-list" }, items.map(({ icon, id, title, author - }) => (0,external_React_namespaceObject.createElement)("li", { + }) => (0,external_wp_element_namespaceObject.createElement)("li", { key: id, className: "block-directory-compact-list__item" - }, (0,external_React_namespaceObject.createElement)(downloadable_block_icon, { + }, (0,external_wp_element_namespaceObject.createElement)(downloadable_block_icon, { icon: icon, title: title - }), (0,external_React_namespaceObject.createElement)("div", { + }), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-compact-list__item-details" - }, (0,external_React_namespaceObject.createElement)("div", { + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-compact-list__item-title" - }, title), (0,external_React_namespaceObject.createElement)("div", { + }, title), (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-directory-compact-list__item-author" }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block author. */ (0,external_wp_i18n_namespaceObject.__)('By %s'), author)))))); @@ -1992,15 +1954,15 @@ function InstalledBlocksPrePublishPanel() { if (!newBlockTypes.length) { return null; } - return (0,external_React_namespaceObject.createElement)(PluginPrePublishPanel, { + return (0,external_wp_element_namespaceObject.createElement)(PluginPrePublishPanel, { icon: block_default, title: (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %d: number of blocks (number). (0,external_wp_i18n_namespaceObject._n)('Added: %d block', 'Added: %d blocks', newBlockTypes.length), newBlockTypes.length), initialOpen: true - }, (0,external_React_namespaceObject.createElement)("p", { + }, (0,external_wp_element_namespaceObject.createElement)("p", { className: "installed-blocks-pre-publish-panel__copy" - }, (0,external_wp_i18n_namespaceObject._n)('The following block has been added to your site.', 'The following blocks have been added to your site.', newBlockTypes.length)), (0,external_React_namespaceObject.createElement)(CompactList, { + }, (0,external_wp_i18n_namespaceObject._n)('The following block has been added to your site.', 'The following blocks have been added to your site.', newBlockTypes.length)), (0,external_wp_element_namespaceObject.createElement)(CompactList, { items: newBlockTypes })); } @@ -2032,7 +1994,7 @@ function InstallButton({ const { replaceBlock } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store); - return (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { onClick: () => installBlockType(block).then(success => { if (success) { const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(block.name); @@ -2091,11 +2053,11 @@ const getInstallMissing = OriginalComponent => props => { // The user can't install blocks, or the block isn't available for download. if (!hasPermission || !block) { - return (0,external_React_namespaceObject.createElement)(OriginalComponent, { + return (0,external_wp_element_namespaceObject.createElement)(OriginalComponent, { ...props }); } - return (0,external_React_namespaceObject.createElement)(ModifiedWarning, { + return (0,external_wp_element_namespaceObject.createElement)(ModifiedWarning, { ...props, originalBlock: block }); @@ -2127,7 +2089,7 @@ const ModifiedWarning = ({ }, [clientId]); let messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */ (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely.'), originalBlock.title || originalName); - const actions = [(0,external_React_namespaceObject.createElement)(InstallButton, { + const actions = [(0,external_wp_element_namespaceObject.createElement)(InstallButton, { key: "install", block: originalBlock, attributes: props.attributes, @@ -2136,17 +2098,17 @@ const ModifiedWarning = ({ if (hasContent && hasHTMLBlock) { messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */ (0,external_wp_i18n_namespaceObject.__)('Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'), originalBlock.title || originalName); - actions.push((0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + actions.push((0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { key: "convert", onClick: convertToHTML, variant: "tertiary" }, (0,external_wp_i18n_namespaceObject.__)('Keep as HTML'))); } - return (0,external_React_namespaceObject.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)("div", { ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)() - }, (0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, { actions: actions - }, messageHTML), (0,external_React_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, originalUndelimitedContent)); + }, messageHTML), (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, originalUndelimitedContent)); }; /* harmony default export */ var get_install_missing = (getInstallMissing); @@ -2167,7 +2129,7 @@ const ModifiedWarning = ({ (0,external_wp_plugins_namespaceObject.registerPlugin)('block-directory', { render() { - return (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)(AutoBlockUninstaller, null), (0,external_React_namespaceObject.createElement)(inserter_menu_downloadable_blocks_panel, null), (0,external_React_namespaceObject.createElement)(InstalledBlocksPrePublishPanel, null)); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AutoBlockUninstaller, null), (0,external_wp_element_namespaceObject.createElement)(inserter_menu_downloadable_blocks_panel, null), (0,external_wp_element_namespaceObject.createElement)(InstalledBlocksPrePublishPanel, null)); } }); (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'block-directory/fallback', (settings, name) => { diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.min.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.min.js index a335761605..856d7f00ee 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.min.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-directory.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var l in n)e.o(n,l)&&!e.o(t,l)&&Object.defineProperty(t,l,{enumerable:!0,get:n[l]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{store:function(){return W}});var n={};e.r(n),e.d(n,{getDownloadableBlocks:function(){return g},getErrorNoticeForBlock:function(){return h},getErrorNotices:function(){return y},getInstalledBlockTypes:function(){return f},getNewBlockTypes:function(){return w},getUnusedBlockTypes:function(){return _},isInstalling:function(){return E},isRequestingDownloadableBlocks:function(){return b}});var l={};e.r(l),e.d(l,{addInstalledBlockType:function(){return D},clearErrorNotice:function(){return F},fetchDownloadableBlocks:function(){return O},installBlockType:function(){return A},receiveDownloadableBlocks:function(){return C},removeInstalledBlockType:function(){return P},setErrorNotice:function(){return x},setIsInstalling:function(){return M},uninstallBlockType:function(){return R}});var r={};e.r(r),e.d(r,{getDownloadableBlocks:function(){return q}});var o=window.React,a=window.wp.plugins,s=window.wp.hooks,i=window.wp.blocks,c=window.wp.data,d=window.wp.element,u=window.wp.editor;var m=(0,c.combineReducers)({downloadableBlocks:(e={},t)=>{switch(t.type){case"FETCH_DOWNLOADABLE_BLOCKS":return{...e,[t.filterValue]:{isRequesting:!0}};case"RECEIVE_DOWNLOADABLE_BLOCKS":return{...e,[t.filterValue]:{results:t.downloadableBlocks,isRequesting:!1}}}return e},blockManagement:(e={installedBlockTypes:[],isInstalling:{}},t)=>{switch(t.type){case"ADD_INSTALLED_BLOCK_TYPE":return{...e,installedBlockTypes:[...e.installedBlockTypes,t.item]};case"REMOVE_INSTALLED_BLOCK_TYPE":return{...e,installedBlockTypes:e.installedBlockTypes.filter((e=>e.name!==t.item.name))};case"SET_INSTALLING_BLOCK":return{...e,isInstalling:{...e.isInstalling,[t.blockId]:t.isInstalling}}}return e},errorNotices:(e={},t)=>{switch(t.type){case"SET_ERROR_NOTICE":return{...e,[t.blockId]:{message:t.message,isFatal:t.isFatal}};case"CLEAR_ERROR_NOTICE":const{[t.blockId]:n,...l}=e;return l}return e}}),p=window.wp.blockEditor;function k(e,t=[]){if(!t.length)return!1;if(t.some((({name:t})=>t===e.name)))return!0;for(let n=0;nt=>{const n=e(p.store).getBlocks();return f(t).filter((e=>k(e,n)))})),_=(0,c.createRegistrySelector)((e=>t=>{const n=e(p.store).getBlocks();return f(t).filter((e=>!k(e,n)))}));function E(e,t){return e.blockManagement.isInstalling[t]||!1}function y(e){return e.errorNotices}function h(e,t){return e.errorNotices[t]}var v=window.wp.i18n,B=window.wp.apiFetch,N=e.n(B),I=window.wp.notices,T=window.wp.url;const L=e=>new Promise(((t,n)=>{const l=document.createElement(e.nodeName);["id","rel","src","href","type"].forEach((t=>{e[t]&&(l[t]=e[t])})),e.innerHTML&&l.appendChild(document.createTextNode(e.innerHTML)),l.onload=()=>t(!0),l.onerror=()=>n(new Error("Error loading asset.")),document.body.appendChild(l),("link"===l.nodeName.toLowerCase()||"script"===l.nodeName.toLowerCase()&&!l.src)&&t()}));function S(e){if(!e)return!1;const t=e.links["wp:plugin"]||e.links.self;return!(!t||!t.length)&&t[0].href}function O(e){return{type:"FETCH_DOWNLOADABLE_BLOCKS",filterValue:e}}function C(e,t){return{type:"RECEIVE_DOWNLOADABLE_BLOCKS",downloadableBlocks:e,filterValue:t}}const A=e=>async({registry:t,dispatch:n})=>{const{id:l,name:r}=e;let o=!1;n.clearErrorNotice(l);try{n.setIsInstalling(l,!0);const a=S(e);let s={};if(a)await N()({method:"PUT",url:a,data:{status:"active"}});else{s=(await N()({method:"POST",path:"wp/v2/plugins",data:{slug:l,status:"active"}}))._links}n.addInstalledBlockType({...e,links:{...e.links,...s}});const c=["api_version","title","category","parent","icon","description","keywords","attributes","provides_context","uses_context","supports","styles","example","variations"];await N()({path:(0,T.addQueryArgs)(`/wp/v2/block-types/${r}`,{_fields:c})}).catch((()=>{})).then((e=>{e&&(0,i.unstable__bootstrapServerSideBlockDefinitions)({[r]:Object.fromEntries(Object.entries(e).filter((([e])=>c.includes(e))))})})),await async function(){const e=await N()({url:document.location.href,parse:!1}),t=await e.text(),n=(new window.DOMParser).parseFromString(t,"text/html"),l=Array.from(n.querySelectorAll('link[rel="stylesheet"],script')).filter((e=>e.id&&!document.getElementById(e.id)));for(const e of l)await L(e)}();if(!t.select(i.store).getBlockTypes().some((e=>e.name===r)))throw new Error((0,v.__)("Error registering block. Try reloading the page."));t.dispatch(I.store).createInfoNotice((0,v.sprintf)((0,v.__)("Block %s installed and added."),e.title),{speak:!0,type:"snackbar"}),o=!0}catch(e){let r=e.message||(0,v.__)("An error occurred."),o=e instanceof Error;const a={folder_exists:(0,v.__)("This block is already installed. Try reloading the page."),unable_to_connect_to_filesystem:(0,v.__)("Error installing block. You can reload the page and try again.")};a[e.code]&&(o=!0,r=a[e.code]),n.setErrorNotice(l,r,o),t.dispatch(I.store).createErrorNotice(r,{speak:!0,isDismissible:!0})}return n.setIsInstalling(l,!1),o},R=e=>async({registry:t,dispatch:n})=>{try{const t=S(e);await N()({method:"PUT",url:t,data:{status:"inactive"}}),await N()({method:"DELETE",url:t}),n.removeInstalledBlockType(e)}catch(e){t.dispatch(I.store).createErrorNotice(e.message||(0,v.__)("An error occurred."))}};function D(e){return{type:"ADD_INSTALLED_BLOCK_TYPE",item:e}}function P(e){return{type:"REMOVE_INSTALLED_BLOCK_TYPE",item:e}}function M(e,t){return{type:"SET_INSTALLING_BLOCK",blockId:e,isInstalling:t}}function x(e,t,n=!1){return{type:"SET_ERROR_NOTICE",blockId:e,message:t,isFatal:n}}function F(e){return{type:"CLEAR_ERROR_NOTICE",blockId:e}}var V=function(){return V=Object.assign||function(e){for(var t,n=1,l=arguments.length;n0&&n>="0"&&n<="9"?"_"+n+l:""+n.toUpperCase()+l}function U(e,t){return void 0===t&&(t={}),function(e,t){void 0===t&&(t={});for(var n=t.splitRegexp,l=void 0===n?$:n,r=t.stripRegexp,o=void 0===r?j:r,a=t.transform,s=void 0===a?H:a,i=t.delimiter,c=void 0===i?" ":i,d=z(z(e,l,"$1\0$2"),o,"\0"),u=0,m=d.length;"\0"===d.charAt(u);)u++;for(;"\0"===d.charAt(m-1);)m--;return d.slice(u,m).split("\0").map(s).join(c)}(e,V({delimiter:"",transform:K},t))}function Y(e,t){return 0===t?e.toLowerCase():K(e,t)}const q=e=>async({dispatch:t})=>{if(e)try{t(O(e));const n=await N()({path:`wp/v2/block-directory/search?term=${e}`});t(C(n.map((e=>Object.fromEntries(Object.entries(e).map((([e,t])=>{return[(n=e,void 0===l&&(l={}),U(n,V({transform:Y},l))),t];var n,l}))))),e))}catch{}},G={reducer:m,selectors:n,actions:l,resolvers:r},W=(0,c.createReduxStore)("core/block-directory",G);function Z(){const{uninstallBlockType:e}=(0,c.useDispatch)(W),t=(0,c.useSelect)((e=>{const{isAutosavingPost:t,isSavingPost:n}=e(u.store);return n()&&!t()}),[]),n=(0,c.useSelect)((e=>e(W).getUnusedBlockTypes()),[]);return(0,d.useEffect)((()=>{t&&n.length&&n.forEach((t=>{e(t),(0,i.unregisterBlockType)(t.name)}))}),[t]),null}(0,c.register)(W);var Q=window.wp.compose,J=window.wp.components,X=window.wp.coreData,ee=window.wp.htmlEntities;var te=(0,d.forwardRef)((function({icon:e,size:t=24,...n},l){return(0,d.cloneElement)(e,{width:t,height:t,...n,ref:l})})),ne=window.wp.primitives;var le=(0,o.createElement)(ne.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(ne.Path,{d:"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"}));var re=(0,o.createElement)(ne.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(ne.Path,{d:"M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z"}));var oe=(0,o.createElement)(ne.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(ne.Path,{fillRule:"evenodd",d:"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",clipRule:"evenodd"}));var ae=function({rating:e}){const t=.5*Math.round(e/.5),n=Math.floor(e),l=Math.ceil(e-n),r=5-(n+l);return(0,o.createElement)("span",{"aria-label":(0,v.sprintf)((0,v.__)("%s out of 5 stars"),t)},Array.from({length:n}).map(((e,t)=>(0,o.createElement)(te,{key:`full_stars_${t}`,className:"block-directory-block-ratings__star-full",icon:le,size:16}))),Array.from({length:l}).map(((e,t)=>(0,o.createElement)(te,{key:`half_stars_${t}`,className:"block-directory-block-ratings__star-half-full",icon:re,size:16}))),Array.from({length:r}).map(((e,t)=>(0,o.createElement)(te,{key:`empty_stars_${t}`,className:"block-directory-block-ratings__star-empty",icon:oe,size:16}))))};var se=({rating:e})=>(0,o.createElement)("span",{className:"block-directory-block-ratings"},(0,o.createElement)(ae,{rating:e}));var ie=function({icon:e}){const t="block-directory-downloadable-block-icon";return null!==e.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/)?(0,o.createElement)("img",{className:t,src:e,alt:""}):(0,o.createElement)(p.BlockIcon,{className:t,icon:e,showColors:!0})};var ce=({block:e})=>{const t=(0,c.useSelect)((t=>t(W).getErrorNoticeForBlock(e.id)),[e]);return t?(0,o.createElement)("div",{className:"block-directory-downloadable-block-notice"},(0,o.createElement)("div",{className:"block-directory-downloadable-block-notice__content"},t.message,t.isFatal?" "+(0,v.__)("Try reloading the page."):null)):null},de=window.wp.privateApis;const{lock:ue,unlock:me}=(0,de.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.","@wordpress/block-directory"),{CompositeItemV2:pe}=me(J.privateApis);function ke({title:e,rating:t,ratingCount:n},{hasNotice:l,isInstalled:r,isInstalling:o}){const a=.5*Math.round(t/.5);return!r&&l?(0,v.sprintf)("Retry installing %s.",(0,ee.decodeEntities)(e)):r?(0,v.sprintf)("Add %s.",(0,ee.decodeEntities)(e)):o?(0,v.sprintf)("Installing %s.",(0,ee.decodeEntities)(e)):n<1?(0,v.sprintf)("Install %s.",(0,ee.decodeEntities)(e)):(0,v.sprintf)((0,v._n)("Install %1$s. %2$s stars with %3$s review.","Install %1$s. %2$s stars with %3$s reviews.",n),(0,ee.decodeEntities)(e),a,n)}var be=function({composite:e,item:t,onClick:n}){const{author:l,description:r,icon:a,rating:s,title:u}=t,m=!!(0,i.getBlockType)(t.name),{hasNotice:p,isInstalling:k,isInstallable:b}=(0,c.useSelect)((e=>{const{getErrorNoticeForBlock:n,isInstalling:l}=e(W),r=n(t.id),o=r&&r.isFatal;return{hasNotice:!!r,isInstalling:l(t.id),isInstallable:!o}}),[t]);let g="";return m?g=(0,v.__)("Installed!"):k&&(g=(0,v.__)("Installing…")),(0,o.createElement)(pe,{render:(0,o.createElement)(J.Button,{__experimentalIsFocusable:!0,type:"button",role:"option",className:"block-directory-downloadable-block-list-item",isBusy:k,onClick:e=>{e.preventDefault(),n()},label:ke(t,{hasNotice:p,isInstalled:m,isInstalling:k}),showTooltip:!0,tooltipPosition:"top center"}),store:e,disabled:k||!b},(0,o.createElement)("div",{className:"block-directory-downloadable-block-list-item__icon"},(0,o.createElement)(ie,{icon:a,title:u}),k?(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__spinner"},(0,o.createElement)(J.Spinner,null)):(0,o.createElement)(se,{rating:s})),(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__details"},(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__title"},(0,d.createInterpolateElement)((0,v.sprintf)((0,v.__)("%1$s by %2$s"),(0,ee.decodeEntities)(u),l),{span:(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__author"})})),p?(0,o.createElement)(ce,{block:t}):(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__desc"},g||(0,ee.decodeEntities)(r)),b&&!(m||k)&&(0,o.createElement)(J.VisuallyHidden,null,(0,v.__)("Install block")))))};const{CompositeV2:ge,useCompositeStoreV2:fe}=me(J.privateApis),we=()=>{};var _e=function({items:e,onHover:t=we,onSelect:n}){const l=fe(),{installBlockType:r}=(0,c.useDispatch)(W);return e.length?(0,o.createElement)(ge,{store:l,role:"listbox",className:"block-directory-downloadable-blocks-list","aria-label":(0,v.__)("Blocks available for install")},e.map((e=>(0,o.createElement)(be,{key:e.id,composite:l,onClick:()=>{(0,i.getBlockType)(e.name)?n(e):r(e).then((t=>{t&&n(e)})),t(null)},onHover:t,item:e})))):null},Ee=window.wp.a11y;var ye=function({children:e,downloadableItems:t,hasLocalBlocks:n}){const l=t.length;return(0,d.useEffect)((()=>{(0,Ee.speak)((0,v.sprintf)((0,v._n)("%d additional block is available to install.","%d additional blocks are available to install.",l),l))}),[l]),(0,o.createElement)(o.Fragment,null,!n&&(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__no-local"},(0,v.__)("No results available from your installed blocks.")),(0,o.createElement)("div",{className:"block-editor-inserter__quick-inserter-separator"}),(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel"},(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel__header"},(0,o.createElement)("h2",{className:"block-directory-downloadable-blocks-panel__title"},(0,v.__)("Available to install")),(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__description"},(0,v.__)("Select a block to install and add it to your post."))),e))};var he=(0,o.createElement)(ne.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(ne.Path,{d:"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"}));var ve=function(){return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"block-editor-inserter__no-results"},(0,o.createElement)(te,{className:"block-editor-inserter__no-results-icon",icon:he}),(0,o.createElement)("p",null,(0,v.__)("No results found."))),(0,o.createElement)("div",{className:"block-editor-inserter__tips"},(0,o.createElement)(J.Tip,null,(0,v.__)("Interested in creating your own block?"),(0,o.createElement)("br",null),(0,o.createElement)(J.ExternalLink,{href:"https://developer.wordpress.org/block-editor/"},(0,v.__)("Get started here"),"."))))};const Be=[],Ne=e=>(0,c.useSelect)((t=>{const{getDownloadableBlocks:n,isRequestingDownloadableBlocks:l,getInstalledBlockTypes:r}=t(W),o=t(X.store).canUser("read","block-directory/search");let a=Be;if(o){a=n(e);const t=r(),l=a.filter((({name:e})=>{const n=t.some((t=>t.name===e)),l=(0,i.getBlockType)(e);return n||!l}));l.length!==a.length&&(a=l),0===a.length&&(a=Be)}return{hasPermission:o,downloadableBlocks:a,isLoading:l(e)}}),[e]);function Ie({onSelect:e,onHover:t,hasLocalBlocks:n,isTyping:l,filterValue:r}){const{hasPermission:a,downloadableBlocks:s,isLoading:i}=Ne(r);return void 0===a||i||l?(0,o.createElement)(o.Fragment,null,a&&!n&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__no-local"},(0,v.__)("No results available from your installed blocks.")),(0,o.createElement)("div",{className:"block-editor-inserter__quick-inserter-separator"})),(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel has-blocks-loading"},(0,o.createElement)(J.Spinner,null))):!1===a||0===s.length?n?null:(0,o.createElement)(ve,null):(0,o.createElement)(ye,{downloadableItems:s,hasLocalBlocks:n},(0,o.createElement)(_e,{items:s,onSelect:e,onHover:t}))}var Te,Le=function(){const[e,t]=(0,d.useState)(""),n=(0,Q.debounce)(t,400);return(0,o.createElement)(p.__unstableInserterMenuExtension,null,(({onSelect:t,onHover:l,filterValue:r,hasItems:a})=>(e!==r&&n(r),e?(0,o.createElement)(Ie,{onSelect:t,onHover:l,filterValue:e,hasLocalBlocks:a,isTyping:r!==e}):null)))};function Se({items:e}){return e.length?(0,o.createElement)("ul",{className:"block-directory-compact-list"},e.map((({icon:e,id:t,title:n,author:l})=>(0,o.createElement)("li",{key:t,className:"block-directory-compact-list__item"},(0,o.createElement)(ie,{icon:e,title:n}),(0,o.createElement)("div",{className:"block-directory-compact-list__item-details"},(0,o.createElement)("div",{className:"block-directory-compact-list__item-title"},n),(0,o.createElement)("div",{className:"block-directory-compact-list__item-author"},(0,v.sprintf)((0,v.__)("By %s"),l))))))):null}const{PluginPrePublishPanel:Oe}=null!==(Te=window?.wp?.editPost)&&void 0!==Te?Te:{};function Ce(){const e=(0,c.useSelect)((e=>e(W).getNewBlockTypes()),[]);return e.length?(0,o.createElement)(Oe,{icon:he,title:(0,v.sprintf)((0,v._n)("Added: %d block","Added: %d blocks",e.length),e.length),initialOpen:!0},(0,o.createElement)("p",{className:"installed-blocks-pre-publish-panel__copy"},(0,v._n)("The following block has been added to your site.","The following blocks have been added to your site.",e.length)),(0,o.createElement)(Se,{items:e})):null}function Ae({attributes:e,block:t,clientId:n}){const l=(0,c.useSelect)((e=>e(W).isInstalling(t.id)),[t.id]),{installBlockType:r}=(0,c.useDispatch)(W),{replaceBlock:a}=(0,c.useDispatch)(p.store);return(0,o.createElement)(J.Button,{onClick:()=>r(t).then((l=>{if(l){const l=(0,i.getBlockType)(t.name),[r]=(0,i.parse)(e.originalContent);r&&l&&a(n,(0,i.createBlock)(l.name,r.attributes,r.innerBlocks))}})),disabled:l,isBusy:l,variant:"primary"},(0,v.sprintf)((0,v.__)("Install %s"),t.title))}const Re=({originalBlock:e,...t})=>{const{originalName:n,originalUndelimitedContent:l,clientId:r}=t.attributes,{replaceBlock:a}=(0,c.useDispatch)(p.store),s=()=>{a(t.clientId,(0,i.createBlock)("core/html",{content:l}))},u=!!l,m=(0,c.useSelect)((e=>{const{canInsertBlockType:t,getBlockRootClientId:n}=e(p.store);return t("core/html",n(r))}),[r]);let k=(0,v.sprintf)((0,v.__)("Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely."),e.title||n);const b=[(0,o.createElement)(Ae,{key:"install",block:e,attributes:t.attributes,clientId:t.clientId})];return u&&m&&(k=(0,v.sprintf)((0,v.__)("Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely."),e.title||n),b.push((0,o.createElement)(J.Button,{key:"convert",onClick:s,variant:"tertiary"},(0,v.__)("Keep as HTML")))),(0,o.createElement)("div",{...(0,p.useBlockProps)()},(0,o.createElement)(p.Warning,{actions:b},k),(0,o.createElement)(d.RawHTML,null,l))};var De=e=>t=>{const{originalName:n}=t.attributes,{block:l,hasPermission:r}=(0,c.useSelect)((e=>{const{getDownloadableBlocks:t}=e(W),l=t("block:"+n).filter((({name:e})=>n===e));return{hasPermission:e(X.store).canUser("read","block-directory/search"),block:l.length&&l[0]}}),[n]);return r&&l?(0,o.createElement)(Re,{...t,originalBlock:l}):(0,o.createElement)(e,{...t})};(0,a.registerPlugin)("block-directory",{render(){return(0,o.createElement)(o.Fragment,null,(0,o.createElement)(Z,null),(0,o.createElement)(Le,null),(0,o.createElement)(Ce,null))}}),(0,s.addFilter)("blocks.registerBlockType","block-directory/fallback",((e,t)=>("core/missing"!==t||(e.edit=De(e.edit)),e))),(window.wp=window.wp||{}).blockDirectory=t}(); \ No newline at end of file +!function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var l in n)e.o(n,l)&&!e.o(t,l)&&Object.defineProperty(t,l,{enumerable:!0,get:n[l]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{store:function(){return G}});var n={};e.r(n),e.d(n,{getDownloadableBlocks:function(){return k},getErrorNoticeForBlock:function(){return y},getErrorNotices:function(){return E},getInstalledBlockTypes:function(){return g},getNewBlockTypes:function(){return _},getUnusedBlockTypes:function(){return f},isInstalling:function(){return w},isRequestingDownloadableBlocks:function(){return b}});var l={};e.r(l),e.d(l,{addInstalledBlockType:function(){return D},clearErrorNotice:function(){return x},fetchDownloadableBlocks:function(){return S},installBlockType:function(){return O},receiveDownloadableBlocks:function(){return C},removeInstalledBlockType:function(){return R},setErrorNotice:function(){return M},setIsInstalling:function(){return P},uninstallBlockType:function(){return A}});var r={};e.r(r),e.d(r,{getDownloadableBlocks:function(){return Y}});var o=window.wp.element,a=window.wp.plugins,s=window.wp.hooks,c=window.wp.blocks,i=window.wp.data,d=window.wp.editor;var u=(0,i.combineReducers)({downloadableBlocks:(e={},t)=>{switch(t.type){case"FETCH_DOWNLOADABLE_BLOCKS":return{...e,[t.filterValue]:{isRequesting:!0}};case"RECEIVE_DOWNLOADABLE_BLOCKS":return{...e,[t.filterValue]:{results:t.downloadableBlocks,isRequesting:!1}}}return e},blockManagement:(e={installedBlockTypes:[],isInstalling:{}},t)=>{switch(t.type){case"ADD_INSTALLED_BLOCK_TYPE":return{...e,installedBlockTypes:[...e.installedBlockTypes,t.item]};case"REMOVE_INSTALLED_BLOCK_TYPE":return{...e,installedBlockTypes:e.installedBlockTypes.filter((e=>e.name!==t.item.name))};case"SET_INSTALLING_BLOCK":return{...e,isInstalling:{...e.isInstalling,[t.blockId]:t.isInstalling}}}return e},errorNotices:(e={},t)=>{switch(t.type){case"SET_ERROR_NOTICE":return{...e,[t.blockId]:{message:t.message,isFatal:t.isFatal}};case"CLEAR_ERROR_NOTICE":const{[t.blockId]:n,...l}=e;return l}return e}}),m=window.wp.blockEditor;function p(e,t=[]){if(!t.length)return!1;if(t.some((({name:t})=>t===e.name)))return!0;for(let n=0;nt=>{const n=e(m.store).getBlocks();return g(t).filter((e=>p(e,n)))})),f=(0,i.createRegistrySelector)((e=>t=>{const n=e(m.store).getBlocks();return g(t).filter((e=>!p(e,n)))}));function w(e,t){return e.blockManagement.isInstalling[t]||!1}function E(e){return e.errorNotices}function y(e,t){return e.errorNotices[t]}var h=window.wp.i18n,v=window.wp.apiFetch,B=e.n(v),I=window.wp.notices,N=window.wp.url;const T=e=>new Promise(((t,n)=>{const l=document.createElement(e.nodeName);["id","rel","src","href","type"].forEach((t=>{e[t]&&(l[t]=e[t])})),e.innerHTML&&l.appendChild(document.createTextNode(e.innerHTML)),l.onload=()=>t(!0),l.onerror=()=>n(new Error("Error loading asset.")),document.body.appendChild(l),("link"===l.nodeName.toLowerCase()||"script"===l.nodeName.toLowerCase()&&!l.src)&&t()}));function L(e){if(!e)return!1;const t=e.links["wp:plugin"]||e.links.self;return!(!t||!t.length)&&t[0].href}function S(e){return{type:"FETCH_DOWNLOADABLE_BLOCKS",filterValue:e}}function C(e,t){return{type:"RECEIVE_DOWNLOADABLE_BLOCKS",downloadableBlocks:e,filterValue:t}}const O=e=>async({registry:t,dispatch:n})=>{const{id:l,name:r}=e;let o=!1;n.clearErrorNotice(l);try{n.setIsInstalling(l,!0);const a=L(e);let s={};if(a)await B()({method:"PUT",url:a,data:{status:"active"}});else{s=(await B()({method:"POST",path:"wp/v2/plugins",data:{slug:l,status:"active"}}))._links}n.addInstalledBlockType({...e,links:{...e.links,...s}});const i=["api_version","title","category","parent","icon","description","keywords","attributes","provides_context","uses_context","supports","styles","example","variations"];await B()({path:(0,N.addQueryArgs)(`/wp/v2/block-types/${r}`,{_fields:i})}).catch((()=>{})).then((e=>{e&&(0,c.unstable__bootstrapServerSideBlockDefinitions)({[r]:Object.fromEntries(Object.entries(e).filter((([e])=>i.includes(e))))})})),await async function(){const e=await B()({url:document.location.href,parse:!1}),t=await e.text(),n=(new window.DOMParser).parseFromString(t,"text/html"),l=Array.from(n.querySelectorAll('link[rel="stylesheet"],script')).filter((e=>e.id&&!document.getElementById(e.id)));for(const e of l)await T(e)}();if(!t.select(c.store).getBlockTypes().some((e=>e.name===r)))throw new Error((0,h.__)("Error registering block. Try reloading the page."));t.dispatch(I.store).createInfoNotice((0,h.sprintf)((0,h.__)("Block %s installed and added."),e.title),{speak:!0,type:"snackbar"}),o=!0}catch(e){let r=e.message||(0,h.__)("An error occurred."),o=e instanceof Error;const a={folder_exists:(0,h.__)("This block is already installed. Try reloading the page."),unable_to_connect_to_filesystem:(0,h.__)("Error installing block. You can reload the page and try again.")};a[e.code]&&(o=!0,r=a[e.code]),n.setErrorNotice(l,r,o),t.dispatch(I.store).createErrorNotice(r,{speak:!0,isDismissible:!0})}return n.setIsInstalling(l,!1),o},A=e=>async({registry:t,dispatch:n})=>{try{const t=L(e);await B()({method:"PUT",url:t,data:{status:"inactive"}}),await B()({method:"DELETE",url:t}),n.removeInstalledBlockType(e)}catch(e){t.dispatch(I.store).createErrorNotice(e.message||(0,h.__)("An error occurred."))}};function D(e){return{type:"ADD_INSTALLED_BLOCK_TYPE",item:e}}function R(e){return{type:"REMOVE_INSTALLED_BLOCK_TYPE",item:e}}function P(e,t){return{type:"SET_INSTALLING_BLOCK",blockId:e,isInstalling:t}}function M(e,t,n=!1){return{type:"SET_ERROR_NOTICE",blockId:e,message:t,isFatal:n}}function x(e){return{type:"CLEAR_ERROR_NOTICE",blockId:e}}var F=function(){return F=Object.assign||function(e){for(var t,n=1,l=arguments.length;n0&&n>="0"&&n<="9"?"_"+n+l:""+n.toUpperCase()+l}function K(e,t){return void 0===t&&(t={}),function(e,t){void 0===t&&(t={});for(var n=t.splitRegexp,l=void 0===n?H:n,r=t.stripRegexp,o=void 0===r?$:r,a=t.transform,s=void 0===a?V:a,c=t.delimiter,i=void 0===c?" ":c,d=j(j(e,l,"$1\0$2"),o,"\0"),u=0,m=d.length;"\0"===d.charAt(u);)u++;for(;"\0"===d.charAt(m-1);)m--;return d.slice(u,m).split("\0").map(s).join(i)}(e,F({delimiter:"",transform:z},t))}function U(e,t){return 0===t?e.toLowerCase():z(e,t)}const Y=e=>async({dispatch:t})=>{if(e)try{t(S(e));const n=await B()({path:`wp/v2/block-directory/search?term=${e}`});t(C(n.map((e=>Object.fromEntries(Object.entries(e).map((([e,t])=>{return[(n=e,void 0===l&&(l={}),K(n,F({transform:U},l))),t];var n,l}))))),e))}catch{}},q={reducer:u,selectors:n,actions:l,resolvers:r},G=(0,i.createReduxStore)("core/block-directory",q);function W(){const{uninstallBlockType:e}=(0,i.useDispatch)(G),t=(0,i.useSelect)((e=>{const{isAutosavingPost:t,isSavingPost:n}=e(d.store);return n()&&!t()}),[]),n=(0,i.useSelect)((e=>e(G).getUnusedBlockTypes()),[]);return(0,o.useEffect)((()=>{t&&n.length&&n.forEach((t=>{e(t),(0,c.unregisterBlockType)(t.name)}))}),[t]),null}(0,i.register)(G);var Z=window.wp.compose,Q=window.wp.components,J=window.wp.coreData,X=window.wp.htmlEntities;var ee=(0,o.forwardRef)((function({icon:e,size:t=24,...n},l){return(0,o.cloneElement)(e,{width:t,height:t,...n,ref:l})})),te=window.wp.primitives;var ne=(0,o.createElement)(te.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(te.Path,{d:"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"}));var le=(0,o.createElement)(te.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(te.Path,{d:"M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z"}));var re=(0,o.createElement)(te.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(te.Path,{fillRule:"evenodd",d:"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",clipRule:"evenodd"}));var oe=function({rating:e}){const t=.5*Math.round(e/.5),n=Math.floor(e),l=Math.ceil(e-n),r=5-(n+l);return(0,o.createElement)("span",{"aria-label":(0,h.sprintf)((0,h.__)("%s out of 5 stars"),t)},Array.from({length:n}).map(((e,t)=>(0,o.createElement)(ee,{key:`full_stars_${t}`,className:"block-directory-block-ratings__star-full",icon:ne,size:16}))),Array.from({length:l}).map(((e,t)=>(0,o.createElement)(ee,{key:`half_stars_${t}`,className:"block-directory-block-ratings__star-half-full",icon:le,size:16}))),Array.from({length:r}).map(((e,t)=>(0,o.createElement)(ee,{key:`empty_stars_${t}`,className:"block-directory-block-ratings__star-empty",icon:re,size:16}))))};var ae=({rating:e})=>(0,o.createElement)("span",{className:"block-directory-block-ratings"},(0,o.createElement)(oe,{rating:e}));var se=function({icon:e}){const t="block-directory-downloadable-block-icon";return null!==e.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/)?(0,o.createElement)("img",{className:t,src:e,alt:""}):(0,o.createElement)(m.BlockIcon,{className:t,icon:e,showColors:!0})};var ce=({block:e})=>{const t=(0,i.useSelect)((t=>t(G).getErrorNoticeForBlock(e.id)),[e]);return t?(0,o.createElement)("div",{className:"block-directory-downloadable-block-notice"},(0,o.createElement)("div",{className:"block-directory-downloadable-block-notice__content"},t.message,t.isFatal?" "+(0,h.__)("Try reloading the page."):null)):null};function ie({title:e,rating:t,ratingCount:n},{hasNotice:l,isInstalled:r,isInstalling:o}){const a=.5*Math.round(t/.5);return!r&&l?(0,h.sprintf)("Retry installing %s.",(0,X.decodeEntities)(e)):r?(0,h.sprintf)("Add %s.",(0,X.decodeEntities)(e)):o?(0,h.sprintf)("Installing %s.",(0,X.decodeEntities)(e)):n<1?(0,h.sprintf)("Install %s.",(0,X.decodeEntities)(e)):(0,h.sprintf)((0,h._n)("Install %1$s. %2$s stars with %3$s review.","Install %1$s. %2$s stars with %3$s reviews.",n),(0,X.decodeEntities)(e),a,n)}var de=function({composite:e,item:t,onClick:n}){const{author:l,description:r,icon:a,rating:s,title:d}=t,u=!!(0,c.getBlockType)(t.name),{hasNotice:m,isInstalling:p,isInstallable:b}=(0,i.useSelect)((e=>{const{getErrorNoticeForBlock:n,isInstalling:l}=e(G),r=n(t.id),o=r&&r.isFatal;return{hasNotice:!!r,isInstalling:l(t.id),isInstallable:!o}}),[t]);let k="";return u?k=(0,h.__)("Installed!"):p&&(k=(0,h.__)("Installing…")),(0,o.createElement)(Q.__unstableCompositeItem,{__experimentalIsFocusable:!0,role:"option",as:Q.Button,...e,className:"block-directory-downloadable-block-list-item",onClick:e=>{e.preventDefault(),n()},isBusy:p,disabled:p||!b,label:ie(t,{hasNotice:m,isInstalled:u,isInstalling:p}),showTooltip:!0,tooltipPosition:"top center"},(0,o.createElement)("div",{className:"block-directory-downloadable-block-list-item__icon"},(0,o.createElement)(se,{icon:a,title:d}),p?(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__spinner"},(0,o.createElement)(Q.Spinner,null)):(0,o.createElement)(ae,{rating:s})),(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__details"},(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__title"},(0,o.createInterpolateElement)((0,h.sprintf)((0,h.__)("%1$s by %2$s"),(0,X.decodeEntities)(d),l),{span:(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__author"})})),m?(0,o.createElement)(ce,{block:t}):(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"block-directory-downloadable-block-list-item__desc"},k||(0,X.decodeEntities)(r)),b&&!(u||p)&&(0,o.createElement)(Q.VisuallyHidden,null,(0,h.__)("Install block")))))};const ue=()=>{};var me=function({items:e,onHover:t=ue,onSelect:n}){const l=(0,Q.__unstableUseCompositeState)(),{installBlockType:r}=(0,i.useDispatch)(G);return e.length?(0,o.createElement)(Q.__unstableComposite,{...l,role:"listbox",className:"block-directory-downloadable-blocks-list","aria-label":(0,h.__)("Blocks available for install")},e.map((e=>(0,o.createElement)(de,{key:e.id,composite:l,onClick:()=>{(0,c.getBlockType)(e.name)?n(e):r(e).then((t=>{t&&n(e)})),t(null)},onHover:t,item:e})))):null},pe=window.wp.a11y;var be=function({children:e,downloadableItems:t,hasLocalBlocks:n}){const l=t.length;return(0,o.useEffect)((()=>{(0,pe.speak)((0,h.sprintf)((0,h._n)("%d additional block is available to install.","%d additional blocks are available to install.",l),l))}),[l]),(0,o.createElement)(o.Fragment,null,!n&&(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__no-local"},(0,h.__)("No results available from your installed blocks.")),(0,o.createElement)("div",{className:"block-editor-inserter__quick-inserter-separator"}),(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel"},(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel__header"},(0,o.createElement)("h2",{className:"block-directory-downloadable-blocks-panel__title"},(0,h.__)("Available to install")),(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__description"},(0,h.__)("Select a block to install and add it to your post."))),e))};var ke=(0,o.createElement)(te.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(te.Path,{d:"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"}));var ge=function(){return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"block-editor-inserter__no-results"},(0,o.createElement)(ee,{className:"block-editor-inserter__no-results-icon",icon:ke}),(0,o.createElement)("p",null,(0,h.__)("No results found."))),(0,o.createElement)("div",{className:"block-editor-inserter__tips"},(0,o.createElement)(Q.Tip,null,(0,h.__)("Interested in creating your own block?"),(0,o.createElement)("br",null),(0,o.createElement)(Q.ExternalLink,{href:"https://developer.wordpress.org/block-editor/"},(0,h.__)("Get started here"),"."))))};const _e=[];var fe=(0,Z.compose)([(0,i.withSelect)(((e,{filterValue:t,rootClientId:n=null})=>{const{getDownloadableBlocks:l,isRequestingDownloadableBlocks:r}=e(G),{canInsertBlockType:o}=e(m.store),a=e(J.store).canUser("read","block-directory/search");let s=a?function(e){const t=l(e),r=t.filter((e=>o(e,n,!0)));return t.length===r.length?t:r}(t):[];0===s.length&&(s=_e);return{downloadableItems:s,hasPermission:a,isLoading:r(t)}}))])((function({downloadableItems:e,onSelect:t,onHover:n,hasLocalBlocks:l,hasPermission:r,isLoading:a,isTyping:s}){return void 0===r||a||s?(0,o.createElement)(o.Fragment,null,r&&!l&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("p",{className:"block-directory-downloadable-blocks-panel__no-local"},(0,h.__)("No results available from your installed blocks.")),(0,o.createElement)("div",{className:"block-editor-inserter__quick-inserter-separator"})),(0,o.createElement)("div",{className:"block-directory-downloadable-blocks-panel has-blocks-loading"},(0,o.createElement)(Q.Spinner,null))):!1===r?l?null:(0,o.createElement)(ge,null):e.length?(0,o.createElement)(be,{downloadableItems:e,hasLocalBlocks:l},(0,o.createElement)(me,{items:e,onSelect:t,onHover:n})):!l&&(0,o.createElement)(ge,null)}));var we,Ee=function(){const[e,t]=(0,o.useState)(""),n=(0,Z.debounce)(t,400);return(0,o.createElement)(m.__unstableInserterMenuExtension,null,(({onSelect:t,onHover:l,filterValue:r,hasItems:a,rootClientId:s})=>(e!==r&&n(r),e?(0,o.createElement)(fe,{onSelect:t,onHover:l,rootClientId:s,filterValue:e,hasLocalBlocks:a,isTyping:r!==e}):null)))};function ye({items:e}){return e.length?(0,o.createElement)("ul",{className:"block-directory-compact-list"},e.map((({icon:e,id:t,title:n,author:l})=>(0,o.createElement)("li",{key:t,className:"block-directory-compact-list__item"},(0,o.createElement)(se,{icon:e,title:n}),(0,o.createElement)("div",{className:"block-directory-compact-list__item-details"},(0,o.createElement)("div",{className:"block-directory-compact-list__item-title"},n),(0,o.createElement)("div",{className:"block-directory-compact-list__item-author"},(0,h.sprintf)((0,h.__)("By %s"),l))))))):null}const{PluginPrePublishPanel:he}=null!==(we=window?.wp?.editPost)&&void 0!==we?we:{};function ve(){const e=(0,i.useSelect)((e=>e(G).getNewBlockTypes()),[]);return e.length?(0,o.createElement)(he,{icon:ke,title:(0,h.sprintf)((0,h._n)("Added: %d block","Added: %d blocks",e.length),e.length),initialOpen:!0},(0,o.createElement)("p",{className:"installed-blocks-pre-publish-panel__copy"},(0,h._n)("The following block has been added to your site.","The following blocks have been added to your site.",e.length)),(0,o.createElement)(ye,{items:e})):null}function Be({attributes:e,block:t,clientId:n}){const l=(0,i.useSelect)((e=>e(G).isInstalling(t.id)),[t.id]),{installBlockType:r}=(0,i.useDispatch)(G),{replaceBlock:a}=(0,i.useDispatch)(m.store);return(0,o.createElement)(Q.Button,{onClick:()=>r(t).then((l=>{if(l){const l=(0,c.getBlockType)(t.name),[r]=(0,c.parse)(e.originalContent);r&&l&&a(n,(0,c.createBlock)(l.name,r.attributes,r.innerBlocks))}})),disabled:l,isBusy:l,variant:"primary"},(0,h.sprintf)((0,h.__)("Install %s"),t.title))}const Ie=({originalBlock:e,...t})=>{const{originalName:n,originalUndelimitedContent:l,clientId:r}=t.attributes,{replaceBlock:a}=(0,i.useDispatch)(m.store),s=()=>{a(t.clientId,(0,c.createBlock)("core/html",{content:l}))},d=!!l,u=(0,i.useSelect)((e=>{const{canInsertBlockType:t,getBlockRootClientId:n}=e(m.store);return t("core/html",n(r))}),[r]);let p=(0,h.sprintf)((0,h.__)("Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely."),e.title||n);const b=[(0,o.createElement)(Be,{key:"install",block:e,attributes:t.attributes,clientId:t.clientId})];return d&&u&&(p=(0,h.sprintf)((0,h.__)("Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely."),e.title||n),b.push((0,o.createElement)(Q.Button,{key:"convert",onClick:s,variant:"tertiary"},(0,h.__)("Keep as HTML")))),(0,o.createElement)("div",{...(0,m.useBlockProps)()},(0,o.createElement)(m.Warning,{actions:b},p),(0,o.createElement)(o.RawHTML,null,l))};var Ne=e=>t=>{const{originalName:n}=t.attributes,{block:l,hasPermission:r}=(0,i.useSelect)((e=>{const{getDownloadableBlocks:t}=e(G),l=t("block:"+n).filter((({name:e})=>n===e));return{hasPermission:e(J.store).canUser("read","block-directory/search"),block:l.length&&l[0]}}),[n]);return r&&l?(0,o.createElement)(Ie,{...t,originalBlock:l}):(0,o.createElement)(e,{...t})};(0,a.registerPlugin)("block-directory",{render(){return(0,o.createElement)(o.Fragment,null,(0,o.createElement)(W,null),(0,o.createElement)(Ee,null),(0,o.createElement)(ve,null))}}),(0,s.addFilter)("blocks.registerBlockType","block-directory/fallback",((e,t)=>("core/missing"!==t||(e.edit=Ne(e.edit)),e))),(window.wp=window.wp||{}).blockDirectory=t}(); \ No newline at end of file diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.js index 9b0faafd74..7ab05889c4 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.js @@ -1418,56 +1418,36 @@ module.exports = function equal(a, b) { /***/ }), -/***/ 2303: +/***/ 8575: /***/ (function(module) { -"use strict"; - - -// do not edit .js files directly - edit src/index.jst - - - -module.exports = function equal(a, b) { - if (a === b) return true; - - if (a && b && typeof a == 'object' && typeof b == 'object') { - if (a.constructor !== b.constructor) return false; - - var length, i, keys; - if (Array.isArray(a)) { - length = a.length; - if (length != b.length) return false; - for (i = length; i-- !== 0;) - if (!equal(a[i], b[i])) return false; - return true; +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) } - - - - if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; - if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); - if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - - keys = Object.keys(a); - length = keys.length; - if (length !== Object.keys(b).length) return false; - - for (i = length; i-- !== 0;) - if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; - - for (i = length; i-- !== 0;) { - var key = keys[i]; - - if (!equal(a[key], b[key])) return false; + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor } - - return true; } - - // true if both NaN, false otherwise - return a!==a && b!==b; -}; +} /***/ }), @@ -2184,10173 +2164,7706 @@ module.exports = normalizeWheel; /***/ }), -/***/ 9122: -/***/ (function(module) { - -var x=String; -var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}}; -module.exports=create(); -module.exports.createColors = create; - - -/***/ }), - -/***/ 6807: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); - - -/***/ }), - -/***/ 5959: +/***/ 5372: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -__webpack_require__(6807); -const postcss_1 = __importDefault(__webpack_require__(4743)); -const PostCSSPlugin_1 = __importDefault(__webpack_require__(6764)); -module.exports = (0, PostCSSPlugin_1.default)(postcss_1.default); +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -/***/ }), -/***/ 3626: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +var ReactPropTypesSecret = __webpack_require__(9567); -"use strict"; +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prefixWrapCSSSelector = exports.prefixWrapCSSRule = void 0; -const CSSSelector_1 = __webpack_require__(1146); -const prefixWrapCSSRule = (cssRule, nested, ignoredSelectors, prefixSelector, prefixRootTags) => { - // Check each rule to see if it exactly matches our prefix selector, when - // this happens, don't try to prefix that selector. - const rules = cssRule.selector - .split(",") - .filter((selector) => !(0, CSSSelector_1.cssRuleMatchesPrefixSelector)({ selector: selector }, prefixSelector)); - if (rules.length === 0) { - return; - } - cssRule.selector = rules - .map((cssSelector) => (0, exports.prefixWrapCSSSelector)(cssSelector, cssRule, nested, ignoredSelectors, prefixSelector, prefixRootTags)) - .filter(CSSSelector_1.isValidCSSSelector) - .join(", "); -}; -exports.prefixWrapCSSRule = prefixWrapCSSRule; -const prefixWrapCSSSelector = (cssSelector, cssRule, nested, ignoredSelectors, prefixSelector, prefixRootTags) => { - const cleanedSelector = (0, CSSSelector_1.cleanSelector)(cssSelector); - if (cleanedSelector === "") { - return null; - } - // Don't prefix nested selected. - if (nested !== null && cleanedSelector.startsWith(nested, 0)) { - return cleanedSelector; - } - // Do not prefix keyframes rules. - if ((0, CSSSelector_1.isKeyframes)(cssRule)) { - return cleanedSelector; - } - // Check for matching ignored selectors - if (ignoredSelectors.some((currentValue) => cleanedSelector.match(currentValue))) { - return cleanedSelector; - } - // Anything other than a root tag is always prefixed. - if ((0, CSSSelector_1.isNotRootTag)(cleanedSelector)) { - return prefixSelector + " " + cleanedSelector; - } - // Handle special case where root tags should be converted into classes - // rather than being replaced. - if (prefixRootTags) { - return prefixSelector + " ." + cleanedSelector; +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; } - // HTML and Body elements cannot be contained within our container so lets - // extract their styles. - return cleanedSelector.replace(/^(body|html|:root)/, prefixSelector); -}; -exports.prefixWrapCSSSelector = prefixWrapCSSSelector; - - -/***/ }), - -/***/ 1146: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.cssRuleMatchesPrefixSelector = exports.isNotRootTag = exports.isKeyframes = exports.cleanSelector = exports.isValidCSSSelector = void 0; -const ANY_WHITESPACE_AT_BEGINNING_OR_END = /(^\s*|\s*$)/g; -const IS_ROOT_TAG = /^(body|html|:root).*$/; -const isValidCSSSelector = (cssSelector) => { - return cssSelector !== null; -}; -exports.isValidCSSSelector = isValidCSSSelector; -const cleanSelector = (cssSelector) => { - return cssSelector.replace(ANY_WHITESPACE_AT_BEGINNING_OR_END, ""); -}; -exports.cleanSelector = cleanSelector; -const isKeyframes = (cssRule) => { - const { parent } = cssRule; - const parentReal = parent; - // @see https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule - return (parent !== undefined && - parentReal.type === "atrule" && - parentReal.name !== undefined && - parentReal.name.match(/keyframes$/) !== null); -}; -exports.isKeyframes = isKeyframes; -const isNotRootTag = (cleanSelector) => { - return !cleanSelector.match(IS_ROOT_TAG); -}; -exports.isNotRootTag = isNotRootTag; -const cssRuleMatchesPrefixSelector = (cssRule, prefixSelector) => { - const escapedPrefixSelector = prefixSelector.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - // eslint-disable-next-line security-node/non-literal-reg-expr - const isPrefixSelector = new RegExp(`^${escapedPrefixSelector}$`); - return isPrefixSelector.test(cssRule.selector); -}; -exports.cssRuleMatchesPrefixSelector = cssRuleMatchesPrefixSelector; - + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bigint: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, -/***/ }), + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, -/***/ 5318: -/***/ (function(__unused_webpack_module, exports) { + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; -"use strict"; + ReactPropTypes.PropTypes = ReactPropTypes; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.shouldIncludeFilePath = void 0; -const shouldIncludeFilePath = (filePath, whitelist, blacklist) => { - // If whitelist exists, check if rule is contained within it. - if (whitelist.length > 0) { - return (filePath != undefined && - whitelist.some((currentValue) => filePath.match(currentValue))); - } - // If blacklist exists, check if rule is not contained within it. - if (blacklist.length > 0) { - return !(filePath != undefined && - blacklist.some((currentValue) => filePath.match(currentValue))); - } - // In all other cases, presume rule should be prefixed. - return true; + return ReactPropTypes; }; -exports.shouldIncludeFilePath = shouldIncludeFilePath; /***/ }), -/***/ 504: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ 2652: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.asPostCSSv7PluginGenerator = void 0; -const PostCSSPrefixWrap_1 = __importStar(__webpack_require__(6483)); -const asPostCSSv7PluginGenerator = (postcss) => { - return postcss.plugin(PostCSSPrefixWrap_1.PLUGIN_NAME, (prefixSelector, options) => { - return new PostCSSPrefixWrap_1.default(prefixSelector, options).prefix(); - }); -}; -exports.asPostCSSv7PluginGenerator = asPostCSSv7PluginGenerator; +if (false) { var throwOnDirectAccess, ReactIs; } else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(5372)(); +} /***/ }), -/***/ 2210: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ 9567: +/***/ (function(module) { "use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.asPostCSSv8PluginGenerator = exports.isPostCSSv8 = void 0; -const PostCSSPrefixWrap_1 = __importStar(__webpack_require__(6483)); -const isPostCSSv8 = (postcss) => postcss.Root !== undefined; -exports.isPostCSSv8 = isPostCSSv8; -const asPostCSSv8PluginGenerator = () => { - return (prefixSelector, options) => { - const plugin = new PostCSSPrefixWrap_1.default(prefixSelector, options); - return { - postcssPlugin: PostCSSPrefixWrap_1.PLUGIN_NAME, - Once(root) { - plugin.prefixRoot(root); - }, - }; - }; -}; -exports.asPostCSSv8PluginGenerator = asPostCSSv8PluginGenerator; - - -/***/ }), -/***/ 6764: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -"use strict"; +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; -const PostCSS8Plugin_1 = __webpack_require__(2210); -const PostCSS7Plugin_1 = __webpack_require__(504); -module.exports = (postcss) => { - if ((0, PostCSS8Plugin_1.isPostCSSv8)(postcss)) { - return (0, PostCSS8Plugin_1.asPostCSSv8PluginGenerator)(); - } - else { - return (0, PostCSS7Plugin_1.asPostCSSv7PluginGenerator)(postcss); - } -}; +module.exports = ReactPropTypesSecret; /***/ }), -/***/ 6483: +/***/ 5438: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PLUGIN_NAME = void 0; -const CSSRuleWrapper_1 = __webpack_require__(3626); -const FileIncludeList_1 = __webpack_require__(5318); -exports.PLUGIN_NAME = "postcss-prefixwrap"; -class PostCSSPrefixWrap { - blacklist; - ignoredSelectors; - isPrefixSelector; - prefixRootTags; - prefixSelector; - whitelist; - nested; - constructor(prefixSelector, options = {}) { - this.blacklist = options.blacklist ?? []; - this.ignoredSelectors = options.ignoredSelectors ?? []; - this.isPrefixSelector = new RegExp( - // eslint-disable-next-line security-node/non-literal-reg-expr - `^${prefixSelector.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}$`); - this.prefixRootTags = options.prefixRootTags ?? false; - this.prefixSelector = prefixSelector; - this.whitelist = options.whitelist ?? []; - this.nested = options.nested ?? null; - } - prefixRoot(css) { - if ((0, FileIncludeList_1.shouldIncludeFilePath)(css.source?.input?.file, this.whitelist, this.blacklist)) { - css.walkRules((cssRule) => { - (0, CSSRuleWrapper_1.prefixWrapCSSRule)(cssRule, this.nested, this.ignoredSelectors, this.prefixSelector, this.prefixRootTags); - }); - } - } - prefix() { - return (css) => { - this.prefixRoot(css); - }; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; } -} -exports["default"] = PostCSSPrefixWrap; - - -/***/ }), - -/***/ 7036: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -const CSSValueParser = __webpack_require__(9069) - + return t; +}; +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; +}; +exports.__esModule = true; +var React = __webpack_require__(9196); +var PropTypes = __webpack_require__(2652); +var autosize = __webpack_require__(6411); +var _getLineHeight = __webpack_require__(9894); +var getLineHeight = _getLineHeight; +var RESIZED = "autosize:resized"; /** - * @type {import('postcss').PluginCreator} + * A light replacement for built-in textarea component + * which automaticaly adjusts its height to match the content */ -module.exports = (opts) => { - - const DEFAULTS = { - skipHostRelativeUrls: true, - } - const config = Object.assign(DEFAULTS, opts) - - return { - postcssPlugin: 'rebaseUrl', - - Declaration(decl) { - // The faster way to find Declaration node - const parsedValue = CSSValueParser(decl.value) - - let valueChanged = false - parsedValue.walk(node => { - if (node.type !== 'function' || node.value !== 'url') { - return +var TextareaAutosizeClass = /** @class */ (function (_super) { + __extends(TextareaAutosizeClass, _super); + function TextareaAutosizeClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.state = { + lineHeight: null + }; + _this.textarea = null; + _this.onResize = function (e) { + if (_this.props.onResize) { + _this.props.onResize(e); + } + }; + _this.updateLineHeight = function () { + if (_this.textarea) { + _this.setState({ + lineHeight: getLineHeight(_this.textarea) + }); + } + }; + _this.onChange = function (e) { + var onChange = _this.props.onChange; + _this.currentValue = e.currentTarget.value; + onChange && onChange(e); + }; + return _this; + } + TextareaAutosizeClass.prototype.componentDidMount = function () { + var _this = this; + var _a = this.props, maxRows = _a.maxRows, async = _a.async; + if (typeof maxRows === "number") { + this.updateLineHeight(); } - - const urlVal = node.nodes[0].value - - // bases relative URLs with rootUrl - const basedUrl = new URL(urlVal, opts.rootUrl) - - // skip host-relative, already normalized URLs (e.g. `/images/image.jpg`, without `..`s) - if ((basedUrl.pathname === urlVal) && config.skipHostRelativeUrls) { - return false // skip this value + if (typeof maxRows === "number" || async) { + /* + the defer is needed to: + - force "autosize" to activate the scrollbar when this.props.maxRows is passed + - support StyledComponents (see #71) + */ + setTimeout(function () { return _this.textarea && autosize(_this.textarea); }); } - - node.nodes[0].value = basedUrl.toString() - valueChanged = true - - return false // do not walk deeper - }) - - if (valueChanged) { - decl.value = CSSValueParser.stringify(parsedValue) - } - - } - } -} - -module.exports.postcss = true - - -/***/ }), - -/***/ 9069: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var parse = __webpack_require__(27); -var walk = __webpack_require__(6714); -var stringify = __webpack_require__(6895); - -function ValueParser(value) { - if (this instanceof ValueParser) { - this.nodes = parse(value); - return this; - } - return new ValueParser(value); -} - -ValueParser.prototype.toString = function() { - return Array.isArray(this.nodes) ? stringify(this.nodes) : ""; -}; - -ValueParser.prototype.walk = function(cb, bubble) { - walk(this.nodes, cb, bubble); - return this; -}; - -ValueParser.unit = __webpack_require__(2280); - -ValueParser.walk = walk; - -ValueParser.stringify = stringify; - -module.exports = ValueParser; - - -/***/ }), - -/***/ 27: -/***/ (function(module) { - -var openParentheses = "(".charCodeAt(0); -var closeParentheses = ")".charCodeAt(0); -var singleQuote = "'".charCodeAt(0); -var doubleQuote = '"'.charCodeAt(0); -var backslash = "\\".charCodeAt(0); -var slash = "/".charCodeAt(0); -var comma = ",".charCodeAt(0); -var colon = ":".charCodeAt(0); -var star = "*".charCodeAt(0); -var uLower = "u".charCodeAt(0); -var uUpper = "U".charCodeAt(0); -var plus = "+".charCodeAt(0); -var isUnicodeRange = /^[a-f0-9?-]+$/i; - -module.exports = function(input) { - var tokens = []; - var value = input; - - var next, - quote, - prev, - token, - escape, - escapePos, - whitespacePos, - parenthesesOpenPos; - var pos = 0; - var code = value.charCodeAt(pos); - var max = value.length; - var stack = [{ nodes: tokens }]; - var balanced = 0; - var parent; - - var name = ""; - var before = ""; - var after = ""; - - while (pos < max) { - // Whitespaces - if (code <= 32) { - next = pos; - do { - next += 1; - code = value.charCodeAt(next); - } while (code <= 32); - token = value.slice(pos, next); - - prev = tokens[tokens.length - 1]; - if (code === closeParentheses && balanced) { - after = token; - } else if (prev && prev.type === "div") { - prev.after = token; - prev.sourceEndIndex += token.length; - } else if ( - code === comma || - code === colon || - (code === slash && - value.charCodeAt(next + 1) !== star && - (!parent || - (parent && parent.type === "function" && parent.value !== "calc"))) - ) { - before = token; - } else { - tokens.push({ - type: "space", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } - - pos = next; - - // Quotes - } else if (code === singleQuote || code === doubleQuote) { - next = pos; - quote = code === singleQuote ? "'" : '"'; - token = { - type: "string", - sourceIndex: pos, - quote: quote - }; - do { - escape = false; - next = value.indexOf(quote, next + 1); - if (~next) { - escapePos = next; - while (value.charCodeAt(escapePos - 1) === backslash) { - escapePos -= 1; - escape = !escape; - } - } else { - value += quote; - next = value.length - 1; - token.unclosed = true; + else { + this.textarea && autosize(this.textarea); } - } while (escape); - token.value = value.slice(pos + 1, next); - token.sourceEndIndex = token.unclosed ? next : next + 1; - tokens.push(token); - pos = next + 1; - code = value.charCodeAt(pos); - - // Comments - } else if (code === slash && value.charCodeAt(pos + 1) === star) { - next = value.indexOf("*/", pos); - - token = { - type: "comment", - sourceIndex: pos, - sourceEndIndex: next + 2 - }; - - if (next === -1) { - token.unclosed = true; - next = value.length; - token.sourceEndIndex = next; - } - - token.value = value.slice(pos + 2, next); - tokens.push(token); - - pos = next + 2; - code = value.charCodeAt(pos); - - // Operation within calc - } else if ( - (code === slash || code === star) && - parent && - parent.type === "function" && - parent.value === "calc" - ) { - token = value[pos]; - tokens.push({ - type: "word", - sourceIndex: pos - before.length, - sourceEndIndex: pos + token.length, - value: token - }); - pos += 1; - code = value.charCodeAt(pos); - - // Dividers - } else if (code === slash || code === comma || code === colon) { - token = value[pos]; - - tokens.push({ - type: "div", - sourceIndex: pos - before.length, - sourceEndIndex: pos + token.length, - value: token, - before: before, - after: "" - }); - before = ""; - - pos += 1; - code = value.charCodeAt(pos); - - // Open parentheses - } else if (openParentheses === code) { - // Whitespaces after open parentheses - next = pos; - do { - next += 1; - code = value.charCodeAt(next); - } while (code <= 32); - parenthesesOpenPos = pos; - token = { - type: "function", - sourceIndex: pos - name.length, - value: name, - before: value.slice(parenthesesOpenPos + 1, next) - }; - pos = next; - - if (name === "url" && code !== singleQuote && code !== doubleQuote) { - next -= 1; - do { - escape = false; - next = value.indexOf(")", next + 1); - if (~next) { - escapePos = next; - while (value.charCodeAt(escapePos - 1) === backslash) { - escapePos -= 1; - escape = !escape; - } - } else { - value += ")"; - next = value.length - 1; - token.unclosed = true; - } - } while (escape); - // Whitespaces before closed - whitespacePos = next; - do { - whitespacePos -= 1; - code = value.charCodeAt(whitespacePos); - } while (code <= 32); - if (parenthesesOpenPos < whitespacePos) { - if (pos !== whitespacePos + 1) { - token.nodes = [ - { - type: "word", - sourceIndex: pos, - sourceEndIndex: whitespacePos + 1, - value: value.slice(pos, whitespacePos + 1) - } - ]; - } else { - token.nodes = []; - } - if (token.unclosed && whitespacePos + 1 !== next) { - token.after = ""; - token.nodes.push({ - type: "space", - sourceIndex: whitespacePos + 1, - sourceEndIndex: next, - value: value.slice(whitespacePos + 1, next) - }); - } else { - token.after = value.slice(whitespacePos + 1, next); - token.sourceEndIndex = next; - } - } else { - token.after = ""; - token.nodes = []; + if (this.textarea) { + this.textarea.addEventListener(RESIZED, this.onResize); } - pos = next + 1; - token.sourceEndIndex = token.unclosed ? next : pos; - code = value.charCodeAt(pos); - tokens.push(token); - } else { - balanced += 1; - token.after = ""; - token.sourceEndIndex = pos + 1; - tokens.push(token); - stack.push(token); - tokens = token.nodes = []; - parent = token; - } - name = ""; - - // Close parentheses - } else if (closeParentheses === code && balanced) { - pos += 1; - code = value.charCodeAt(pos); - - parent.after = after; - parent.sourceEndIndex += after.length; - after = ""; - balanced -= 1; - stack[stack.length - 1].sourceEndIndex = pos; - stack.pop(); - parent = stack[balanced]; - tokens = parent.nodes; - - // Words - } else { - next = pos; - do { - if (code === backslash) { - next += 1; + }; + TextareaAutosizeClass.prototype.componentWillUnmount = function () { + if (this.textarea) { + this.textarea.removeEventListener(RESIZED, this.onResize); + autosize.destroy(this.textarea); } - next += 1; - code = value.charCodeAt(next); - } while ( - next < max && - !( - code <= 32 || - code === singleQuote || - code === doubleQuote || - code === comma || - code === colon || - code === slash || - code === openParentheses || - (code === star && - parent && - parent.type === "function" && - parent.value === "calc") || - (code === slash && - parent.type === "function" && - parent.value === "calc") || - (code === closeParentheses && balanced) - ) - ); - token = value.slice(pos, next); - - if (openParentheses === code) { - name = token; - } else if ( - (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && - plus === token.charCodeAt(1) && - isUnicodeRange.test(token.slice(2)) - ) { - tokens.push({ - type: "unicode-range", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } else { - tokens.push({ - type: "word", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } - - pos = next; - } - } - - for (pos = stack.length - 1; pos; pos -= 1) { - stack[pos].unclosed = true; - stack[pos].sourceEndIndex = value.length; - } - - return stack[0].nodes; -}; + }; + TextareaAutosizeClass.prototype.render = function () { + var _this = this; + var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "innerRef", "children"]), lineHeight = _a.state.lineHeight; + var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null; + return (React.createElement("textarea", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) { + _this.textarea = element; + if (typeof _this.props.innerRef === 'function') { + _this.props.innerRef(element); + } + else if (_this.props.innerRef) { + _this.props.innerRef.current = element; + } + } }), children)); + }; + TextareaAutosizeClass.prototype.componentDidUpdate = function () { + this.textarea && autosize.update(this.textarea); + }; + TextareaAutosizeClass.defaultProps = { + rows: 1, + async: false + }; + TextareaAutosizeClass.propTypes = { + rows: PropTypes.number, + maxRows: PropTypes.number, + onResize: PropTypes.func, + innerRef: PropTypes.any, + async: PropTypes.bool + }; + return TextareaAutosizeClass; +}(React.Component)); +exports.TextareaAutosize = React.forwardRef(function (props, ref) { + return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref })); +}); /***/ }), -/***/ 6895: -/***/ (function(module) { - -function stringifyNode(node, custom) { - var type = node.type; - var value = node.value; - var buf; - var customResult; - - if (custom && (customResult = custom(node)) !== undefined) { - return customResult; - } else if (type === "word" || type === "space") { - return value; - } else if (type === "string") { - buf = node.quote || ""; - return buf + value + (node.unclosed ? "" : buf); - } else if (type === "comment") { - return "/*" + value + (node.unclosed ? "" : "*/"); - } else if (type === "div") { - return (node.before || "") + value + (node.after || ""); - } else if (Array.isArray(node.nodes)) { - buf = stringify(node.nodes, custom); - if (type !== "function") { - return buf; - } - return ( - value + - "(" + - (node.before || "") + - buf + - (node.after || "") + - (node.unclosed ? "" : ")") - ); - } - return value; -} - -function stringify(nodes, custom) { - var result, i; +/***/ 773: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - if (Array.isArray(nodes)) { - result = ""; - for (i = nodes.length - 1; ~i; i -= 1) { - result = stringifyNode(nodes[i], custom) + result; - } - return result; - } - return stringifyNode(nodes, custom); -} +"use strict"; +var __webpack_unused_export__; -module.exports = stringify; +__webpack_unused_export__ = true; +var TextareaAutosize_1 = __webpack_require__(5438); +exports.Z = TextareaAutosize_1.TextareaAutosize; /***/ }), -/***/ 2280: +/***/ 4793: /***/ (function(module) { -var minus = "-".charCodeAt(0); -var plus = "+".charCodeAt(0); -var dot = ".".charCodeAt(0); -var exp = "e".charCodeAt(0); -var EXP = "E".charCodeAt(0); - -// Check if three code points would start a number -// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number -function likeNumber(value) { - var code = value.charCodeAt(0); - var nextCode; - - if (code === plus || code === minus) { - nextCode = value.charCodeAt(1); - - if (nextCode >= 48 && nextCode <= 57) { - return true; - } - - var nextNextCode = value.charCodeAt(2); - - if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) { - return true; - } - - return false; - } - - if (code === dot) { - nextCode = value.charCodeAt(1); - - if (nextCode >= 48 && nextCode <= 57) { - return true; - } - - return false; - } - - if (code >= 48 && code <= 57) { - return true; - } - - return false; -} - -// Consume a number -// https://www.w3.org/TR/css-syntax-3/#consume-number -module.exports = function(value) { - var pos = 0; - var length = value.length; - var code; - var nextCode; - var nextNextCode; - - if (length === 0 || !likeNumber(value)) { - return false; - } - - code = value.charCodeAt(pos); - - if (code === plus || code === minus) { - pos++; - } - - while (pos < length) { - code = value.charCodeAt(pos); - - if (code < 48 || code > 57) { - break; - } - - pos += 1; - } - - code = value.charCodeAt(pos); - nextCode = value.charCodeAt(pos + 1); - - if (code === dot && nextCode >= 48 && nextCode <= 57) { - pos += 2; - - while (pos < length) { - code = value.charCodeAt(pos); - - if (code < 48 || code > 57) { - break; - } - - pos += 1; - } - } - - code = value.charCodeAt(pos); - nextCode = value.charCodeAt(pos + 1); - nextNextCode = value.charCodeAt(pos + 2); - - if ( - (code === exp || code === EXP) && - ((nextCode >= 48 && nextCode <= 57) || - ((nextCode === plus || nextCode === minus) && - nextNextCode >= 48 && - nextNextCode <= 57)) - ) { - pos += nextCode === plus || nextCode === minus ? 3 : 2; - - while (pos < length) { - code = value.charCodeAt(pos); - - if (code < 48 || code > 57) { - break; - } - - pos += 1; - } - } - - return { - number: value.slice(0, pos), - unit: value.slice(pos) - }; -}; - - -/***/ }), - -/***/ 6714: -/***/ (function(module) { +var characterMap = { + "À": "A", + "Á": "A", + "Â": "A", + "Ã": "A", + "Ä": "A", + "Å": "A", + "Ấ": "A", + "Ắ": "A", + "Ẳ": "A", + "Ẵ": "A", + "Ặ": "A", + "Æ": "AE", + "Ầ": "A", + "Ằ": "A", + "Ȃ": "A", + "Ả": "A", + "Ạ": "A", + "Ẩ": "A", + "Ẫ": "A", + "Ậ": "A", + "Ç": "C", + "Ḉ": "C", + "È": "E", + "É": "E", + "Ê": "E", + "Ë": "E", + "Ế": "E", + "Ḗ": "E", + "Ề": "E", + "Ḕ": "E", + "Ḝ": "E", + "Ȇ": "E", + "Ẻ": "E", + "Ẽ": "E", + "Ẹ": "E", + "Ể": "E", + "Ễ": "E", + "Ệ": "E", + "Ì": "I", + "Í": "I", + "Î": "I", + "Ï": "I", + "Ḯ": "I", + "Ȋ": "I", + "Ỉ": "I", + "Ị": "I", + "Ð": "D", + "Ñ": "N", + "Ò": "O", + "Ó": "O", + "Ô": "O", + "Õ": "O", + "Ö": "O", + "Ø": "O", + "Ố": "O", + "Ṍ": "O", + "Ṓ": "O", + "Ȏ": "O", + "Ỏ": "O", + "Ọ": "O", + "Ổ": "O", + "Ỗ": "O", + "Ộ": "O", + "Ờ": "O", + "Ở": "O", + "Ỡ": "O", + "Ớ": "O", + "Ợ": "O", + "Ù": "U", + "Ú": "U", + "Û": "U", + "Ü": "U", + "Ủ": "U", + "Ụ": "U", + "Ử": "U", + "Ữ": "U", + "Ự": "U", + "Ý": "Y", + "à": "a", + "á": "a", + "â": "a", + "ã": "a", + "ä": "a", + "å": "a", + "ấ": "a", + "ắ": "a", + "ẳ": "a", + "ẵ": "a", + "ặ": "a", + "æ": "ae", + "ầ": "a", + "ằ": "a", + "ȃ": "a", + "ả": "a", + "ạ": "a", + "ẩ": "a", + "ẫ": "a", + "ậ": "a", + "ç": "c", + "ḉ": "c", + "è": "e", + "é": "e", + "ê": "e", + "ë": "e", + "ế": "e", + "ḗ": "e", + "ề": "e", + "ḕ": "e", + "ḝ": "e", + "ȇ": "e", + "ẻ": "e", + "ẽ": "e", + "ẹ": "e", + "ể": "e", + "ễ": "e", + "ệ": "e", + "ì": "i", + "í": "i", + "î": "i", + "ï": "i", + "ḯ": "i", + "ȋ": "i", + "ỉ": "i", + "ị": "i", + "ð": "d", + "ñ": "n", + "ò": "o", + "ó": "o", + "ô": "o", + "õ": "o", + "ö": "o", + "ø": "o", + "ố": "o", + "ṍ": "o", + "ṓ": "o", + "ȏ": "o", + "ỏ": "o", + "ọ": "o", + "ổ": "o", + "ỗ": "o", + "ộ": "o", + "ờ": "o", + "ở": "o", + "ỡ": "o", + "ớ": "o", + "ợ": "o", + "ù": "u", + "ú": "u", + "û": "u", + "ü": "u", + "ủ": "u", + "ụ": "u", + "ử": "u", + "ữ": "u", + "ự": "u", + "ý": "y", + "ÿ": "y", + "Ā": "A", + "ā": "a", + "Ă": "A", + "ă": "a", + "Ą": "A", + "ą": "a", + "Ć": "C", + "ć": "c", + "Ĉ": "C", + "ĉ": "c", + "Ċ": "C", + "ċ": "c", + "Č": "C", + "č": "c", + "C̆": "C", + "c̆": "c", + "Ď": "D", + "ď": "d", + "Đ": "D", + "đ": "d", + "Ē": "E", + "ē": "e", + "Ĕ": "E", + "ĕ": "e", + "Ė": "E", + "ė": "e", + "Ę": "E", + "ę": "e", + "Ě": "E", + "ě": "e", + "Ĝ": "G", + "Ǵ": "G", + "ĝ": "g", + "ǵ": "g", + "Ğ": "G", + "ğ": "g", + "Ġ": "G", + "ġ": "g", + "Ģ": "G", + "ģ": "g", + "Ĥ": "H", + "ĥ": "h", + "Ħ": "H", + "ħ": "h", + "Ḫ": "H", + "ḫ": "h", + "Ĩ": "I", + "ĩ": "i", + "Ī": "I", + "ī": "i", + "Ĭ": "I", + "ĭ": "i", + "Į": "I", + "į": "i", + "İ": "I", + "ı": "i", + "IJ": "IJ", + "ij": "ij", + "Ĵ": "J", + "ĵ": "j", + "Ķ": "K", + "ķ": "k", + "Ḱ": "K", + "ḱ": "k", + "K̆": "K", + "k̆": "k", + "Ĺ": "L", + "ĺ": "l", + "Ļ": "L", + "ļ": "l", + "Ľ": "L", + "ľ": "l", + "Ŀ": "L", + "ŀ": "l", + "Ł": "l", + "ł": "l", + "Ḿ": "M", + "ḿ": "m", + "M̆": "M", + "m̆": "m", + "Ń": "N", + "ń": "n", + "Ņ": "N", + "ņ": "n", + "Ň": "N", + "ň": "n", + "ʼn": "n", + "N̆": "N", + "n̆": "n", + "Ō": "O", + "ō": "o", + "Ŏ": "O", + "ŏ": "o", + "Ő": "O", + "ő": "o", + "Œ": "OE", + "œ": "oe", + "P̆": "P", + "p̆": "p", + "Ŕ": "R", + "ŕ": "r", + "Ŗ": "R", + "ŗ": "r", + "Ř": "R", + "ř": "r", + "R̆": "R", + "r̆": "r", + "Ȓ": "R", + "ȓ": "r", + "Ś": "S", + "ś": "s", + "Ŝ": "S", + "ŝ": "s", + "Ş": "S", + "Ș": "S", + "ș": "s", + "ş": "s", + "Š": "S", + "š": "s", + "Ţ": "T", + "ţ": "t", + "ț": "t", + "Ț": "T", + "Ť": "T", + "ť": "t", + "Ŧ": "T", + "ŧ": "t", + "T̆": "T", + "t̆": "t", + "Ũ": "U", + "ũ": "u", + "Ū": "U", + "ū": "u", + "Ŭ": "U", + "ŭ": "u", + "Ů": "U", + "ů": "u", + "Ű": "U", + "ű": "u", + "Ų": "U", + "ų": "u", + "Ȗ": "U", + "ȗ": "u", + "V̆": "V", + "v̆": "v", + "Ŵ": "W", + "ŵ": "w", + "Ẃ": "W", + "ẃ": "w", + "X̆": "X", + "x̆": "x", + "Ŷ": "Y", + "ŷ": "y", + "Ÿ": "Y", + "Y̆": "Y", + "y̆": "y", + "Ź": "Z", + "ź": "z", + "Ż": "Z", + "ż": "z", + "Ž": "Z", + "ž": "z", + "ſ": "s", + "ƒ": "f", + "Ơ": "O", + "ơ": "o", + "Ư": "U", + "ư": "u", + "Ǎ": "A", + "ǎ": "a", + "Ǐ": "I", + "ǐ": "i", + "Ǒ": "O", + "ǒ": "o", + "Ǔ": "U", + "ǔ": "u", + "Ǖ": "U", + "ǖ": "u", + "Ǘ": "U", + "ǘ": "u", + "Ǚ": "U", + "ǚ": "u", + "Ǜ": "U", + "ǜ": "u", + "Ứ": "U", + "ứ": "u", + "Ṹ": "U", + "ṹ": "u", + "Ǻ": "A", + "ǻ": "a", + "Ǽ": "AE", + "ǽ": "ae", + "Ǿ": "O", + "ǿ": "o", + "Þ": "TH", + "þ": "th", + "Ṕ": "P", + "ṕ": "p", + "Ṥ": "S", + "ṥ": "s", + "X́": "X", + "x́": "x", + "Ѓ": "Г", + "ѓ": "г", + "Ќ": "К", + "ќ": "к", + "A̋": "A", + "a̋": "a", + "E̋": "E", + "e̋": "e", + "I̋": "I", + "i̋": "i", + "Ǹ": "N", + "ǹ": "n", + "Ồ": "O", + "ồ": "o", + "Ṑ": "O", + "ṑ": "o", + "Ừ": "U", + "ừ": "u", + "Ẁ": "W", + "ẁ": "w", + "Ỳ": "Y", + "ỳ": "y", + "Ȁ": "A", + "ȁ": "a", + "Ȅ": "E", + "ȅ": "e", + "Ȉ": "I", + "ȉ": "i", + "Ȍ": "O", + "ȍ": "o", + "Ȑ": "R", + "ȑ": "r", + "Ȕ": "U", + "ȕ": "u", + "B̌": "B", + "b̌": "b", + "Č̣": "C", + "č̣": "c", + "Ê̌": "E", + "ê̌": "e", + "F̌": "F", + "f̌": "f", + "Ǧ": "G", + "ǧ": "g", + "Ȟ": "H", + "ȟ": "h", + "J̌": "J", + "ǰ": "j", + "Ǩ": "K", + "ǩ": "k", + "M̌": "M", + "m̌": "m", + "P̌": "P", + "p̌": "p", + "Q̌": "Q", + "q̌": "q", + "Ř̩": "R", + "ř̩": "r", + "Ṧ": "S", + "ṧ": "s", + "V̌": "V", + "v̌": "v", + "W̌": "W", + "w̌": "w", + "X̌": "X", + "x̌": "x", + "Y̌": "Y", + "y̌": "y", + "A̧": "A", + "a̧": "a", + "B̧": "B", + "b̧": "b", + "Ḑ": "D", + "ḑ": "d", + "Ȩ": "E", + "ȩ": "e", + "Ɛ̧": "E", + "ɛ̧": "e", + "Ḩ": "H", + "ḩ": "h", + "I̧": "I", + "i̧": "i", + "Ɨ̧": "I", + "ɨ̧": "i", + "M̧": "M", + "m̧": "m", + "O̧": "O", + "o̧": "o", + "Q̧": "Q", + "q̧": "q", + "U̧": "U", + "u̧": "u", + "X̧": "X", + "x̧": "x", + "Z̧": "Z", + "z̧": "z", + "й":"и", + "Й":"И", + "ё":"е", + "Ё":"Е", +}; -module.exports = function walk(nodes, cb, bubble) { - var i, max, node, result; +var chars = Object.keys(characterMap).join('|'); +var allAccents = new RegExp(chars, 'g'); +var firstAccent = new RegExp(chars, ''); - for (i = 0, max = nodes.length; i < max; i += 1) { - node = nodes[i]; - if (!bubble) { - result = cb(node, i, nodes); - } +function matcher(match) { + return characterMap[match]; +} - if ( - result !== false && - node.type === "function" && - Array.isArray(node.nodes) - ) { - walk(node.nodes, cb, bubble); - } +var removeAccents = function(string) { + return string.replace(allAccents, matcher); +}; - if (bubble) { - cb(node, i, nodes); - } - } +var hasAccents = function(string) { + return !!string.match(firstAccent); }; +module.exports = removeAccents; +module.exports.has = hasAccents; +module.exports.remove = removeAccents; + /***/ }), -/***/ 2433: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ 3124: +/***/ (function(module) { "use strict"; -let Container = __webpack_require__(9795) +// TODO: use call-bind, is-date, is-regex, is-string, is-boolean-object, is-number-object +function toS(obj) { return Object.prototype.toString.call(obj); } +function isDate(obj) { return toS(obj) === '[object Date]'; } +function isRegExp(obj) { return toS(obj) === '[object RegExp]'; } +function isError(obj) { return toS(obj) === '[object Error]'; } +function isBoolean(obj) { return toS(obj) === '[object Boolean]'; } +function isNumber(obj) { return toS(obj) === '[object Number]'; } +function isString(obj) { return toS(obj) === '[object String]'; } -class AtRule extends Container { - constructor(defaults) { - super(defaults) - this.type = 'atrule' - } - - append(...children) { - if (!this.proxyOf.nodes) this.nodes = [] - return super.append(...children) - } +// TODO: use isarray +var isArray = Array.isArray || function isArray(xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; - prepend(...children) { - if (!this.proxyOf.nodes) this.nodes = [] - return super.prepend(...children) - } +// TODO: use for-each? +function forEach(xs, fn) { + if (xs.forEach) { return xs.forEach(fn); } + for (var i = 0; i < xs.length; i++) { + fn(xs[i], i, xs); + } + return void undefined; } -module.exports = AtRule -AtRule.default = AtRule - -Container.registerAtRule(AtRule) +// TODO: use object-keys +var objectKeys = Object.keys || function keys(obj) { + var res = []; + for (var key in obj) { res.push(key); } // eslint-disable-line no-restricted-syntax + return res; +}; +// TODO: use object.hasown +var hasOwnProperty = Object.prototype.hasOwnProperty || function (obj, key) { + return key in obj; +}; -/***/ }), +function copy(src) { + if (typeof src === 'object' && src !== null) { + var dst; + + if (isArray(src)) { + dst = []; + } else if (isDate(src)) { + dst = new Date(src.getTime ? src.getTime() : src); + } else if (isRegExp(src)) { + dst = new RegExp(src); + } else if (isError(src)) { + dst = { message: src.message }; + } else if (isBoolean(src) || isNumber(src) || isString(src)) { + dst = Object(src); + } else if (Object.create && Object.getPrototypeOf) { + dst = Object.create(Object.getPrototypeOf(src)); + } else if (src.constructor === Object) { + dst = {}; + } else { + var proto = (src.constructor && src.constructor.prototype) + || src.__proto__ + || {}; + var T = function T() {}; // eslint-disable-line func-style, func-name-matching + T.prototype = proto; + dst = new T(); + } -/***/ 9882: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + forEach(objectKeys(src), function (key) { + dst[key] = src[key]; + }); + return dst; + } + return src; +} + +function walk(root, cb, immutable) { + var path = []; + var parents = []; + var alive = true; + + return (function walker(node_) { + var node = immutable ? copy(node_) : node_; + var modifiers = {}; + + var keepGoing = true; + + var state = { + node: node, + node_: node_, + path: [].concat(path), + parent: parents[parents.length - 1], + parents: parents, + key: path[path.length - 1], + isRoot: path.length === 0, + level: path.length, + circular: null, + update: function (x, stopHere) { + if (!state.isRoot) { + state.parent.node[state.key] = x; + } + state.node = x; + if (stopHere) { keepGoing = false; } + }, + delete: function (stopHere) { + delete state.parent.node[state.key]; + if (stopHere) { keepGoing = false; } + }, + remove: function (stopHere) { + if (isArray(state.parent.node)) { + state.parent.node.splice(state.key, 1); + } else { + delete state.parent.node[state.key]; + } + if (stopHere) { keepGoing = false; } + }, + keys: null, + before: function (f) { modifiers.before = f; }, + after: function (f) { modifiers.after = f; }, + pre: function (f) { modifiers.pre = f; }, + post: function (f) { modifiers.post = f; }, + stop: function () { alive = false; }, + block: function () { keepGoing = false; }, + }; -"use strict"; + if (!alive) { return state; } + function updateState() { + if (typeof state.node === 'object' && state.node !== null) { + if (!state.keys || state.node_ !== state.node) { + state.keys = objectKeys(state.node); + } -let Node = __webpack_require__(8753) + state.isLeaf = state.keys.length === 0; -class Comment extends Node { - constructor(defaults) { - super(defaults) - this.type = 'comment' - } -} - -module.exports = Comment -Comment.default = Comment - - -/***/ }), - -/***/ 9795: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let { isClean, my } = __webpack_require__(3719) -let Declaration = __webpack_require__(5818) -let Comment = __webpack_require__(9882) -let Node = __webpack_require__(8753) - -let parse, Rule, AtRule, Root - -function cleanSource(nodes) { - return nodes.map(i => { - if (i.nodes) i.nodes = cleanSource(i.nodes) - delete i.source - return i - }) -} - -function markDirtyUp(node) { - node[isClean] = false - if (node.proxyOf.nodes) { - for (let i of node.proxyOf.nodes) { - markDirtyUp(i) - } - } -} - -class Container extends Node { - append(...children) { - for (let child of children) { - let nodes = this.normalize(child, this.last) - for (let node of nodes) this.proxyOf.nodes.push(node) - } - - this.markDirty() - - return this - } - - cleanRaws(keepBetween) { - super.cleanRaws(keepBetween) - if (this.nodes) { - for (let node of this.nodes) node.cleanRaws(keepBetween) - } - } - - each(callback) { - if (!this.proxyOf.nodes) return undefined - let iterator = this.getIterator() - - let index, result - while (this.indexes[iterator] < this.proxyOf.nodes.length) { - index = this.indexes[iterator] - result = callback(this.proxyOf.nodes[index], index) - if (result === false) break - - this.indexes[iterator] += 1 - } - - delete this.indexes[iterator] - return result - } - - every(condition) { - return this.nodes.every(condition) - } - - getIterator() { - if (!this.lastEach) this.lastEach = 0 - if (!this.indexes) this.indexes = {} - - this.lastEach += 1 - let iterator = this.lastEach - this.indexes[iterator] = 0 - - return iterator - } - - getProxyProcessor() { - return { - get(node, prop) { - if (prop === 'proxyOf') { - return node - } else if (!node[prop]) { - return node[prop] - } else if ( - prop === 'each' || - (typeof prop === 'string' && prop.startsWith('walk')) - ) { - return (...args) => { - return node[prop]( - ...args.map(i => { - if (typeof i === 'function') { - return (child, index) => i(child.toProxy(), index) - } else { - return i - } - }) - ) - } - } else if (prop === 'every' || prop === 'some') { - return cb => { - return node[prop]((child, ...other) => - cb(child.toProxy(), ...other) - ) - } - } else if (prop === 'root') { - return () => node.root().toProxy() - } else if (prop === 'nodes') { - return node.nodes.map(i => i.toProxy()) - } else if (prop === 'first' || prop === 'last') { - return node[prop].toProxy() - } else { - return node[prop] - } - }, - - set(node, prop, value) { - if (node[prop] === value) return true - node[prop] = value - if (prop === 'name' || prop === 'params' || prop === 'selector') { - node.markDirty() - } - return true - } - } - } - - index(child) { - if (typeof child === 'number') return child - if (child.proxyOf) child = child.proxyOf - return this.proxyOf.nodes.indexOf(child) - } - - insertAfter(exist, add) { - let existIndex = this.index(exist) - let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse() - existIndex = this.index(exist) - for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node) - - let index - for (let id in this.indexes) { - index = this.indexes[id] - if (existIndex < index) { - this.indexes[id] = index + nodes.length - } - } - - this.markDirty() - - return this - } - - insertBefore(exist, add) { - let existIndex = this.index(exist) - let type = existIndex === 0 ? 'prepend' : false - let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse() - existIndex = this.index(exist) - for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) - - let index - for (let id in this.indexes) { - index = this.indexes[id] - if (existIndex <= index) { - this.indexes[id] = index + nodes.length - } - } - - this.markDirty() - - return this - } - - normalize(nodes, sample) { - if (typeof nodes === 'string') { - nodes = cleanSource(parse(nodes).nodes) - } else if (Array.isArray(nodes)) { - nodes = nodes.slice(0) - for (let i of nodes) { - if (i.parent) i.parent.removeChild(i, 'ignore') - } - } else if (nodes.type === 'root' && this.type !== 'document') { - nodes = nodes.nodes.slice(0) - for (let i of nodes) { - if (i.parent) i.parent.removeChild(i, 'ignore') - } - } else if (nodes.type) { - nodes = [nodes] - } else if (nodes.prop) { - if (typeof nodes.value === 'undefined') { - throw new Error('Value field is missed in node creation') - } else if (typeof nodes.value !== 'string') { - nodes.value = String(nodes.value) - } - nodes = [new Declaration(nodes)] - } else if (nodes.selector) { - nodes = [new Rule(nodes)] - } else if (nodes.name) { - nodes = [new AtRule(nodes)] - } else if (nodes.text) { - nodes = [new Comment(nodes)] - } else { - throw new Error('Unknown node type in node creation') - } - - let processed = nodes.map(i => { - /* c8 ignore next */ - if (!i[my]) Container.rebuild(i) - i = i.proxyOf - if (i.parent) i.parent.removeChild(i) - if (i[isClean]) markDirtyUp(i) - if (typeof i.raws.before === 'undefined') { - if (sample && typeof sample.raws.before !== 'undefined') { - i.raws.before = sample.raws.before.replace(/\S/g, '') - } - } - i.parent = this.proxyOf - return i - }) - - return processed - } - - prepend(...children) { - children = children.reverse() - for (let child of children) { - let nodes = this.normalize(child, this.first, 'prepend').reverse() - for (let node of nodes) this.proxyOf.nodes.unshift(node) - for (let id in this.indexes) { - this.indexes[id] = this.indexes[id] + nodes.length - } - } - - this.markDirty() - - return this - } - - push(child) { - child.parent = this - this.proxyOf.nodes.push(child) - return this - } - - removeAll() { - for (let node of this.proxyOf.nodes) node.parent = undefined - this.proxyOf.nodes = [] - - this.markDirty() - - return this - } - - removeChild(child) { - child = this.index(child) - this.proxyOf.nodes[child].parent = undefined - this.proxyOf.nodes.splice(child, 1) - - let index - for (let id in this.indexes) { - index = this.indexes[id] - if (index >= child) { - this.indexes[id] = index - 1 - } - } - - this.markDirty() - - return this - } - - replaceValues(pattern, opts, callback) { - if (!callback) { - callback = opts - opts = {} - } - - this.walkDecls(decl => { - if (opts.props && !opts.props.includes(decl.prop)) return - if (opts.fast && !decl.value.includes(opts.fast)) return - - decl.value = decl.value.replace(pattern, callback) - }) - - this.markDirty() - - return this - } - - some(condition) { - return this.nodes.some(condition) - } - - walk(callback) { - return this.each((child, i) => { - let result - try { - result = callback(child, i) - } catch (e) { - throw child.addToError(e) - } - if (result !== false && child.walk) { - result = child.walk(callback) - } - - return result - }) - } + for (var i = 0; i < parents.length; i++) { + if (parents[i].node_ === node_) { + state.circular = parents[i]; + break; // eslint-disable-line no-restricted-syntax + } + } + } else { + state.isLeaf = true; + state.keys = null; + } - walkAtRules(name, callback) { - if (!callback) { - callback = name - return this.walk((child, i) => { - if (child.type === 'atrule') { - return callback(child, i) - } - }) - } - if (name instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === 'atrule' && name.test(child.name)) { - return callback(child, i) - } - }) - } - return this.walk((child, i) => { - if (child.type === 'atrule' && child.name === name) { - return callback(child, i) - } - }) - } + state.notLeaf = !state.isLeaf; + state.notRoot = !state.isRoot; + } - walkComments(callback) { - return this.walk((child, i) => { - if (child.type === 'comment') { - return callback(child, i) - } - }) - } + updateState(); - walkDecls(prop, callback) { - if (!callback) { - callback = prop - return this.walk((child, i) => { - if (child.type === 'decl') { - return callback(child, i) - } - }) - } - if (prop instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === 'decl' && prop.test(child.prop)) { - return callback(child, i) - } - }) - } - return this.walk((child, i) => { - if (child.type === 'decl' && child.prop === prop) { - return callback(child, i) - } - }) - } + // use return values to update if defined + var ret = cb.call(state, state.node); + if (ret !== undefined && state.update) { state.update(ret); } - walkRules(selector, callback) { - if (!callback) { - callback = selector + if (modifiers.before) { modifiers.before.call(state, state.node); } - return this.walk((child, i) => { - if (child.type === 'rule') { - return callback(child, i) - } - }) - } - if (selector instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === 'rule' && selector.test(child.selector)) { - return callback(child, i) - } - }) - } - return this.walk((child, i) => { - if (child.type === 'rule' && child.selector === selector) { - return callback(child, i) - } - }) - } + if (!keepGoing) { return state; } - get first() { - if (!this.proxyOf.nodes) return undefined - return this.proxyOf.nodes[0] - } + if ( + typeof state.node === 'object' + && state.node !== null + && !state.circular + ) { + parents.push(state); - get last() { - if (!this.proxyOf.nodes) return undefined - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] - } -} + updateState(); -Container.registerParse = dependant => { - parse = dependant -} + forEach(state.keys, function (key, i) { + path.push(key); -Container.registerRule = dependant => { - Rule = dependant -} + if (modifiers.pre) { modifiers.pre.call(state, state.node[key], key); } -Container.registerAtRule = dependant => { - AtRule = dependant -} + var child = walker(state.node[key]); + if (immutable && hasOwnProperty.call(state.node, key)) { + state.node[key] = child.node; + } -Container.registerRoot = dependant => { - Root = dependant -} + child.isLast = i === state.keys.length - 1; + child.isFirst = i === 0; -module.exports = Container -Container.default = Container + if (modifiers.post) { modifiers.post.call(state, child); } -/* c8 ignore start */ -Container.rebuild = node => { - if (node.type === 'atrule') { - Object.setPrototypeOf(node, AtRule.prototype) - } else if (node.type === 'rule') { - Object.setPrototypeOf(node, Rule.prototype) - } else if (node.type === 'decl') { - Object.setPrototypeOf(node, Declaration.prototype) - } else if (node.type === 'comment') { - Object.setPrototypeOf(node, Comment.prototype) - } else if (node.type === 'root') { - Object.setPrototypeOf(node, Root.prototype) - } + path.pop(); + }); + parents.pop(); + } - node[my] = true + if (modifiers.after) { modifiers.after.call(state, state.node); } - if (node.nodes) { - node.nodes.forEach(child => { - Container.rebuild(child) - }) - } + return state; + }(root)).node; } -/* c8 ignore stop */ - - -/***/ }), - -/***/ 8743: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let pico = __webpack_require__(9122) - -let terminalHighlight = __webpack_require__(2868) - -class CssSyntaxError extends Error { - constructor(message, line, column, source, file, plugin) { - super(message) - this.name = 'CssSyntaxError' - this.reason = message - - if (file) { - this.file = file - } - if (source) { - this.source = source - } - if (plugin) { - this.plugin = plugin - } - if (typeof line !== 'undefined' && typeof column !== 'undefined') { - if (typeof line === 'number') { - this.line = line - this.column = column - } else { - this.line = line.line - this.column = line.column - this.endLine = column.line - this.endColumn = column.column - } - } - - this.setMessage() - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, CssSyntaxError) - } - } - - setMessage() { - this.message = this.plugin ? this.plugin + ': ' : '' - this.message += this.file ? this.file : '' - if (typeof this.line !== 'undefined') { - this.message += ':' + this.line + ':' + this.column - } - this.message += ': ' + this.reason - } - - showSourceCode(color) { - if (!this.source) return '' - - let css = this.source - if (color == null) color = pico.isColorSupported - if (terminalHighlight) { - if (color) css = terminalHighlight(css) - } - - let lines = css.split(/\r?\n/) - let start = Math.max(this.line - 3, 0) - let end = Math.min(this.line + 2, lines.length) - let maxWidth = String(end).length - - let mark, aside - if (color) { - let { bold, gray, red } = pico.createColors(true) - mark = text => bold(red(text)) - aside = text => gray(text) - } else { - mark = aside = str => str - } - - return lines - .slice(start, end) - .map((line, index) => { - let number = start + 1 + index - let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' - if (number === this.line) { - let spacing = - aside(gutter.replace(/\d/g, ' ')) + - line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') - return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^') - } - return ' ' + aside(gutter) + line - }) - .join('\n') - } - - toString() { - let code = this.showSourceCode() - if (code) { - code = '\n\n' + code + '\n' - } - return this.name + ': ' + this.message + code - } +function Traverse(obj) { + this.value = obj; } -module.exports = CssSyntaxError -CssSyntaxError.default = CssSyntaxError - - -/***/ }), - -/***/ 5818: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - +Traverse.prototype.get = function (ps) { + var node = this.value; + for (var i = 0; i < ps.length; i++) { + var key = ps[i]; + if (!node || !hasOwnProperty.call(node, key)) { + return void undefined; + } + node = node[key]; + } + return node; +}; -let Node = __webpack_require__(8753) +Traverse.prototype.has = function (ps) { + var node = this.value; + for (var i = 0; i < ps.length; i++) { + var key = ps[i]; + if (!node || !hasOwnProperty.call(node, key)) { + return false; + } + node = node[key]; + } + return true; +}; -class Declaration extends Node { - constructor(defaults) { - if ( - defaults && - typeof defaults.value !== 'undefined' && - typeof defaults.value !== 'string' - ) { - defaults = { ...defaults, value: String(defaults.value) } - } - super(defaults) - this.type = 'decl' - } +Traverse.prototype.set = function (ps, value) { + var node = this.value; + for (var i = 0; i < ps.length - 1; i++) { + var key = ps[i]; + if (!hasOwnProperty.call(node, key)) { node[key] = {}; } + node = node[key]; + } + node[ps[i]] = value; + return value; +}; - get variable() { - return this.prop.startsWith('--') || this.prop[0] === '$' - } -} +Traverse.prototype.map = function (cb) { + return walk(this.value, cb, true); +}; -module.exports = Declaration -Declaration.default = Declaration +Traverse.prototype.forEach = function (cb) { + this.value = walk(this.value, cb, false); + return this.value; +}; +Traverse.prototype.reduce = function (cb, init) { + var skip = arguments.length === 1; + var acc = skip ? this.value : init; + this.forEach(function (x) { + if (!this.isRoot || !skip) { + acc = cb.call(this, acc, x); + } + }); + return acc; +}; -/***/ }), +Traverse.prototype.paths = function () { + var acc = []; + this.forEach(function () { + acc.push(this.path); + }); + return acc; +}; -/***/ 3866: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +Traverse.prototype.nodes = function () { + var acc = []; + this.forEach(function () { + acc.push(this.node); + }); + return acc; +}; -"use strict"; +Traverse.prototype.clone = function () { + var parents = []; + var nodes = []; + return (function clone(src) { + for (var i = 0; i < parents.length; i++) { + if (parents[i] === src) { + return nodes[i]; + } + } -let Container = __webpack_require__(9795) + if (typeof src === 'object' && src !== null) { + var dst = copy(src); -let LazyResult, Processor + parents.push(src); + nodes.push(dst); -class Document extends Container { - constructor(defaults) { - // type needs to be passed to super, otherwise child roots won't be normalized correctly - super({ type: 'document', ...defaults }) + forEach(objectKeys(src), function (key) { + dst[key] = clone(src[key]); + }); - if (!this.nodes) { - this.nodes = [] - } - } + parents.pop(); + nodes.pop(); + return dst; + } - toResult(opts = {}) { - let lazy = new LazyResult(new Processor(), this, opts) + return src; - return lazy.stringify() - } -} + }(this.value)); +}; -Document.registerLazyResult = dependant => { - LazyResult = dependant +function traverse(obj) { + return new Traverse(obj); } -Document.registerProcessor = dependant => { - Processor = dependant -} +// TODO: replace with object.assign? +forEach(objectKeys(Traverse.prototype), function (key) { + traverse[key] = function (obj) { + var args = [].slice.call(arguments, 1); + var t = new Traverse(obj); + return t[key].apply(t, args); + }; +}); -module.exports = Document -Document.default = Document +module.exports = traverse; /***/ }), -/***/ 3667: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ 9196: +/***/ (function(module) { "use strict"; +module.exports = window["React"]; +/***/ }) -let Declaration = __webpack_require__(5818) -let PreviousMap = __webpack_require__(2393) -let Comment = __webpack_require__(9882) -let AtRule = __webpack_require__(2433) -let Input = __webpack_require__(9961) -let Root = __webpack_require__(3823) -let Rule = __webpack_require__(5871) - -function fromJSON(json, inputs) { - if (Array.isArray(json)) return json.map(n => fromJSON(n)) - - let { inputs: ownInputs, ...defaults } = json - if (ownInputs) { - inputs = [] - for (let input of ownInputs) { - let inputHydrated = { ...input, __proto__: Input.prototype } - if (inputHydrated.map) { - inputHydrated.map = { - ...inputHydrated.map, - __proto__: PreviousMap.prototype - } - } - inputs.push(inputHydrated) - } - } - if (defaults.nodes) { - defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) - } - if (defaults.source) { - let { inputId, ...source } = defaults.source - defaults.source = source - if (inputId != null) { - defaults.source.input = inputs[inputId] - } - } - if (defaults.type === 'root') { - return new Root(defaults) - } else if (defaults.type === 'decl') { - return new Declaration(defaults) - } else if (defaults.type === 'rule') { - return new Rule(defaults) - } else if (defaults.type === 'comment') { - return new Comment(defaults) - } else if (defaults.type === 'atrule') { - return new AtRule(defaults) - } else { - throw new Error('Unknown node type: ' + json.type) - } -} - -module.exports = fromJSON -fromJSON.default = fromJSON - - -/***/ }), - -/***/ 9961: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +!function() { "use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + AlignmentControl: function() { return /* reexport */ AlignmentControl; }, + AlignmentToolbar: function() { return /* reexport */ AlignmentToolbar; }, + Autocomplete: function() { return /* reexport */ autocomplete; }, + BlockAlignmentControl: function() { return /* reexport */ BlockAlignmentControl; }, + BlockAlignmentToolbar: function() { return /* reexport */ BlockAlignmentToolbar; }, + BlockBreadcrumb: function() { return /* reexport */ block_breadcrumb; }, + BlockCanvas: function() { return /* reexport */ block_canvas; }, + BlockColorsStyleSelector: function() { return /* reexport */ color_style_selector; }, + BlockContextProvider: function() { return /* reexport */ BlockContextProvider; }, + BlockControls: function() { return /* reexport */ block_controls; }, + BlockEdit: function() { return /* reexport */ BlockEdit; }, + BlockEditorKeyboardShortcuts: function() { return /* reexport */ keyboard_shortcuts; }, + BlockEditorProvider: function() { return /* reexport */ provider; }, + BlockFormatControls: function() { return /* reexport */ BlockFormatControls; }, + BlockIcon: function() { return /* reexport */ block_icon; }, + BlockInspector: function() { return /* reexport */ block_inspector; }, + BlockList: function() { return /* reexport */ BlockList; }, + BlockMover: function() { return /* reexport */ block_mover; }, + BlockNavigationDropdown: function() { return /* reexport */ dropdown; }, + BlockPreview: function() { return /* reexport */ block_preview; }, + BlockSelectionClearer: function() { return /* reexport */ BlockSelectionClearer; }, + BlockSettingsMenu: function() { return /* reexport */ block_settings_menu; }, + BlockSettingsMenuControls: function() { return /* reexport */ block_settings_menu_controls; }, + BlockStyles: function() { return /* reexport */ block_styles; }, + BlockTitle: function() { return /* reexport */ BlockTitle; }, + BlockToolbar: function() { return /* reexport */ block_toolbar; }, + BlockTools: function() { return /* reexport */ BlockTools; }, + BlockVerticalAlignmentControl: function() { return /* reexport */ BlockVerticalAlignmentControl; }, + BlockVerticalAlignmentToolbar: function() { return /* reexport */ BlockVerticalAlignmentToolbar; }, + ButtonBlockAppender: function() { return /* reexport */ button_block_appender; }, + ButtonBlockerAppender: function() { return /* reexport */ ButtonBlockerAppender; }, + ColorPalette: function() { return /* reexport */ color_palette; }, + ColorPaletteControl: function() { return /* reexport */ ColorPaletteControl; }, + ContrastChecker: function() { return /* reexport */ contrast_checker; }, + CopyHandler: function() { return /* reexport */ copy_handler; }, + DefaultBlockAppender: function() { return /* reexport */ default_block_appender; }, + FontSizePicker: function() { return /* reexport */ font_size_picker; }, + HeadingLevelDropdown: function() { return /* reexport */ HeadingLevelDropdown; }, + HeightControl: function() { return /* reexport */ HeightControl; }, + InnerBlocks: function() { return /* reexport */ inner_blocks; }, + Inserter: function() { return /* reexport */ inserter; }, + InspectorAdvancedControls: function() { return /* reexport */ InspectorAdvancedControls; }, + InspectorControls: function() { return /* reexport */ inspector_controls; }, + JustifyContentControl: function() { return /* reexport */ JustifyContentControl; }, + JustifyToolbar: function() { return /* reexport */ JustifyToolbar; }, + LineHeightControl: function() { return /* reexport */ line_height_control; }, + MediaPlaceholder: function() { return /* reexport */ media_placeholder; }, + MediaReplaceFlow: function() { return /* reexport */ media_replace_flow; }, + MediaUpload: function() { return /* reexport */ media_upload; }, + MediaUploadCheck: function() { return /* reexport */ check; }, + MultiSelectScrollIntoView: function() { return /* reexport */ MultiSelectScrollIntoView; }, + NavigableToolbar: function() { return /* reexport */ navigable_toolbar; }, + ObserveTyping: function() { return /* reexport */ observe_typing; }, + PanelColorSettings: function() { return /* reexport */ panel_color_settings; }, + PlainText: function() { return /* reexport */ plain_text; }, + ReusableBlocksRenameHint: function() { return /* reexport */ ReusableBlocksRenameHint; }, + RichText: function() { return /* reexport */ rich_text; }, + RichTextShortcut: function() { return /* reexport */ RichTextShortcut; }, + RichTextToolbarButton: function() { return /* reexport */ RichTextToolbarButton; }, + SETTINGS_DEFAULTS: function() { return /* reexport */ SETTINGS_DEFAULTS; }, + SkipToSelectedBlock: function() { return /* reexport */ skip_to_selected_block; }, + ToolSelector: function() { return /* reexport */ tool_selector; }, + Typewriter: function() { return /* reexport */ typewriter; }, + URLInput: function() { return /* reexport */ url_input; }, + URLInputButton: function() { return /* reexport */ url_input_button; }, + URLPopover: function() { return /* reexport */ url_popover; }, + Warning: function() { return /* reexport */ warning; }, + WritingFlow: function() { return /* reexport */ writing_flow; }, + __experimentalBlockAlignmentMatrixControl: function() { return /* reexport */ block_alignment_matrix_control; }, + __experimentalBlockFullHeightAligmentControl: function() { return /* reexport */ block_full_height_alignment_control; }, + __experimentalBlockPatternSetup: function() { return /* reexport */ block_pattern_setup; }, + __experimentalBlockPatternsList: function() { return /* reexport */ block_patterns_list; }, + __experimentalBlockVariationPicker: function() { return /* reexport */ block_variation_picker; }, + __experimentalBlockVariationTransforms: function() { return /* reexport */ block_variation_transforms; }, + __experimentalBorderRadiusControl: function() { return /* reexport */ BorderRadiusControl; }, + __experimentalColorGradientControl: function() { return /* reexport */ control; }, + __experimentalColorGradientSettingsDropdown: function() { return /* reexport */ ColorGradientSettingsDropdown; }, + __experimentalDateFormatPicker: function() { return /* reexport */ DateFormatPicker; }, + __experimentalDuotoneControl: function() { return /* reexport */ duotone_control; }, + __experimentalFontAppearanceControl: function() { return /* reexport */ FontAppearanceControl; }, + __experimentalFontFamilyControl: function() { return /* reexport */ FontFamilyControl; }, + __experimentalGetBorderClassesAndStyles: function() { return /* reexport */ getBorderClassesAndStyles; }, + __experimentalGetColorClassesAndStyles: function() { return /* reexport */ getColorClassesAndStyles; }, + __experimentalGetElementClassName: function() { return /* reexport */ __experimentalGetElementClassName; }, + __experimentalGetGapCSSValue: function() { return /* reexport */ getGapCSSValue; }, + __experimentalGetGradientClass: function() { return /* reexport */ __experimentalGetGradientClass; }, + __experimentalGetGradientObjectByGradientValue: function() { return /* reexport */ __experimentalGetGradientObjectByGradientValue; }, + __experimentalGetMatchingVariation: function() { return /* reexport */ __experimentalGetMatchingVariation; }, + __experimentalGetSpacingClassesAndStyles: function() { return /* reexport */ getSpacingClassesAndStyles; }, + __experimentalImageEditor: function() { return /* reexport */ ImageEditor; }, + __experimentalImageSizeControl: function() { return /* reexport */ ImageSizeControl; }, + __experimentalImageURLInputUI: function() { return /* reexport */ ImageURLInputUI; }, + __experimentalInspectorPopoverHeader: function() { return /* reexport */ InspectorPopoverHeader; }, + __experimentalLetterSpacingControl: function() { return /* reexport */ LetterSpacingControl; }, + __experimentalLibrary: function() { return /* reexport */ library; }, + __experimentalLinkControl: function() { return /* reexport */ link_control; }, + __experimentalLinkControlSearchInput: function() { return /* reexport */ search_input; }, + __experimentalLinkControlSearchItem: function() { return /* reexport */ search_item; }, + __experimentalLinkControlSearchResults: function() { return /* reexport */ LinkControlSearchResults; }, + __experimentalListView: function() { return /* reexport */ components_list_view; }, + __experimentalPanelColorGradientSettings: function() { return /* reexport */ panel_color_gradient_settings; }, + __experimentalPreviewOptions: function() { return /* reexport */ PreviewOptions; }, + __experimentalPublishDateTimePicker: function() { return /* reexport */ publish_date_time_picker; }, + __experimentalRecursionProvider: function() { return /* reexport */ RecursionProvider; }, + __experimentalResponsiveBlockControl: function() { return /* reexport */ responsive_block_control; }, + __experimentalSpacingSizesControl: function() { return /* reexport */ SpacingSizesControl; }, + __experimentalTextDecorationControl: function() { return /* reexport */ TextDecorationControl; }, + __experimentalTextTransformControl: function() { return /* reexport */ TextTransformControl; }, + __experimentalUnitControl: function() { return /* reexport */ UnitControl; }, + __experimentalUseBlockOverlayActive: function() { return /* reexport */ useBlockOverlayActive; }, + __experimentalUseBlockPreview: function() { return /* reexport */ useBlockPreview; }, + __experimentalUseBorderProps: function() { return /* reexport */ useBorderProps; }, + __experimentalUseColorProps: function() { return /* reexport */ useColorProps; }, + __experimentalUseCustomSides: function() { return /* reexport */ useCustomSides; }, + __experimentalUseGradient: function() { return /* reexport */ __experimentalUseGradient; }, + __experimentalUseHasRecursion: function() { return /* reexport */ useHasRecursion; }, + __experimentalUseMultipleOriginColorsAndGradients: function() { return /* reexport */ useMultipleOriginColorsAndGradients; }, + __experimentalUseResizeCanvas: function() { return /* reexport */ useResizeCanvas; }, + __experimentalWritingModeControl: function() { return /* reexport */ WritingModeControl; }, + __unstableBlockNameContext: function() { return /* reexport */ block_name_context; }, + __unstableBlockSettingsMenuFirstItem: function() { return /* reexport */ block_settings_menu_first_item; }, + __unstableBlockToolbarLastItem: function() { return /* reexport */ block_toolbar_last_item; }, + __unstableEditorStyles: function() { return /* reexport */ EditorStyles; }, + __unstableIframe: function() { return /* reexport */ iframe; }, + __unstableInserterMenuExtension: function() { return /* reexport */ inserter_menu_extension; }, + __unstableRichTextInputEvent: function() { return /* reexport */ __unstableRichTextInputEvent; }, + __unstableUseBlockSelectionClearer: function() { return /* reexport */ useBlockSelectionClearer; }, + __unstableUseClipboardHandler: function() { return /* reexport */ useClipboardHandler; }, + __unstableUseMouseMoveTypingReset: function() { return /* reexport */ useMouseMoveTypingReset; }, + __unstableUseTypewriter: function() { return /* reexport */ useTypewriter; }, + __unstableUseTypingObserver: function() { return /* reexport */ useTypingObserver; }, + createCustomColorsHOC: function() { return /* reexport */ createCustomColorsHOC; }, + getColorClassName: function() { return /* reexport */ getColorClassName; }, + getColorObjectByAttributeValues: function() { return /* reexport */ getColorObjectByAttributeValues; }, + getColorObjectByColorValue: function() { return /* reexport */ getColorObjectByColorValue; }, + getComputedFluidTypographyValue: function() { return /* reexport */ getComputedFluidTypographyValue; }, + getCustomValueFromPreset: function() { return /* reexport */ getCustomValueFromPreset; }, + getFontSize: function() { return /* reexport */ utils_getFontSize; }, + getFontSizeClass: function() { return /* reexport */ getFontSizeClass; }, + getFontSizeObjectByValue: function() { return /* reexport */ utils_getFontSizeObjectByValue; }, + getGradientSlugByValue: function() { return /* reexport */ getGradientSlugByValue; }, + getGradientValueBySlug: function() { return /* reexport */ getGradientValueBySlug; }, + getPxFromCssUnit: function() { return /* reexport */ parse_css_unit_to_px; }, + getSpacingPresetCssVar: function() { return /* reexport */ getSpacingPresetCssVar; }, + getTypographyClassesAndStyles: function() { return /* reexport */ getTypographyClassesAndStyles; }, + isValueSpacingPreset: function() { return /* reexport */ isValueSpacingPreset; }, + privateApis: function() { return /* reexport */ privateApis; }, + store: function() { return /* reexport */ store; }, + storeConfig: function() { return /* reexport */ storeConfig; }, + transformStyles: function() { return /* reexport */ transform_styles; }, + useBlockCommands: function() { return /* reexport */ useBlockCommands; }, + useBlockDisplayInformation: function() { return /* reexport */ useBlockDisplayInformation; }, + useBlockEditContext: function() { return /* reexport */ useBlockEditContext; }, + useBlockEditingMode: function() { return /* reexport */ useBlockEditingMode; }, + useBlockProps: function() { return /* reexport */ useBlockProps; }, + useCachedTruthy: function() { return /* reexport */ useCachedTruthy; }, + useInnerBlocksProps: function() { return /* reexport */ useInnerBlocksProps; }, + useSetting: function() { return /* reexport */ use_setting_useSetting; }, + withColorContext: function() { return /* reexport */ with_color_context; }, + withColors: function() { return /* reexport */ withColors; }, + withFontSizes: function() { return /* reexport */ with_font_sizes; } +}); -let { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(209) -let { fileURLToPath, pathToFileURL } = __webpack_require__(7414) -let { isAbsolute, resolve } = __webpack_require__(9830) -let { nanoid } = __webpack_require__(2961) - -let terminalHighlight = __webpack_require__(2868) -let CssSyntaxError = __webpack_require__(8743) -let PreviousMap = __webpack_require__(2393) - -let fromOffsetCache = Symbol('fromOffsetCache') - -let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) -let pathAvailable = Boolean(resolve && isAbsolute) - -class Input { - constructor(css, opts = {}) { - if ( - css === null || - typeof css === 'undefined' || - (typeof css === 'object' && !css.toString) - ) { - throw new Error(`PostCSS received ${css} instead of CSS string`) - } - - this.css = css.toString() - - if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { - this.hasBOM = true - this.css = this.css.slice(1) - } else { - this.hasBOM = false - } - - if (opts.from) { - if ( - !pathAvailable || - /^\w+:\/\//.test(opts.from) || - isAbsolute(opts.from) - ) { - this.file = opts.from - } else { - this.file = resolve(opts.from) - } - } - - if (pathAvailable && sourceMapAvailable) { - let map = new PreviousMap(this.css, opts) - if (map.text) { - this.map = map - let file = map.consumer().file - if (!this.file && file) this.file = this.mapResolve(file) - } - } - - if (!this.file) { - this.id = '' - } - if (this.map) this.map.file = this.from - } - - error(message, line, column, opts = {}) { - let result, endLine, endColumn - - if (line && typeof line === 'object') { - let start = line - let end = column - if (typeof start.offset === 'number') { - let pos = this.fromOffset(start.offset) - line = pos.line - column = pos.col - } else { - line = start.line - column = start.column - } - if (typeof end.offset === 'number') { - let pos = this.fromOffset(end.offset) - endLine = pos.line - endColumn = pos.col - } else { - endLine = end.line - endColumn = end.column - } - } else if (!column) { - let pos = this.fromOffset(line) - line = pos.line - column = pos.col - } - - let origin = this.origin(line, column, endLine, endColumn) - if (origin) { - result = new CssSyntaxError( - message, - origin.endLine === undefined - ? origin.line - : { column: origin.column, line: origin.line }, - origin.endLine === undefined - ? origin.column - : { column: origin.endColumn, line: origin.endLine }, - origin.source, - origin.file, - opts.plugin - ) - } else { - result = new CssSyntaxError( - message, - endLine === undefined ? line : { column, line }, - endLine === undefined ? column : { column: endColumn, line: endLine }, - this.css, - this.file, - opts.plugin - ) - } - - result.input = { column, endColumn, endLine, line, source: this.css } - if (this.file) { - if (pathToFileURL) { - result.input.url = pathToFileURL(this.file).toString() - } - result.input.file = this.file - } - - return result - } - - fromOffset(offset) { - let lastLine, lineToIndex - if (!this[fromOffsetCache]) { - let lines = this.css.split('\n') - lineToIndex = new Array(lines.length) - let prevIndex = 0 - - for (let i = 0, l = lines.length; i < l; i++) { - lineToIndex[i] = prevIndex - prevIndex += lines[i].length + 1 - } - - this[fromOffsetCache] = lineToIndex - } else { - lineToIndex = this[fromOffsetCache] - } - lastLine = lineToIndex[lineToIndex.length - 1] - - let min = 0 - if (offset >= lastLine) { - min = lineToIndex.length - 1 - } else { - let max = lineToIndex.length - 2 - let mid - while (min < max) { - mid = min + ((max - min) >> 1) - if (offset < lineToIndex[mid]) { - max = mid - 1 - } else if (offset >= lineToIndex[mid + 1]) { - min = mid + 1 - } else { - min = mid - break - } - } - } - return { - col: offset - lineToIndex[min] + 1, - line: min + 1 - } - } - - mapResolve(file) { - if (/^\w+:\/\//.test(file)) { - return file - } - return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) - } - - origin(line, column, endLine, endColumn) { - if (!this.map) return false - let consumer = this.map.consumer() - - let from = consumer.originalPositionFor({ column, line }) - if (!from.source) return false - - let to - if (typeof endLine === 'number') { - to = consumer.originalPositionFor({ column: endColumn, line: endLine }) - } - - let fromUrl - - if (isAbsolute(from.source)) { - fromUrl = pathToFileURL(from.source) - } else { - fromUrl = new URL( - from.source, - this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) - ) - } - - let result = { - column: from.column, - endColumn: to && to.column, - endLine: to && to.line, - line: from.line, - url: fromUrl.toString() - } - - if (fromUrl.protocol === 'file:') { - if (fileURLToPath) { - result.file = fileURLToPath(fromUrl) - } else { - /* c8 ignore next 2 */ - throw new Error(`file: protocol is not available in this PostCSS build`) - } - } - - let source = consumer.sourceContentFor(from.source) - if (source) result.source = source - - return result - } - - toJSON() { - let json = {} - for (let name of ['hasBOM', 'css', 'file', 'id']) { - if (this[name] != null) { - json[name] = this[name] - } - } - if (this.map) { - json.map = { ...this.map } - if (json.map.consumerCache) { - json.map.consumerCache = undefined - } - } - return json - } - - get from() { - return this.file || this.id - } -} - -module.exports = Input -Input.default = Input - -if (terminalHighlight && terminalHighlight.registerInput) { - terminalHighlight.registerInput(Input) -} - +// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js +var selectors_namespaceObject = {}; +__webpack_require__.r(selectors_namespaceObject); +__webpack_require__.d(selectors_namespaceObject, { + __experimentalGetActiveBlockIdByBlockNames: function() { return __experimentalGetActiveBlockIdByBlockNames; }, + __experimentalGetAllowedBlocks: function() { return __experimentalGetAllowedBlocks; }, + __experimentalGetAllowedPatterns: function() { return __experimentalGetAllowedPatterns; }, + __experimentalGetBlockListSettingsForBlocks: function() { return __experimentalGetBlockListSettingsForBlocks; }, + __experimentalGetDirectInsertBlock: function() { return __experimentalGetDirectInsertBlock; }, + __experimentalGetGlobalBlocksByName: function() { return __experimentalGetGlobalBlocksByName; }, + __experimentalGetLastBlockAttributeChanges: function() { return __experimentalGetLastBlockAttributeChanges; }, + __experimentalGetParsedPattern: function() { return __experimentalGetParsedPattern; }, + __experimentalGetPatternTransformItems: function() { return __experimentalGetPatternTransformItems; }, + __experimentalGetPatternsByBlockTypes: function() { return __experimentalGetPatternsByBlockTypes; }, + __experimentalGetReusableBlockTitle: function() { return __experimentalGetReusableBlockTitle; }, + __experimentalUserPatternCategories: function() { return __experimentalUserPatternCategories; }, + __unstableGetBlockWithoutInnerBlocks: function() { return __unstableGetBlockWithoutInnerBlocks; }, + __unstableGetClientIdWithClientIdsTree: function() { return __unstableGetClientIdWithClientIdsTree; }, + __unstableGetClientIdsTree: function() { return __unstableGetClientIdsTree; }, + __unstableGetContentLockingParent: function() { return __unstableGetContentLockingParent; }, + __unstableGetEditorMode: function() { return __unstableGetEditorMode; }, + __unstableGetSelectedBlocksWithPartialSelection: function() { return __unstableGetSelectedBlocksWithPartialSelection; }, + __unstableGetTemporarilyEditingAsBlocks: function() { return __unstableGetTemporarilyEditingAsBlocks; }, + __unstableGetVisibleBlocks: function() { return __unstableGetVisibleBlocks; }, + __unstableHasActiveBlockOverlayActive: function() { return __unstableHasActiveBlockOverlayActive; }, + __unstableIsFullySelected: function() { return __unstableIsFullySelected; }, + __unstableIsLastBlockChangeIgnored: function() { return __unstableIsLastBlockChangeIgnored; }, + __unstableIsSelectionCollapsed: function() { return __unstableIsSelectionCollapsed; }, + __unstableIsSelectionMergeable: function() { return __unstableIsSelectionMergeable; }, + __unstableIsWithinBlockOverlay: function() { return __unstableIsWithinBlockOverlay; }, + __unstableSelectionHasUnmergeableBlock: function() { return __unstableSelectionHasUnmergeableBlock; }, + areInnerBlocksControlled: function() { return areInnerBlocksControlled; }, + canEditBlock: function() { return canEditBlock; }, + canInsertBlockType: function() { return canInsertBlockType; }, + canInsertBlocks: function() { return canInsertBlocks; }, + canLockBlockType: function() { return canLockBlockType; }, + canMoveBlock: function() { return canMoveBlock; }, + canMoveBlocks: function() { return canMoveBlocks; }, + canRemoveBlock: function() { return canRemoveBlock; }, + canRemoveBlocks: function() { return canRemoveBlocks; }, + didAutomaticChange: function() { return didAutomaticChange; }, + getAdjacentBlockClientId: function() { return getAdjacentBlockClientId; }, + getAllowedBlocks: function() { return getAllowedBlocks; }, + getBlock: function() { return getBlock; }, + getBlockAttributes: function() { return getBlockAttributes; }, + getBlockCount: function() { return getBlockCount; }, + getBlockEditingMode: function() { return getBlockEditingMode; }, + getBlockHierarchyRootClientId: function() { return getBlockHierarchyRootClientId; }, + getBlockIndex: function() { return getBlockIndex; }, + getBlockInsertionPoint: function() { return getBlockInsertionPoint; }, + getBlockListSettings: function() { return getBlockListSettings; }, + getBlockMode: function() { return getBlockMode; }, + getBlockName: function() { return getBlockName; }, + getBlockNamesByClientId: function() { return getBlockNamesByClientId; }, + getBlockOrder: function() { return getBlockOrder; }, + getBlockParents: function() { return getBlockParents; }, + getBlockParentsByBlockName: function() { return getBlockParentsByBlockName; }, + getBlockRootClientId: function() { return getBlockRootClientId; }, + getBlockSelectionEnd: function() { return getBlockSelectionEnd; }, + getBlockSelectionStart: function() { return getBlockSelectionStart; }, + getBlockTransformItems: function() { return getBlockTransformItems; }, + getBlocks: function() { return getBlocks; }, + getBlocksByClientId: function() { return getBlocksByClientId; }, + getClientIdsOfDescendants: function() { return getClientIdsOfDescendants; }, + getClientIdsWithDescendants: function() { return getClientIdsWithDescendants; }, + getDirectInsertBlock: function() { return getDirectInsertBlock; }, + getDraggedBlockClientIds: function() { return getDraggedBlockClientIds; }, + getFirstMultiSelectedBlockClientId: function() { return getFirstMultiSelectedBlockClientId; }, + getGlobalBlockCount: function() { return getGlobalBlockCount; }, + getInserterItems: function() { return getInserterItems; }, + getLastMultiSelectedBlockClientId: function() { return getLastMultiSelectedBlockClientId; }, + getLowestCommonAncestorWithSelectedBlock: function() { return getLowestCommonAncestorWithSelectedBlock; }, + getMultiSelectedBlockClientIds: function() { return getMultiSelectedBlockClientIds; }, + getMultiSelectedBlocks: function() { return getMultiSelectedBlocks; }, + getMultiSelectedBlocksEndClientId: function() { return getMultiSelectedBlocksEndClientId; }, + getMultiSelectedBlocksStartClientId: function() { return getMultiSelectedBlocksStartClientId; }, + getNextBlockClientId: function() { return getNextBlockClientId; }, + getPatternsByBlockTypes: function() { return getPatternsByBlockTypes; }, + getPreviousBlockClientId: function() { return getPreviousBlockClientId; }, + getSelectedBlock: function() { return getSelectedBlock; }, + getSelectedBlockClientId: function() { return getSelectedBlockClientId; }, + getSelectedBlockClientIds: function() { return getSelectedBlockClientIds; }, + getSelectedBlockCount: function() { return getSelectedBlockCount; }, + getSelectedBlocksInitialCaretPosition: function() { return getSelectedBlocksInitialCaretPosition; }, + getSelectionEnd: function() { return getSelectionEnd; }, + getSelectionStart: function() { return getSelectionStart; }, + getSettings: function() { return getSettings; }, + getTemplate: function() { return getTemplate; }, + getTemplateLock: function() { return getTemplateLock; }, + hasBlockMovingClientId: function() { return selectors_hasBlockMovingClientId; }, + hasDraggedInnerBlock: function() { return hasDraggedInnerBlock; }, + hasInserterItems: function() { return hasInserterItems; }, + hasMultiSelection: function() { return hasMultiSelection; }, + hasSelectedBlock: function() { return hasSelectedBlock; }, + hasSelectedInnerBlock: function() { return hasSelectedInnerBlock; }, + isAncestorBeingDragged: function() { return isAncestorBeingDragged; }, + isAncestorMultiSelected: function() { return isAncestorMultiSelected; }, + isBlockBeingDragged: function() { return isBlockBeingDragged; }, + isBlockHighlighted: function() { return isBlockHighlighted; }, + isBlockInsertionPointVisible: function() { return isBlockInsertionPointVisible; }, + isBlockMultiSelected: function() { return isBlockMultiSelected; }, + isBlockSelected: function() { return isBlockSelected; }, + isBlockValid: function() { return isBlockValid; }, + isBlockVisible: function() { return isBlockVisible; }, + isBlockWithinSelection: function() { return isBlockWithinSelection; }, + isCaretWithinFormattedText: function() { return isCaretWithinFormattedText; }, + isDraggingBlocks: function() { return isDraggingBlocks; }, + isFirstMultiSelectedBlock: function() { return isFirstMultiSelectedBlock; }, + isGroupable: function() { return isGroupable; }, + isLastBlockChangePersistent: function() { return isLastBlockChangePersistent; }, + isMultiSelecting: function() { return selectors_isMultiSelecting; }, + isNavigationMode: function() { return isNavigationMode; }, + isSelectionEnabled: function() { return selectors_isSelectionEnabled; }, + isTyping: function() { return selectors_isTyping; }, + isUngroupable: function() { return isUngroupable; }, + isValidTemplate: function() { return isValidTemplate; }, + wasBlockJustInserted: function() { return wasBlockJustInserted; } +}); -/***/ }), +// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/private-actions.js +var private_actions_namespaceObject = {}; +__webpack_require__.r(private_actions_namespaceObject); +__webpack_require__.d(private_actions_namespaceObject, { + __experimentalUpdateSettings: function() { return __experimentalUpdateSettings; }, + clearBlockRemovalPrompt: function() { return clearBlockRemovalPrompt; }, + deleteStyleOverride: function() { return deleteStyleOverride; }, + ensureDefaultBlock: function() { return ensureDefaultBlock; }, + hideBlockInterface: function() { return hideBlockInterface; }, + privateRemoveBlocks: function() { return privateRemoveBlocks; }, + setBlockRemovalRules: function() { return setBlockRemovalRules; }, + setOpenedBlockSettingsMenu: function() { return setOpenedBlockSettingsMenu; }, + setStyleOverride: function() { return setStyleOverride; }, + showBlockInterface: function() { return showBlockInterface; } +}); -/***/ 3993: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/private-selectors.js +var private_selectors_namespaceObject = {}; +__webpack_require__.r(private_selectors_namespaceObject); +__webpack_require__.d(private_selectors_namespaceObject, { + getBlockRemovalRules: function() { return getBlockRemovalRules; }, + getEnabledBlockParents: function() { return getEnabledBlockParents; }, + getEnabledClientIdsTree: function() { return getEnabledClientIdsTree; }, + getInserterMediaCategories: function() { return getInserterMediaCategories; }, + getLastInsertedBlocksClientIds: function() { return getLastInsertedBlocksClientIds; }, + getOpenedBlockSettingsMenu: function() { return getOpenedBlockSettingsMenu; }, + getRegisteredInserterMediaCategories: function() { return getRegisteredInserterMediaCategories; }, + getRemovalPromptData: function() { return getRemovalPromptData; }, + getStyleOverrides: function() { return getStyleOverrides; }, + isBlockInterfaceHidden: function() { return private_selectors_isBlockInterfaceHidden; }, + isBlockSubtreeDisabled: function() { return isBlockSubtreeDisabled; } +}); -"use strict"; +// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/actions.js +var actions_namespaceObject = {}; +__webpack_require__.r(actions_namespaceObject); +__webpack_require__.d(actions_namespaceObject, { + __unstableDeleteSelection: function() { return __unstableDeleteSelection; }, + __unstableExpandSelection: function() { return __unstableExpandSelection; }, + __unstableMarkAutomaticChange: function() { return __unstableMarkAutomaticChange; }, + __unstableMarkLastChangeAsPersistent: function() { return __unstableMarkLastChangeAsPersistent; }, + __unstableMarkNextChangeAsNotPersistent: function() { return __unstableMarkNextChangeAsNotPersistent; }, + __unstableSaveReusableBlock: function() { return __unstableSaveReusableBlock; }, + __unstableSetEditorMode: function() { return __unstableSetEditorMode; }, + __unstableSetTemporarilyEditingAsBlocks: function() { return __unstableSetTemporarilyEditingAsBlocks; }, + __unstableSplitSelection: function() { return __unstableSplitSelection; }, + clearSelectedBlock: function() { return clearSelectedBlock; }, + duplicateBlocks: function() { return duplicateBlocks; }, + enterFormattedText: function() { return enterFormattedText; }, + exitFormattedText: function() { return exitFormattedText; }, + flashBlock: function() { return flashBlock; }, + hideInsertionPoint: function() { return hideInsertionPoint; }, + insertAfterBlock: function() { return insertAfterBlock; }, + insertBeforeBlock: function() { return insertBeforeBlock; }, + insertBlock: function() { return insertBlock; }, + insertBlocks: function() { return insertBlocks; }, + insertDefaultBlock: function() { return insertDefaultBlock; }, + mergeBlocks: function() { return mergeBlocks; }, + moveBlockToPosition: function() { return moveBlockToPosition; }, + moveBlocksDown: function() { return moveBlocksDown; }, + moveBlocksToPosition: function() { return moveBlocksToPosition; }, + moveBlocksUp: function() { return moveBlocksUp; }, + multiSelect: function() { return multiSelect; }, + receiveBlocks: function() { return receiveBlocks; }, + registerInserterMediaCategory: function() { return registerInserterMediaCategory; }, + removeBlock: function() { return removeBlock; }, + removeBlocks: function() { return removeBlocks; }, + replaceBlock: function() { return replaceBlock; }, + replaceBlocks: function() { return replaceBlocks; }, + replaceInnerBlocks: function() { return replaceInnerBlocks; }, + resetBlocks: function() { return resetBlocks; }, + resetSelection: function() { return resetSelection; }, + selectBlock: function() { return selectBlock; }, + selectNextBlock: function() { return selectNextBlock; }, + selectPreviousBlock: function() { return selectPreviousBlock; }, + selectionChange: function() { return selectionChange; }, + setBlockEditingMode: function() { return setBlockEditingMode; }, + setBlockMovingClientId: function() { return setBlockMovingClientId; }, + setBlockVisibility: function() { return setBlockVisibility; }, + setHasControlledInnerBlocks: function() { return setHasControlledInnerBlocks; }, + setNavigationMode: function() { return setNavigationMode; }, + setTemplateValidity: function() { return setTemplateValidity; }, + showInsertionPoint: function() { return showInsertionPoint; }, + startDraggingBlocks: function() { return startDraggingBlocks; }, + startMultiSelect: function() { return startMultiSelect; }, + startTyping: function() { return startTyping; }, + stopDraggingBlocks: function() { return stopDraggingBlocks; }, + stopMultiSelect: function() { return stopMultiSelect; }, + stopTyping: function() { return stopTyping; }, + synchronizeTemplate: function() { return synchronizeTemplate; }, + toggleBlockHighlight: function() { return toggleBlockHighlight; }, + toggleBlockMode: function() { return toggleBlockMode; }, + toggleSelection: function() { return toggleSelection; }, + unsetBlockEditingMode: function() { return unsetBlockEditingMode; }, + updateBlock: function() { return updateBlock; }, + updateBlockAttributes: function() { return updateBlockAttributes; }, + updateBlockListSettings: function() { return updateBlockListSettings; }, + updateSettings: function() { return updateSettings; }, + validateBlocksToTemplate: function() { return validateBlocksToTemplate; } +}); +// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/index.js +var global_styles_namespaceObject = {}; +__webpack_require__.r(global_styles_namespaceObject); +__webpack_require__.d(global_styles_namespaceObject, { + AdvancedPanel: function() { return AdvancedPanel; }, + BorderPanel: function() { return BorderPanel; }, + ColorPanel: function() { return ColorPanel; }, + DimensionsPanel: function() { return DimensionsPanel; }, + EffectsPanel: function() { return EffectsPanel; }, + FiltersPanel: function() { return FiltersPanel; }, + GlobalStylesContext: function() { return GlobalStylesContext; }, + ImageSettingsPanel: function() { return ImageSettingsPanel; }, + TypographyPanel: function() { return TypographyPanel; }, + areGlobalStyleConfigsEqual: function() { return areGlobalStyleConfigsEqual; }, + getBlockCSSSelector: function() { return getBlockCSSSelector; }, + getLayoutStyles: function() { return getLayoutStyles; }, + useGlobalSetting: function() { return useGlobalSetting; }, + useGlobalStyle: function() { return useGlobalStyle; }, + useGlobalStylesOutput: function() { return useGlobalStylesOutput; }, + useGlobalStylesOutputWithConfig: function() { return useGlobalStylesOutputWithConfig; }, + useGlobalStylesReset: function() { return useGlobalStylesReset; }, + useHasBorderPanel: function() { return useHasBorderPanel; }, + useHasColorPanel: function() { return useHasColorPanel; }, + useHasDimensionsPanel: function() { return useHasDimensionsPanel; }, + useHasEffectsPanel: function() { return useHasEffectsPanel; }, + useHasFiltersPanel: function() { return useHasFiltersPanel; }, + useHasImageSettingsPanel: function() { return useHasImageSettingsPanel; }, + useHasTypographyPanel: function() { return useHasTypographyPanel; }, + useSettingsForBlockElement: function() { return useSettingsForBlockElement; } +}); -let { isClean, my } = __webpack_require__(3719) -let MapGenerator = __webpack_require__(2491) -let stringify = __webpack_require__(2530) -let Container = __webpack_require__(9795) -let Document = __webpack_require__(3866) -let warnOnce = __webpack_require__(7892) -let Result = __webpack_require__(2072) -let parse = __webpack_require__(9301) -let Root = __webpack_require__(3823) - -const TYPE_TO_CLASS_NAME = { - atrule: 'AtRule', - comment: 'Comment', - decl: 'Declaration', - document: 'Document', - root: 'Root', - rule: 'Rule' -} - -const PLUGIN_PROPS = { - AtRule: true, - AtRuleExit: true, - Comment: true, - CommentExit: true, - Declaration: true, - DeclarationExit: true, - Document: true, - DocumentExit: true, - Once: true, - OnceExit: true, - postcssPlugin: true, - prepare: true, - Root: true, - RootExit: true, - Rule: true, - RuleExit: true -} - -const NOT_VISITORS = { - Once: true, - postcssPlugin: true, - prepare: true -} - -const CHILDREN = 0 - -function isPromise(obj) { - return typeof obj === 'object' && typeof obj.then === 'function' -} - -function getEvents(node) { - let key = false - let type = TYPE_TO_CLASS_NAME[node.type] - if (node.type === 'decl') { - key = node.prop.toLowerCase() - } else if (node.type === 'atrule') { - key = node.name.toLowerCase() - } - - if (key && node.append) { - return [ - type, - type + '-' + key, - CHILDREN, - type + 'Exit', - type + 'Exit-' + key - ] - } else if (key) { - return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] - } else if (node.append) { - return [type, CHILDREN, type + 'Exit'] - } else { - return [type, type + 'Exit'] - } -} +;// CONCATENATED MODULE: external ["wp","blocks"] +var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; +;// CONCATENATED MODULE: external ["wp","hooks"] +var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/compat.js +/** + * WordPress dependencies + */ -function toStack(node) { - let events - if (node.type === 'document') { - events = ['Document', CHILDREN, 'DocumentExit'] - } else if (node.type === 'root') { - events = ['Root', CHILDREN, 'RootExit'] - } else { - events = getEvents(node) - } - return { - eventIndex: 0, - events, - iterator: 0, - node, - visitorIndex: 0, - visitors: [] +function migrateLightBlockWrapper(settings) { + const { + apiVersion = 1 + } = settings; + if (apiVersion < 2 && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'lightBlockWrapper', false)) { + settings.apiVersion = 2; } + return settings; } +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/compat/migrateLightBlockWrapper', migrateLightBlockWrapper); -function cleanMarks(node) { - node[isClean] = false - if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) - return node -} - -let postcss = {} - -class LazyResult { - constructor(processor, css, opts) { - this.stringified = false - this.processed = false - - let root - if ( - typeof css === 'object' && - css !== null && - (css.type === 'root' || css.type === 'document') - ) { - root = cleanMarks(css) - } else if (css instanceof LazyResult || css instanceof Result) { - root = cleanMarks(css.root) - if (css.map) { - if (typeof opts.map === 'undefined') opts.map = {} - if (!opts.map.inline) opts.map.inline = false - opts.map.prev = css.map - } - } else { - let parser = parse - if (opts.syntax) parser = opts.syntax.parse - if (opts.parser) parser = opts.parser - if (parser.parse) parser = parser.parse - - try { - root = parser(css, opts) - } catch (error) { - this.processed = true - this.error = error - } - - if (root && !root[my]) { - /* c8 ignore next 2 */ - Container.rebuild(root) - } - } - - this.result = new Result(processor, root, opts) - this.helpers = { ...postcss, postcss, result: this.result } - this.plugins = this.processor.plugins.map(plugin => { - if (typeof plugin === 'object' && plugin.prepare) { - return { ...plugin, ...plugin.prepare(this.result) } - } else { - return plugin - } - }) - } - - async() { - if (this.error) return Promise.reject(this.error) - if (this.processed) return Promise.resolve(this.result) - if (!this.processing) { - this.processing = this.runAsync() - } - return this.processing - } - - catch(onRejected) { - return this.async().catch(onRejected) - } - - finally(onFinally) { - return this.async().then(onFinally, onFinally) - } - - getAsyncError() { - throw new Error('Use process(css).then(cb) to work with async plugins') - } - - handleError(error, node) { - let plugin = this.result.lastPlugin - try { - if (node) node.addToError(error) - this.error = error - if (error.name === 'CssSyntaxError' && !error.plugin) { - error.plugin = plugin.postcssPlugin - error.setMessage() - } else if (plugin.postcssVersion) { - if (false) {} - } - } catch (err) { - /* c8 ignore next 3 */ - // eslint-disable-next-line no-console - if (console && console.error) console.error(err) - } - return error - } - - prepareVisitors() { - this.listeners = {} - let add = (plugin, type, cb) => { - if (!this.listeners[type]) this.listeners[type] = [] - this.listeners[type].push([plugin, cb]) - } - for (let plugin of this.plugins) { - if (typeof plugin === 'object') { - for (let event in plugin) { - if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { - throw new Error( - `Unknown event ${event} in ${plugin.postcssPlugin}. ` + - `Try to update PostCSS (${this.processor.version} now).` - ) - } - if (!NOT_VISITORS[event]) { - if (typeof plugin[event] === 'object') { - for (let filter in plugin[event]) { - if (filter === '*') { - add(plugin, event, plugin[event][filter]) - } else { - add( - plugin, - event + '-' + filter.toLowerCase(), - plugin[event][filter] - ) - } - } - } else if (typeof plugin[event] === 'function') { - add(plugin, event, plugin[event]) - } - } - } - } - } - this.hasListener = Object.keys(this.listeners).length > 0 - } - - async runAsync() { - this.plugin = 0 - for (let i = 0; i < this.plugins.length; i++) { - let plugin = this.plugins[i] - let promise = this.runOnRoot(plugin) - if (isPromise(promise)) { - try { - await promise - } catch (error) { - throw this.handleError(error) - } - } - } - - this.prepareVisitors() - if (this.hasListener) { - let root = this.result.root - while (!root[isClean]) { - root[isClean] = true - let stack = [toStack(root)] - while (stack.length > 0) { - let promise = this.visitTick(stack) - if (isPromise(promise)) { - try { - await promise - } catch (e) { - let node = stack[stack.length - 1].node - throw this.handleError(e, node) - } - } - } - } - - if (this.listeners.OnceExit) { - for (let [plugin, visitor] of this.listeners.OnceExit) { - this.result.lastPlugin = plugin - try { - if (root.type === 'document') { - let roots = root.nodes.map(subRoot => - visitor(subRoot, this.helpers) - ) - - await Promise.all(roots) - } else { - await visitor(root, this.helpers) - } - } catch (e) { - throw this.handleError(e) - } - } - } - } - - this.processed = true - return this.stringify() - } - - runOnRoot(plugin) { - this.result.lastPlugin = plugin - try { - if (typeof plugin === 'object' && plugin.Once) { - if (this.result.root.type === 'document') { - let roots = this.result.root.nodes.map(root => - plugin.Once(root, this.helpers) - ) - - if (isPromise(roots[0])) { - return Promise.all(roots) - } - - return roots - } - - return plugin.Once(this.result.root, this.helpers) - } else if (typeof plugin === 'function') { - return plugin(this.result.root, this.result) - } - } catch (error) { - throw this.handleError(error) - } - } - - stringify() { - if (this.error) throw this.error - if (this.stringified) return this.result - this.stringified = true - - this.sync() - - let opts = this.result.opts - let str = stringify - if (opts.syntax) str = opts.syntax.stringify - if (opts.stringifier) str = opts.stringifier - if (str.stringify) str = str.stringify - - let map = new MapGenerator(str, this.result.root, this.result.opts) - let data = map.generate() - this.result.css = data[0] - this.result.map = data[1] - - return this.result - } - - sync() { - if (this.error) throw this.error - if (this.processed) return this.result - this.processed = true - - if (this.processing) { - throw this.getAsyncError() - } - - for (let plugin of this.plugins) { - let promise = this.runOnRoot(plugin) - if (isPromise(promise)) { - throw this.getAsyncError() - } - } - - this.prepareVisitors() - if (this.hasListener) { - let root = this.result.root - while (!root[isClean]) { - root[isClean] = true - this.walkSync(root) - } - if (this.listeners.OnceExit) { - if (root.type === 'document') { - for (let subRoot of root.nodes) { - this.visitSync(this.listeners.OnceExit, subRoot) - } - } else { - this.visitSync(this.listeners.OnceExit, root) - } - } - } - - return this.result - } - - then(onFulfilled, onRejected) { - if (false) {} - return this.async().then(onFulfilled, onRejected) - } - - toString() { - return this.css - } - - visitSync(visitors, node) { - for (let [plugin, visitor] of visitors) { - this.result.lastPlugin = plugin - let promise - try { - promise = visitor(node, this.helpers) - } catch (e) { - throw this.handleError(e, node.proxyOf) - } - if (node.type !== 'root' && node.type !== 'document' && !node.parent) { - return true - } - if (isPromise(promise)) { - throw this.getAsyncError() - } - } - } - - visitTick(stack) { - let visit = stack[stack.length - 1] - let { node, visitors } = visit - - if (node.type !== 'root' && node.type !== 'document' && !node.parent) { - stack.pop() - return - } - - if (visitors.length > 0 && visit.visitorIndex < visitors.length) { - let [plugin, visitor] = visitors[visit.visitorIndex] - visit.visitorIndex += 1 - if (visit.visitorIndex === visitors.length) { - visit.visitors = [] - visit.visitorIndex = 0 - } - this.result.lastPlugin = plugin - try { - return visitor(node.toProxy(), this.helpers) - } catch (e) { - throw this.handleError(e, node) - } - } +;// CONCATENATED MODULE: external ["wp","element"] +var external_wp_element_namespaceObject = window["wp"]["element"]; +// EXTERNAL MODULE: ./node_modules/classnames/index.js +var classnames = __webpack_require__(4403); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); +;// CONCATENATED MODULE: external ["wp","compose"] +var external_wp_compose_namespaceObject = window["wp"]["compose"]; +;// CONCATENATED MODULE: external ["wp","components"] +var external_wp_components_namespaceObject = window["wp"]["components"]; +;// CONCATENATED MODULE: external ["wp","data"] +var external_wp_data_namespaceObject = window["wp"]["data"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/groups.js +/** + * WordPress dependencies + */ - if (visit.iterator !== 0) { - let iterator = visit.iterator - let child - while ((child = node.nodes[node.indexes[iterator]])) { - node.indexes[iterator] += 1 - if (!child[isClean]) { - child[isClean] = true - stack.push(toStack(child)) - return - } - } - visit.iterator = 0 - delete node.indexes[iterator] - } +const BlockControlsDefault = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControls'); +const BlockControlsBlock = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsBlock'); +const BlockControlsInline = (0,external_wp_components_namespaceObject.createSlotFill)('BlockFormatControls'); +const BlockControlsOther = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsOther'); +const BlockControlsParent = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsParent'); +const groups = { + default: BlockControlsDefault, + block: BlockControlsBlock, + inline: BlockControlsInline, + other: BlockControlsOther, + parent: BlockControlsParent +}; +/* harmony default export */ var block_controls_groups = (groups); - let events = visit.events - while (visit.eventIndex < events.length) { - let event = events[visit.eventIndex] - visit.eventIndex += 1 - if (event === CHILDREN) { - if (node.nodes && node.nodes.length) { - node[isClean] = true - visit.iterator = node.getIterator() - } - return - } else if (this.listeners[event]) { - visit.visitors = this.listeners[event] - return - } - } - stack.pop() - } +// EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js +var es6 = __webpack_require__(5619); +var es6_default = /*#__PURE__*/__webpack_require__.n(es6); +;// CONCATENATED MODULE: external ["wp","i18n"] +var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/defaults.js +/** + * WordPress dependencies + */ - walkSync(node) { - node[isClean] = true - let events = getEvents(node) - for (let event of events) { - if (event === CHILDREN) { - if (node.nodes) { - node.each(child => { - if (!child[isClean]) this.walkSync(child) - }) - } - } else { - let visitors = this.listeners[event] - if (visitors) { - if (this.visitSync(visitors, node.toProxy())) return - } - } - } - } +const PREFERENCES_DEFAULTS = { + insertUsage: {} +}; - warnings() { - return this.sync().warnings() - } - - get content() { - return this.stringify().content - } - - get css() { - return this.stringify().css - } - - get map() { - return this.stringify().map - } - - get messages() { - return this.sync().messages - } - - get opts() { - return this.result.opts - } - - get processor() { - return this.result.processor - } - - get root() { - return this.sync().root +/** + * The default editor settings + * + * @typedef {Object} SETTINGS_DEFAULT + * @property {boolean} alignWide Enable/Disable Wide/Full Alignments + * @property {boolean} supportsLayout Enable/disable layouts support in container blocks. + * @property {boolean} imageEditing Image Editing settings set to false to disable. + * @property {Array} imageSizes Available image sizes + * @property {number} maxWidth Max width to constraint resizing + * @property {boolean|Array} allowedBlockTypes Allowed block types + * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed + * @property {boolean} distractionFree Whether or not the editor UI is distraction free + * @property {boolean} focusMode Whether the focus mode is enabled or not + * @property {Array} styles Editor Styles + * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode + * @property {string} bodyPlaceholder Empty post placeholder + * @property {string} titlePlaceholder Empty title placeholder + * @property {boolean} canLockBlocks Whether the user can manage Block Lock state + * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor + * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks + * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter. + * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked. + * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes. + * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory + * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns + * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories + * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks + */ +const SETTINGS_DEFAULTS = { + alignWide: false, + supportsLayout: true, + // colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. + // The setting is only kept for backward compatibility purposes. + colors: [{ + name: (0,external_wp_i18n_namespaceObject.__)('Black'), + slug: 'black', + color: '#000000' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Cyan bluish gray'), + slug: 'cyan-bluish-gray', + color: '#abb8c3' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('White'), + slug: 'white', + color: '#ffffff' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Pale pink'), + slug: 'pale-pink', + color: '#f78da7' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Vivid red'), + slug: 'vivid-red', + color: '#cf2e2e' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid orange'), + slug: 'luminous-vivid-orange', + color: '#ff6900' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid amber'), + slug: 'luminous-vivid-amber', + color: '#fcb900' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Light green cyan'), + slug: 'light-green-cyan', + color: '#7bdcb5' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Vivid green cyan'), + slug: 'vivid-green-cyan', + color: '#00d084' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Pale cyan blue'), + slug: 'pale-cyan-blue', + color: '#8ed1fc' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Vivid cyan blue'), + slug: 'vivid-cyan-blue', + color: '#0693e3' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Vivid purple'), + slug: 'vivid-purple', + color: '#9b51e0' + }], + // fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. + // The setting is only kept for backward compatibility purposes. + fontSizes: [{ + name: (0,external_wp_i18n_namespaceObject._x)('Small', 'font size name'), + size: 13, + slug: 'small' + }, { + name: (0,external_wp_i18n_namespaceObject._x)('Normal', 'font size name'), + size: 16, + slug: 'normal' + }, { + name: (0,external_wp_i18n_namespaceObject._x)('Medium', 'font size name'), + size: 20, + slug: 'medium' + }, { + name: (0,external_wp_i18n_namespaceObject._x)('Large', 'font size name'), + size: 36, + slug: 'large' + }, { + name: (0,external_wp_i18n_namespaceObject._x)('Huge', 'font size name'), + size: 42, + slug: 'huge' + }], + // Image default size slug. + imageDefaultSize: 'large', + imageSizes: [{ + slug: 'thumbnail', + name: (0,external_wp_i18n_namespaceObject.__)('Thumbnail') + }, { + slug: 'medium', + name: (0,external_wp_i18n_namespaceObject.__)('Medium') + }, { + slug: 'large', + name: (0,external_wp_i18n_namespaceObject.__)('Large') + }, { + slug: 'full', + name: (0,external_wp_i18n_namespaceObject.__)('Full Size') + }], + // Allow plugin to disable Image Editor if need be. + imageEditing: true, + // This is current max width of the block inner area + // It's used to constraint image resizing and this value could be overridden later by themes + maxWidth: 580, + // Allowed block types for the editor, defaulting to true (all supported). + allowedBlockTypes: true, + // Maximum upload size in bytes allowed for the site. + maxUploadFileSize: 0, + // List of allowed mime types and file extensions. + allowedMimeTypes: null, + // Allows to disable block locking interface. + canLockBlocks: true, + // Allows to disable Openverse media category in the inserter. + enableOpenverseMediaCategory: true, + clearBlockSelection: true, + __experimentalCanUserUseUnfilteredHTML: false, + __experimentalBlockDirectory: false, + __mobileEnablePageTemplates: false, + __experimentalBlockPatterns: [], + __experimentalBlockPatternCategories: [], + __unstableGalleryWithImageBlocks: false, + __unstableIsPreviewMode: false, + // These settings will be completely revamped in the future. + // The goal is to evolve this into an API which will instruct + // the block inspector to animate transitions between what it + // displays based on the relationship between the selected block + // and its parent, and only enable it if the parent is controlling + // its children blocks. + blockInspectorAnimation: { + animationParent: 'core/navigation', + 'core/navigation': { + enterDirection: 'leftToRight' + }, + 'core/navigation-submenu': { + enterDirection: 'rightToLeft' + }, + 'core/navigation-link': { + enterDirection: 'rightToLeft' + }, + 'core/search': { + enterDirection: 'rightToLeft' + }, + 'core/social-links': { + enterDirection: 'rightToLeft' + }, + 'core/page-list': { + enterDirection: 'rightToLeft' + }, + 'core/spacer': { + enterDirection: 'rightToLeft' + }, + 'core/home-link': { + enterDirection: 'rightToLeft' + }, + 'core/site-title': { + enterDirection: 'rightToLeft' + }, + 'core/site-logo': { + enterDirection: 'rightToLeft' + } + }, + generateAnchors: false, + // gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. + // The setting is only kept for backward compatibility purposes. + gradients: [{ + name: (0,external_wp_i18n_namespaceObject.__)('Vivid cyan blue to vivid purple'), + gradient: 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)', + slug: 'vivid-cyan-blue-to-vivid-purple' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Light green cyan to vivid green cyan'), + gradient: 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)', + slug: 'light-green-cyan-to-vivid-green-cyan' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid amber to luminous vivid orange'), + gradient: 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)', + slug: 'luminous-vivid-amber-to-luminous-vivid-orange' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid orange to vivid red'), + gradient: 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)', + slug: 'luminous-vivid-orange-to-vivid-red' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Very light gray to cyan bluish gray'), + gradient: 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)', + slug: 'very-light-gray-to-cyan-bluish-gray' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Cool to warm spectrum'), + gradient: 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)', + slug: 'cool-to-warm-spectrum' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Blush light purple'), + gradient: 'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)', + slug: 'blush-light-purple' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Blush bordeaux'), + gradient: 'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)', + slug: 'blush-bordeaux' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Luminous dusk'), + gradient: 'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)', + slug: 'luminous-dusk' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Pale ocean'), + gradient: 'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)', + slug: 'pale-ocean' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Electric grass'), + gradient: 'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)', + slug: 'electric-grass' + }, { + name: (0,external_wp_i18n_namespaceObject.__)('Midnight'), + gradient: 'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)', + slug: 'midnight' + }], + __unstableResolvedAssets: { + styles: [], + scripts: [] } +}; - get [Symbol.toStringTag]() { - return 'LazyResult' - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/array.js +/** + * Insert one or multiple elements into a given position of an array. + * + * @param {Array} array Source array. + * @param {*} elements Elements to insert. + * @param {number} index Insert Position. + * + * @return {Array} Result. + */ +function insertAt(array, elements, index) { + return [...array.slice(0, index), ...(Array.isArray(elements) ? elements : [elements]), ...array.slice(index)]; } -LazyResult.registerPostcss = dependant => { - postcss = dependant +/** + * Moves an element in an array. + * + * @param {Array} array Source array. + * @param {number} from Source index. + * @param {number} to Destination index. + * @param {number} count Number of elements to move. + * + * @return {Array} Result. + */ +function moveTo(array, from, to, count = 1) { + const withoutMovedElements = [...array]; + withoutMovedElements.splice(from, count); + return insertAt(withoutMovedElements, array.slice(from, from + count), to); } -module.exports = LazyResult -LazyResult.default = LazyResult +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/reducer.js +/** + * External dependencies + */ -Root.registerLazyResult(LazyResult) -Document.registerLazyResult(LazyResult) +/** + * WordPress dependencies + */ -/***/ }), -/***/ 8446: -/***/ (function(module) { -"use strict"; +/** + * Internal dependencies + */ -let list = { - comma(string) { - return list.split(string, [','], true) - }, +const identity = x => x; - space(string) { - let spaces = [' ', '\n', '\t'] - return list.split(string, spaces) - }, +/** + * Given an array of blocks, returns an object where each key is a nesting + * context, the value of which is an array of block client IDs existing within + * that nesting context. + * + * @param {Array} blocks Blocks to map. + * @param {?string} rootClientId Assumed root client ID. + * + * @return {Object} Block order map object. + */ +function mapBlockOrder(blocks, rootClientId = '') { + const result = new Map(); + const current = []; + result.set(rootClientId, current); + blocks.forEach(block => { + const { + clientId, + innerBlocks + } = block; + current.push(clientId); + mapBlockOrder(innerBlocks, clientId).forEach((order, subClientId) => { + result.set(subClientId, order); + }); + }); + return result; +} - split(string, separators, last) { - let array = [] - let current = '' - let split = false - - let func = 0 - let inQuote = false - let prevQuote = '' - let escape = false - - for (let letter of string) { - if (escape) { - escape = false - } else if (letter === '\\') { - escape = true - } else if (inQuote) { - if (letter === prevQuote) { - inQuote = false - } - } else if (letter === '"' || letter === "'") { - inQuote = true - prevQuote = letter - } else if (letter === '(') { - func += 1 - } else if (letter === ')') { - if (func > 0) func -= 1 - } else if (func === 0) { - if (separators.includes(letter)) split = true - } - - if (split) { - if (current !== '') array.push(current.trim()) - current = '' - split = false - } else { - current += letter +/** + * Given an array of blocks, returns an object where each key contains + * the clientId of the block and the value is the parent of the block. + * + * @param {Array} blocks Blocks to map. + * @param {?string} rootClientId Assumed root client ID. + * + * @return {Object} Block order map object. + */ +function mapBlockParents(blocks, rootClientId = '') { + const result = []; + const stack = [[rootClientId, blocks]]; + while (stack.length) { + const [parent, currentBlocks] = stack.shift(); + currentBlocks.forEach(({ + innerBlocks, + ...block + }) => { + result.push([block.clientId, parent]); + if (innerBlocks?.length) { + stack.push([block.clientId, innerBlocks]); } - } - - if (last || current !== '') array.push(current.trim()) - return array + }); } + return result; } -module.exports = list -list.default = list - - -/***/ }), - -/***/ 2491: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(209) -let { dirname, relative, resolve, sep } = __webpack_require__(9830) -let { pathToFileURL } = __webpack_require__(7414) +/** + * Helper method to iterate through all blocks, recursing into inner blocks, + * applying a transformation function to each one. + * Returns a flattened object with the transformed blocks. + * + * @param {Array} blocks Blocks to flatten. + * @param {Function} transform Transforming function to be applied to each block. + * + * @return {Array} Flattened object. + */ +function flattenBlocks(blocks, transform = identity) { + const result = []; + const stack = [...blocks]; + while (stack.length) { + const { + innerBlocks, + ...block + } = stack.shift(); + stack.push(...innerBlocks); + result.push([block.clientId, transform(block)]); + } + return result; +} +function getFlattenedClientIds(blocks) { + const result = {}; + const stack = [...blocks]; + while (stack.length) { + const { + innerBlocks, + ...block + } = stack.shift(); + stack.push(...innerBlocks); + result[block.clientId] = true; + } + return result; +} -let Input = __webpack_require__(9961) +/** + * Given an array of blocks, returns an object containing all blocks, without + * attributes, recursing into inner blocks. Keys correspond to the block client + * ID, the value of which is the attributes object. + * + * @param {Array} blocks Blocks to flatten. + * + * @return {Array} Flattened block attributes object. + */ +function getFlattenedBlocksWithoutAttributes(blocks) { + return flattenBlocks(blocks, block => { + const { + attributes, + ...restBlock + } = block; + return restBlock; + }); +} -let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) -let pathAvailable = Boolean(dirname && resolve && relative && sep) +/** + * Given an array of blocks, returns an object containing all block attributes, + * recursing into inner blocks. Keys correspond to the block client ID, the + * value of which is the attributes object. + * + * @param {Array} blocks Blocks to flatten. + * + * @return {Array} Flattened block attributes object. + */ +function getFlattenedBlockAttributes(blocks) { + return flattenBlocks(blocks, block => block.attributes); +} -class MapGenerator { - constructor(stringify, root, opts, cssString) { - this.stringify = stringify - this.mapOpts = opts.map || {} - this.root = root - this.opts = opts - this.css = cssString - this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute +/** + * Returns true if the two object arguments have the same keys, or false + * otherwise. + * + * @param {Object} a First object. + * @param {Object} b Second object. + * + * @return {boolean} Whether the two objects have the same keys. + */ +function hasSameKeys(a, b) { + return es6_default()(Object.keys(a), Object.keys(b)); +} - this.memoizedFileURLs = new Map() - this.memoizedPaths = new Map() - this.memoizedURLs = new Map() +/** + * Returns true if, given the currently dispatching action and the previously + * dispatched action, the two actions are updating the same block attribute, or + * false otherwise. + * + * @param {Object} action Currently dispatching action. + * @param {Object} lastAction Previously dispatched action. + * + * @return {boolean} Whether actions are updating the same block attribute. + */ +function isUpdatingSameBlockAttribute(action, lastAction) { + return action.type === 'UPDATE_BLOCK_ATTRIBUTES' && lastAction !== undefined && lastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' && es6_default()(action.clientIds, lastAction.clientIds) && hasSameKeys(action.attributes, lastAction.attributes); +} +function updateBlockTreeForBlocks(state, blocks) { + const treeToUpdate = state.tree; + const stack = [...blocks]; + const flattenedBlocks = [...blocks]; + while (stack.length) { + const block = stack.shift(); + stack.push(...block.innerBlocks); + flattenedBlocks.push(...block.innerBlocks); } - - addAnnotation() { - let content - - if (this.isInline()) { - content = - 'data:application/json;base64,' + this.toBase64(this.map.toString()) - } else if (typeof this.mapOpts.annotation === 'string') { - content = this.mapOpts.annotation - } else if (typeof this.mapOpts.annotation === 'function') { - content = this.mapOpts.annotation(this.opts.to, this.root) - } else { - content = this.outputFile() + '.map' - } - let eol = '\n' - if (this.css.includes('\r\n')) eol = '\r\n' - - this.css += eol + '/*# sourceMappingURL=' + content + ' */' + // Create objects before mutating them, that way it's always defined. + for (const block of flattenedBlocks) { + treeToUpdate.set(block.clientId, {}); } - - applyPrevMaps() { - for (let prev of this.previous()) { - let from = this.toUrl(this.path(prev.file)) - let root = prev.root || dirname(prev.file) - let map - - if (this.mapOpts.sourcesContent === false) { - map = new SourceMapConsumer(prev.text) - if (map.sourcesContent) { - map.sourcesContent = map.sourcesContent.map(() => null) - } + for (const block of flattenedBlocks) { + treeToUpdate.set(block.clientId, Object.assign(treeToUpdate.get(block.clientId), { + ...state.byClientId.get(block.clientId), + attributes: state.attributes.get(block.clientId), + innerBlocks: block.innerBlocks.map(subBlock => treeToUpdate.get(subBlock.clientId)) + })); + } +} +function updateParentInnerBlocksInTree(state, updatedClientIds, updateChildrenOfUpdatedClientIds = false) { + const treeToUpdate = state.tree; + const uncontrolledParents = new Set([]); + const controlledParents = new Set(); + for (const clientId of updatedClientIds) { + let current = updateChildrenOfUpdatedClientIds ? clientId : state.parents.get(clientId); + do { + if (state.controlledInnerBlocks[current]) { + // Should stop on controlled blocks. + // If we reach a controlled parent, break out of the loop. + controlledParents.add(current); + break; } else { - map = prev.consumer() + // Else continue traversing up through parents. + uncontrolledParents.add(current); + current = state.parents.get(current); } - - this.map.applySourceMap(map, from, this.toUrl(this.path(root))) - } + } while (current !== undefined); } - clearAnnotation() { - if (this.mapOpts.annotation === false) return - - if (this.root) { - let node - for (let i = this.root.nodes.length - 1; i >= 0; i--) { - node = this.root.nodes[i] - if (node.type !== 'comment') continue - if (node.text.indexOf('# sourceMappingURL=') === 0) { - this.root.removeChild(i) - } - } - } else if (this.css) { - this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') - } + // To make sure the order of assignments doesn't matter, + // we first create empty objects and mutates the inner blocks later. + for (const clientId of uncontrolledParents) { + treeToUpdate.set(clientId, { + ...treeToUpdate.get(clientId) + }); } - - generate() { - this.clearAnnotation() - if (pathAvailable && sourceMapAvailable && this.isMap()) { - return this.generateMap() - } else { - let result = '' - this.stringify(this.root, i => { - result += i - }) - return [result] - } + for (const clientId of uncontrolledParents) { + treeToUpdate.get(clientId).innerBlocks = (state.order.get(clientId) || []).map(subClientId => treeToUpdate.get(subClientId)); } - generateMap() { - if (this.root) { - this.generateString() - } else if (this.previous().length === 1) { - let prev = this.previous()[0].consumer() - prev.file = this.outputFile() - this.map = SourceMapGenerator.fromSourceMap(prev) - } else { - this.map = new SourceMapGenerator({ file: this.outputFile() }) - this.map.addMapping({ - generated: { column: 0, line: 1 }, - original: { column: 0, line: 1 }, - source: this.opts.from - ? this.toUrl(this.path(this.opts.from)) - : '' - }) - } - - if (this.isSourcesContent()) this.setSourcesContent() - if (this.root && this.previous().length > 0) this.applyPrevMaps() - if (this.isAnnotation()) this.addAnnotation() - - if (this.isInline()) { - return [this.css] - } else { - return [this.css, this.map] - } + // Controlled parent blocks, need a dedicated key for their inner blocks + // to be used when doing getBlocks( controlledBlockClientId ). + for (const clientId of controlledParents) { + treeToUpdate.set('controlled||' + clientId, { + innerBlocks: (state.order.get(clientId) || []).map(subClientId => treeToUpdate.get(subClientId)) + }); } +} - generateString() { - this.css = '' - this.map = new SourceMapGenerator({ file: this.outputFile() }) - - let line = 1 - let column = 1 - - let noSource = '' - let mapping = { - generated: { column: 0, line: 0 }, - original: { column: 0, line: 0 }, - source: '' - } - - let lines, last - this.stringify(this.root, (str, node, type) => { - this.css += str - - if (node && type !== 'end') { - mapping.generated.line = line - mapping.generated.column = column - 1 - if (node.source && node.source.start) { - mapping.source = this.sourcePath(node) - mapping.original.line = node.source.start.line - mapping.original.column = node.source.start.column - 1 - this.map.addMapping(mapping) - } else { - mapping.source = noSource - mapping.original.line = 1 - mapping.original.column = 0 - this.map.addMapping(mapping) - } +/** + * Higher-order reducer intended to compute full block objects key for each block in the post. + * This is a denormalization to optimize the performance of the getBlock selectors and avoid + * recomputing the block objects and avoid heavy memoization. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withBlockTree = reducer => (state = {}, action) => { + const newState = reducer(state, action); + if (newState === state) { + return state; + } + newState.tree = state.tree ? state.tree : new Map(); + switch (action.type) { + case 'RECEIVE_BLOCKS': + case 'INSERT_BLOCKS': + { + newState.tree = new Map(newState.tree); + updateBlockTreeForBlocks(newState, action.blocks); + updateParentInnerBlocksInTree(newState, action.rootClientId ? [action.rootClientId] : [''], true); + break; + } + case 'UPDATE_BLOCK': + newState.tree = new Map(newState.tree); + newState.tree.set(action.clientId, { + ...newState.tree.get(action.clientId), + ...newState.byClientId.get(action.clientId), + attributes: newState.attributes.get(action.clientId) + }); + updateParentInnerBlocksInTree(newState, [action.clientId], false); + break; + case 'UPDATE_BLOCK_ATTRIBUTES': + { + newState.tree = new Map(newState.tree); + action.clientIds.forEach(clientId => { + newState.tree.set(clientId, { + ...newState.tree.get(clientId), + attributes: newState.attributes.get(clientId) + }); + }); + updateParentInnerBlocksInTree(newState, action.clientIds, false); + break; } + case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const inserterClientIds = getFlattenedClientIds(action.blocks); + newState.tree = new Map(newState.tree); + action.replacedClientIds.concat( + // Controlled inner blocks are only removed + // if the block doesn't move to another position + // otherwise their content will be lost. + action.replacedClientIds.filter(clientId => !inserterClientIds[clientId]).map(clientId => 'controlled||' + clientId)).forEach(key => { + newState.tree.delete(key); + }); + updateBlockTreeForBlocks(newState, action.blocks); + updateParentInnerBlocksInTree(newState, action.blocks.map(b => b.clientId), false); - lines = str.match(/\n/g) - if (lines) { - line += lines.length - last = str.lastIndexOf('\n') - column = str.length - last - } else { - column += str.length - } - - if (node && type !== 'start') { - let p = node.parent || { raws: {} } - let childless = - node.type === 'decl' || (node.type === 'atrule' && !node.nodes) - if (!childless || node !== p.last || p.raws.semicolon) { - if (node.source && node.source.end) { - mapping.source = this.sourcePath(node) - mapping.original.line = node.source.end.line - mapping.original.column = node.source.end.column - 1 - mapping.generated.line = line - mapping.generated.column = column - 2 - this.map.addMapping(mapping) - } else { - mapping.source = noSource - mapping.original.line = 1 - mapping.original.column = 0 - mapping.generated.line = line - mapping.generated.column = column - 1 - this.map.addMapping(mapping) + // If there are no replaced blocks, it means we're removing blocks so we need to update their parent. + const parentsOfRemovedBlocks = []; + for (const clientId of action.clientIds) { + if (state.parents.get(clientId) !== undefined && (state.parents.get(clientId) === '' || newState.byClientId.get(state.parents.get(clientId)))) { + parentsOfRemovedBlocks.push(state.parents.get(clientId)); } } + updateParentInnerBlocksInTree(newState, parentsOfRemovedBlocks, true); + break; } - }) - } - - isAnnotation() { - if (this.isInline()) { - return true - } - if (typeof this.mapOpts.annotation !== 'undefined') { - return this.mapOpts.annotation - } - if (this.previous().length) { - return this.previous().some(i => i.annotation) - } - return true - } - - isInline() { - if (typeof this.mapOpts.inline !== 'undefined') { - return this.mapOpts.inline - } - - let annotation = this.mapOpts.annotation - if (typeof annotation !== 'undefined' && annotation !== true) { - return false - } - - if (this.previous().length) { - return this.previous().some(i => i.inline) - } - return true - } - - isMap() { - if (typeof this.opts.map !== 'undefined') { - return !!this.opts.map - } - return this.previous().length > 0 - } - - isSourcesContent() { - if (typeof this.mapOpts.sourcesContent !== 'undefined') { - return this.mapOpts.sourcesContent - } - if (this.previous().length) { - return this.previous().some(i => i.withContent()) - } - return true - } - - outputFile() { - if (this.opts.to) { - return this.path(this.opts.to) - } else if (this.opts.from) { - return this.path(this.opts.from) - } else { - return 'to.css' - } - } - - path(file) { - if (this.mapOpts.absolute) return file - if (file.charCodeAt(0) === 60 /* `<` */) return file - if (/^\w+:\/\//.test(file)) return file - let cached = this.memoizedPaths.get(file) - if (cached) return cached - - let from = this.opts.to ? dirname(this.opts.to) : '.' - - if (typeof this.mapOpts.annotation === 'string') { - from = dirname(resolve(from, this.mapOpts.annotation)) - } - - let path = relative(from, file) - this.memoizedPaths.set(file, path) - - return path - } - - previous() { - if (!this.previousMaps) { - this.previousMaps = [] - if (this.root) { - this.root.walk(node => { - if (node.source && node.source.input.map) { - let map = node.source.input.map - if (!this.previousMaps.includes(map)) { - this.previousMaps.push(map) - } - } - }) - } else { - let input = new Input(this.css, this.opts) - if (input.map) this.previousMaps.push(input.map) + case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': + const parentsOfRemovedBlocks = []; + for (const clientId of action.clientIds) { + if (state.parents.get(clientId) !== undefined && (state.parents.get(clientId) === '' || newState.byClientId.get(state.parents.get(clientId)))) { + parentsOfRemovedBlocks.push(state.parents.get(clientId)); + } } - } - - return this.previousMaps - } - - setSourcesContent() { - let already = {} - if (this.root) { - this.root.walk(node => { - if (node.source) { - let from = node.source.input.from - if (from && !already[from]) { - already[from] = true - let fromUrl = this.usesFileUrls - ? this.toFileUrl(from) - : this.toUrl(this.path(from)) - this.map.setSourceContent(fromUrl, node.source.input.css) - } + newState.tree = new Map(newState.tree); + action.removedClientIds.concat(action.removedClientIds.map(clientId => 'controlled||' + clientId)).forEach(key => { + newState.tree.delete(key); + }); + updateParentInnerBlocksInTree(newState, parentsOfRemovedBlocks, true); + break; + case 'MOVE_BLOCKS_TO_POSITION': + { + const updatedBlockUids = []; + if (action.fromRootClientId) { + updatedBlockUids.push(action.fromRootClientId); + } else { + updatedBlockUids.push(''); } - }) - } else if (this.css) { - let from = this.opts.from - ? this.toUrl(this.path(this.opts.from)) - : '' - this.map.setSourceContent(from, this.css) - } - } - - sourcePath(node) { - if (this.mapOpts.from) { - return this.toUrl(this.mapOpts.from) - } else if (this.usesFileUrls) { - return this.toFileUrl(node.source.input.from) - } else { - return this.toUrl(this.path(node.source.input.from)) - } - } - - toBase64(str) { - if (Buffer) { - return Buffer.from(str).toString('base64') - } else { - return window.btoa(unescape(encodeURIComponent(str))) - } - } - - toFileUrl(path) { - let cached = this.memoizedFileURLs.get(path) - if (cached) return cached - - if (pathToFileURL) { - let fileURL = pathToFileURL(path).toString() - this.memoizedFileURLs.set(path, fileURL) - - return fileURL - } else { - throw new Error( - '`map.absolute` option is not available in this PostCSS build' - ) - } - } - - toUrl(path) { - let cached = this.memoizedURLs.get(path) - if (cached) return cached - - if (sep === '\\') { - path = path.replace(/\\/g, '/') - } - - let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent) - this.memoizedURLs.set(path, url) - - return url - } -} - -module.exports = MapGenerator - - -/***/ }), - -/***/ 2882: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let MapGenerator = __webpack_require__(2491) -let stringify = __webpack_require__(2530) -let warnOnce = __webpack_require__(7892) -let parse = __webpack_require__(9301) -const Result = __webpack_require__(2072) - -class NoWorkResult { - constructor(processor, css, opts) { - css = css.toString() - this.stringified = false - - this._processor = processor - this._css = css - this._opts = opts - this._map = undefined - let root - - let str = stringify - this.result = new Result(this._processor, root, this._opts) - this.result.css = css - - let self = this - Object.defineProperty(this.result, 'root', { - get() { - return self.root + if (action.toRootClientId) { + updatedBlockUids.push(action.toRootClientId); + } + newState.tree = new Map(newState.tree); + updateParentInnerBlocksInTree(newState, updatedBlockUids, true); + break; } - }) - - let map = new MapGenerator(str, root, this._opts, css) - if (map.isMap()) { - let [generatedCSS, generatedMap] = map.generate() - if (generatedCSS) { - this.result.css = generatedCSS + case 'MOVE_BLOCKS_UP': + case 'MOVE_BLOCKS_DOWN': + { + const updatedBlockUids = [action.rootClientId ? action.rootClientId : '']; + newState.tree = new Map(newState.tree); + updateParentInnerBlocksInTree(newState, updatedBlockUids, true); + break; } - if (generatedMap) { - this.result.map = generatedMap + case 'SAVE_REUSABLE_BLOCK_SUCCESS': + { + const updatedBlockUids = []; + newState.attributes.forEach((attributes, clientId) => { + if (newState.byClientId.get(clientId).name === 'core/block' && attributes.ref === action.updatedId) { + updatedBlockUids.push(clientId); + } + }); + newState.tree = new Map(newState.tree); + updatedBlockUids.forEach(clientId => { + newState.tree.set(clientId, { + ...newState.byClientId.get(clientId), + attributes: newState.attributes.get(clientId), + innerBlocks: newState.tree.get(clientId).innerBlocks + }); + }); + updateParentInnerBlocksInTree(newState, updatedBlockUids, false); } - } - } - - async() { - if (this.error) return Promise.reject(this.error) - return Promise.resolve(this.result) - } - - catch(onRejected) { - return this.async().catch(onRejected) - } - - finally(onFinally) { - return this.async().then(onFinally, onFinally) - } - - sync() { - if (this.error) throw this.error - return this.result } + return newState; +}; - then(onFulfilled, onRejected) { - if (false) {} - - return this.async().then(onFulfilled, onRejected) - } - - toString() { - return this._css - } - - warnings() { - return [] - } - - get content() { - return this.result.css - } - - get css() { - return this.result.css - } - - get map() { - return this.result.map - } - - get messages() { - return [] - } - - get opts() { - return this.result.opts - } - - get processor() { - return this.result.processor - } - - get root() { - if (this._root) { - return this._root - } - - let root - let parser = parse - - try { - root = parser(this._css, this._opts) - } catch (error) { - this.error = error - } +/** + * Higher-order reducer intended to augment the blocks reducer, assigning an + * `isPersistentChange` property value corresponding to whether a change in + * state can be considered as persistent. All changes are considered persistent + * except when updating the same block attribute as in the previous action. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +function withPersistentBlockChange(reducer) { + let lastAction; + let markNextChangeAsNotPersistent = false; + return (state, action) => { + let nextState = reducer(state, action); + const isExplicitPersistentChange = action.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' || markNextChangeAsNotPersistent; - if (this.error) { - throw this.error - } else { - this._root = root - return root + // Defer to previous state value (or default) unless changing or + // explicitly marking as persistent. + if (state === nextState && !isExplicitPersistentChange) { + var _state$isPersistentCh; + markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT'; + const nextIsPersistentChange = (_state$isPersistentCh = state?.isPersistentChange) !== null && _state$isPersistentCh !== void 0 ? _state$isPersistentCh : true; + if (state.isPersistentChange === nextIsPersistentChange) { + return state; + } + return { + ...nextState, + isPersistentChange: nextIsPersistentChange + }; } - } + nextState = { + ...nextState, + isPersistentChange: isExplicitPersistentChange ? !markNextChangeAsNotPersistent : !isUpdatingSameBlockAttribute(action, lastAction) + }; - get [Symbol.toStringTag]() { - return 'NoWorkResult' - } + // In comparing against the previous action, consider only those which + // would have qualified as one which would have been ignored or not + // have resulted in a changed state. + lastAction = action; + markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT'; + return nextState; + }; } -module.exports = NoWorkResult -NoWorkResult.default = NoWorkResult - - -/***/ }), - -/***/ 8753: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let { isClean, my } = __webpack_require__(3719) -let CssSyntaxError = __webpack_require__(8743) -let Stringifier = __webpack_require__(3951) -let stringify = __webpack_require__(2530) - -function cloneNode(obj, parent) { - let cloned = new obj.constructor() - - for (let i in obj) { - if (!Object.prototype.hasOwnProperty.call(obj, i)) { - /* c8 ignore next 2 */ - continue - } - if (i === 'proxyCache') continue - let value = obj[i] - let type = typeof value - - if (i === 'parent' && type === 'object') { - if (parent) cloned[i] = parent - } else if (i === 'source') { - cloned[i] = value - } else if (Array.isArray(value)) { - cloned[i] = value.map(j => cloneNode(j, cloned)) - } else { - if (type === 'object' && value !== null) value = cloneNode(value) - cloned[i] = value +/** + * Higher-order reducer intended to augment the blocks reducer, assigning an + * `isIgnoredChange` property value corresponding to whether a change in state + * can be considered as ignored. A change is considered ignored when the result + * of an action not incurred by direct user interaction. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +function withIgnoredBlockChange(reducer) { + /** + * Set of action types for which a blocks state change should be ignored. + * + * @type {Set} + */ + const IGNORED_ACTION_TYPES = new Set(['RECEIVE_BLOCKS']); + return (state, action) => { + const nextState = reducer(state, action); + if (nextState !== state) { + nextState.isIgnoredChange = IGNORED_ACTION_TYPES.has(action.type); } - } - - return cloned + return nextState; + }; } -class Node { - constructor(defaults = {}) { - this.raws = {} - this[isClean] = false - this[my] = true - - for (let name in defaults) { - if (name === 'nodes') { - this.nodes = [] - for (let node of defaults[name]) { - if (typeof node.clone === 'function') { - this.append(node.clone()) - } else { - this.append(node) - } - } - } else { - this[name] = defaults[name] +/** + * Higher-order reducer targeting the combined blocks reducer, augmenting + * block client IDs in remove action to include cascade of inner blocks. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withInnerBlocksRemoveCascade = reducer => (state, action) => { + // Gets all children which need to be removed. + const getAllChildren = clientIds => { + let result = clientIds; + for (let i = 0; i < result.length; i++) { + if (!state.order.get(result[i]) || action.keepControlledInnerBlocks && action.keepControlledInnerBlocks[result[i]]) { + continue; } - } - } - - addToError(error) { - error.postcssNode = this - if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { - let s = this.source - error.stack = error.stack.replace( - /\n\s{4}at /, - `$&${s.input.from}:${s.start.line}:${s.start.column}$&` - ) - } - return error - } - - after(add) { - this.parent.insertAfter(this, add) - return this - } - - assign(overrides = {}) { - for (let name in overrides) { - this[name] = overrides[name] - } - return this - } - - before(add) { - this.parent.insertBefore(this, add) - return this - } - - cleanRaws(keepBetween) { - delete this.raws.before - delete this.raws.after - if (!keepBetween) delete this.raws.between - } - - clone(overrides = {}) { - let cloned = cloneNode(this) - for (let name in overrides) { - cloned[name] = overrides[name] - } - return cloned - } - - cloneAfter(overrides = {}) { - let cloned = this.clone(overrides) - this.parent.insertAfter(this, cloned) - return cloned - } - - cloneBefore(overrides = {}) { - let cloned = this.clone(overrides) - this.parent.insertBefore(this, cloned) - return cloned - } - - error(message, opts = {}) { - if (this.source) { - let { end, start } = this.rangeBy(opts) - return this.source.input.error( - message, - { column: start.column, line: start.line }, - { column: end.column, line: end.line }, - opts - ) - } - return new CssSyntaxError(message) - } - - getProxyProcessor() { - return { - get(node, prop) { - if (prop === 'proxyOf') { - return node - } else if (prop === 'root') { - return () => node.root().toProxy() - } else { - return node[prop] - } - }, - - set(node, prop, value) { - if (node[prop] === value) return true - node[prop] = value - if ( - prop === 'prop' || - prop === 'value' || - prop === 'name' || - prop === 'params' || - prop === 'important' || - /* c8 ignore next */ - prop === 'text' - ) { - node.markDirty() - } - return true + if (result === clientIds) { + result = [...result]; } + result.push(...state.order.get(result[i])); } - } - - markDirty() { - if (this[isClean]) { - this[isClean] = false - let next = this - while ((next = next.parent)) { - next[isClean] = false - } + return result; + }; + if (state) { + switch (action.type) { + case 'REMOVE_BLOCKS': + action = { + ...action, + type: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN', + removedClientIds: getAllChildren(action.clientIds) + }; + break; + case 'REPLACE_BLOCKS': + action = { + ...action, + type: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN', + replacedClientIds: getAllChildren(action.clientIds) + }; + break; } } + return reducer(state, action); +}; - next() { - if (!this.parent) return undefined - let index = this.parent.index(this) - return this.parent.nodes[index + 1] +/** + * Higher-order reducer which targets the combined blocks reducer and handles + * the `RESET_BLOCKS` action. When dispatched, this action will replace all + * blocks that exist in the post, leaving blocks that exist only in state (e.g. + * reusable blocks and blocks controlled by inner blocks controllers) alone. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withBlockReset = reducer => (state, action) => { + if (action.type === 'RESET_BLOCKS') { + const newState = { + ...state, + byClientId: new Map(getFlattenedBlocksWithoutAttributes(action.blocks)), + attributes: new Map(getFlattenedBlockAttributes(action.blocks)), + order: mapBlockOrder(action.blocks), + parents: new Map(mapBlockParents(action.blocks)), + controlledInnerBlocks: {} + }; + newState.tree = new Map(state?.tree); + updateBlockTreeForBlocks(newState, action.blocks); + newState.tree.set('', { + innerBlocks: action.blocks.map(subBlock => newState.tree.get(subBlock.clientId)) + }); + return newState; } + return reducer(state, action); +}; - positionBy(opts, stringRepresentation) { - let pos = this.source.start - if (opts.index) { - pos = this.positionInside(opts.index, stringRepresentation) - } else if (opts.word) { - stringRepresentation = this.toString() - let index = stringRepresentation.indexOf(opts.word) - if (index !== -1) pos = this.positionInside(index, stringRepresentation) - } - return pos +/** + * Higher-order reducer which targets the combined blocks reducer and handles + * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state + * should become equivalent to the execution of a `REMOVE_BLOCKS` action + * containing all the child's of the root block followed by the execution of + * `INSERT_BLOCKS` with the new blocks. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withReplaceInnerBlocks = reducer => (state, action) => { + if (action.type !== 'REPLACE_INNER_BLOCKS') { + return reducer(state, action); } - positionInside(index, stringRepresentation) { - let string = stringRepresentation || this.toString() - let column = this.source.start.column - let line = this.source.start.line - - for (let i = 0; i < index; i++) { - if (string[i] === '\n') { - column = 1 - line += 1 - } else { - column += 1 + // Finds every nested inner block controller. We must check the action blocks + // and not just the block parent state because some inner block controllers + // should be deleted if specified, whereas others should not be deleted. If + // a controlled should not be deleted, then we need to avoid deleting its + // inner blocks from the block state because its inner blocks will not be + // attached to the block in the action. + const nestedControllers = {}; + if (Object.keys(state.controlledInnerBlocks).length) { + const stack = [...action.blocks]; + while (stack.length) { + const { + innerBlocks, + ...block + } = stack.shift(); + stack.push(...innerBlocks); + if (!!state.controlledInnerBlocks[block.clientId]) { + nestedControllers[block.clientId] = true; } } - - return { column, line } } - prev() { - if (!this.parent) return undefined - let index = this.parent.index(this) - return this.parent.nodes[index - 1] + // The `keepControlledInnerBlocks` prop will keep the inner blocks of the + // marked block in the block state so that they can be reattached to the + // marked block when we re-insert everything a few lines below. + let stateAfterBlocksRemoval = state; + if (state.order.get(action.rootClientId)) { + stateAfterBlocksRemoval = reducer(stateAfterBlocksRemoval, { + type: 'REMOVE_BLOCKS', + keepControlledInnerBlocks: nestedControllers, + clientIds: state.order.get(action.rootClientId) + }); } + let stateAfterInsert = stateAfterBlocksRemoval; + if (action.blocks.length) { + stateAfterInsert = reducer(stateAfterInsert, { + ...action, + type: 'INSERT_BLOCKS', + index: 0 + }); - rangeBy(opts) { - let start = { - column: this.source.start.column, - line: this.source.start.line - } - let end = this.source.end - ? { - column: this.source.end.column + 1, - line: this.source.end.line + // We need to re-attach the controlled inner blocks to the blocks tree and + // preserve their block order. Otherwise, an inner block controller's blocks + // will be deleted entirely from its entity. + const stateAfterInsertOrder = new Map(stateAfterInsert.order); + Object.keys(nestedControllers).forEach(key => { + if (state.order.get(key)) { + stateAfterInsertOrder.set(key, state.order.get(key)); } - : { - column: start.column + 1, - line: start.line + }); + stateAfterInsert.order = stateAfterInsertOrder; + stateAfterInsert.tree = new Map(stateAfterInsert.tree); + Object.keys(nestedControllers).forEach(_key => { + const key = `controlled||${_key}`; + if (state.tree.has(key)) { + stateAfterInsert.tree.set(key, state.tree.get(key)); } + }); + } + return stateAfterInsert; +}; - if (opts.word) { - let stringRepresentation = this.toString() - let index = stringRepresentation.indexOf(opts.word) - if (index !== -1) { - start = this.positionInside(index, stringRepresentation) - end = this.positionInside(index + opts.word.length, stringRepresentation) - } - } else { - if (opts.start) { - start = { - column: opts.start.column, - line: opts.start.line - } - } else if (opts.index) { - start = this.positionInside(opts.index) - } - - if (opts.end) { - end = { - column: opts.end.column, - line: opts.end.line - } - } else if (opts.endIndex) { - end = this.positionInside(opts.endIndex) - } else if (opts.index) { - end = this.positionInside(opts.index + 1) - } - } - - if ( - end.line < start.line || - (end.line === start.line && end.column <= start.column) - ) { - end = { column: start.column + 1, line: start.line } - } - - return { end, start } - } - - raw(prop, defaultType) { - let str = new Stringifier() - return str.raw(this, prop, defaultType) - } +/** + * Higher-order reducer which targets the combined blocks reducer and handles + * the `SAVE_REUSABLE_BLOCK_SUCCESS` action. This action can't be handled by + * regular reducers and needs a higher-order reducer since it needs access to + * both `byClientId` and `attributes` simultaneously. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withSaveReusableBlock = reducer => (state, action) => { + if (state && action.type === 'SAVE_REUSABLE_BLOCK_SUCCESS') { + const { + id, + updatedId + } = action; - remove() { - if (this.parent) { - this.parent.removeChild(this) + // If a temporary reusable block is saved, we swap the temporary id with the final one. + if (id === updatedId) { + return state; } - this.parent = undefined - return this - } - - replaceWith(...nodes) { - if (this.parent) { - let bookmark = this - let foundSelf = false - for (let node of nodes) { - if (node === this) { - foundSelf = true - } else if (foundSelf) { - this.parent.insertAfter(bookmark, node) - bookmark = node - } else { - this.parent.insertBefore(bookmark, node) - } - } - - if (!foundSelf) { - this.remove() + state = { + ...state + }; + state.attributes = new Map(state.attributes); + state.attributes.forEach((attributes, clientId) => { + const { + name + } = state.byClientId.get(clientId); + if (name === 'core/block' && attributes.ref === id) { + state.attributes.set(clientId, { + ...attributes, + ref: updatedId + }); } - } - - return this + }); } - - root() { - let result = this - while (result.parent && result.parent.type !== 'document') { - result = result.parent - } - return result + return reducer(state, action); +}; +/** + * Higher-order reducer which removes blocks from state when switching parent block controlled state. + * + * @param {Function} reducer Original reducer function. + * + * @return {Function} Enhanced reducer function. + */ +const withResetControlledBlocks = reducer => (state, action) => { + if (action.type === 'SET_HAS_CONTROLLED_INNER_BLOCKS') { + // when switching a block from controlled to uncontrolled or inverse, + // we need to remove its content first. + const tempState = reducer(state, { + type: 'REPLACE_INNER_BLOCKS', + rootClientId: action.clientId, + blocks: [] + }); + return reducer(tempState, action); } + return reducer(state, action); +}; - toJSON(_, inputs) { - let fixed = {} - let emitInputs = inputs == null - inputs = inputs || new Map() - let inputsNextIndex = 0 - - for (let name in this) { - if (!Object.prototype.hasOwnProperty.call(this, name)) { - /* c8 ignore next 2 */ - continue - } - if (name === 'parent' || name === 'proxyCache') continue - let value = this[name] +/** + * Reducer returning the blocks state. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +const blocks = (0,external_wp_compose_namespaceObject.pipe)(external_wp_data_namespaceObject.combineReducers, withSaveReusableBlock, +// Needs to be before withBlockCache. +withBlockTree, +// Needs to be before withInnerBlocksRemoveCascade. +withInnerBlocksRemoveCascade, withReplaceInnerBlocks, +// Needs to be after withInnerBlocksRemoveCascade. +withBlockReset, withPersistentBlockChange, withIgnoredBlockChange, withResetControlledBlocks)({ + // The state is using a Map instead of a plain object for performance reasons. + // You can run the "./test/performance.js" unit test to check the impact + // code changes can have on this reducer. + byClientId(state = new Map(), action) { + switch (action.type) { + case 'RECEIVE_BLOCKS': + case 'INSERT_BLOCKS': + { + const newState = new Map(state); + getFlattenedBlocksWithoutAttributes(action.blocks).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; + } + case 'UPDATE_BLOCK': + { + // Ignore updates if block isn't known. + if (!state.has(action.clientId)) { + return state; + } - if (Array.isArray(value)) { - fixed[name] = value.map(i => { - if (typeof i === 'object' && i.toJSON) { - return i.toJSON(null, inputs) - } else { - return i + // Do nothing if only attributes change. + const { + attributes, + ...changes + } = action.updates; + if (Object.values(changes).length === 0) { + return state; } - }) - } else if (typeof value === 'object' && value.toJSON) { - fixed[name] = value.toJSON(null, inputs) - } else if (name === 'source') { - let inputId = inputs.get(value.input) - if (inputId == null) { - inputId = inputsNextIndex - inputs.set(value.input, inputsNextIndex) - inputsNextIndex++ + const newState = new Map(state); + newState.set(action.clientId, { + ...state.get(action.clientId), + ...changes + }); + return newState; + } + case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + if (!action.blocks) { + return state; + } + const newState = new Map(state); + action.replacedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + getFlattenedBlocksWithoutAttributes(action.blocks).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; } - fixed[name] = { - end: value.end, - inputId, - start: value.start + case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const newState = new Map(state); + action.removedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + return newState; } - } else { - fixed[name] = value - } - } - - if (emitInputs) { - fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) - } - - return fixed - } - - toProxy() { - if (!this.proxyCache) { - this.proxyCache = new Proxy(this, this.getProxyProcessor()) } - return this.proxyCache - } - - toString(stringifier = stringify) { - if (stringifier.stringify) stringifier = stringifier.stringify - let result = '' - stringifier(this, i => { - result += i - }) - return result - } - - warn(result, text, opts) { - let data = { node: this } - for (let i in opts) data[i] = opts[i] - return result.warn(text, data) - } - - get proxyOf() { - return this - } -} - -module.exports = Node -Node.default = Node - - -/***/ }), - -/***/ 9301: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let Container = __webpack_require__(9795) -let Parser = __webpack_require__(3915) -let Input = __webpack_require__(9961) - -function parse(css, opts) { - let input = new Input(css, opts) - let parser = new Parser(input) - try { - parser.parse() - } catch (e) { - if (false) {} - throw e - } - - return parser.root -} - -module.exports = parse -parse.default = parse - -Container.registerParse(parse) - - -/***/ }), - -/***/ 3915: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let Declaration = __webpack_require__(5818) -let tokenizer = __webpack_require__(9215) -let Comment = __webpack_require__(9882) -let AtRule = __webpack_require__(2433) -let Root = __webpack_require__(3823) -let Rule = __webpack_require__(5871) - -const SAFE_COMMENT_NEIGHBOR = { - empty: true, - space: true -} - -function findLastWithPosition(tokens) { - for (let i = tokens.length - 1; i >= 0; i--) { - let token = tokens[i] - let pos = token[3] || token[2] - if (pos) return pos - } -} - -class Parser { - constructor(input) { - this.input = input - - this.root = new Root() - this.current = this.root - this.spaces = '' - this.semicolon = false - this.customProperty = false - - this.createTokenizer() - this.root.source = { input, start: { column: 1, line: 1, offset: 0 } } - } - - atrule(token) { - let node = new AtRule() - node.name = token[1].slice(1) - if (node.name === '') { - this.unnamedAtrule(node, token) - } - this.init(node, token[2]) - - let type - let prev - let shift - let last = false - let open = false - let params = [] - let brackets = [] - - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken() - type = token[0] - - if (type === '(' || type === '[') { - brackets.push(type === '(' ? ')' : ']') - } else if (type === '{' && brackets.length > 0) { - brackets.push('}') - } else if (type === brackets[brackets.length - 1]) { - brackets.pop() - } - - if (brackets.length === 0) { - if (type === ';') { - node.source.end = this.getPosition(token[2]) - node.source.end.offset++ - this.semicolon = true - break - } else if (type === '{') { - open = true - break - } else if (type === '}') { - if (params.length > 0) { - shift = params.length - 1 - prev = params[shift] - while (prev && prev[0] === 'space') { - prev = params[--shift] + return state; + }, + // The state is using a Map instead of a plain object for performance reasons. + // You can run the "./test/performance.js" unit test to check the impact + // code changes can have on this reducer. + attributes(state = new Map(), action) { + switch (action.type) { + case 'RECEIVE_BLOCKS': + case 'INSERT_BLOCKS': + { + const newState = new Map(state); + getFlattenedBlockAttributes(action.blocks).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; + } + case 'UPDATE_BLOCK': + { + // Ignore updates if block isn't known or there are no attribute changes. + if (!state.get(action.clientId) || !action.updates.attributes) { + return state; + } + const newState = new Map(state); + newState.set(action.clientId, { + ...state.get(action.clientId), + ...action.updates.attributes + }); + return newState; + } + case 'UPDATE_BLOCK_ATTRIBUTES': + { + // Avoid a state change if none of the block IDs are known. + if (action.clientIds.every(id => !state.get(id))) { + return state; + } + let hasChange = false; + const newState = new Map(state); + for (const clientId of action.clientIds) { + var _action$attributes; + const updatedAttributeEntries = Object.entries(action.uniqueByBlock ? action.attributes[clientId] : (_action$attributes = action.attributes) !== null && _action$attributes !== void 0 ? _action$attributes : {}); + if (updatedAttributeEntries.length === 0) { + continue; } - if (prev) { - node.source.end = this.getPosition(prev[3] || prev[2]) - node.source.end.offset++ + let hasUpdatedAttributes = false; + const existingAttributes = state.get(clientId); + const newAttributes = {}; + updatedAttributeEntries.forEach(([key, value]) => { + if (existingAttributes[key] !== value) { + hasUpdatedAttributes = true; + newAttributes[key] = value; + } + }); + hasChange = hasChange || hasUpdatedAttributes; + if (hasUpdatedAttributes) { + newState.set(clientId, { + ...existingAttributes, + ...newAttributes + }); } } - this.end(token) - break - } else { - params.push(token) + return hasChange ? newState : state; } - } else { - params.push(token) - } - - if (this.tokenizer.endOfFile()) { - last = true - break - } - } - - node.raws.between = this.spacesAndCommentsFromEnd(params) - if (params.length) { - node.raws.afterName = this.spacesAndCommentsFromStart(params) - this.raw(node, 'params', params) - if (last) { - token = params[params.length - 1] - node.source.end = this.getPosition(token[3] || token[2]) - node.source.end.offset++ - this.spaces = node.raws.between - node.raws.between = '' - } - } else { - node.raws.afterName = '' - node.params = '' - } - - if (open) { - node.nodes = [] - this.current = node - } - } - - checkMissedSemicolon(tokens) { - let colon = this.colon(tokens) - if (colon === false) return - - let founded = 0 - let token - for (let j = colon - 1; j >= 0; j--) { - token = tokens[j] - if (token[0] !== 'space') { - founded += 1 - if (founded === 2) break - } - } - // If the token is a word, e.g. `!important`, `red` or any other valid property's value. - // Then we need to return the colon after that word token. [3] is the "end" colon of that word. - // And because we need it after that one we do +1 to get the next one. - throw this.input.error( - 'Missed semicolon', - token[0] === 'word' ? token[3] + 1 : token[2] - ) - } - - colon(tokens) { - let brackets = 0 - let token, type, prev - for (let [i, element] of tokens.entries()) { - token = element - type = token[0] - - if (type === '(') { - brackets += 1 - } - if (type === ')') { - brackets -= 1 - } - if (brackets === 0 && type === ':') { - if (!prev) { - this.doubleColon(token) - } else if (prev[0] === 'word' && prev[1] === 'progid') { - continue - } else { - return i + case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + if (!action.blocks) { + return state; + } + const newState = new Map(state); + action.replacedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + getFlattenedBlockAttributes(action.blocks).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; } - } - - prev = token - } - return false - } - - comment(token) { - let node = new Comment() - this.init(node, token[2]) - node.source.end = this.getPosition(token[3] || token[2]) - node.source.end.offset++ - - let text = token[1].slice(2, -2) - if (/^\s*$/.test(text)) { - node.text = '' - node.raws.left = text - node.raws.right = '' - } else { - let match = text.match(/^(\s*)([^]*\S)(\s*)$/) - node.text = match[2] - node.raws.left = match[1] - node.raws.right = match[3] - } - } - - createTokenizer() { - this.tokenizer = tokenizer(this.input) - } - - decl(tokens, customProperty) { - let node = new Declaration() - this.init(node, tokens[0][2]) - - let last = tokens[tokens.length - 1] - if (last[0] === ';') { - this.semicolon = true - tokens.pop() - } - - node.source.end = this.getPosition( - last[3] || last[2] || findLastWithPosition(tokens) - ) - node.source.end.offset++ - - while (tokens[0][0] !== 'word') { - if (tokens.length === 1) this.unknownWord(tokens) - node.raws.before += tokens.shift()[1] - } - node.source.start = this.getPosition(tokens[0][2]) - - node.prop = '' - while (tokens.length) { - let type = tokens[0][0] - if (type === ':' || type === 'space' || type === 'comment') { - break - } - node.prop += tokens.shift()[1] - } - - node.raws.between = '' - - let token - while (tokens.length) { - token = tokens.shift() - - if (token[0] === ':') { - node.raws.between += token[1] - break - } else { - if (token[0] === 'word' && /\w/.test(token[1])) { - this.unknownWord([token]) + case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const newState = new Map(state); + action.removedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + return newState; } - node.raws.between += token[1] - } - } - - if (node.prop[0] === '_' || node.prop[0] === '*') { - node.raws.before += node.prop[0] - node.prop = node.prop.slice(1) } - - let firstSpaces = [] - let next - while (tokens.length) { - next = tokens[0][0] - if (next !== 'space' && next !== 'comment') break - firstSpaces.push(tokens.shift()) - } - - this.precheckMissedSemicolon(tokens) - - for (let i = tokens.length - 1; i >= 0; i--) { - token = tokens[i] - if (token[1].toLowerCase() === '!important') { - node.important = true - let string = this.stringFrom(tokens, i) - string = this.spacesFromEnd(tokens) + string - if (string !== ' !important') node.raws.important = string - break - } else if (token[1].toLowerCase() === 'important') { - let cache = tokens.slice(0) - let str = '' - for (let j = i; j > 0; j--) { - let type = cache[j][0] - if (str.trim().indexOf('!') === 0 && type !== 'space') { - break - } - str = cache.pop()[1] + str + return state; + }, + // The state is using a Map instead of a plain object for performance reasons. + // You can run the "./test/performance.js" unit test to check the impact + // code changes can have on this reducer. + order(state = new Map(), action) { + switch (action.type) { + case 'RECEIVE_BLOCKS': + { + var _state$get; + const blockOrder = mapBlockOrder(action.blocks); + const newState = new Map(state); + blockOrder.forEach((order, clientId) => { + if (clientId !== '') { + newState.set(clientId, order); + } + }); + newState.set('', ((_state$get = state.get('')) !== null && _state$get !== void 0 ? _state$get : []).concat(blockOrder[''])); + return newState; } - if (str.trim().indexOf('!') === 0) { - node.important = true - node.raws.important = str - tokens = cache + case 'INSERT_BLOCKS': + { + const { + rootClientId = '' + } = action; + const subState = state.get(rootClientId) || []; + const mappedBlocks = mapBlockOrder(action.blocks, rootClientId); + const { + index = subState.length + } = action; + const newState = new Map(state); + mappedBlocks.forEach((order, clientId) => { + newState.set(clientId, order); + }); + newState.set(rootClientId, insertAt(subState, mappedBlocks.get(rootClientId), index)); + return newState; } - } - - if (token[0] !== 'space' && token[0] !== 'comment') { - break - } - } - - let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') - - if (hasWord) { - node.raws.between += firstSpaces.map(i => i[1]).join('') - firstSpaces = [] - } - this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) - - if (node.value.includes(':') && !customProperty) { - this.checkMissedSemicolon(tokens) - } - } - - doubleColon(token) { - throw this.input.error( - 'Double colon', - { offset: token[2] }, - { offset: token[2] + token[1].length } - ) - } - - emptyRule(token) { - let node = new Rule() - this.init(node, token[2]) - node.selector = '' - node.raws.between = '' - this.current = node - } - - end(token) { - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon - } - this.semicolon = false - - this.current.raws.after = (this.current.raws.after || '') + this.spaces - this.spaces = '' - - if (this.current.parent) { - this.current.source.end = this.getPosition(token[2]) - this.current.source.end.offset++ - this.current = this.current.parent - } else { - this.unexpectedClose(token) - } - } - - endFile() { - if (this.current.parent) this.unclosedBlock() - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon - } - this.current.raws.after = (this.current.raws.after || '') + this.spaces - this.root.source.end = this.getPosition(this.tokenizer.position()) - } - - freeSemicolon(token) { - this.spaces += token[1] - if (this.current.nodes) { - let prev = this.current.nodes[this.current.nodes.length - 1] - if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { - prev.raws.ownSemicolon = this.spaces - this.spaces = '' - } - } - } + case 'MOVE_BLOCKS_TO_POSITION': + { + var _state$get$filter; + const { + fromRootClientId = '', + toRootClientId = '', + clientIds + } = action; + const { + index = state.get(toRootClientId).length + } = action; - // Helpers + // Moving inside the same parent block. + if (fromRootClientId === toRootClientId) { + const subState = state.get(toRootClientId); + const fromIndex = subState.indexOf(clientIds[0]); + const newState = new Map(state); + newState.set(toRootClientId, moveTo(state.get(toRootClientId), fromIndex, index, clientIds.length)); + return newState; + } - getPosition(offset) { - let pos = this.input.fromOffset(offset) - return { - column: pos.col, - line: pos.line, - offset - } - } - - init(node, offset) { - this.current.push(node) - node.source = { - input: this.input, - start: this.getPosition(offset) - } - node.raws.before = this.spaces - this.spaces = '' - if (node.type !== 'comment') this.semicolon = false - } - - other(start) { - let end = false - let type = null - let colon = false - let bracket = null - let brackets = [] - let customProperty = start[1].startsWith('--') - - let tokens = [] - let token = start - while (token) { - type = token[0] - tokens.push(token) - - if (type === '(' || type === '[') { - if (!bracket) bracket = token - brackets.push(type === '(' ? ')' : ']') - } else if (customProperty && colon && type === '{') { - if (!bracket) bracket = token - brackets.push('}') - } else if (brackets.length === 0) { - if (type === ';') { - if (colon) { - this.decl(tokens, customProperty) - return - } else { - break + // Moving from a parent block to another. + const newState = new Map(state); + newState.set(fromRootClientId, (_state$get$filter = state.get(fromRootClientId)?.filter(id => !clientIds.includes(id))) !== null && _state$get$filter !== void 0 ? _state$get$filter : []); + newState.set(toRootClientId, insertAt(state.get(toRootClientId), clientIds, index)); + return newState; + } + case 'MOVE_BLOCKS_UP': + { + const { + clientIds, + rootClientId = '' + } = action; + const firstClientId = clientIds[0]; + const subState = state.get(rootClientId); + if (!subState.length || firstClientId === subState[0]) { + return state; } - } else if (type === '{') { - this.rule(tokens) - return - } else if (type === '}') { - this.tokenizer.back(tokens.pop()) - end = true - break - } else if (type === ':') { - colon = true + const firstIndex = subState.indexOf(firstClientId); + const newState = new Map(state); + newState.set(rootClientId, moveTo(subState, firstIndex, firstIndex - 1, clientIds.length)); + return newState; } - } else if (type === brackets[brackets.length - 1]) { - brackets.pop() - if (brackets.length === 0) bracket = null - } - - token = this.tokenizer.nextToken() - } - - if (this.tokenizer.endOfFile()) end = true - if (brackets.length > 0) this.unclosedBracket(bracket) - - if (end && colon) { - if (!customProperty) { - while (tokens.length) { - token = tokens[tokens.length - 1][0] - if (token !== 'space' && token !== 'comment') break - this.tokenizer.back(tokens.pop()) + case 'MOVE_BLOCKS_DOWN': + { + const { + clientIds, + rootClientId = '' + } = action; + const firstClientId = clientIds[0]; + const lastClientId = clientIds[clientIds.length - 1]; + const subState = state.get(rootClientId); + if (!subState.length || lastClientId === subState[subState.length - 1]) { + return state; + } + const firstIndex = subState.indexOf(firstClientId); + const newState = new Map(state); + newState.set(rootClientId, moveTo(subState, firstIndex, firstIndex + 1, clientIds.length)); + return newState; } - } - this.decl(tokens, customProperty) - } else { - this.unknownWord(tokens) - } - } - - parse() { - let token - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken() - - switch (token[0]) { - case 'space': - this.spaces += token[1] - break - - case ';': - this.freeSemicolon(token) - break - - case '}': - this.end(token) - break - - case 'comment': - this.comment(token) - break - - case 'at-word': - this.atrule(token) - break - - case '{': - this.emptyRule(token) - break - - default: - this.other(token) - break - } - } - this.endFile() - } - - precheckMissedSemicolon(/* tokens */) { - // Hook for Safe Parser - } - - raw(node, prop, tokens, customProperty) { - let token, type - let length = tokens.length - let value = '' - let clean = true - let next, prev - - for (let i = 0; i < length; i += 1) { - token = tokens[i] - type = token[0] - if (type === 'space' && i === length - 1 && !customProperty) { - clean = false - } else if (type === 'comment') { - prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' - next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' - if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { - if (value.slice(-1) === ',') { - clean = false - } else { - value += token[1] + case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const { + clientIds + } = action; + if (!action.blocks) { + return state; } - } else { - clean = false + const mappedBlocks = mapBlockOrder(action.blocks); + const newState = new Map(state); + action.replacedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + mappedBlocks.forEach((order, clientId) => { + if (clientId !== '') { + newState.set(clientId, order); + } + }); + newState.forEach((order, clientId) => { + const newSubOrder = Object.values(order).reduce((result, subClientId) => { + if (subClientId === clientIds[0]) { + return [...result, ...mappedBlocks.get('')]; + } + if (clientIds.indexOf(subClientId) === -1) { + result.push(subClientId); + } + return result; + }, []); + newState.set(clientId, newSubOrder); + }); + return newState; + } + case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const newState = new Map(state); + // Remove inner block ordering for removed blocks. + action.removedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + newState.forEach((order, clientId) => { + var _order$filter; + const newSubOrder = (_order$filter = order?.filter(id => !action.removedClientIds.includes(id))) !== null && _order$filter !== void 0 ? _order$filter : []; + if (newSubOrder.length !== order.length) { + newState.set(clientId, newSubOrder); + } + }); + return newState; } - } else { - value += token[1] - } - } - if (!clean) { - let raw = tokens.reduce((all, i) => all + i[1], '') - node.raws[prop] = { raw, value } - } - node[prop] = value - } - - rule(tokens) { - tokens.pop() - - let node = new Rule() - this.init(node, tokens[0][2]) - - node.raws.between = this.spacesAndCommentsFromEnd(tokens) - this.raw(node, 'selector', tokens) - this.current = node - } - - spacesAndCommentsFromEnd(tokens) { - let lastTokenType - let spaces = '' - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0] - if (lastTokenType !== 'space' && lastTokenType !== 'comment') break - spaces = tokens.pop()[1] + spaces - } - return spaces - } - - // Errors - - spacesAndCommentsFromStart(tokens) { - let next - let spaces = '' - while (tokens.length) { - next = tokens[0][0] - if (next !== 'space' && next !== 'comment') break - spaces += tokens.shift()[1] } - return spaces - } - - spacesFromEnd(tokens) { - let lastTokenType - let spaces = '' - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0] - if (lastTokenType !== 'space') break - spaces = tokens.pop()[1] + spaces + return state; + }, + // While technically redundant data as the inverse of `order`, it serves as + // an optimization for the selectors which derive the ancestry of a block. + parents(state = new Map(), action) { + switch (action.type) { + case 'RECEIVE_BLOCKS': + { + const newState = new Map(state); + mapBlockParents(action.blocks).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; + } + case 'INSERT_BLOCKS': + { + const newState = new Map(state); + mapBlockParents(action.blocks, action.rootClientId || '').forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; + } + case 'MOVE_BLOCKS_TO_POSITION': + { + const newState = new Map(state); + action.clientIds.forEach(id => { + newState.set(id, action.toRootClientId || ''); + }); + return newState; + } + case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const newState = new Map(state); + action.replacedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + mapBlockParents(action.blocks, state.get(action.clientIds[0])).forEach(([key, value]) => { + newState.set(key, value); + }); + return newState; + } + case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': + { + const newState = new Map(state); + action.removedClientIds.forEach(clientId => { + newState.delete(clientId); + }); + return newState; + } } - return spaces - } - - stringFrom(tokens, from) { - let result = '' - for (let i = from; i < tokens.length; i++) { - result += tokens[i][1] + return state; + }, + controlledInnerBlocks(state = {}, { + type, + clientId, + hasControlledInnerBlocks + }) { + if (type === 'SET_HAS_CONTROLLED_INNER_BLOCKS') { + return { + ...state, + [clientId]: hasControlledInnerBlocks + }; } - tokens.splice(from, tokens.length - from) - return result + return state; } +}); - unclosedBlock() { - let pos = this.current.source.start - throw this.input.error('Unclosed block', pos.line, pos.column) +/** + * Reducer returning visibility status of block interface. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function isBlockInterfaceHidden(state = false, action) { + switch (action.type) { + case 'HIDE_BLOCK_INTERFACE': + return true; + case 'SHOW_BLOCK_INTERFACE': + return false; } + return state; +} - unclosedBracket(bracket) { - throw this.input.error( - 'Unclosed bracket', - { offset: bracket[2] }, - { offset: bracket[2] + 1 } - ) +/** + * Reducer returning typing state. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function isTyping(state = false, action) { + switch (action.type) { + case 'START_TYPING': + return true; + case 'STOP_TYPING': + return false; } + return state; +} - unexpectedClose(token) { - throw this.input.error( - 'Unexpected }', - { offset: token[2] }, - { offset: token[2] + 1 } - ) +/** + * Reducer returning dragged block client id. + * + * @param {string[]} state Current state. + * @param {Object} action Dispatched action. + * + * @return {string[]} Updated state. + */ +function draggedBlocks(state = [], action) { + switch (action.type) { + case 'START_DRAGGING_BLOCKS': + return action.clientIds; + case 'STOP_DRAGGING_BLOCKS': + return []; } + return state; +} - unknownWord(tokens) { - throw this.input.error( - 'Unknown word', - { offset: tokens[0][2] }, - { offset: tokens[0][2] + tokens[0][1].length } - ) +/** + * Reducer tracking the visible blocks. + * + * @param {Record} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Record} Block visibility. + */ +function blockVisibility(state = {}, action) { + if (action.type === 'SET_BLOCK_VISIBILITY') { + return { + ...state, + ...action.updates + }; } + return state; +} - unnamedAtrule(node, token) { - throw this.input.error( - 'At-rule without name', - { offset: token[2] }, - { offset: token[2] + token[1].length } - ) +/** + * Internal helper reducer for selectionStart and selectionEnd. Can hold a block + * selection, represented by an object with property clientId. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +function selectionHelper(state = {}, action) { + switch (action.type) { + case 'CLEAR_SELECTED_BLOCK': + { + if (state.clientId) { + return {}; + } + return state; + } + case 'SELECT_BLOCK': + if (action.clientId === state.clientId) { + return state; + } + return { + clientId: action.clientId + }; + case 'REPLACE_INNER_BLOCKS': + case 'INSERT_BLOCKS': + { + if (!action.updateSelection || !action.blocks.length) { + return state; + } + return { + clientId: action.blocks[0].clientId + }; + } + case 'REMOVE_BLOCKS': + if (!action.clientIds || !action.clientIds.length || action.clientIds.indexOf(state.clientId) === -1) { + return state; + } + return {}; + case 'REPLACE_BLOCKS': + { + if (action.clientIds.indexOf(state.clientId) === -1) { + return state; + } + const blockToSelect = action.blocks[action.indexToSelect] || action.blocks[action.blocks.length - 1]; + if (!blockToSelect) { + return {}; + } + if (blockToSelect.clientId === state.clientId) { + return state; + } + return { + clientId: blockToSelect.clientId + }; + } } + return state; } -module.exports = Parser - - -/***/ }), - -/***/ 4743: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/** + * Reducer returning the selection state. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function selection(state = {}, action) { + switch (action.type) { + case 'SELECTION_CHANGE': + if (action.clientId) { + return { + selectionStart: { + clientId: action.clientId, + attributeKey: action.attributeKey, + offset: action.startOffset + }, + selectionEnd: { + clientId: action.clientId, + attributeKey: action.attributeKey, + offset: action.endOffset + } + }; + } + return { + selectionStart: action.start || state.selectionStart, + selectionEnd: action.end || state.selectionEnd + }; + case 'RESET_SELECTION': + const { + selectionStart, + selectionEnd + } = action; + return { + selectionStart, + selectionEnd + }; + case 'MULTI_SELECT': + const { + start, + end + } = action; + if (start === state.selectionStart?.clientId && end === state.selectionEnd?.clientId) { + return state; + } + return { + selectionStart: { + clientId: start + }, + selectionEnd: { + clientId: end + } + }; + case 'RESET_BLOCKS': + const startClientId = state?.selectionStart?.clientId; + const endClientId = state?.selectionEnd?.clientId; -"use strict"; + // Do nothing if there's no selected block. + if (!startClientId && !endClientId) { + return state; + } + // If the start of the selection won't exist after reset, remove selection. + if (!action.blocks.some(block => block.clientId === startClientId)) { + return { + selectionStart: {}, + selectionEnd: {} + }; + } -let CssSyntaxError = __webpack_require__(8743) -let Declaration = __webpack_require__(5818) -let LazyResult = __webpack_require__(3993) -let Container = __webpack_require__(9795) -let Processor = __webpack_require__(5937) -let stringify = __webpack_require__(2530) -let fromJSON = __webpack_require__(3667) -let Document = __webpack_require__(3866) -let Warning = __webpack_require__(9871) -let Comment = __webpack_require__(9882) -let AtRule = __webpack_require__(2433) -let Result = __webpack_require__(2072) -let Input = __webpack_require__(9961) -let parse = __webpack_require__(9301) -let list = __webpack_require__(8446) -let Rule = __webpack_require__(5871) -let Root = __webpack_require__(3823) -let Node = __webpack_require__(8753) - -function postcss(...plugins) { - if (plugins.length === 1 && Array.isArray(plugins[0])) { - plugins = plugins[0] - } - return new Processor(plugins) -} - -postcss.plugin = function plugin(name, initializer) { - let warningPrinted = false - function creator(...args) { - // eslint-disable-next-line no-console - if (console && console.warn && !warningPrinted) { - warningPrinted = true - // eslint-disable-next-line no-console - console.warn( - name + - ': postcss.plugin was deprecated. Migration guide:\n' + - 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' - ) - if (process.env.LANG && process.env.LANG.startsWith('cn')) { - /* c8 ignore next 7 */ - // eslint-disable-next-line no-console - console.warn( - name + - ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + - 'https://www.w3ctech.com/topic/2226' - ) + // If the end of the selection won't exist after reset, collapse selection. + if (!action.blocks.some(block => block.clientId === endClientId)) { + return { + ...state, + selectionEnd: state.selectionStart + }; } - } - let transformer = initializer(...args) - transformer.postcssPlugin = name - transformer.postcssVersion = new Processor().version - return transformer } - - let cache - Object.defineProperty(creator, 'postcss', { - get() { - if (!cache) cache = creator() - return cache - } - }) - - creator.process = function (css, processOpts, pluginOpts) { - return postcss([creator(pluginOpts)]).process(css, processOpts) + const selectionStart = selectionHelper(state.selectionStart, action); + const selectionEnd = selectionHelper(state.selectionEnd, action); + if (selectionStart === state.selectionStart && selectionEnd === state.selectionEnd) { + return state; } - - return creator + return { + selectionStart, + selectionEnd + }; } -postcss.stringify = stringify -postcss.parse = parse -postcss.fromJSON = fromJSON -postcss.list = list - -postcss.comment = defaults => new Comment(defaults) -postcss.atRule = defaults => new AtRule(defaults) -postcss.decl = defaults => new Declaration(defaults) -postcss.rule = defaults => new Rule(defaults) -postcss.root = defaults => new Root(defaults) -postcss.document = defaults => new Document(defaults) - -postcss.CssSyntaxError = CssSyntaxError -postcss.Declaration = Declaration -postcss.Container = Container -postcss.Processor = Processor -postcss.Document = Document -postcss.Comment = Comment -postcss.Warning = Warning -postcss.AtRule = AtRule -postcss.Result = Result -postcss.Input = Input -postcss.Rule = Rule -postcss.Root = Root -postcss.Node = Node - -LazyResult.registerPostcss(postcss) - -module.exports = postcss -postcss.default = postcss - - -/***/ }), - -/***/ 2393: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(209) -let { existsSync, readFileSync } = __webpack_require__(4777) -let { dirname, join } = __webpack_require__(9830) - -function fromBase64(str) { - if (Buffer) { - return Buffer.from(str, 'base64').toString() - } else { - /* c8 ignore next 2 */ - return window.atob(str) +/** + * Reducer returning whether the user is multi-selecting. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function isMultiSelecting(state = false, action) { + switch (action.type) { + case 'START_MULTI_SELECT': + return true; + case 'STOP_MULTI_SELECT': + return false; } + return state; } -class PreviousMap { - constructor(css, opts) { - if (opts.map === false) return - this.loadAnnotation(css) - this.inline = this.startWith(this.annotation, 'data:') - - let prev = opts.map ? opts.map.prev : undefined - let text = this.loadMap(opts.from, prev) - if (!this.mapFile && opts.from) { - this.mapFile = opts.from - } - if (this.mapFile) this.root = dirname(this.mapFile) - if (text) this.text = text - } - - consumer() { - if (!this.consumerCache) { - this.consumerCache = new SourceMapConsumer(this.text) - } - return this.consumerCache - } - - decodeInline(text) { - let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/ - let baseUri = /^data:application\/json;base64,/ - let charsetUri = /^data:application\/json;charset=utf-?8,/ - let uri = /^data:application\/json,/ - - if (charsetUri.test(text) || uri.test(text)) { - return decodeURIComponent(text.substr(RegExp.lastMatch.length)) - } - - if (baseCharsetUri.test(text) || baseUri.test(text)) { - return fromBase64(text.substr(RegExp.lastMatch.length)) - } - - let encoding = text.match(/data:application\/json;([^,]+),/)[1] - throw new Error('Unsupported source map encoding ' + encoding) +/** + * Reducer returning whether selection is enabled. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function isSelectionEnabled(state = true, action) { + switch (action.type) { + case 'TOGGLE_SELECTION': + return action.isSelectionEnabled; } + return state; +} - getAnnotationURL(sourceMapString) { - return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() +/** + * Reducer returning the data needed to display a prompt when certain blocks + * are removed, or `false` if no such prompt is requested. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object|false} Data for removal prompt display, if any. + */ +function removalPromptData(state = false, action) { + switch (action.type) { + case 'DISPLAY_BLOCK_REMOVAL_PROMPT': + const { + clientIds, + selectPrevious, + blockNamesForPrompt + } = action; + return { + clientIds, + selectPrevious, + blockNamesForPrompt + }; + case 'CLEAR_BLOCK_REMOVAL_PROMPT': + return false; } + return state; +} - isMap(map) { - if (typeof map !== 'object') return false - return ( - typeof map.mappings === 'string' || - typeof map._mappings === 'string' || - Array.isArray(map.sections) - ) +/** + * Reducer returning any rules that a block editor may provide in order to + * prevent a user from accidentally removing certain blocks. These rules are + * then used to display a confirmation prompt to the user. For instance, in the + * Site Editor, the Query Loop block is important enough to warrant such + * confirmation. + * + * The data is a record whose keys are block types (e.g. 'core/query') and + * whose values are the explanation to be shown to users (e.g. 'Query Loop + * displays a list of posts or pages.'). + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Record} Updated state. + */ +function blockRemovalRules(state = false, action) { + switch (action.type) { + case 'SET_BLOCK_REMOVAL_RULES': + return action.rules; } + return state; +} - loadAnnotation(css) { - let comments = css.match(/\/\*\s*# sourceMappingURL=/gm) - if (!comments) return - - // sourceMappingURLs from comments, strings, etc. - let start = css.lastIndexOf(comments.pop()) - let end = css.indexOf('*/', start) - - if (start > -1 && end > -1) { - // Locate the last sourceMappingURL to avoid pickin - this.annotation = this.getAnnotationURL(css.substring(start, end)) - } +/** + * Reducer returning the initial block selection. + * + * Currently this in only used to restore the selection after block deletion and + * pasting new content.This reducer should eventually be removed in favour of setting + * selection directly. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {number|null} Initial position: 0, -1 or null. + */ +function initialPosition(state = null, action) { + if (action.type === 'REPLACE_BLOCKS' && action.initialPosition !== undefined) { + return action.initialPosition; + } else if (['MULTI_SELECT', 'SELECT_BLOCK', 'RESET_SELECTION', 'INSERT_BLOCKS', 'REPLACE_INNER_BLOCKS'].includes(action.type)) { + return action.initialPosition; } - - loadFile(path) { - this.root = dirname(path) - if (existsSync(path)) { - this.mapFile = path - return readFileSync(path, 'utf-8').toString().trim() - } + return state; +} +function blocksMode(state = {}, action) { + if (action.type === 'TOGGLE_BLOCK_MODE') { + const { + clientId + } = action; + return { + ...state, + [clientId]: state[clientId] && state[clientId] === 'html' ? 'visual' : 'html' + }; } + return state; +} - loadMap(file, prev) { - if (prev === false) return false +/** + * Reducer returning the block insertion point visibility, either null if there + * is not an explicit insertion point assigned, or an object of its `index` and + * `rootClientId`. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +function insertionPoint(state = null, action) { + switch (action.type) { + case 'SHOW_INSERTION_POINT': + { + const { + rootClientId, + index, + __unstableWithInserter, + operation + } = action; + const nextState = { + rootClientId, + index, + __unstableWithInserter, + operation + }; - if (prev) { - if (typeof prev === 'string') { - return prev - } else if (typeof prev === 'function') { - let prevPath = prev(file) - if (prevPath) { - let map = this.loadFile(prevPath) - if (!map) { - throw new Error( - 'Unable to load previous source map: ' + prevPath.toString() - ) - } - return map - } - } else if (prev instanceof SourceMapConsumer) { - return SourceMapGenerator.fromSourceMap(prev).toString() - } else if (prev instanceof SourceMapGenerator) { - return prev.toString() - } else if (this.isMap(prev)) { - return JSON.stringify(prev) - } else { - throw new Error( - 'Unsupported previous source map format: ' + prev.toString() - ) + // Bail out updates if the states are the same. + return es6_default()(state, nextState) ? state : nextState; } - } else if (this.inline) { - return this.decodeInline(this.annotation) - } else if (this.annotation) { - let map = this.annotation - if (file) map = join(dirname(file), map) - return this.loadFile(map) - } - } - - startWith(string, start) { - if (!string) return false - return string.substr(0, start.length) === start + case 'HIDE_INSERTION_POINT': + return null; } + return state; +} - withContent() { - return !!( - this.consumer().sourcesContent && - this.consumer().sourcesContent.length > 0 - ) +/** + * Reducer returning whether the post blocks match the defined template or not. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +function template(state = { + isValid: true +}, action) { + switch (action.type) { + case 'SET_TEMPLATE_VALIDITY': + return { + ...state, + isValid: action.isValid + }; } + return state; } -module.exports = PreviousMap -PreviousMap.default = PreviousMap - - -/***/ }), - -/***/ 5937: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let NoWorkResult = __webpack_require__(2882) -let LazyResult = __webpack_require__(3993) -let Document = __webpack_require__(3866) -let Root = __webpack_require__(3823) +/** + * Reducer returning the editor setting. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +function settings(state = SETTINGS_DEFAULTS, action) { + switch (action.type) { + case 'UPDATE_SETTINGS': + if (action.reset) { + return { + ...SETTINGS_DEFAULTS, + ...action.settings + }; + } + return { + ...state, + ...action.settings + }; + } + return state; +} -class Processor { - constructor(plugins = []) { - this.version = '8.4.31' - this.plugins = this.normalize(plugins) +/** + * Reducer returning the user preferences. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {string} Updated state. + */ +function preferences(state = PREFERENCES_DEFAULTS, action) { + switch (action.type) { + case 'INSERT_BLOCKS': + case 'REPLACE_BLOCKS': + return action.blocks.reduce((prevState, block) => { + const { + attributes, + name: blockName + } = block; + let id = blockName; + // If a block variation match is found change the name to be the same with the + // one that is used for block variations in the Inserter (`getItemFromVariation`). + const match = (0,external_wp_data_namespaceObject.select)(external_wp_blocks_namespaceObject.store).getActiveBlockVariation(blockName, attributes); + if (match?.name) { + id += '/' + match.name; + } + if (blockName === 'core/block') { + id += '/' + attributes.ref; + } + return { + ...prevState, + insertUsage: { + ...prevState.insertUsage, + [id]: { + time: action.time, + count: prevState.insertUsage[id] ? prevState.insertUsage[id].count + 1 : 1 + } + } + }; + }, state); } + return state; +} - normalize(plugins) { - let normalized = [] - for (let i of plugins) { - if (i.postcss === true) { - i = i() - } else if (i.postcss) { - i = i.postcss +/** + * Reducer returning an object where each key is a block client ID, its value + * representing the settings for its nested blocks. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +const blockListSettings = (state = {}, action) => { + switch (action.type) { + // Even if the replaced blocks have the same client ID, our logic + // should correct the state. + case 'REPLACE_BLOCKS': + case 'REMOVE_BLOCKS': + { + return Object.fromEntries(Object.entries(state).filter(([id]) => !action.clientIds.includes(id))); } - - if (typeof i === 'object' && Array.isArray(i.plugins)) { - normalized = normalized.concat(i.plugins) - } else if (typeof i === 'object' && i.postcssPlugin) { - normalized.push(i) - } else if (typeof i === 'function') { - normalized.push(i) - } else if (typeof i === 'object' && (i.parse || i.stringify)) { - if (false) {} - } else { - throw new Error(i + ' is not a PostCSS plugin') + case 'UPDATE_BLOCK_LIST_SETTINGS': + { + const { + clientId + } = action; + if (!action.settings) { + if (state.hasOwnProperty(clientId)) { + const { + [clientId]: removedBlock, + ...restBlocks + } = state; + return restBlocks; + } + return state; + } + if (es6_default()(state[clientId], action.settings)) { + return state; + } + return { + ...state, + [clientId]: action.settings + }; } - } - return normalized } + return state; +}; - process(css, opts = {}) { - if ( - this.plugins.length === 0 && - typeof opts.parser === 'undefined' && - typeof opts.stringifier === 'undefined' && - typeof opts.syntax === 'undefined' - ) { - return new NoWorkResult(this, css, opts) - } else { - return new LazyResult(this, css, opts) - } +/** + * Reducer returning which mode is enabled. + * + * @param {string} state Current state. + * @param {Object} action Dispatched action. + * + * @return {string} Updated state. + */ +function editorMode(state = 'edit', action) { + // Let inserting block in navigation mode always trigger Edit mode. + if (action.type === 'INSERT_BLOCKS' && state === 'navigation') { + return 'edit'; } - - use(plugin) { - this.plugins = this.plugins.concat(this.normalize([plugin])) - return this + if (action.type === 'SET_EDITOR_MODE') { + return action.mode; } + return state; } -module.exports = Processor -Processor.default = Processor - -Root.registerProcessor(Processor) -Document.registerProcessor(Processor) - - -/***/ }), - -/***/ 2072: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let Warning = __webpack_require__(9871) - -class Result { - constructor(processor, root, opts) { - this.processor = processor - this.messages = [] - this.root = root - this.opts = opts - this.css = undefined - this.map = undefined +/** + * Reducer returning whether the block moving mode is enabled or not. + * + * @param {string|null} state Current state. + * @param {Object} action Dispatched action. + * + * @return {string|null} Updated state. + */ +function hasBlockMovingClientId(state = null, action) { + if (action.type === 'SET_BLOCK_MOVING_MODE') { + return action.hasBlockMovingClientId; } - - toString() { - return this.css + if (action.type === 'SET_EDITOR_MODE') { + return null; } + return state; +} - warn(text, opts = {}) { - if (!opts.plugin) { - if (this.lastPlugin && this.lastPlugin.postcssPlugin) { - opts.plugin = this.lastPlugin.postcssPlugin +/** + * Reducer return an updated state representing the most recent block attribute + * update. The state is structured as an object where the keys represent the + * client IDs of blocks, the values a subset of attributes from the most recent + * block update. The state is always reset to null if the last action is + * anything other than an attributes update. + * + * @param {Object} state Current state. + * @param {Object} action Action object. + * + * @return {[string,Object]} Updated state. + */ +function lastBlockAttributesChange(state = null, action) { + switch (action.type) { + case 'UPDATE_BLOCK': + if (!action.updates.attributes) { + break; } - } - - let warning = new Warning(text, opts) - this.messages.push(warning) - - return warning + return { + [action.clientId]: action.updates.attributes + }; + case 'UPDATE_BLOCK_ATTRIBUTES': + return action.clientIds.reduce((accumulator, id) => ({ + ...accumulator, + [id]: action.uniqueByBlock ? action.attributes[id] : action.attributes + }), {}); } + return state; +} - warnings() { - return this.messages.filter(i => i.type === 'warning') +/** + * Reducer returning current highlighted block. + * + * @param {boolean} state Current highlighted block. + * @param {Object} action Dispatched action. + * + * @return {string} Updated state. + */ +function highlightedBlock(state, action) { + switch (action.type) { + case 'TOGGLE_BLOCK_HIGHLIGHT': + const { + clientId, + isHighlighted + } = action; + if (isHighlighted) { + return clientId; + } else if (state === clientId) { + return null; + } + return state; + case 'SELECT_BLOCK': + if (action.clientId !== state) { + return null; + } } + return state; +} - get content() { - return this.css +/** + * Reducer returning the block insertion event list state. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +function lastBlockInserted(state = {}, action) { + switch (action.type) { + case 'INSERT_BLOCKS': + case 'REPLACE_BLOCKS': + if (!action.blocks.length) { + return state; + } + const clientIds = action.blocks.map(block => { + return block.clientId; + }); + const source = action.meta?.source; + return { + clientIds, + source + }; + case 'RESET_BLOCKS': + return {}; } + return state; } -module.exports = Result -Result.default = Result - - -/***/ }), - -/***/ 3823: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -let Container = __webpack_require__(9795) - -let LazyResult, Processor - -class Root extends Container { - constructor(defaults) { - super(defaults) - this.type = 'root' - if (!this.nodes) this.nodes = [] +/** + * Reducer returning the block that is eding temporarily edited as blocks. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +function temporarilyEditingAsBlocks(state = '', action) { + if (action.type === 'SET_TEMPORARILY_EDITING_AS_BLOCKS') { + return action.temporarilyEditingAsBlocks; } + return state; +} - normalize(child, sample, type) { - let nodes = super.normalize(child) - - if (sample) { - if (type === 'prepend') { - if (this.nodes.length > 1) { - sample.raws.before = this.nodes[1].raws.before - } else { - delete sample.raws.before - } - } else if (this.first !== sample) { - for (let node of nodes) { - node.raws.before = sample.raws.before - } +/** + * Reducer returning a map of block client IDs to block editing modes. + * + * @param {Map} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Map} Updated state. + */ +function blockEditingModes(state = new Map(), action) { + switch (action.type) { + case 'SET_BLOCK_EDITING_MODE': + return new Map(state).set(action.clientId, action.mode); + case 'UNSET_BLOCK_EDITING_MODE': + { + const newState = new Map(state); + newState.delete(action.clientId); + return newState; + } + case 'RESET_BLOCKS': + { + return state.has('') ? new Map().set('', state.get('')) : state; } - } - - return nodes } + return state; +} - removeChild(child, ignore) { - let index = this.index(child) - - if (!ignore && index === 0 && this.nodes.length > 1) { - this.nodes[1].raws.before = this.nodes[index].raws.before - } - - return super.removeChild(child) +/** + * Reducer returning the clientId of the block settings menu that is currently open. + * + * @param {string|null} state Current state. + * @param {Object} action Dispatched action. + * + * @return {string|null} Updated state. + */ +function openedBlockSettingsMenu(state = null, action) { + if ('SET_OPENED_BLOCK_SETTINGS_MENU' === action.type) { + var _action$clientId; + return (_action$clientId = action?.clientId) !== null && _action$clientId !== void 0 ? _action$clientId : null; } + return state; +} - toResult(opts = {}) { - let lazy = new LazyResult(new Processor(), this, opts) - return lazy.stringify() +/** + * Reducer returning a map of style IDs to style overrides. + * + * @param {Map} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Map} Updated state. + */ +function styleOverrides(state = new Map(), action) { + switch (action.type) { + case 'SET_STYLE_OVERRIDE': + return new Map(state).set(action.id, action.style); + case 'DELETE_STYLE_OVERRIDE': + { + const newState = new Map(state); + newState.delete(action.id); + return newState; + } } + return state; } -Root.registerLazyResult = dependant => { - LazyResult = dependant +/** + * Reducer returning a map of the registered inserter media categories. + * + * @param {Array} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Array} Updated state. + */ +function registeredInserterMediaCategories(state = [], action) { + switch (action.type) { + case 'REGISTER_INSERTER_MEDIA_CATEGORY': + return [...state, action.category]; + } + return state; } +const combinedReducers = (0,external_wp_data_namespaceObject.combineReducers)({ + blocks, + isTyping, + isBlockInterfaceHidden, + draggedBlocks, + selection, + isMultiSelecting, + isSelectionEnabled, + initialPosition, + blocksMode, + blockListSettings, + insertionPoint, + template, + settings, + preferences, + lastBlockAttributesChange, + editorMode, + hasBlockMovingClientId, + highlightedBlock, + lastBlockInserted, + temporarilyEditingAsBlocks, + blockVisibility, + blockEditingModes, + styleOverrides, + removalPromptData, + blockRemovalRules, + openedBlockSettingsMenu, + registeredInserterMediaCategories +}); +function withAutomaticChangeReset(reducer) { + return (state, action) => { + const nextState = reducer(state, action); + if (!state) { + return nextState; + } -Root.registerProcessor = dependant => { - Processor = dependant -} + // Take over the last value without creating a new reference. + nextState.automaticChangeStatus = state.automaticChangeStatus; + if (action.type === 'MARK_AUTOMATIC_CHANGE') { + return { + ...nextState, + automaticChangeStatus: 'pending' + }; + } + if (action.type === 'MARK_AUTOMATIC_CHANGE_FINAL' && state.automaticChangeStatus === 'pending') { + return { + ...nextState, + automaticChangeStatus: 'final' + }; + } -module.exports = Root -Root.default = Root + // If there's a change that doesn't affect blocks or selection, maintain + // the current status. + if (nextState.blocks === state.blocks && nextState.selection === state.selection) { + return nextState; + } -Container.registerRoot(Root) + // As long as the state is not final, ignore any selection changes. + if (nextState.automaticChangeStatus !== 'final' && nextState.selection !== state.selection) { + return nextState; + } + // Reset the status if blocks change or selection changes (when status is final). + return { + ...nextState, + automaticChangeStatus: undefined + }; + }; +} +/* harmony default export */ var reducer = (withAutomaticChangeReset(combinedReducers)); -/***/ }), +;// CONCATENATED MODULE: ./node_modules/rememo/rememo.js -/***/ 5871: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -"use strict"; +/** @typedef {(...args: any[]) => *[]} GetDependants */ +/** @typedef {() => void} Clear */ -let Container = __webpack_require__(9795) -let list = __webpack_require__(8446) +/** + * @typedef {{ + * getDependants: GetDependants, + * clear: Clear + * }} EnhancedSelector + */ -class Rule extends Container { - constructor(defaults) { - super(defaults) - this.type = 'rule' - if (!this.nodes) this.nodes = [] - } +/** + * Internal cache entry. + * + * @typedef CacheNode + * + * @property {?CacheNode|undefined} [prev] Previous node. + * @property {?CacheNode|undefined} [next] Next node. + * @property {*[]} args Function arguments for cache entry. + * @property {*} val Function result. + */ - get selectors() { - return list.comma(this.selector) - } +/** + * @typedef Cache + * + * @property {Clear} clear Function to clear cache. + * @property {boolean} [isUniqueByDependants] Whether dependants are valid in + * considering cache uniqueness. A cache is unique if dependents are all arrays + * or objects. + * @property {CacheNode?} [head] Cache head. + * @property {*[]} [lastDependants] Dependants from previous invocation. + */ - set selectors(values) { - let match = this.selector ? this.selector.match(/,\s*/) : null - let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') - this.selector = values.join(sep) - } -} +/** + * Arbitrary value used as key for referencing cache object in WeakMap tree. + * + * @type {{}} + */ +var LEAF_KEY = {}; -module.exports = Rule -Rule.default = Rule +/** + * Returns the first argument as the sole entry in an array. + * + * @template T + * + * @param {T} value Value to return. + * + * @return {[T]} Value returned as entry in array. + */ +function arrayOf(value) { + return [value]; +} -Container.registerRule(Rule) +/** + * Returns true if the value passed is object-like, or false otherwise. A value + * is object-like if it can support property assignment, e.g. object or array. + * + * @param {*} value Value to test. + * + * @return {boolean} Whether value is object-like. + */ +function isObjectLike(value) { + return !!value && 'object' === typeof value; +} +/** + * Creates and returns a new cache object. + * + * @return {Cache} Cache object. + */ +function createCache() { + /** @type {Cache} */ + var cache = { + clear: function () { + cache.head = null; + }, + }; -/***/ }), + return cache; +} -/***/ 3951: -/***/ (function(module) { +/** + * Returns true if entries within the two arrays are strictly equal by + * reference from a starting index. + * + * @param {*[]} a First array. + * @param {*[]} b Second array. + * @param {number} fromIndex Index from which to start comparison. + * + * @return {boolean} Whether arrays are shallowly equal. + */ +function isShallowEqual(a, b, fromIndex) { + var i; -"use strict"; + if (a.length !== b.length) { + return false; + } + for (i = fromIndex; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } -const DEFAULT_RAW = { - after: '\n', - beforeClose: '\n', - beforeComment: '\n', - beforeDecl: '\n', - beforeOpen: ' ', - beforeRule: '\n', - colon: ': ', - commentLeft: ' ', - commentRight: ' ', - emptyBody: '', - indent: ' ', - semicolon: false + return true; } -function capitalize(str) { - return str[0].toUpperCase() + str.slice(1) -} - -class Stringifier { - constructor(builder) { - this.builder = builder - } - - atrule(node, semicolon) { - let name = '@' + node.name - let params = node.params ? this.rawValue(node, 'params') : '' - - if (typeof node.raws.afterName !== 'undefined') { - name += node.raws.afterName - } else if (params) { - name += ' ' - } - - if (node.nodes) { - this.block(node, name + params) - } else { - let end = (node.raws.between || '') + (semicolon ? ';' : '') - this.builder(name + params + end, node) - } - } - - beforeAfter(node, detect) { - let value - if (node.type === 'decl') { - value = this.raw(node, null, 'beforeDecl') - } else if (node.type === 'comment') { - value = this.raw(node, null, 'beforeComment') - } else if (detect === 'before') { - value = this.raw(node, null, 'beforeRule') - } else { - value = this.raw(node, null, 'beforeClose') - } +/** + * Returns a memoized selector function. The getDependants function argument is + * called before the memoized selector and is expected to return an immutable + * reference or array of references on which the selector depends for computing + * its own return value. The memoize cache is preserved only as long as those + * dependant references remain the same. If getDependants returns a different + * reference(s), the cache is cleared and the selector value regenerated. + * + * @template {(...args: *[]) => *} S + * + * @param {S} selector Selector function. + * @param {GetDependants=} getDependants Dependant getter returning an array of + * references used in cache bust consideration. + */ +/* harmony default export */ function rememo(selector, getDependants) { + /** @type {WeakMap<*,*>} */ + var rootCache; - let buf = node.parent - let depth = 0 - while (buf && buf.type !== 'root') { - depth += 1 - buf = buf.parent - } + /** @type {GetDependants} */ + var normalizedGetDependants = getDependants ? getDependants : arrayOf; - if (value.includes('\n')) { - let indent = this.raw(node, null, 'indent') - if (indent.length) { - for (let step = 0; step < depth; step++) value += indent - } - } + /** + * Returns the cache for a given dependants array. When possible, a WeakMap + * will be used to create a unique cache for each set of dependants. This + * is feasible due to the nature of WeakMap in allowing garbage collection + * to occur on entries where the key object is no longer referenced. Since + * WeakMap requires the key to be an object, this is only possible when the + * dependant is object-like. The root cache is created as a hierarchy where + * each top-level key is the first entry in a dependants set, the value a + * WeakMap where each key is the next dependant, and so on. This continues + * so long as the dependants are object-like. If no dependants are object- + * like, then the cache is shared across all invocations. + * + * @see isObjectLike + * + * @param {*[]} dependants Selector dependants. + * + * @return {Cache} Cache object. + */ + function getCache(dependants) { + var caches = rootCache, + isUniqueByDependants = true, + i, + dependant, + map, + cache; - return value - } + for (i = 0; i < dependants.length; i++) { + dependant = dependants[i]; - block(node, start) { - let between = this.raw(node, 'between', 'beforeOpen') - this.builder(start + between + '{', node, 'start') + // Can only compose WeakMap from object-like key. + if (!isObjectLike(dependant)) { + isUniqueByDependants = false; + break; + } - let after - if (node.nodes && node.nodes.length) { - this.body(node) - after = this.raw(node, 'after') - } else { - after = this.raw(node, 'after', 'emptyBody') - } + // Does current segment of cache already have a WeakMap? + if (caches.has(dependant)) { + // Traverse into nested WeakMap. + caches = caches.get(dependant); + } else { + // Create, set, and traverse into a new one. + map = new WeakMap(); + caches.set(dependant, map); + caches = map; + } + } - if (after) this.builder(after) - this.builder('}', node, 'end') - } + // We use an arbitrary (but consistent) object as key for the last item + // in the WeakMap to serve as our running cache. + if (!caches.has(LEAF_KEY)) { + cache = createCache(); + cache.isUniqueByDependants = isUniqueByDependants; + caches.set(LEAF_KEY, cache); + } - body(node) { - let last = node.nodes.length - 1 - while (last > 0) { - if (node.nodes[last].type !== 'comment') break - last -= 1 - } + return caches.get(LEAF_KEY); + } - let semicolon = this.raw(node, 'semicolon') - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i] - let before = this.raw(child, 'before') - if (before) this.builder(before) - this.stringify(child, last !== i || semicolon) - } - } + /** + * Resets root memoization cache. + */ + function clear() { + rootCache = new WeakMap(); + } - comment(node) { - let left = this.raw(node, 'left', 'commentLeft') - let right = this.raw(node, 'right', 'commentRight') - this.builder('/*' + left + node.text + right + '*/', node) - } + /* eslint-disable jsdoc/check-param-names */ + /** + * The augmented selector call, considering first whether dependants have + * changed before passing it to underlying memoize function. + * + * @param {*} source Source object for derivation. + * @param {...*} extraArgs Additional arguments to pass to selector. + * + * @return {*} Selector result. + */ + /* eslint-enable jsdoc/check-param-names */ + function callSelector(/* source, ...extraArgs */) { + var len = arguments.length, + cache, + node, + i, + args, + dependants; - decl(node, semicolon) { - let between = this.raw(node, 'between', 'colon') - let string = node.prop + between + this.rawValue(node, 'value') + // Create copy of arguments (avoid leaking deoptimization). + args = new Array(len); + for (i = 0; i < len; i++) { + args[i] = arguments[i]; + } - if (node.important) { - string += node.raws.important || ' !important' - } + dependants = normalizedGetDependants.apply(null, args); + cache = getCache(dependants); - if (semicolon) string += ';' - this.builder(string, node) - } + // If not guaranteed uniqueness by dependants (primitive type), shallow + // compare against last dependants and, if references have changed, + // destroy cache to recalculate result. + if (!cache.isUniqueByDependants) { + if ( + cache.lastDependants && + !isShallowEqual(dependants, cache.lastDependants, 0) + ) { + cache.clear(); + } - document(node) { - this.body(node) - } + cache.lastDependants = dependants; + } - raw(node, own, detect) { - let value - if (!detect) detect = own + node = cache.head; + while (node) { + // Check whether node arguments match arguments + if (!isShallowEqual(node.args, args, 1)) { + node = node.next; + continue; + } - // Already had - if (own) { - value = node.raws[own] - if (typeof value !== 'undefined') return value - } + // At this point we can assume we've found a match - let parent = node.parent + // Surface matched node to head if not already + if (node !== cache.head) { + // Adjust siblings to point to each other. + /** @type {CacheNode} */ (node.prev).next = node.next; + if (node.next) { + node.next.prev = node.prev; + } - if (detect === 'before') { - // Hack for first rule in CSS - if (!parent || (parent.type === 'root' && parent.first === node)) { - return '' - } + node.next = cache.head; + node.prev = null; + /** @type {CacheNode} */ (cache.head).prev = node; + cache.head = node; + } - // `root` nodes in `document` should use only their own raws - if (parent && parent.type === 'document') { - return '' - } - } + // Return immediately + return node.val; + } - // Floating child without parent - if (!parent) return DEFAULT_RAW[detect] + // No cached value found. Continue to insertion phase: - // Detect style by other nodes - let root = node.root() - if (!root.rawCache) root.rawCache = {} - if (typeof root.rawCache[detect] !== 'undefined') { - return root.rawCache[detect] - } + node = /** @type {CacheNode} */ ({ + // Generate the result from original function + val: selector.apply(null, args), + }); - if (detect === 'before' || detect === 'after') { - return this.beforeAfter(node, detect) - } else { - let method = 'raw' + capitalize(detect) - if (this[method]) { - value = this[method](root, node) - } else { - root.walk(i => { - value = i.raws[own] - if (typeof value !== 'undefined') return false - }) - } - } + // Avoid including the source object in the cache. + args[0] = null; + node.args = args; - if (typeof value === 'undefined') value = DEFAULT_RAW[detect] + // Don't need to check whether node is already head, since it would + // have been returned above already if it was - root.rawCache[detect] = value - return value - } + // Shift existing head down list + if (cache.head) { + cache.head.prev = node; + node.next = cache.head; + } - rawBeforeClose(root) { - let value - root.walk(i => { - if (i.nodes && i.nodes.length > 0) { - if (typeof i.raws.after !== 'undefined') { - value = i.raws.after - if (value.includes('\n')) { - value = value.replace(/[^\n]+$/, '') - } - return false - } - } - }) - if (value) value = value.replace(/\S/g, '') - return value - } + cache.head = node; - rawBeforeComment(root, node) { - let value - root.walkComments(i => { - if (typeof i.raws.before !== 'undefined') { - value = i.raws.before - if (value.includes('\n')) { - value = value.replace(/[^\n]+$/, '') - } - return false - } - }) - if (typeof value === 'undefined') { - value = this.raw(node, null, 'beforeDecl') - } else if (value) { - value = value.replace(/\S/g, '') - } - return value - } + return node.val; + } - rawBeforeDecl(root, node) { - let value - root.walkDecls(i => { - if (typeof i.raws.before !== 'undefined') { - value = i.raws.before - if (value.includes('\n')) { - value = value.replace(/[^\n]+$/, '') - } - return false - } - }) - if (typeof value === 'undefined') { - value = this.raw(node, null, 'beforeRule') - } else if (value) { - value = value.replace(/\S/g, '') - } - return value - } + callSelector.getDependants = normalizedGetDependants; + callSelector.clear = clear; + clear(); - rawBeforeOpen(root) { - let value - root.walk(i => { - if (i.type !== 'decl') { - value = i.raws.between - if (typeof value !== 'undefined') return false - } - }) - return value - } + return /** @type {S & EnhancedSelector} */ (callSelector); +} - rawBeforeRule(root) { - let value - root.walk(i => { - if (i.nodes && (i.parent !== root || root.first !== i)) { - if (typeof i.raws.before !== 'undefined') { - value = i.raws.before - if (value.includes('\n')) { - value = value.replace(/[^\n]+$/, '') - } - return false - } - } - }) - if (value) value = value.replace(/\S/g, '') - return value - } +;// CONCATENATED MODULE: external ["wp","primitives"] +var external_wp_primitives_namespaceObject = window["wp"]["primitives"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js - rawColon(root) { - let value - root.walkDecls(i => { - if (typeof i.raws.between !== 'undefined') { - value = i.raws.between.replace(/[^\s:]/g, '') - return false - } - }) - return value - } +/** + * WordPress dependencies + */ - rawEmptyBody(root) { - let value - root.walk(i => { - if (i.nodes && i.nodes.length === 0) { - value = i.raws.after - if (typeof value !== 'undefined') return false - } - }) - return value - } - - rawIndent(root) { - if (root.raws.indent) return root.raws.indent - let value - root.walk(i => { - let p = i.parent - if (p && p !== root && p.parent && p.parent === root) { - if (typeof i.raws.before !== 'undefined') { - let parts = i.raws.before.split('\n') - value = parts[parts.length - 1] - value = value.replace(/\S/g, '') - return false - } - } - }) - return value - } +const symbol = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" +})); +/* harmony default export */ var library_symbol = (symbol); - rawSemicolon(root) { - let value - root.walk(i => { - if (i.nodes && i.nodes.length && i.last.type === 'decl') { - value = i.raws.semicolon - if (typeof value !== 'undefined') return false - } - }) - return value - } +;// CONCATENATED MODULE: external ["wp","richText"] +var external_wp_richText_namespaceObject = window["wp"]["richText"]; +;// CONCATENATED MODULE: external ["wp","deprecated"] +var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"]; +var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/utils.js +/** + * Helper function that maps attribute definition properties to the + * ones used by RichText utils like `create, toHTMLString, etc..`. + * + * @param {Object} attributeDefinition A block's attribute definition object. + * @return {Object} The mapped object. + */ +function mapRichTextSettings(attributeDefinition) { + const { + __unstablePreserveWhiteSpace: preserveWhiteSpace + } = attributeDefinition; + return { + preserveWhiteSpace + }; +} - rawValue(node, prop) { - let value = node[prop] - let raw = node.raws[prop] - if (raw && raw.value === value) { - return raw.raw +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/sorting.js +/** + * Recursive stable sorting comparator function. + * + * @param {string|Function} field Field to sort by. + * @param {Array} items Items to sort. + * @param {string} order Order, 'asc' or 'desc'. + * @return {Function} Comparison function to be used in a `.sort()`. + */ +const comparator = (field, items, order) => { + return (a, b) => { + let cmpA, cmpB; + if (typeof field === 'function') { + cmpA = field(a); + cmpB = field(b); + } else { + cmpA = a[field]; + cmpB = b[field]; } - - return value - } - - root(node) { - this.body(node) - if (node.raws.after) this.builder(node.raws.after) - } - - rule(node) { - this.block(node, this.rawValue(node, 'selector')) - if (node.raws.ownSemicolon) { - this.builder(node.raws.ownSemicolon, node, 'end') + if (cmpA > cmpB) { + return order === 'asc' ? 1 : -1; + } else if (cmpB > cmpA) { + return order === 'asc' ? -1 : 1; } - } + const orderA = items.findIndex(item => item === a); + const orderB = items.findIndex(item => item === b); - stringify(node, semicolon) { - /* c8 ignore start */ - if (!this[node.type]) { - throw new Error( - 'Unknown AST node type ' + - node.type + - '. ' + - 'Maybe you need to change PostCSS stringifier.' - ) + // Stable sort: maintaining original array order + if (orderA > orderB) { + return 1; + } else if (orderB > orderA) { + return -1; } - /* c8 ignore stop */ - this[node.type](node, semicolon) - } -} - -module.exports = Stringifier -Stringifier.default = Stringifier - + return 0; + }; +}; -/***/ }), +/** + * Order items by a certain key. + * Supports decorator functions that allow complex picking of a comparison field. + * Sorts in ascending order by default, but supports descending as well. + * Stable sort - maintains original order of equal items. + * + * @param {Array} items Items to order. + * @param {string|Function} field Field to order by. + * @param {string} order Sorting order, `asc` or `desc`. + * @return {Array} Sorted items. + */ +function orderBy(items, field, order = 'asc') { + return items.concat().sort(comparator(field, items, order)); +} -/***/ 2530: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js +/** + * External dependencies + */ -"use strict"; +/** + * WordPress dependencies + */ -let Stringifier = __webpack_require__(3951) -function stringify(node, builder) { - let str = new Stringifier(builder) - str.stringify(node) -} -module.exports = stringify -stringify.default = stringify -/***/ }), -/***/ 3719: -/***/ (function(module) { -"use strict"; +/** + * Internal dependencies + */ -module.exports.isClean = Symbol('isClean') -module.exports.my = Symbol('my') +/** + * A block selection object. + * + * @typedef {Object} WPBlockSelection + * + * @property {string} clientId A block client ID. + * @property {string} attributeKey A block attribute key. + * @property {number} offset An attribute value offset, based on the rich + * text value. See `wp.richText.create`. + */ -/***/ }), +// Module constants. +const MILLISECONDS_PER_HOUR = 3600 * 1000; +const MILLISECONDS_PER_DAY = 24 * 3600 * 1000; +const MILLISECONDS_PER_WEEK = 7 * 24 * 3600 * 1000; -/***/ 9215: -/***/ (function(module) { +/** + * Shared reference to an empty array for cases where it is important to avoid + * returning a new array reference on every invocation, as in a connected or + * other pure component which performs `shouldComponentUpdate` check on props. + * This should be used as a last resort, since the normalized data should be + * maintained by the reducer result in state. + * + * @type {Array} + */ +const EMPTY_ARRAY = []; -"use strict"; +/** + * Shared reference to an empty Set for cases where it is important to avoid + * returning a new Set reference on every invocation, as in a connected or + * other pure component which performs `shouldComponentUpdate` check on props. + * This should be used as a last resort, since the normalized data should be + * maintained by the reducer result in state. + * + * @type {Set} + */ +const EMPTY_SET = new Set(); +/** + * Returns a block's name given its client ID, or null if no block exists with + * the client ID. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {string} Block name. + */ +function getBlockName(state, clientId) { + const block = state.blocks.byClientId.get(clientId); + const socialLinkName = 'core/social-link'; + if (external_wp_element_namespaceObject.Platform.OS !== 'web' && block?.name === socialLinkName) { + const attributes = state.blocks.attributes.get(clientId); + const { + service + } = attributes !== null && attributes !== void 0 ? attributes : {}; + return service ? `${socialLinkName}-${service}` : socialLinkName; + } + return block ? block.name : null; +} -const SINGLE_QUOTE = "'".charCodeAt(0) -const DOUBLE_QUOTE = '"'.charCodeAt(0) -const BACKSLASH = '\\'.charCodeAt(0) -const SLASH = '/'.charCodeAt(0) -const NEWLINE = '\n'.charCodeAt(0) -const SPACE = ' '.charCodeAt(0) -const FEED = '\f'.charCodeAt(0) -const TAB = '\t'.charCodeAt(0) -const CR = '\r'.charCodeAt(0) -const OPEN_SQUARE = '['.charCodeAt(0) -const CLOSE_SQUARE = ']'.charCodeAt(0) -const OPEN_PARENTHESES = '('.charCodeAt(0) -const CLOSE_PARENTHESES = ')'.charCodeAt(0) -const OPEN_CURLY = '{'.charCodeAt(0) -const CLOSE_CURLY = '}'.charCodeAt(0) -const SEMICOLON = ';'.charCodeAt(0) -const ASTERISK = '*'.charCodeAt(0) -const COLON = ':'.charCodeAt(0) -const AT = '@'.charCodeAt(0) - -const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g -const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g -const RE_BAD_BRACKET = /.[\r\n"'(/\\]/ -const RE_HEX_ESCAPE = /[\da-f]/i - -module.exports = function tokenizer(input, options = {}) { - let css = input.css.valueOf() - let ignore = options.ignoreErrors - - let code, next, quote, content, escape - let escaped, escapePos, prev, n, currentToken - - let length = css.length - let pos = 0 - let buffer = [] - let returned = [] +/** + * Returns whether a block is valid or not. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Is Valid. + */ +function isBlockValid(state, clientId) { + const block = state.blocks.byClientId.get(clientId); + return !!block && block.isValid; +} - function position() { - return pos +/** + * Returns a block's attributes given its client ID, or null if no block exists with + * the client ID. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {Object?} Block attributes. + */ +function getBlockAttributes(state, clientId) { + const block = state.blocks.byClientId.get(clientId); + if (!block) { + return null; } + return state.blocks.attributes.get(clientId); +} - function unclosed(what) { - throw input.error('Unclosed ' + what, pos) +/** + * Returns a block given its client ID. This is a parsed copy of the block, + * containing its `blockName`, `clientId`, and current `attributes` state. This + * is not the block's registration settings, which must be retrieved from the + * blocks module registration store. + * + * getBlock recurses through its inner blocks until all its children blocks have + * been retrieved. Note that getBlock will not return the child inner blocks of + * an inner block controller. This is because an inner block controller syncs + * itself with its own entity, and should therefore not be included with the + * blocks of a different entity. For example, say you call `getBlocks( TP )` to + * get the blocks of a template part. If another template part is a child of TP, + * then the nested template part's child blocks will not be returned. This way, + * the template block itself is considered part of the parent, but the children + * are not. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {Object} Parsed block object. + */ +function getBlock(state, clientId) { + if (!state.blocks.byClientId.has(clientId)) { + return null; } - - function endOfFile() { - return returned.length === 0 && pos >= length + return state.blocks.tree.get(clientId); +} +const __unstableGetBlockWithoutInnerBlocks = rememo((state, clientId) => { + if (!state.blocks.byClientId.has(clientId)) { + return null; } + return { + ...state.blocks.byClientId.get(clientId), + attributes: getBlockAttributes(state, clientId) + }; +}, (state, clientId) => [state.blocks.byClientId.get(clientId), state.blocks.attributes.get(clientId)]); - function nextToken(opts) { - if (returned.length) return returned.pop() - if (pos >= length) return - - let ignoreUnclosed = opts ? opts.ignoreUnclosed : false - - code = css.charCodeAt(pos) +/** + * Returns all block objects for the current post being edited as an array in + * the order they appear in the post. Note that this will exclude child blocks + * of nested inner block controllers. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {Object[]} Post blocks. + */ +function getBlocks(state, rootClientId) { + const treeKey = !rootClientId || !areInnerBlocksControlled(state, rootClientId) ? rootClientId || '' : 'controlled||' + rootClientId; + return state.blocks.tree.get(treeKey)?.innerBlocks || EMPTY_ARRAY; +} - switch (code) { - case NEWLINE: - case SPACE: - case TAB: - case CR: - case FEED: { - next = pos - do { - next += 1 - code = css.charCodeAt(next) - } while ( - code === SPACE || - code === NEWLINE || - code === TAB || - code === CR || - code === FEED - ) +/** + * Returns a stripped down block object containing only its client ID, + * and its inner blocks' client IDs. + * + * @deprecated + * + * @param {Object} state Editor state. + * @param {string} clientId Client ID of the block to get. + * + * @return {Object} Client IDs of the post blocks. + */ +const __unstableGetClientIdWithClientIdsTree = rememo((state, clientId) => { + external_wp_deprecated_default()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdWithClientIdsTree", { + since: '6.3', + version: '6.5' + }); + return { + clientId, + innerBlocks: __unstableGetClientIdsTree(state, clientId) + }; +}, state => [state.blocks.order]); - currentToken = ['space', css.slice(pos, next)] - pos = next - 1 - break - } - - case OPEN_SQUARE: - case CLOSE_SQUARE: - case OPEN_CURLY: - case CLOSE_CURLY: - case COLON: - case SEMICOLON: - case CLOSE_PARENTHESES: { - let controlChar = String.fromCharCode(code) - currentToken = [controlChar, controlChar, pos] - break - } - - case OPEN_PARENTHESES: { - prev = buffer.length ? buffer.pop()[1] : '' - n = css.charCodeAt(pos + 1) - if ( - prev === 'url' && - n !== SINGLE_QUOTE && - n !== DOUBLE_QUOTE && - n !== SPACE && - n !== NEWLINE && - n !== TAB && - n !== FEED && - n !== CR - ) { - next = pos - do { - escaped = false - next = css.indexOf(')', next + 1) - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos - break - } else { - unclosed('bracket') - } - } - escapePos = next - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1 - escaped = !escaped - } - } while (escaped) +/** + * Returns the block tree represented in the block-editor store from the + * given root, consisting of stripped down block objects containing only + * their client IDs, and their inner blocks' client IDs. + * + * @deprecated + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {Object[]} Client IDs of the post blocks. + */ +const __unstableGetClientIdsTree = rememo((state, rootClientId = '') => { + external_wp_deprecated_default()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdsTree", { + since: '6.3', + version: '6.5' + }); + return getBlockOrder(state, rootClientId).map(clientId => __unstableGetClientIdWithClientIdsTree(state, clientId)); +}, state => [state.blocks.order]); - currentToken = ['brackets', css.slice(pos, next + 1), pos, next] - - pos = next - } else { - next = css.indexOf(')', pos + 1) - content = css.slice(pos, next + 1) - - if (next === -1 || RE_BAD_BRACKET.test(content)) { - currentToken = ['(', '(', pos] - } else { - currentToken = ['brackets', content, pos, next] - pos = next - } - } - - break - } - - case SINGLE_QUOTE: - case DOUBLE_QUOTE: { - quote = code === SINGLE_QUOTE ? "'" : '"' - next = pos - do { - escaped = false - next = css.indexOf(quote, next + 1) - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos + 1 - break - } else { - unclosed('string') - } - } - escapePos = next - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1 - escaped = !escaped - } - } while (escaped) - - currentToken = ['string', css.slice(pos, next + 1), pos, next] - pos = next - break - } - - case AT: { - RE_AT_END.lastIndex = pos + 1 - RE_AT_END.test(css) - if (RE_AT_END.lastIndex === 0) { - next = css.length - 1 - } else { - next = RE_AT_END.lastIndex - 2 - } - - currentToken = ['at-word', css.slice(pos, next + 1), pos, next] - - pos = next - break - } - - case BACKSLASH: { - next = pos - escape = true - while (css.charCodeAt(next + 1) === BACKSLASH) { - next += 1 - escape = !escape - } - code = css.charCodeAt(next + 1) - if ( - escape && - code !== SLASH && - code !== SPACE && - code !== NEWLINE && - code !== TAB && - code !== CR && - code !== FEED - ) { - next += 1 - if (RE_HEX_ESCAPE.test(css.charAt(next))) { - while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { - next += 1 - } - if (css.charCodeAt(next + 1) === SPACE) { - next += 1 - } - } - } - - currentToken = ['word', css.slice(pos, next + 1), pos, next] - - pos = next - break - } - - default: { - if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { - next = css.indexOf('*/', pos + 2) + 1 - if (next === 0) { - if (ignore || ignoreUnclosed) { - next = css.length - } else { - unclosed('comment') - } - } - - currentToken = ['comment', css.slice(pos, next + 1), pos, next] - pos = next - } else { - RE_WORD_END.lastIndex = pos + 1 - RE_WORD_END.test(css) - if (RE_WORD_END.lastIndex === 0) { - next = css.length - 1 - } else { - next = RE_WORD_END.lastIndex - 2 - } - - currentToken = ['word', css.slice(pos, next + 1), pos, next] - buffer.push(currentToken) - pos = next - } - - break - } +/** + * Returns an array containing the clientIds of all descendants of the blocks + * given. Returned ids are ordered first by the order of the ids given, then + * by the order that they appear in the editor. + * + * @param {Object} state Global application state. + * @param {string|string[]} clientIds Client ID(s) for which descendant blocks are to be returned. + * + * @return {Array} Client IDs of descendants. + */ +const getClientIdsOfDescendants = rememo((state, clientIds) => { + const givenIds = Array.isArray(clientIds) ? clientIds : [clientIds]; + const collectedIds = []; + for (const givenId of givenIds) { + for (const descendantId of getBlockOrder(state, givenId)) { + collectedIds.push(descendantId, ...getClientIdsOfDescendants(state, descendantId)); } + } + return collectedIds; +}, state => [state.blocks.order]); - pos++ - return currentToken +/** + * Returns an array containing the clientIds of the top-level blocks and + * their descendants of any depth (for nested blocks). Ids are returned + * in the same order that they appear in the editor. + * + * @param {Object} state Global application state. + * + * @return {Array} ids of top-level and descendant blocks. + */ +const getClientIdsWithDescendants = rememo(state => { + const collectedIds = []; + for (const topLevelId of getBlockOrder(state)) { + collectedIds.push(topLevelId, ...getClientIdsOfDescendants(state, topLevelId)); } + return collectedIds; +}, state => [state.blocks.order]); - function back(token) { - returned.push(token) +/** + * Returns the total number of blocks, or the total number of blocks with a specific name in a post. + * The number returned includes nested blocks. + * + * @param {Object} state Global application state. + * @param {?string} blockName Optional block name, if specified only blocks of that type will be counted. + * + * @return {number} Number of blocks in the post, or number of blocks with name equal to blockName. + */ +const getGlobalBlockCount = rememo((state, blockName) => { + const clientIds = getClientIdsWithDescendants(state); + if (!blockName) { + return clientIds.length; } + return clientIds.reduce((accumulator, clientId) => { + const block = state.blocks.byClientId.get(clientId); + return block.name === blockName ? accumulator + 1 : accumulator; + }, 0); +}, state => [state.blocks.order, state.blocks.byClientId]); - return { - back, - endOfFile, - nextToken, - position +/** + * Returns all global blocks that match a blockName. Results include nested blocks. + * + * @param {Object} state Global application state. + * @param {?string} blockName Optional block name, if not specified, returns an empty array. + * + * @return {Array} Array of clientIds of blocks with name equal to blockName. + */ +const __experimentalGetGlobalBlocksByName = rememo((state, blockName) => { + if (!blockName) { + return EMPTY_ARRAY; } -} + const blockNames = Array.isArray(blockName) ? blockName : [blockName]; + const clientIds = getClientIdsWithDescendants(state); + const foundBlocks = clientIds.filter(clientId => { + const block = state.blocks.byClientId.get(clientId); + return blockNames.includes(block.name); + }); + return foundBlocks.length > 0 ? foundBlocks : EMPTY_ARRAY; +}, state => [state.blocks.order, state.blocks.byClientId]); +/** + * Given an array of block client IDs, returns the corresponding array of block + * objects. + * + * @param {Object} state Editor state. + * @param {string[]} clientIds Client IDs for which blocks are to be returned. + * + * @return {WPBlock[]} Block objects. + */ +const getBlocksByClientId = rememo((state, clientIds) => (Array.isArray(clientIds) ? clientIds : [clientIds]).map(clientId => getBlock(state, clientId)), (state, clientIds) => (Array.isArray(clientIds) ? clientIds : [clientIds]).map(clientId => state.blocks.tree.get(clientId))); -/***/ }), +/** + * Given an array of block client IDs, returns the corresponding array of block + * names. + * + * @param {Object} state Editor state. + * @param {string[]} clientIds Client IDs for which block names are to be returned. + * + * @return {string[]} Block names. + */ +const getBlockNamesByClientId = rememo((state, clientIds) => getBlocksByClientId(state, clientIds).filter(Boolean).map(block => block.name), (state, clientIds) => getBlocksByClientId(state, clientIds)); -/***/ 7892: -/***/ (function(module) { +/** + * Returns the number of blocks currently present in the post. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {number} Number of blocks in the post. + */ +function getBlockCount(state, rootClientId) { + return getBlockOrder(state, rootClientId).length; +} -"use strict"; -/* eslint-disable no-console */ +/** + * Returns the current selection start block client ID, attribute key and text + * offset. + * + * @param {Object} state Block editor state. + * + * @return {WPBlockSelection} Selection start information. + */ +function getSelectionStart(state) { + return state.selection.selectionStart; +} +/** + * Returns the current selection end block client ID, attribute key and text + * offset. + * + * @param {Object} state Block editor state. + * + * @return {WPBlockSelection} Selection end information. + */ +function getSelectionEnd(state) { + return state.selection.selectionEnd; +} -let printed = {} +/** + * Returns the current block selection start. This value may be null, and it + * may represent either a singular block selection or multi-selection start. + * A selection is singular if its start and end match. + * + * @param {Object} state Global application state. + * + * @return {?string} Client ID of block selection start. + */ +function getBlockSelectionStart(state) { + return state.selection.selectionStart.clientId; +} -module.exports = function warnOnce(message) { - if (printed[message]) return - printed[message] = true +/** + * Returns the current block selection end. This value may be null, and it + * may represent either a singular block selection or multi-selection end. + * A selection is singular if its start and end match. + * + * @param {Object} state Global application state. + * + * @return {?string} Client ID of block selection end. + */ +function getBlockSelectionEnd(state) { + return state.selection.selectionEnd.clientId; +} - if (typeof console !== 'undefined' && console.warn) { - console.warn(message) +/** + * Returns the number of blocks currently selected in the post. + * + * @param {Object} state Global application state. + * + * @return {number} Number of blocks selected in the post. + */ +function getSelectedBlockCount(state) { + const multiSelectedBlockCount = getMultiSelectedBlockClientIds(state).length; + if (multiSelectedBlockCount) { + return multiSelectedBlockCount; } + return state.selection.selectionStart.clientId ? 1 : 0; } +/** + * Returns true if there is a single selected block, or false otherwise. + * + * @param {Object} state Editor state. + * + * @return {boolean} Whether a single block is selected. + */ +function hasSelectedBlock(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + return !!selectionStart.clientId && selectionStart.clientId === selectionEnd.clientId; +} -/***/ }), - -/***/ 9871: -/***/ (function(module) { - -"use strict"; - +/** + * Returns the currently selected block client ID, or null if there is no + * selected block. + * + * @param {Object} state Editor state. + * + * @return {?string} Selected block client ID. + */ +function getSelectedBlockClientId(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + const { + clientId + } = selectionStart; + if (!clientId || clientId !== selectionEnd.clientId) { + return null; + } + return clientId; +} -class Warning { - constructor(text, opts = {}) { - this.type = 'warning' - this.text = text +/** + * Returns the currently selected block, or null if there is no selected block. + * + * @param {Object} state Global application state. + * + * @return {?Object} Selected block. + */ +function getSelectedBlock(state) { + const clientId = getSelectedBlockClientId(state); + return clientId ? getBlock(state, clientId) : null; +} - if (opts.node && opts.node.source) { - let range = opts.node.rangeBy(opts) - this.line = range.start.line - this.column = range.start.column - this.endLine = range.end.line - this.endColumn = range.end.column - } +/** + * Given a block client ID, returns the root block from which the block is + * nested, an empty string for top-level blocks, or null if the block does not + * exist. + * + * @param {Object} state Editor state. + * @param {string} clientId Block from which to find root client ID. + * + * @return {?string} Root client ID, if exists + */ +function getBlockRootClientId(state, clientId) { + return state.blocks.parents.has(clientId) ? state.blocks.parents.get(clientId) : null; +} - for (let opt in opts) this[opt] = opts[opt] +/** + * Given a block client ID, returns the list of all its parents from top to bottom. + * + * @param {Object} state Editor state. + * @param {string} clientId Block from which to find root client ID. + * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false). + * + * @return {Array} ClientIDs of the parent blocks. + */ +const getBlockParents = rememo((state, clientId, ascending = false) => { + const parents = []; + let current = clientId; + while (!!state.blocks.parents.get(current)) { + current = state.blocks.parents.get(current); + parents.push(current); + } + if (!parents.length) { + return EMPTY_ARRAY; } + return ascending ? parents : parents.reverse(); +}, state => [state.blocks.parents]); - toString() { - if (this.node) { - return this.node.error(this.text, { - index: this.index, - plugin: this.plugin, - word: this.word - }).message - } +/** + * Given a block client ID and a block name, returns the list of all its parents + * from top to bottom, filtered by the given name(s). For example, if passed + * 'core/group' as the blockName, it will only return parents which are group + * blocks. If passed `[ 'core/group', 'core/cover']`, as the blockName, it will + * return parents which are group blocks and parents which are cover blocks. + * + * @param {Object} state Editor state. + * @param {string} clientId Block from which to find root client ID. + * @param {string|string[]} blockName Block name(s) to filter. + * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false). + * + * @return {Array} ClientIDs of the parent blocks. + */ +const getBlockParentsByBlockName = rememo((state, clientId, blockName, ascending = false) => { + const parents = getBlockParents(state, clientId, ascending); + const hasName = Array.isArray(blockName) ? name => blockName.includes(name) : name => blockName === name; + return parents.filter(id => hasName(getBlockName(state, id))); +}, state => [state.blocks.parents]); +/** + * Given a block client ID, returns the root of the hierarchy from which the block is nested, return the block itself for root level blocks. + * + * @param {Object} state Editor state. + * @param {string} clientId Block from which to find root client ID. + * + * @return {string} Root client ID + */ +function getBlockHierarchyRootClientId(state, clientId) { + let current = clientId; + let parent; + do { + parent = current; + current = state.blocks.parents.get(current); + } while (current); + return parent; +} - if (this.plugin) { - return this.plugin + ': ' + this.text +/** + * Given a block client ID, returns the lowest common ancestor with selected client ID. + * + * @param {Object} state Editor state. + * @param {string} clientId Block from which to find common ancestor client ID. + * + * @return {string} Common ancestor client ID or undefined + */ +function getLowestCommonAncestorWithSelectedBlock(state, clientId) { + const selectedId = getSelectedBlockClientId(state); + const clientParents = [...getBlockParents(state, clientId), clientId]; + const selectedParents = [...getBlockParents(state, selectedId), selectedId]; + let lowestCommonAncestor; + const maxDepth = Math.min(clientParents.length, selectedParents.length); + for (let index = 0; index < maxDepth; index++) { + if (clientParents[index] === selectedParents[index]) { + lowestCommonAncestor = clientParents[index]; + } else { + break; } - - return this.text } + return lowestCommonAncestor; } -module.exports = Warning -Warning.default = Warning - - -/***/ }), - -/***/ 5372: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; /** - * Copyright (c) 2013-present, Facebook, Inc. + * Returns the client ID of the block adjacent one at the given reference + * startClientId and modifier directionality. Defaults start startClientId to + * the selected block, and direction as next block. Returns null if there is no + * adjacent block. * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. + * @param {Object} state Editor state. + * @param {?string} startClientId Optional client ID of block from which to + * search. + * @param {?number} modifier Directionality multiplier (1 next, -1 + * previous). + * + * @return {?string} Return the client ID of the block, or null if none exists. */ +function getAdjacentBlockClientId(state, startClientId, modifier = 1) { + // Default to selected block. + if (startClientId === undefined) { + startClientId = getSelectedBlockClientId(state); + } - - -var ReactPropTypesSecret = __webpack_require__(9567); - -function emptyFunction() {} -function emptyFunctionWithReset() {} -emptyFunctionWithReset.resetWarningCache = emptyFunction; - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; + // Try multi-selection starting at extent based on modifier. + if (startClientId === undefined) { + if (modifier < 0) { + startClientId = getFirstMultiSelectedBlockClientId(state); + } else { + startClientId = getLastMultiSelectedBlockClientId(state); } - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bigint: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - elementType: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim, - - checkPropTypes: emptyFunctionWithReset, - resetWarningCache: emptyFunction - }; + } - ReactPropTypes.PropTypes = ReactPropTypes; + // Validate working start client ID. + if (!startClientId) { + return null; + } - return ReactPropTypes; -}; + // Retrieve start block root client ID, being careful to allow the falsey + // empty string top-level root by explicitly testing against null. + const rootClientId = getBlockRootClientId(state, startClientId); + if (rootClientId === null) { + return null; + } + const { + order + } = state.blocks; + const orderSet = order.get(rootClientId); + const index = orderSet.indexOf(startClientId); + const nextIndex = index + 1 * modifier; + // Block was first in set and we're attempting to get previous. + if (nextIndex < 0) { + return null; + } -/***/ }), + // Block was last in set and we're attempting to get next. + if (nextIndex === orderSet.length) { + return null; + } -/***/ 2652: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + // Assume incremented index is within the set. + return orderSet[nextIndex]; +} /** - * Copyright (c) 2013-present, Facebook, Inc. + * Returns the previous block's client ID from the given reference start ID. + * Defaults start to the selected block. Returns null if there is no previous + * block. * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. + * @param {Object} state Editor state. + * @param {?string} startClientId Optional client ID of block from which to + * search. + * + * @return {?string} Adjacent block's client ID, or null if none exists. */ - -if (false) { var throwOnDirectAccess, ReactIs; } else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(5372)(); +function getPreviousBlockClientId(state, startClientId) { + return getAdjacentBlockClientId(state, startClientId, -1); } - -/***/ }), - -/***/ 9567: -/***/ (function(module) { - -"use strict"; /** - * Copyright (c) 2013-present, Facebook, Inc. + * Returns the next block's client ID from the given reference start ID. + * Defaults start to the selected block. Returns null if there is no next + * block. * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. + * @param {Object} state Editor state. + * @param {?string} startClientId Optional client ID of block from which to + * search. + * + * @return {?string} Adjacent block's client ID, or null if none exists. */ +function getNextBlockClientId(state, startClientId) { + return getAdjacentBlockClientId(state, startClientId, 1); +} +/* eslint-disable jsdoc/valid-types */ +/** + * Returns the initial caret position for the selected block. + * This position is to used to position the caret properly when the selected block changes. + * If the current block is not a RichText, having initial position set to 0 means "focus block" + * + * @param {Object} state Global application state. + * + * @return {0|-1|null} Initial position. + */ +function getSelectedBlocksInitialCaretPosition(state) { + /* eslint-enable jsdoc/valid-types */ + return state.initialPosition; +} +/** + * Returns the current selection set of block client IDs (multiselection or single selection). + * + * @param {Object} state Editor state. + * + * @return {Array} Multi-selected block client IDs. + */ +const getSelectedBlockClientIds = rememo(state => { + const { + selectionStart, + selectionEnd + } = state.selection; + if (!selectionStart.clientId || !selectionEnd.clientId) { + return EMPTY_ARRAY; + } + if (selectionStart.clientId === selectionEnd.clientId) { + return [selectionStart.clientId]; + } -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), + // Retrieve root client ID to aid in retrieving relevant nested block + // order, being careful to allow the falsey empty string top-level root + // by explicitly testing against null. + const rootClientId = getBlockRootClientId(state, selectionStart.clientId); + if (rootClientId === null) { + return EMPTY_ARRAY; + } + const blockOrder = getBlockOrder(state, rootClientId); + const startIndex = blockOrder.indexOf(selectionStart.clientId); + const endIndex = blockOrder.indexOf(selectionEnd.clientId); + if (startIndex > endIndex) { + return blockOrder.slice(endIndex, startIndex + 1); + } + return blockOrder.slice(startIndex, endIndex + 1); +}, state => [state.blocks.order, state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId]); -/***/ 5438: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/** + * Returns the current multi-selection set of block client IDs, or an empty + * array if there is no multi-selection. + * + * @param {Object} state Editor state. + * + * @return {Array} Multi-selected block client IDs. + */ +function getMultiSelectedBlockClientIds(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + if (selectionStart.clientId === selectionEnd.clientId) { + return EMPTY_ARRAY; + } + return getSelectedBlockClientIds(state); +} -"use strict"; +/** + * Returns the current multi-selection set of blocks, or an empty array if + * there is no multi-selection. + * + * @param {Object} state Editor state. + * + * @return {Array} Multi-selected block objects. + */ +const getMultiSelectedBlocks = rememo(state => { + const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(state); + if (!multiSelectedBlockClientIds.length) { + return EMPTY_ARRAY; + } + return multiSelectedBlockClientIds.map(clientId => getBlock(state, clientId)); +}, state => [...getSelectedBlockClientIds.getDependants(state), state.blocks.byClientId, state.blocks.order, state.blocks.attributes]); -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -var __rest = (this && this.__rest) || function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; -}; -exports.__esModule = true; -var React = __webpack_require__(9196); -var PropTypes = __webpack_require__(2652); -var autosize = __webpack_require__(6411); -var _getLineHeight = __webpack_require__(9894); -var getLineHeight = _getLineHeight; -var RESIZED = "autosize:resized"; /** - * A light replacement for built-in textarea component - * which automaticaly adjusts its height to match the content + * Returns the client ID of the first block in the multi-selection set, or null + * if there is no multi-selection. + * + * @param {Object} state Editor state. + * + * @return {?string} First block client ID in the multi-selection set. */ -var TextareaAutosizeClass = /** @class */ (function (_super) { - __extends(TextareaAutosizeClass, _super); - function TextareaAutosizeClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.state = { - lineHeight: null - }; - _this.textarea = null; - _this.onResize = function (e) { - if (_this.props.onResize) { - _this.props.onResize(e); - } - }; - _this.updateLineHeight = function () { - if (_this.textarea) { - _this.setState({ - lineHeight: getLineHeight(_this.textarea) - }); - } - }; - _this.onChange = function (e) { - var onChange = _this.props.onChange; - _this.currentValue = e.currentTarget.value; - onChange && onChange(e); - }; - return _this; - } - TextareaAutosizeClass.prototype.componentDidMount = function () { - var _this = this; - var _a = this.props, maxRows = _a.maxRows, async = _a.async; - if (typeof maxRows === "number") { - this.updateLineHeight(); - } - if (typeof maxRows === "number" || async) { - /* - the defer is needed to: - - force "autosize" to activate the scrollbar when this.props.maxRows is passed - - support StyledComponents (see #71) - */ - setTimeout(function () { return _this.textarea && autosize(_this.textarea); }); - } - else { - this.textarea && autosize(this.textarea); - } - if (this.textarea) { - this.textarea.addEventListener(RESIZED, this.onResize); - } - }; - TextareaAutosizeClass.prototype.componentWillUnmount = function () { - if (this.textarea) { - this.textarea.removeEventListener(RESIZED, this.onResize); - autosize.destroy(this.textarea); - } - }; - TextareaAutosizeClass.prototype.render = function () { - var _this = this; - var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "innerRef", "children"]), lineHeight = _a.state.lineHeight; - var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null; - return (React.createElement("textarea", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) { - _this.textarea = element; - if (typeof _this.props.innerRef === 'function') { - _this.props.innerRef(element); - } - else if (_this.props.innerRef) { - _this.props.innerRef.current = element; - } - } }), children)); - }; - TextareaAutosizeClass.prototype.componentDidUpdate = function () { - this.textarea && autosize.update(this.textarea); - }; - TextareaAutosizeClass.defaultProps = { - rows: 1, - async: false - }; - TextareaAutosizeClass.propTypes = { - rows: PropTypes.number, - maxRows: PropTypes.number, - onResize: PropTypes.func, - innerRef: PropTypes.any, - async: PropTypes.bool - }; - return TextareaAutosizeClass; -}(React.Component)); -exports.TextareaAutosize = React.forwardRef(function (props, ref) { - return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref })); -}); +function getFirstMultiSelectedBlockClientId(state) { + return getMultiSelectedBlockClientIds(state)[0] || null; +} +/** + * Returns the client ID of the last block in the multi-selection set, or null + * if there is no multi-selection. + * + * @param {Object} state Editor state. + * + * @return {?string} Last block client ID in the multi-selection set. + */ +function getLastMultiSelectedBlockClientId(state) { + const selectedClientIds = getMultiSelectedBlockClientIds(state); + return selectedClientIds[selectedClientIds.length - 1] || null; +} -/***/ }), +/** + * Returns true if a multi-selection exists, and the block corresponding to the + * specified client ID is the first block of the multi-selection set, or false + * otherwise. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Whether block is first in multi-selection. + */ +function isFirstMultiSelectedBlock(state, clientId) { + return getFirstMultiSelectedBlockClientId(state) === clientId; +} -/***/ 773: -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/** + * Returns true if the client ID occurs within the block multi-selection, or + * false otherwise. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Whether block is in multi-selection set. + */ +function isBlockMultiSelected(state, clientId) { + return getMultiSelectedBlockClientIds(state).indexOf(clientId) !== -1; +} -"use strict"; -var __webpack_unused_export__; +/** + * Returns true if an ancestor of the block is multi-selected, or false + * otherwise. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Whether an ancestor of the block is in multi-selection + * set. + */ +const isAncestorMultiSelected = rememo((state, clientId) => { + let ancestorClientId = clientId; + let isMultiSelected = false; + while (ancestorClientId && !isMultiSelected) { + ancestorClientId = getBlockRootClientId(state, ancestorClientId); + isMultiSelected = isBlockMultiSelected(state, ancestorClientId); + } + return isMultiSelected; +}, state => [state.blocks.order, state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId]); -__webpack_unused_export__ = true; -var TextareaAutosize_1 = __webpack_require__(5438); -exports.Z = TextareaAutosize_1.TextareaAutosize; +/** + * Returns the client ID of the block which begins the multi-selection set, or + * null if there is no multi-selection. + * + * This is not necessarily the first client ID in the selection. + * + * @see getFirstMultiSelectedBlockClientId + * + * @param {Object} state Editor state. + * + * @return {?string} Client ID of block beginning multi-selection. + */ +function getMultiSelectedBlocksStartClientId(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + if (selectionStart.clientId === selectionEnd.clientId) { + return null; + } + return selectionStart.clientId || null; +} +/** + * Returns the client ID of the block which ends the multi-selection set, or + * null if there is no multi-selection. + * + * This is not necessarily the last client ID in the selection. + * + * @see getLastMultiSelectedBlockClientId + * + * @param {Object} state Editor state. + * + * @return {?string} Client ID of block ending multi-selection. + */ +function getMultiSelectedBlocksEndClientId(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + if (selectionStart.clientId === selectionEnd.clientId) { + return null; + } + return selectionEnd.clientId || null; +} -/***/ }), +/** + * Returns true if the selection is not partial. + * + * @param {Object} state Editor state. + * + * @return {boolean} Whether the selection is mergeable. + */ +function __unstableIsFullySelected(state) { + const selectionAnchor = getSelectionStart(state); + const selectionFocus = getSelectionEnd(state); + return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined'; +} -/***/ 4793: -/***/ (function(module) { +/** + * Returns true if the selection is collapsed. + * + * @param {Object} state Editor state. + * + * @return {boolean} Whether the selection is collapsed. + */ +function __unstableIsSelectionCollapsed(state) { + const selectionAnchor = getSelectionStart(state); + const selectionFocus = getSelectionEnd(state); + return !!selectionAnchor && !!selectionFocus && selectionAnchor.clientId === selectionFocus.clientId && selectionAnchor.attributeKey === selectionFocus.attributeKey && selectionAnchor.offset === selectionFocus.offset; +} +function __unstableSelectionHasUnmergeableBlock(state) { + return getSelectedBlockClientIds(state).some(clientId => { + const blockName = getBlockName(state, clientId); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); + return !blockType.merge; + }); +} -var characterMap = { - "À": "A", - "Á": "A", - "Â": "A", - "Ã": "A", - "Ä": "A", - "Å": "A", - "Ấ": "A", - "Ắ": "A", - "Ẳ": "A", - "Ẵ": "A", - "Ặ": "A", - "Æ": "AE", - "Ầ": "A", - "Ằ": "A", - "Ȃ": "A", - "Ả": "A", - "Ạ": "A", - "Ẩ": "A", - "Ẫ": "A", - "Ậ": "A", - "Ç": "C", - "Ḉ": "C", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "Ế": "E", - "Ḗ": "E", - "Ề": "E", - "Ḕ": "E", - "Ḝ": "E", - "Ȇ": "E", - "Ẻ": "E", - "Ẽ": "E", - "Ẹ": "E", - "Ể": "E", - "Ễ": "E", - "Ệ": "E", - "Ì": "I", - "Í": "I", - "Î": "I", - "Ï": "I", - "Ḯ": "I", - "Ȋ": "I", - "Ỉ": "I", - "Ị": "I", - "Ð": "D", - "Ñ": "N", - "Ò": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "Ö": "O", - "Ø": "O", - "Ố": "O", - "Ṍ": "O", - "Ṓ": "O", - "Ȏ": "O", - "Ỏ": "O", - "Ọ": "O", - "Ổ": "O", - "Ỗ": "O", - "Ộ": "O", - "Ờ": "O", - "Ở": "O", - "Ỡ": "O", - "Ớ": "O", - "Ợ": "O", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "Ủ": "U", - "Ụ": "U", - "Ử": "U", - "Ữ": "U", - "Ự": "U", - "Ý": "Y", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "ä": "a", - "å": "a", - "ấ": "a", - "ắ": "a", - "ẳ": "a", - "ẵ": "a", - "ặ": "a", - "æ": "ae", - "ầ": "a", - "ằ": "a", - "ȃ": "a", - "ả": "a", - "ạ": "a", - "ẩ": "a", - "ẫ": "a", - "ậ": "a", - "ç": "c", - "ḉ": "c", - "è": "e", - "é": "e", - "ê": "e", - "ë": "e", - "ế": "e", - "ḗ": "e", - "ề": "e", - "ḕ": "e", - "ḝ": "e", - "ȇ": "e", - "ẻ": "e", - "ẽ": "e", - "ẹ": "e", - "ể": "e", - "ễ": "e", - "ệ": "e", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "ḯ": "i", - "ȋ": "i", - "ỉ": "i", - "ị": "i", - "ð": "d", - "ñ": "n", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "ö": "o", - "ø": "o", - "ố": "o", - "ṍ": "o", - "ṓ": "o", - "ȏ": "o", - "ỏ": "o", - "ọ": "o", - "ổ": "o", - "ỗ": "o", - "ộ": "o", - "ờ": "o", - "ở": "o", - "ỡ": "o", - "ớ": "o", - "ợ": "o", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "ủ": "u", - "ụ": "u", - "ử": "u", - "ữ": "u", - "ự": "u", - "ý": "y", - "ÿ": "y", - "Ā": "A", - "ā": "a", - "Ă": "A", - "ă": "a", - "Ą": "A", - "ą": "a", - "Ć": "C", - "ć": "c", - "Ĉ": "C", - "ĉ": "c", - "Ċ": "C", - "ċ": "c", - "Č": "C", - "č": "c", - "C̆": "C", - "c̆": "c", - "Ď": "D", - "ď": "d", - "Đ": "D", - "đ": "d", - "Ē": "E", - "ē": "e", - "Ĕ": "E", - "ĕ": "e", - "Ė": "E", - "ė": "e", - "Ę": "E", - "ę": "e", - "Ě": "E", - "ě": "e", - "Ĝ": "G", - "Ǵ": "G", - "ĝ": "g", - "ǵ": "g", - "Ğ": "G", - "ğ": "g", - "Ġ": "G", - "ġ": "g", - "Ģ": "G", - "ģ": "g", - "Ĥ": "H", - "ĥ": "h", - "Ħ": "H", - "ħ": "h", - "Ḫ": "H", - "ḫ": "h", - "Ĩ": "I", - "ĩ": "i", - "Ī": "I", - "ī": "i", - "Ĭ": "I", - "ĭ": "i", - "Į": "I", - "į": "i", - "İ": "I", - "ı": "i", - "IJ": "IJ", - "ij": "ij", - "Ĵ": "J", - "ĵ": "j", - "Ķ": "K", - "ķ": "k", - "Ḱ": "K", - "ḱ": "k", - "K̆": "K", - "k̆": "k", - "Ĺ": "L", - "ĺ": "l", - "Ļ": "L", - "ļ": "l", - "Ľ": "L", - "ľ": "l", - "Ŀ": "L", - "ŀ": "l", - "Ł": "l", - "ł": "l", - "Ḿ": "M", - "ḿ": "m", - "M̆": "M", - "m̆": "m", - "Ń": "N", - "ń": "n", - "Ņ": "N", - "ņ": "n", - "Ň": "N", - "ň": "n", - "ʼn": "n", - "N̆": "N", - "n̆": "n", - "Ō": "O", - "ō": "o", - "Ŏ": "O", - "ŏ": "o", - "Ő": "O", - "ő": "o", - "Œ": "OE", - "œ": "oe", - "P̆": "P", - "p̆": "p", - "Ŕ": "R", - "ŕ": "r", - "Ŗ": "R", - "ŗ": "r", - "Ř": "R", - "ř": "r", - "R̆": "R", - "r̆": "r", - "Ȓ": "R", - "ȓ": "r", - "Ś": "S", - "ś": "s", - "Ŝ": "S", - "ŝ": "s", - "Ş": "S", - "Ș": "S", - "ș": "s", - "ş": "s", - "Š": "S", - "š": "s", - "Ţ": "T", - "ţ": "t", - "ț": "t", - "Ț": "T", - "Ť": "T", - "ť": "t", - "Ŧ": "T", - "ŧ": "t", - "T̆": "T", - "t̆": "t", - "Ũ": "U", - "ũ": "u", - "Ū": "U", - "ū": "u", - "Ŭ": "U", - "ŭ": "u", - "Ů": "U", - "ů": "u", - "Ű": "U", - "ű": "u", - "Ų": "U", - "ų": "u", - "Ȗ": "U", - "ȗ": "u", - "V̆": "V", - "v̆": "v", - "Ŵ": "W", - "ŵ": "w", - "Ẃ": "W", - "ẃ": "w", - "X̆": "X", - "x̆": "x", - "Ŷ": "Y", - "ŷ": "y", - "Ÿ": "Y", - "Y̆": "Y", - "y̆": "y", - "Ź": "Z", - "ź": "z", - "Ż": "Z", - "ż": "z", - "Ž": "Z", - "ž": "z", - "ſ": "s", - "ƒ": "f", - "Ơ": "O", - "ơ": "o", - "Ư": "U", - "ư": "u", - "Ǎ": "A", - "ǎ": "a", - "Ǐ": "I", - "ǐ": "i", - "Ǒ": "O", - "ǒ": "o", - "Ǔ": "U", - "ǔ": "u", - "Ǖ": "U", - "ǖ": "u", - "Ǘ": "U", - "ǘ": "u", - "Ǚ": "U", - "ǚ": "u", - "Ǜ": "U", - "ǜ": "u", - "Ứ": "U", - "ứ": "u", - "Ṹ": "U", - "ṹ": "u", - "Ǻ": "A", - "ǻ": "a", - "Ǽ": "AE", - "ǽ": "ae", - "Ǿ": "O", - "ǿ": "o", - "Þ": "TH", - "þ": "th", - "Ṕ": "P", - "ṕ": "p", - "Ṥ": "S", - "ṥ": "s", - "X́": "X", - "x́": "x", - "Ѓ": "Г", - "ѓ": "г", - "Ќ": "К", - "ќ": "к", - "A̋": "A", - "a̋": "a", - "E̋": "E", - "e̋": "e", - "I̋": "I", - "i̋": "i", - "Ǹ": "N", - "ǹ": "n", - "Ồ": "O", - "ồ": "o", - "Ṑ": "O", - "ṑ": "o", - "Ừ": "U", - "ừ": "u", - "Ẁ": "W", - "ẁ": "w", - "Ỳ": "Y", - "ỳ": "y", - "Ȁ": "A", - "ȁ": "a", - "Ȅ": "E", - "ȅ": "e", - "Ȉ": "I", - "ȉ": "i", - "Ȍ": "O", - "ȍ": "o", - "Ȑ": "R", - "ȑ": "r", - "Ȕ": "U", - "ȕ": "u", - "B̌": "B", - "b̌": "b", - "Č̣": "C", - "č̣": "c", - "Ê̌": "E", - "ê̌": "e", - "F̌": "F", - "f̌": "f", - "Ǧ": "G", - "ǧ": "g", - "Ȟ": "H", - "ȟ": "h", - "J̌": "J", - "ǰ": "j", - "Ǩ": "K", - "ǩ": "k", - "M̌": "M", - "m̌": "m", - "P̌": "P", - "p̌": "p", - "Q̌": "Q", - "q̌": "q", - "Ř̩": "R", - "ř̩": "r", - "Ṧ": "S", - "ṧ": "s", - "V̌": "V", - "v̌": "v", - "W̌": "W", - "w̌": "w", - "X̌": "X", - "x̌": "x", - "Y̌": "Y", - "y̌": "y", - "A̧": "A", - "a̧": "a", - "B̧": "B", - "b̧": "b", - "Ḑ": "D", - "ḑ": "d", - "Ȩ": "E", - "ȩ": "e", - "Ɛ̧": "E", - "ɛ̧": "e", - "Ḩ": "H", - "ḩ": "h", - "I̧": "I", - "i̧": "i", - "Ɨ̧": "I", - "ɨ̧": "i", - "M̧": "M", - "m̧": "m", - "O̧": "O", - "o̧": "o", - "Q̧": "Q", - "q̧": "q", - "U̧": "U", - "u̧": "u", - "X̧": "X", - "x̧": "x", - "Z̧": "Z", - "z̧": "z", - "й":"и", - "Й":"И", - "ё":"е", - "Ё":"Е", -}; - -var chars = Object.keys(characterMap).join('|'); -var allAccents = new RegExp(chars, 'g'); -var firstAccent = new RegExp(chars, ''); - -function matcher(match) { - return characterMap[match]; -} - -var removeAccents = function(string) { - return string.replace(allAccents, matcher); -}; - -var hasAccents = function(string) { - return !!string.match(firstAccent); -}; - -module.exports = removeAccents; -module.exports.has = hasAccents; -module.exports.remove = removeAccents; - - -/***/ }), - -/***/ 9196: -/***/ (function(module) { - -"use strict"; -module.exports = window["React"]; - -/***/ }), - -/***/ 2868: -/***/ (function() { - -/* (ignored) */ - -/***/ }), - -/***/ 4777: -/***/ (function() { +/** + * Check whether the selection is mergeable. + * + * @param {Object} state Editor state. + * @param {boolean} isForward Whether to merge forwards. + * + * @return {boolean} Whether the selection is mergeable. + */ +function __unstableIsSelectionMergeable(state, isForward) { + const selectionAnchor = getSelectionStart(state); + const selectionFocus = getSelectionEnd(state); -/* (ignored) */ + // It's not mergeable if the start and end are within the same block. + if (selectionAnchor.clientId === selectionFocus.clientId) return false; -/***/ }), + // It's not mergeable if there's no rich text selection. + if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false; + const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId); + const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); -/***/ 9830: -/***/ (function() { + // It's not mergeable if the selection doesn't start and end in the same + // block list. Maybe in the future it should be allowed. + if (anchorRootClientId !== focusRootClientId) { + return false; + } + const blockOrder = getBlockOrder(state, anchorRootClientId); + const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); + const focusIndex = blockOrder.indexOf(selectionFocus.clientId); -/* (ignored) */ + // Reassign selection start and end based on order. + let selectionStart, selectionEnd; + if (anchorIndex > focusIndex) { + selectionStart = selectionFocus; + selectionEnd = selectionAnchor; + } else { + selectionStart = selectionAnchor; + selectionEnd = selectionFocus; + } + const targetBlockClientId = isForward ? selectionEnd.clientId : selectionStart.clientId; + const blockToMergeClientId = isForward ? selectionStart.clientId : selectionEnd.clientId; + const targetBlockName = getBlockName(state, targetBlockClientId); + const targetBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlockName); + if (!targetBlockType.merge) return false; + const blockToMerge = getBlock(state, blockToMergeClientId); -/***/ }), + // It's mergeable if the blocks are of the same type. + if (blockToMerge.name === targetBlockName) return true; -/***/ 209: -/***/ (function() { + // If the blocks are of a different type, try to transform the block being + // merged into the same type of block. + const blocksToMerge = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blockToMerge, targetBlockName); + return blocksToMerge && blocksToMerge.length; +} -/* (ignored) */ +/** + * Get partial selected blocks with their content updated + * based on the selection. + * + * @param {Object} state Editor state. + * + * @return {Object[]} Updated partial selected blocks. + */ +const __unstableGetSelectedBlocksWithPartialSelection = state => { + const selectionAnchor = getSelectionStart(state); + const selectionFocus = getSelectionEnd(state); + if (selectionAnchor.clientId === selectionFocus.clientId) { + return EMPTY_ARRAY; + } -/***/ }), + // Can't split if the selection is not set. + if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') { + return EMPTY_ARRAY; + } + const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId); + const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); -/***/ 7414: -/***/ (function() { + // It's not splittable if the selection doesn't start and end in the same + // block list. Maybe in the future it should be allowed. + if (anchorRootClientId !== focusRootClientId) { + return EMPTY_ARRAY; + } + const blockOrder = getBlockOrder(state, anchorRootClientId); + const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); + const focusIndex = blockOrder.indexOf(selectionFocus.clientId); -/* (ignored) */ + // Reassign selection start and end based on order. + const [selectionStart, selectionEnd] = anchorIndex > focusIndex ? [selectionFocus, selectionAnchor] : [selectionAnchor, selectionFocus]; + const blockA = getBlock(state, selectionStart.clientId); + const blockAType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockA.name); + const blockB = getBlock(state, selectionEnd.clientId); + const blockBType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockB.name); + const htmlA = blockA.attributes[selectionStart.attributeKey]; + const htmlB = blockB.attributes[selectionEnd.attributeKey]; + const attributeDefinitionA = blockAType.attributes[selectionStart.attributeKey]; + const attributeDefinitionB = blockBType.attributes[selectionEnd.attributeKey]; + let valueA = (0,external_wp_richText_namespaceObject.create)({ + html: htmlA, + ...mapRichTextSettings(attributeDefinitionA) + }); + let valueB = (0,external_wp_richText_namespaceObject.create)({ + html: htmlB, + ...mapRichTextSettings(attributeDefinitionB) + }); + valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, 0, selectionStart.offset); + valueB = (0,external_wp_richText_namespaceObject.remove)(valueB, selectionEnd.offset, valueB.text.length); + return [{ + ...blockA, + attributes: { + ...blockA.attributes, + [selectionStart.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueA, + ...mapRichTextSettings(attributeDefinitionA) + }) + } + }, { + ...blockB, + attributes: { + ...blockB.attributes, + [selectionEnd.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueB, + ...mapRichTextSettings(attributeDefinitionB) + }) + } + }]; +}; -/***/ }), +/** + * Returns an array containing all block client IDs in the editor in the order + * they appear. Optionally accepts a root client ID of the block list for which + * the order should be returned, defaulting to the top-level block order. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {Array} Ordered client IDs of editor blocks. + */ +function getBlockOrder(state, rootClientId) { + return state.blocks.order.get(rootClientId || '') || EMPTY_ARRAY; +} -/***/ 2961: -/***/ (function(module) { +/** + * Returns the index at which the block corresponding to the specified client + * ID occurs within the block order, or `-1` if the block does not exist. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {number} Index at which block exists in order. + */ +function getBlockIndex(state, clientId) { + const rootClientId = getBlockRootClientId(state, clientId); + return getBlockOrder(state, rootClientId).indexOf(clientId); +} -let urlAlphabet = - 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' -let customAlphabet = (alphabet, defaultSize = 21) => { - return (size = defaultSize) => { - let id = '' - let i = size - while (i--) { - id += alphabet[(Math.random() * alphabet.length) | 0] - } - return id +/** + * Returns true if the block corresponding to the specified client ID is + * currently selected and no multi-selection exists, or false otherwise. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Whether block is selected and multi-selection exists. + */ +function isBlockSelected(state, clientId) { + const { + selectionStart, + selectionEnd + } = state.selection; + if (selectionStart.clientId !== selectionEnd.clientId) { + return false; } + return selectionStart.clientId === clientId; } -let nanoid = (size = 21) => { - let id = '' - let i = size - while (i--) { - id += urlAlphabet[(Math.random() * 64) | 0] - } - return id + +/** + * Returns true if one of the block's inner blocks is selected. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * @param {boolean} deep Perform a deep check. + * + * @return {boolean} Whether the block has an inner block selected + */ +function hasSelectedInnerBlock(state, clientId, deep = false) { + return getBlockOrder(state, clientId).some(innerClientId => isBlockSelected(state, innerClientId) || isBlockMultiSelected(state, innerClientId) || deep && hasSelectedInnerBlock(state, innerClientId, deep)); } -module.exports = { nanoid, customAlphabet } +/** + * Returns true if one of the block's inner blocks is dragged. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * @param {boolean} deep Perform a deep check. + * + * @return {boolean} Whether the block has an inner block dragged + */ +function hasDraggedInnerBlock(state, clientId, deep = false) { + return getBlockOrder(state, clientId).some(innerClientId => isBlockBeingDragged(state, innerClientId) || deep && hasDraggedInnerBlock(state, innerClientId, deep)); +} -/***/ }) +/** + * Returns true if the block corresponding to the specified client ID is + * currently selected but isn't the last of the selected blocks. Here "last" + * refers to the block sequence in the document, _not_ the sequence of + * multi-selection, which is why `state.selectionEnd` isn't used. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {boolean} Whether block is selected and not the last in the + * selection. + */ +function isBlockWithinSelection(state, clientId) { + if (!clientId) { + return false; + } + const clientIds = getMultiSelectedBlockClientIds(state); + const index = clientIds.indexOf(clientId); + return index > -1 && index < clientIds.length - 1; +} -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ !function() { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function() { return module['default']; } : -/******/ function() { return module; }; -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ !function() { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ !function() { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ }(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -!function() { -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); +/** + * Returns true if a multi-selection has been made, or false otherwise. + * + * @param {Object} state Editor state. + * + * @return {boolean} Whether multi-selection has been made. + */ +function hasMultiSelection(state) { + const { + selectionStart, + selectionEnd + } = state.selection; + return selectionStart.clientId !== selectionEnd.clientId; +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - AlignmentControl: function() { return /* reexport */ AlignmentControl; }, - AlignmentToolbar: function() { return /* reexport */ AlignmentToolbar; }, - Autocomplete: function() { return /* reexport */ autocomplete; }, - BlockAlignmentControl: function() { return /* reexport */ BlockAlignmentControl; }, - BlockAlignmentToolbar: function() { return /* reexport */ BlockAlignmentToolbar; }, - BlockBreadcrumb: function() { return /* reexport */ block_breadcrumb; }, - BlockCanvas: function() { return /* reexport */ block_canvas; }, - BlockColorsStyleSelector: function() { return /* reexport */ color_style_selector; }, - BlockContextProvider: function() { return /* reexport */ BlockContextProvider; }, - BlockControls: function() { return /* reexport */ block_controls; }, - BlockEdit: function() { return /* reexport */ BlockEdit; }, - BlockEditorKeyboardShortcuts: function() { return /* reexport */ keyboard_shortcuts; }, - BlockEditorProvider: function() { return /* reexport */ provider; }, - BlockFormatControls: function() { return /* reexport */ BlockFormatControls; }, - BlockIcon: function() { return /* reexport */ block_icon; }, - BlockInspector: function() { return /* reexport */ block_inspector; }, - BlockList: function() { return /* reexport */ BlockList; }, - BlockMover: function() { return /* reexport */ block_mover; }, - BlockNavigationDropdown: function() { return /* reexport */ dropdown; }, - BlockPreview: function() { return /* reexport */ block_preview; }, - BlockSelectionClearer: function() { return /* reexport */ BlockSelectionClearer; }, - BlockSettingsMenu: function() { return /* reexport */ block_settings_menu; }, - BlockSettingsMenuControls: function() { return /* reexport */ block_settings_menu_controls; }, - BlockStyles: function() { return /* reexport */ block_styles; }, - BlockTitle: function() { return /* reexport */ BlockTitle; }, - BlockToolbar: function() { return /* reexport */ BlockToolbar; }, - BlockTools: function() { return /* reexport */ BlockTools; }, - BlockVerticalAlignmentControl: function() { return /* reexport */ BlockVerticalAlignmentControl; }, - BlockVerticalAlignmentToolbar: function() { return /* reexport */ BlockVerticalAlignmentToolbar; }, - ButtonBlockAppender: function() { return /* reexport */ button_block_appender; }, - ButtonBlockerAppender: function() { return /* reexport */ ButtonBlockerAppender; }, - ColorPalette: function() { return /* reexport */ color_palette; }, - ColorPaletteControl: function() { return /* reexport */ ColorPaletteControl; }, - ContrastChecker: function() { return /* reexport */ contrast_checker; }, - CopyHandler: function() { return /* reexport */ CopyHandler; }, - DefaultBlockAppender: function() { return /* reexport */ default_block_appender; }, - FontSizePicker: function() { return /* reexport */ font_size_picker; }, - HeadingLevelDropdown: function() { return /* reexport */ HeadingLevelDropdown; }, - HeightControl: function() { return /* reexport */ HeightControl; }, - InnerBlocks: function() { return /* reexport */ inner_blocks; }, - Inserter: function() { return /* reexport */ inserter; }, - InspectorAdvancedControls: function() { return /* reexport */ InspectorAdvancedControls; }, - InspectorControls: function() { return /* reexport */ inspector_controls; }, - JustifyContentControl: function() { return /* reexport */ JustifyContentControl; }, - JustifyToolbar: function() { return /* reexport */ JustifyToolbar; }, - LineHeightControl: function() { return /* reexport */ line_height_control; }, - MediaPlaceholder: function() { return /* reexport */ media_placeholder; }, - MediaReplaceFlow: function() { return /* reexport */ media_replace_flow; }, - MediaUpload: function() { return /* reexport */ media_upload; }, - MediaUploadCheck: function() { return /* reexport */ check; }, - MultiSelectScrollIntoView: function() { return /* reexport */ MultiSelectScrollIntoView; }, - NavigableToolbar: function() { return /* reexport */ NavigableToolbar; }, - ObserveTyping: function() { return /* reexport */ observe_typing; }, - PanelColorSettings: function() { return /* reexport */ panel_color_settings; }, - PlainText: function() { return /* reexport */ plain_text; }, - RecursionProvider: function() { return /* reexport */ RecursionProvider; }, - ReusableBlocksRenameHint: function() { return /* reexport */ ReusableBlocksRenameHint; }, - RichText: function() { return /* reexport */ rich_text; }, - RichTextShortcut: function() { return /* reexport */ RichTextShortcut; }, - RichTextToolbarButton: function() { return /* reexport */ RichTextToolbarButton; }, - SETTINGS_DEFAULTS: function() { return /* reexport */ SETTINGS_DEFAULTS; }, - SkipToSelectedBlock: function() { return /* reexport */ skip_to_selected_block; }, - ToolSelector: function() { return /* reexport */ tool_selector; }, - Typewriter: function() { return /* reexport */ typewriter; }, - URLInput: function() { return /* reexport */ url_input; }, - URLInputButton: function() { return /* reexport */ url_input_button; }, - URLPopover: function() { return /* reexport */ url_popover; }, - Warning: function() { return /* reexport */ warning; }, - WritingFlow: function() { return /* reexport */ writing_flow; }, - __experimentalBlockAlignmentMatrixControl: function() { return /* reexport */ block_alignment_matrix_control; }, - __experimentalBlockFullHeightAligmentControl: function() { return /* reexport */ block_full_height_alignment_control; }, - __experimentalBlockPatternSetup: function() { return /* reexport */ block_pattern_setup; }, - __experimentalBlockPatternsList: function() { return /* reexport */ block_patterns_list; }, - __experimentalBlockVariationPicker: function() { return /* reexport */ block_variation_picker; }, - __experimentalBlockVariationTransforms: function() { return /* reexport */ block_variation_transforms; }, - __experimentalBorderRadiusControl: function() { return /* reexport */ BorderRadiusControl; }, - __experimentalColorGradientControl: function() { return /* reexport */ control; }, - __experimentalColorGradientSettingsDropdown: function() { return /* reexport */ ColorGradientSettingsDropdown; }, - __experimentalDateFormatPicker: function() { return /* reexport */ DateFormatPicker; }, - __experimentalDuotoneControl: function() { return /* reexport */ duotone_control; }, - __experimentalFontAppearanceControl: function() { return /* reexport */ FontAppearanceControl; }, - __experimentalFontFamilyControl: function() { return /* reexport */ FontFamilyControl; }, - __experimentalGetBorderClassesAndStyles: function() { return /* reexport */ getBorderClassesAndStyles; }, - __experimentalGetColorClassesAndStyles: function() { return /* reexport */ getColorClassesAndStyles; }, - __experimentalGetElementClassName: function() { return /* reexport */ __experimentalGetElementClassName; }, - __experimentalGetGapCSSValue: function() { return /* reexport */ getGapCSSValue; }, - __experimentalGetGradientClass: function() { return /* reexport */ __experimentalGetGradientClass; }, - __experimentalGetGradientObjectByGradientValue: function() { return /* reexport */ __experimentalGetGradientObjectByGradientValue; }, - __experimentalGetShadowClassesAndStyles: function() { return /* reexport */ getShadowClassesAndStyles; }, - __experimentalGetSpacingClassesAndStyles: function() { return /* reexport */ getSpacingClassesAndStyles; }, - __experimentalImageEditor: function() { return /* reexport */ ImageEditor; }, - __experimentalImageSizeControl: function() { return /* reexport */ ImageSizeControl; }, - __experimentalImageURLInputUI: function() { return /* reexport */ ImageURLInputUI; }, - __experimentalInspectorPopoverHeader: function() { return /* reexport */ InspectorPopoverHeader; }, - __experimentalLetterSpacingControl: function() { return /* reexport */ LetterSpacingControl; }, - __experimentalLibrary: function() { return /* reexport */ library; }, - __experimentalLinkControl: function() { return /* reexport */ link_control; }, - __experimentalLinkControlSearchInput: function() { return /* reexport */ search_input; }, - __experimentalLinkControlSearchItem: function() { return /* reexport */ search_item; }, - __experimentalLinkControlSearchResults: function() { return /* reexport */ LinkControlSearchResults; }, - __experimentalListView: function() { return /* reexport */ components_list_view; }, - __experimentalPanelColorGradientSettings: function() { return /* reexport */ panel_color_gradient_settings; }, - __experimentalPreviewOptions: function() { return /* reexport */ PreviewOptions; }, - __experimentalPublishDateTimePicker: function() { return /* reexport */ publish_date_time_picker; }, - __experimentalRecursionProvider: function() { return /* reexport */ DeprecatedExperimentalRecursionProvider; }, - __experimentalResponsiveBlockControl: function() { return /* reexport */ responsive_block_control; }, - __experimentalSpacingSizesControl: function() { return /* reexport */ SpacingSizesControl; }, - __experimentalTextDecorationControl: function() { return /* reexport */ TextDecorationControl; }, - __experimentalTextTransformControl: function() { return /* reexport */ TextTransformControl; }, - __experimentalUnitControl: function() { return /* reexport */ UnitControl; }, - __experimentalUseBlockOverlayActive: function() { return /* reexport */ useBlockOverlayActive; }, - __experimentalUseBlockPreview: function() { return /* reexport */ useBlockPreview; }, - __experimentalUseBorderProps: function() { return /* reexport */ useBorderProps; }, - __experimentalUseColorProps: function() { return /* reexport */ useColorProps; }, - __experimentalUseCustomSides: function() { return /* reexport */ useCustomSides; }, - __experimentalUseGradient: function() { return /* reexport */ __experimentalUseGradient; }, - __experimentalUseHasRecursion: function() { return /* reexport */ DeprecatedExperimentalUseHasRecursion; }, - __experimentalUseMultipleOriginColorsAndGradients: function() { return /* reexport */ useMultipleOriginColorsAndGradients; }, - __experimentalUseResizeCanvas: function() { return /* reexport */ useResizeCanvas; }, - __experimentalUseShadowProps: function() { return /* reexport */ useShadowProps; }, - __experimentalWritingModeControl: function() { return /* reexport */ WritingModeControl; }, - __unstableBlockNameContext: function() { return /* reexport */ block_name_context; }, - __unstableBlockSettingsMenuFirstItem: function() { return /* reexport */ block_settings_menu_first_item; }, - __unstableBlockToolbarLastItem: function() { return /* reexport */ block_toolbar_last_item; }, - __unstableEditorStyles: function() { return /* reexport */ EditorStyles; }, - __unstableIframe: function() { return /* reexport */ iframe; }, - __unstableInserterMenuExtension: function() { return /* reexport */ inserter_menu_extension; }, - __unstableRichTextInputEvent: function() { return /* reexport */ __unstableRichTextInputEvent; }, - __unstableUseBlockSelectionClearer: function() { return /* reexport */ useBlockSelectionClearer; }, - __unstableUseClipboardHandler: function() { return /* reexport */ __unstableUseClipboardHandler; }, - __unstableUseMouseMoveTypingReset: function() { return /* reexport */ useMouseMoveTypingReset; }, - __unstableUseTypewriter: function() { return /* reexport */ useTypewriter; }, - __unstableUseTypingObserver: function() { return /* reexport */ useTypingObserver; }, - createCustomColorsHOC: function() { return /* reexport */ createCustomColorsHOC; }, - getColorClassName: function() { return /* reexport */ getColorClassName; }, - getColorObjectByAttributeValues: function() { return /* reexport */ getColorObjectByAttributeValues; }, - getColorObjectByColorValue: function() { return /* reexport */ getColorObjectByColorValue; }, - getComputedFluidTypographyValue: function() { return /* reexport */ getComputedFluidTypographyValue; }, - getCustomValueFromPreset: function() { return /* reexport */ getCustomValueFromPreset; }, - getFontSize: function() { return /* reexport */ utils_getFontSize; }, - getFontSizeClass: function() { return /* reexport */ getFontSizeClass; }, - getFontSizeObjectByValue: function() { return /* reexport */ utils_getFontSizeObjectByValue; }, - getGradientSlugByValue: function() { return /* reexport */ getGradientSlugByValue; }, - getGradientValueBySlug: function() { return /* reexport */ getGradientValueBySlug; }, - getPxFromCssUnit: function() { return /* reexport */ get_px_from_css_unit; }, - getSpacingPresetCssVar: function() { return /* reexport */ getSpacingPresetCssVar; }, - getTypographyClassesAndStyles: function() { return /* reexport */ getTypographyClassesAndStyles; }, - isValueSpacingPreset: function() { return /* reexport */ isValueSpacingPreset; }, - privateApis: function() { return /* reexport */ privateApis; }, - store: function() { return /* reexport */ store; }, - storeConfig: function() { return /* reexport */ storeConfig; }, - transformStyles: function() { return /* reexport */ transform_styles; }, - useBlockCommands: function() { return /* reexport */ useBlockCommands; }, - useBlockDisplayInformation: function() { return /* reexport */ useBlockDisplayInformation; }, - useBlockEditContext: function() { return /* reexport */ useBlockEditContext; }, - useBlockEditingMode: function() { return /* reexport */ useBlockEditingMode; }, - useBlockProps: function() { return /* reexport */ use_block_props_useBlockProps; }, - useCachedTruthy: function() { return /* reexport */ useCachedTruthy; }, - useHasRecursion: function() { return /* reexport */ useHasRecursion; }, - useInnerBlocksProps: function() { return /* reexport */ useInnerBlocksProps; }, - useSetting: function() { return /* reexport */ useSetting; }, - useSettings: function() { return /* reexport */ use_settings_useSettings; }, - withColorContext: function() { return /* reexport */ with_color_context; }, - withColors: function() { return /* reexport */ withColors; }, - withFontSizes: function() { return /* reexport */ with_font_sizes; } -}); +/** + * Whether in the process of multi-selecting or not. This flag is only true + * while the multi-selection is being selected (by mouse move), and is false + * once the multi-selection has been settled. + * + * @see hasMultiSelection + * + * @param {Object} state Global application state. + * + * @return {boolean} True if multi-selecting, false if not. + */ +function selectors_isMultiSelecting(state) { + return state.isMultiSelecting; +} -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js -var selectors_namespaceObject = {}; -__webpack_require__.r(selectors_namespaceObject); -__webpack_require__.d(selectors_namespaceObject, { - __experimentalGetActiveBlockIdByBlockNames: function() { return __experimentalGetActiveBlockIdByBlockNames; }, - __experimentalGetAllowedBlocks: function() { return __experimentalGetAllowedBlocks; }, - __experimentalGetAllowedPatterns: function() { return __experimentalGetAllowedPatterns; }, - __experimentalGetBlockListSettingsForBlocks: function() { return __experimentalGetBlockListSettingsForBlocks; }, - __experimentalGetDirectInsertBlock: function() { return __experimentalGetDirectInsertBlock; }, - __experimentalGetGlobalBlocksByName: function() { return __experimentalGetGlobalBlocksByName; }, - __experimentalGetLastBlockAttributeChanges: function() { return __experimentalGetLastBlockAttributeChanges; }, - __experimentalGetParsedPattern: function() { return __experimentalGetParsedPattern; }, - __experimentalGetPatternTransformItems: function() { return __experimentalGetPatternTransformItems; }, - __experimentalGetPatternsByBlockTypes: function() { return __experimentalGetPatternsByBlockTypes; }, - __experimentalGetReusableBlockTitle: function() { return __experimentalGetReusableBlockTitle; }, - __unstableGetBlockWithoutInnerBlocks: function() { return __unstableGetBlockWithoutInnerBlocks; }, - __unstableGetClientIdWithClientIdsTree: function() { return __unstableGetClientIdWithClientIdsTree; }, - __unstableGetClientIdsTree: function() { return __unstableGetClientIdsTree; }, - __unstableGetContentLockingParent: function() { return __unstableGetContentLockingParent; }, - __unstableGetEditorMode: function() { return __unstableGetEditorMode; }, - __unstableGetSelectedBlocksWithPartialSelection: function() { return __unstableGetSelectedBlocksWithPartialSelection; }, - __unstableGetTemporarilyEditingAsBlocks: function() { return __unstableGetTemporarilyEditingAsBlocks; }, - __unstableGetTemporarilyEditingFocusModeToRevert: function() { return __unstableGetTemporarilyEditingFocusModeToRevert; }, - __unstableGetVisibleBlocks: function() { return __unstableGetVisibleBlocks; }, - __unstableHasActiveBlockOverlayActive: function() { return __unstableHasActiveBlockOverlayActive; }, - __unstableIsFullySelected: function() { return __unstableIsFullySelected; }, - __unstableIsLastBlockChangeIgnored: function() { return __unstableIsLastBlockChangeIgnored; }, - __unstableIsSelectionCollapsed: function() { return __unstableIsSelectionCollapsed; }, - __unstableIsSelectionMergeable: function() { return __unstableIsSelectionMergeable; }, - __unstableIsWithinBlockOverlay: function() { return __unstableIsWithinBlockOverlay; }, - __unstableSelectionHasUnmergeableBlock: function() { return __unstableSelectionHasUnmergeableBlock; }, - areInnerBlocksControlled: function() { return areInnerBlocksControlled; }, - canEditBlock: function() { return canEditBlock; }, - canInsertBlockType: function() { return canInsertBlockType; }, - canInsertBlocks: function() { return canInsertBlocks; }, - canLockBlockType: function() { return canLockBlockType; }, - canMoveBlock: function() { return canMoveBlock; }, - canMoveBlocks: function() { return canMoveBlocks; }, - canRemoveBlock: function() { return canRemoveBlock; }, - canRemoveBlocks: function() { return canRemoveBlocks; }, - didAutomaticChange: function() { return didAutomaticChange; }, - getAdjacentBlockClientId: function() { return getAdjacentBlockClientId; }, - getAllowedBlocks: function() { return getAllowedBlocks; }, - getBlock: function() { return getBlock; }, - getBlockAttributes: function() { return getBlockAttributes; }, - getBlockCount: function() { return getBlockCount; }, - getBlockEditingMode: function() { return getBlockEditingMode; }, - getBlockHierarchyRootClientId: function() { return getBlockHierarchyRootClientId; }, - getBlockIndex: function() { return getBlockIndex; }, - getBlockInsertionPoint: function() { return getBlockInsertionPoint; }, - getBlockListSettings: function() { return getBlockListSettings; }, - getBlockMode: function() { return getBlockMode; }, - getBlockName: function() { return getBlockName; }, - getBlockNamesByClientId: function() { return getBlockNamesByClientId; }, - getBlockOrder: function() { return getBlockOrder; }, - getBlockParents: function() { return getBlockParents; }, - getBlockParentsByBlockName: function() { return getBlockParentsByBlockName; }, - getBlockRootClientId: function() { return getBlockRootClientId; }, - getBlockSelectionEnd: function() { return getBlockSelectionEnd; }, - getBlockSelectionStart: function() { return getBlockSelectionStart; }, - getBlockTransformItems: function() { return getBlockTransformItems; }, - getBlocks: function() { return getBlocks; }, - getBlocksByClientId: function() { return getBlocksByClientId; }, - getBlocksByName: function() { return getBlocksByName; }, - getClientIdsOfDescendants: function() { return getClientIdsOfDescendants; }, - getClientIdsWithDescendants: function() { return getClientIdsWithDescendants; }, - getDirectInsertBlock: function() { return getDirectInsertBlock; }, - getDraggedBlockClientIds: function() { return getDraggedBlockClientIds; }, - getFirstMultiSelectedBlockClientId: function() { return getFirstMultiSelectedBlockClientId; }, - getGlobalBlockCount: function() { return getGlobalBlockCount; }, - getInserterItems: function() { return getInserterItems; }, - getLastMultiSelectedBlockClientId: function() { return getLastMultiSelectedBlockClientId; }, - getLowestCommonAncestorWithSelectedBlock: function() { return getLowestCommonAncestorWithSelectedBlock; }, - getMultiSelectedBlockClientIds: function() { return getMultiSelectedBlockClientIds; }, - getMultiSelectedBlocks: function() { return getMultiSelectedBlocks; }, - getMultiSelectedBlocksEndClientId: function() { return getMultiSelectedBlocksEndClientId; }, - getMultiSelectedBlocksStartClientId: function() { return getMultiSelectedBlocksStartClientId; }, - getNextBlockClientId: function() { return getNextBlockClientId; }, - getPatternsByBlockTypes: function() { return getPatternsByBlockTypes; }, - getPreviousBlockClientId: function() { return getPreviousBlockClientId; }, - getSelectedBlock: function() { return getSelectedBlock; }, - getSelectedBlockClientId: function() { return getSelectedBlockClientId; }, - getSelectedBlockClientIds: function() { return getSelectedBlockClientIds; }, - getSelectedBlockCount: function() { return getSelectedBlockCount; }, - getSelectedBlocksInitialCaretPosition: function() { return getSelectedBlocksInitialCaretPosition; }, - getSelectionEnd: function() { return getSelectionEnd; }, - getSelectionStart: function() { return getSelectionStart; }, - getSettings: function() { return getSettings; }, - getTemplate: function() { return getTemplate; }, - getTemplateLock: function() { return getTemplateLock; }, - hasBlockMovingClientId: function() { return selectors_hasBlockMovingClientId; }, - hasDraggedInnerBlock: function() { return hasDraggedInnerBlock; }, - hasInserterItems: function() { return hasInserterItems; }, - hasMultiSelection: function() { return hasMultiSelection; }, - hasSelectedBlock: function() { return hasSelectedBlock; }, - hasSelectedInnerBlock: function() { return hasSelectedInnerBlock; }, - isAncestorBeingDragged: function() { return isAncestorBeingDragged; }, - isAncestorMultiSelected: function() { return isAncestorMultiSelected; }, - isBlockBeingDragged: function() { return isBlockBeingDragged; }, - isBlockHighlighted: function() { return isBlockHighlighted; }, - isBlockInsertionPointVisible: function() { return isBlockInsertionPointVisible; }, - isBlockMultiSelected: function() { return isBlockMultiSelected; }, - isBlockSelected: function() { return isBlockSelected; }, - isBlockValid: function() { return isBlockValid; }, - isBlockVisible: function() { return isBlockVisible; }, - isBlockWithinSelection: function() { return isBlockWithinSelection; }, - isCaretWithinFormattedText: function() { return isCaretWithinFormattedText; }, - isDraggingBlocks: function() { return isDraggingBlocks; }, - isFirstMultiSelectedBlock: function() { return isFirstMultiSelectedBlock; }, - isGroupable: function() { return isGroupable; }, - isLastBlockChangePersistent: function() { return isLastBlockChangePersistent; }, - isMultiSelecting: function() { return selectors_isMultiSelecting; }, - isNavigationMode: function() { return isNavigationMode; }, - isSelectionEnabled: function() { return selectors_isSelectionEnabled; }, - isTyping: function() { return selectors_isTyping; }, - isUngroupable: function() { return isUngroupable; }, - isValidTemplate: function() { return isValidTemplate; }, - wasBlockJustInserted: function() { return wasBlockJustInserted; } -}); +/** + * Selector that returns if multi-selection is enabled or not. + * + * @param {Object} state Global application state. + * + * @return {boolean} True if it should be possible to multi-select blocks, false if multi-selection is disabled. + */ +function selectors_isSelectionEnabled(state) { + return state.isSelectionEnabled; +} -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/private-actions.js -var private_actions_namespaceObject = {}; -__webpack_require__.r(private_actions_namespaceObject); -__webpack_require__.d(private_actions_namespaceObject, { - __experimentalUpdateSettings: function() { return __experimentalUpdateSettings; }, - clearBlockRemovalPrompt: function() { return clearBlockRemovalPrompt; }, - deleteStyleOverride: function() { return deleteStyleOverride; }, - ensureDefaultBlock: function() { return ensureDefaultBlock; }, - hideBlockInterface: function() { return hideBlockInterface; }, - privateRemoveBlocks: function() { return privateRemoveBlocks; }, - registerBlockBindingsSource: function() { return registerBlockBindingsSource; }, - setBlockRemovalRules: function() { return setBlockRemovalRules; }, - setLastFocus: function() { return setLastFocus; }, - setOpenedBlockSettingsMenu: function() { return setOpenedBlockSettingsMenu; }, - setStyleOverride: function() { return setStyleOverride; }, - showBlockInterface: function() { return showBlockInterface; }, - stopEditingAsBlocks: function() { return stopEditingAsBlocks; }, - syncDerivedUpdates: function() { return syncDerivedUpdates; } -}); +/** + * Returns the block's editing mode, defaulting to "visual" if not explicitly + * assigned. + * + * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * + * @return {Object} Block editing mode. + */ +function getBlockMode(state, clientId) { + return state.blocksMode[clientId] || 'visual'; +} -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/private-selectors.js -var private_selectors_namespaceObject = {}; -__webpack_require__.r(private_selectors_namespaceObject); -__webpack_require__.d(private_selectors_namespaceObject, { - getAllBlockBindingsSources: function() { return getAllBlockBindingsSources; }, - getAllPatterns: function() { return getAllPatterns; }, - getBlockBindingsSource: function() { return getBlockBindingsSource; }, - getBlockRemovalRules: function() { return getBlockRemovalRules; }, - getEnabledBlockParents: function() { return getEnabledBlockParents; }, - getEnabledClientIdsTree: function() { return getEnabledClientIdsTree; }, - getFetchedPatterns: function() { return getFetchedPatterns; }, - getInserterMediaCategories: function() { return getInserterMediaCategories; }, - getLastFocus: function() { return getLastFocus; }, - getLastInsertedBlocksClientIds: function() { return getLastInsertedBlocksClientIds; }, - getOpenedBlockSettingsMenu: function() { return getOpenedBlockSettingsMenu; }, - getRegisteredInserterMediaCategories: function() { return getRegisteredInserterMediaCategories; }, - getRemovalPromptData: function() { return getRemovalPromptData; }, - getStyleOverrides: function() { return getStyleOverrides; }, - hasAllowedPatterns: function() { return hasAllowedPatterns; }, - isBlockInterfaceHidden: function() { return private_selectors_isBlockInterfaceHidden; }, - isBlockSubtreeDisabled: function() { return isBlockSubtreeDisabled; } -}); +/** + * Returns true if the user is typing, or false otherwise. + * + * @param {Object} state Global application state. + * + * @return {boolean} Whether user is typing. + */ +function selectors_isTyping(state) { + return state.isTyping; +} -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/resolvers.js -var resolvers_namespaceObject = {}; -__webpack_require__.r(resolvers_namespaceObject); -__webpack_require__.d(resolvers_namespaceObject, { - getFetchedPatterns: function() { return resolvers_getFetchedPatterns; } -}); +/** + * Returns true if the user is dragging blocks, or false otherwise. + * + * @param {Object} state Global application state. + * + * @return {boolean} Whether user is dragging blocks. + */ +function isDraggingBlocks(state) { + return !!state.draggedBlocks.length; +} -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/actions.js -var actions_namespaceObject = {}; -__webpack_require__.r(actions_namespaceObject); -__webpack_require__.d(actions_namespaceObject, { - __unstableDeleteSelection: function() { return __unstableDeleteSelection; }, - __unstableExpandSelection: function() { return __unstableExpandSelection; }, - __unstableMarkAutomaticChange: function() { return __unstableMarkAutomaticChange; }, - __unstableMarkLastChangeAsPersistent: function() { return __unstableMarkLastChangeAsPersistent; }, - __unstableMarkNextChangeAsNotPersistent: function() { return __unstableMarkNextChangeAsNotPersistent; }, - __unstableSaveReusableBlock: function() { return __unstableSaveReusableBlock; }, - __unstableSetEditorMode: function() { return __unstableSetEditorMode; }, - __unstableSetTemporarilyEditingAsBlocks: function() { return __unstableSetTemporarilyEditingAsBlocks; }, - __unstableSplitSelection: function() { return __unstableSplitSelection; }, - clearSelectedBlock: function() { return clearSelectedBlock; }, - duplicateBlocks: function() { return duplicateBlocks; }, - enterFormattedText: function() { return enterFormattedText; }, - exitFormattedText: function() { return exitFormattedText; }, - flashBlock: function() { return flashBlock; }, - hideInsertionPoint: function() { return hideInsertionPoint; }, - insertAfterBlock: function() { return insertAfterBlock; }, - insertBeforeBlock: function() { return insertBeforeBlock; }, - insertBlock: function() { return insertBlock; }, - insertBlocks: function() { return insertBlocks; }, - insertDefaultBlock: function() { return insertDefaultBlock; }, - mergeBlocks: function() { return mergeBlocks; }, - moveBlockToPosition: function() { return moveBlockToPosition; }, - moveBlocksDown: function() { return moveBlocksDown; }, - moveBlocksToPosition: function() { return moveBlocksToPosition; }, - moveBlocksUp: function() { return moveBlocksUp; }, - multiSelect: function() { return multiSelect; }, - receiveBlocks: function() { return receiveBlocks; }, - registerInserterMediaCategory: function() { return registerInserterMediaCategory; }, - removeBlock: function() { return removeBlock; }, - removeBlocks: function() { return removeBlocks; }, - replaceBlock: function() { return replaceBlock; }, - replaceBlocks: function() { return replaceBlocks; }, - replaceInnerBlocks: function() { return replaceInnerBlocks; }, - resetBlocks: function() { return resetBlocks; }, - resetSelection: function() { return resetSelection; }, - selectBlock: function() { return selectBlock; }, - selectNextBlock: function() { return selectNextBlock; }, - selectPreviousBlock: function() { return selectPreviousBlock; }, - selectionChange: function() { return selectionChange; }, - setBlockEditingMode: function() { return setBlockEditingMode; }, - setBlockMovingClientId: function() { return setBlockMovingClientId; }, - setBlockVisibility: function() { return setBlockVisibility; }, - setHasControlledInnerBlocks: function() { return setHasControlledInnerBlocks; }, - setNavigationMode: function() { return setNavigationMode; }, - setTemplateValidity: function() { return setTemplateValidity; }, - showInsertionPoint: function() { return showInsertionPoint; }, - startDraggingBlocks: function() { return startDraggingBlocks; }, - startMultiSelect: function() { return startMultiSelect; }, - startTyping: function() { return startTyping; }, - stopDraggingBlocks: function() { return stopDraggingBlocks; }, - stopMultiSelect: function() { return stopMultiSelect; }, - stopTyping: function() { return stopTyping; }, - synchronizeTemplate: function() { return synchronizeTemplate; }, - toggleBlockHighlight: function() { return toggleBlockHighlight; }, - toggleBlockMode: function() { return toggleBlockMode; }, - toggleSelection: function() { return toggleSelection; }, - unsetBlockEditingMode: function() { return unsetBlockEditingMode; }, - updateBlock: function() { return updateBlock; }, - updateBlockAttributes: function() { return updateBlockAttributes; }, - updateBlockListSettings: function() { return updateBlockListSettings; }, - updateSettings: function() { return updateSettings; }, - validateBlocksToTemplate: function() { return validateBlocksToTemplate; } -}); - -// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/index.js -var global_styles_namespaceObject = {}; -__webpack_require__.r(global_styles_namespaceObject); -__webpack_require__.d(global_styles_namespaceObject, { - AdvancedPanel: function() { return AdvancedPanel; }, - BorderPanel: function() { return BorderPanel; }, - ColorPanel: function() { return ColorPanel; }, - DimensionsPanel: function() { return DimensionsPanel; }, - EffectsPanel: function() { return EffectsPanel; }, - FiltersPanel: function() { return FiltersPanel; }, - GlobalStylesContext: function() { return GlobalStylesContext; }, - ImageSettingsPanel: function() { return ImageSettingsPanel; }, - TypographyPanel: function() { return TypographyPanel; }, - areGlobalStyleConfigsEqual: function() { return areGlobalStyleConfigsEqual; }, - getBlockCSSSelector: function() { return getBlockCSSSelector; }, - getGlobalStylesChanges: function() { return getGlobalStylesChanges; }, - getLayoutStyles: function() { return getLayoutStyles; }, - useGlobalSetting: function() { return useGlobalSetting; }, - useGlobalStyle: function() { return useGlobalStyle; }, - useGlobalStylesOutput: function() { return useGlobalStylesOutput; }, - useGlobalStylesOutputWithConfig: function() { return useGlobalStylesOutputWithConfig; }, - useGlobalStylesReset: function() { return useGlobalStylesReset; }, - useHasBorderPanel: function() { return useHasBorderPanel; }, - useHasColorPanel: function() { return useHasColorPanel; }, - useHasDimensionsPanel: function() { return useHasDimensionsPanel; }, - useHasEffectsPanel: function() { return useHasEffectsPanel; }, - useHasFiltersPanel: function() { return useHasFiltersPanel; }, - useHasImageSettingsPanel: function() { return useHasImageSettingsPanel; }, - useHasTypographyPanel: function() { return useHasTypographyPanel; }, - useSettingsForBlockElement: function() { return useSettingsForBlockElement; } -}); - -// EXTERNAL MODULE: external "React" -var external_React_ = __webpack_require__(9196); -var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); -;// CONCATENATED MODULE: external ["wp","blocks"] -var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; -;// CONCATENATED MODULE: external ["wp","element"] -var external_wp_element_namespaceObject = window["wp"]["element"]; -;// CONCATENATED MODULE: external ["wp","data"] -var external_wp_data_namespaceObject = window["wp"]["data"]; -;// CONCATENATED MODULE: external ["wp","compose"] -var external_wp_compose_namespaceObject = window["wp"]["compose"]; -;// CONCATENATED MODULE: external ["wp","hooks"] -var external_wp_hooks_namespaceObject = window["wp"]["hooks"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/context.js /** - * WordPress dependencies - */ - -const mayDisplayControlsKey = Symbol('mayDisplayControls'); -const mayDisplayParentControlsKey = Symbol('mayDisplayParentControls'); -const blockEditingModeKey = Symbol('blockEditingMode'); -const DEFAULT_BLOCK_EDIT_CONTEXT = { - name: '', - isSelected: false -}; -const Context = (0,external_wp_element_namespaceObject.createContext)(DEFAULT_BLOCK_EDIT_CONTEXT); -const { - Provider -} = Context; - - -/** - * A hook that returns the block edit context. + * Returns the client ids of any blocks being directly dragged. * - * @return {Object} Block edit context + * This does not include children of a parent being dragged. + * + * @param {Object} state Global application state. + * + * @return {string[]} Array of dragged block client ids. */ -function useBlockEditContext() { - return (0,external_wp_element_namespaceObject.useContext)(Context); +function getDraggedBlockClientIds(state) { + return state.draggedBlocks; } -;// CONCATENATED MODULE: external ["wp","deprecated"] -var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"]; -var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject); -// EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js -var es6 = __webpack_require__(5619); -var es6_default = /*#__PURE__*/__webpack_require__.n(es6); -;// CONCATENATED MODULE: external ["wp","i18n"] -var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/defaults.js -/** - * WordPress dependencies - */ - -const PREFERENCES_DEFAULTS = { - insertUsage: {} -}; - /** - * The default editor settings + * Returns whether the block is being dragged. * - * @typedef {Object} SETTINGS_DEFAULT - * @property {boolean} alignWide Enable/Disable Wide/Full Alignments - * @property {boolean} supportsLayout Enable/disable layouts support in container blocks. - * @property {boolean} imageEditing Image Editing settings set to false to disable. - * @property {Array} imageSizes Available image sizes - * @property {number} maxWidth Max width to constraint resizing - * @property {boolean|Array} allowedBlockTypes Allowed block types - * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed - * @property {boolean} distractionFree Whether or not the editor UI is distraction free - * @property {boolean} focusMode Whether the focus mode is enabled or not - * @property {Array} styles Editor Styles - * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode - * @property {string} bodyPlaceholder Empty post placeholder - * @property {string} titlePlaceholder Empty title placeholder - * @property {boolean} canLockBlocks Whether the user can manage Block Lock state - * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor - * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks - * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter. - * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked. - * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes. - * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory - * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns - * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories - * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks + * Only returns true if the block is being directly dragged, + * not if the block is a child of a parent being dragged. + * See `isAncestorBeingDragged` for child blocks. + * + * @param {Object} state Global application state. + * @param {string} clientId Client id for block to check. + * + * @return {boolean} Whether the block is being dragged. */ -const SETTINGS_DEFAULTS = { - alignWide: false, - supportsLayout: true, - // colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. - // The setting is only kept for backward compatibility purposes. - colors: [{ - name: (0,external_wp_i18n_namespaceObject.__)('Black'), - slug: 'black', - color: '#000000' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Cyan bluish gray'), - slug: 'cyan-bluish-gray', - color: '#abb8c3' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('White'), - slug: 'white', - color: '#ffffff' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Pale pink'), - slug: 'pale-pink', - color: '#f78da7' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Vivid red'), - slug: 'vivid-red', - color: '#cf2e2e' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid orange'), - slug: 'luminous-vivid-orange', - color: '#ff6900' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid amber'), - slug: 'luminous-vivid-amber', - color: '#fcb900' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Light green cyan'), - slug: 'light-green-cyan', - color: '#7bdcb5' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Vivid green cyan'), - slug: 'vivid-green-cyan', - color: '#00d084' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Pale cyan blue'), - slug: 'pale-cyan-blue', - color: '#8ed1fc' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Vivid cyan blue'), - slug: 'vivid-cyan-blue', - color: '#0693e3' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Vivid purple'), - slug: 'vivid-purple', - color: '#9b51e0' - }], - // fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. - // The setting is only kept for backward compatibility purposes. - fontSizes: [{ - name: (0,external_wp_i18n_namespaceObject._x)('Small', 'font size name'), - size: 13, - slug: 'small' - }, { - name: (0,external_wp_i18n_namespaceObject._x)('Normal', 'font size name'), - size: 16, - slug: 'normal' - }, { - name: (0,external_wp_i18n_namespaceObject._x)('Medium', 'font size name'), - size: 20, - slug: 'medium' - }, { - name: (0,external_wp_i18n_namespaceObject._x)('Large', 'font size name'), - size: 36, - slug: 'large' - }, { - name: (0,external_wp_i18n_namespaceObject._x)('Huge', 'font size name'), - size: 42, - slug: 'huge' - }], - // Image default size slug. - imageDefaultSize: 'large', - imageSizes: [{ - slug: 'thumbnail', - name: (0,external_wp_i18n_namespaceObject.__)('Thumbnail') - }, { - slug: 'medium', - name: (0,external_wp_i18n_namespaceObject.__)('Medium') - }, { - slug: 'large', - name: (0,external_wp_i18n_namespaceObject.__)('Large') - }, { - slug: 'full', - name: (0,external_wp_i18n_namespaceObject.__)('Full Size') - }], - // Allow plugin to disable Image Editor if need be. - imageEditing: true, - // This is current max width of the block inner area - // It's used to constraint image resizing and this value could be overridden later by themes - maxWidth: 580, - // Allowed block types for the editor, defaulting to true (all supported). - allowedBlockTypes: true, - // Maximum upload size in bytes allowed for the site. - maxUploadFileSize: 0, - // List of allowed mime types and file extensions. - allowedMimeTypes: null, - // Allows to disable block locking interface. - canLockBlocks: true, - // Allows to disable Openverse media category in the inserter. - enableOpenverseMediaCategory: true, - clearBlockSelection: true, - __experimentalCanUserUseUnfilteredHTML: false, - __experimentalBlockDirectory: false, - __mobileEnablePageTemplates: false, - __experimentalBlockPatterns: [], - __experimentalBlockPatternCategories: [], - __unstableGalleryWithImageBlocks: false, - __unstableIsPreviewMode: false, - // These settings will be completely revamped in the future. - // The goal is to evolve this into an API which will instruct - // the block inspector to animate transitions between what it - // displays based on the relationship between the selected block - // and its parent, and only enable it if the parent is controlling - // its children blocks. - blockInspectorAnimation: { - animationParent: 'core/navigation', - 'core/navigation': { - enterDirection: 'leftToRight' - }, - 'core/navigation-submenu': { - enterDirection: 'rightToLeft' - }, - 'core/navigation-link': { - enterDirection: 'rightToLeft' - }, - 'core/search': { - enterDirection: 'rightToLeft' - }, - 'core/social-links': { - enterDirection: 'rightToLeft' - }, - 'core/page-list': { - enterDirection: 'rightToLeft' - }, - 'core/spacer': { - enterDirection: 'rightToLeft' - }, - 'core/home-link': { - enterDirection: 'rightToLeft' - }, - 'core/site-title': { - enterDirection: 'rightToLeft' - }, - 'core/site-logo': { - enterDirection: 'rightToLeft' - } - }, - generateAnchors: false, - // gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults. - // The setting is only kept for backward compatibility purposes. - gradients: [{ - name: (0,external_wp_i18n_namespaceObject.__)('Vivid cyan blue to vivid purple'), - gradient: 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)', - slug: 'vivid-cyan-blue-to-vivid-purple' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Light green cyan to vivid green cyan'), - gradient: 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)', - slug: 'light-green-cyan-to-vivid-green-cyan' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid amber to luminous vivid orange'), - gradient: 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)', - slug: 'luminous-vivid-amber-to-luminous-vivid-orange' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Luminous vivid orange to vivid red'), - gradient: 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)', - slug: 'luminous-vivid-orange-to-vivid-red' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Very light gray to cyan bluish gray'), - gradient: 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)', - slug: 'very-light-gray-to-cyan-bluish-gray' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Cool to warm spectrum'), - gradient: 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)', - slug: 'cool-to-warm-spectrum' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Blush light purple'), - gradient: 'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)', - slug: 'blush-light-purple' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Blush bordeaux'), - gradient: 'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)', - slug: 'blush-bordeaux' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Luminous dusk'), - gradient: 'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)', - slug: 'luminous-dusk' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Pale ocean'), - gradient: 'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)', - slug: 'pale-ocean' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Electric grass'), - gradient: 'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)', - slug: 'electric-grass' - }, { - name: (0,external_wp_i18n_namespaceObject.__)('Midnight'), - gradient: 'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)', - slug: 'midnight' - }], - __unstableResolvedAssets: { - styles: [], - scripts: [] - } -}; +function isBlockBeingDragged(state, clientId) { + return state.draggedBlocks.includes(clientId); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/array.js /** - * Insert one or multiple elements into a given position of an array. + * Returns whether a parent/ancestor of the block is being dragged. * - * @param {Array} array Source array. - * @param {*} elements Elements to insert. - * @param {number} index Insert Position. + * @param {Object} state Global application state. + * @param {string} clientId Client id for block to check. * - * @return {Array} Result. + * @return {boolean} Whether the block's ancestor is being dragged. */ -function insertAt(array, elements, index) { - return [...array.slice(0, index), ...(Array.isArray(elements) ? elements : [elements]), ...array.slice(index)]; +function isAncestorBeingDragged(state, clientId) { + // Return early if no blocks are being dragged rather than + // the more expensive check for parents. + if (!isDraggingBlocks(state)) { + return false; + } + const parents = getBlockParents(state, clientId); + return parents.some(parentClientId => isBlockBeingDragged(state, parentClientId)); } /** - * Moves an element in an array. + * Returns true if the caret is within formatted text, or false otherwise. * - * @param {Array} array Source array. - * @param {number} from Source index. - * @param {number} to Destination index. - * @param {number} count Number of elements to move. + * @deprecated * - * @return {Array} Result. + * @return {boolean} Whether the caret is within formatted text. */ -function moveTo(array, from, to, count = 1) { - const withoutMovedElements = [...array]; - withoutMovedElements.splice(from, count); - return insertAt(withoutMovedElements, array.slice(from, from + count), to); +function isCaretWithinFormattedText() { + external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).isCaretWithinFormattedText', { + since: '6.1', + version: '6.3' + }); + return false; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/reducer.js /** - * External dependencies + * Returns the insertion point, the index at which the new inserted block would + * be placed. Defaults to the last index. + * + * @param {Object} state Editor state. + * + * @return {Object} Insertion point object with `rootClientId`, `index`. */ - +const getBlockInsertionPoint = rememo(state => { + let rootClientId, index; + const { + insertionPoint, + selection: { + selectionEnd + } + } = state; + if (insertionPoint !== null) { + return insertionPoint; + } + const { + clientId + } = selectionEnd; + if (clientId) { + rootClientId = getBlockRootClientId(state, clientId) || undefined; + index = getBlockIndex(state, selectionEnd.clientId) + 1; + } else { + index = getBlockOrder(state).length; + } + return { + rootClientId, + index + }; +}, state => [state.insertionPoint, state.selection.selectionEnd.clientId, state.blocks.parents, state.blocks.order]); /** - * WordPress dependencies + * Returns true if we should show the block insertion point. + * + * @param {Object} state Global application state. + * + * @return {?boolean} Whether the insertion point is visible or not. */ - - +function isBlockInsertionPointVisible(state) { + return state.insertionPoint !== null; +} /** - * Internal dependencies + * Returns whether the blocks matches the template or not. + * + * @param {boolean} state + * @return {?boolean} Whether the template is valid or not. */ - - -const identity = x => x; +function isValidTemplate(state) { + return state.template.isValid; +} /** - * Given an array of blocks, returns an object where each key is a nesting - * context, the value of which is an array of block client IDs existing within - * that nesting context. + * Returns the defined block template * - * @param {Array} blocks Blocks to map. - * @param {?string} rootClientId Assumed root client ID. + * @param {boolean} state * - * @return {Object} Block order map object. + * @return {?Array} Block Template. */ -function mapBlockOrder(blocks, rootClientId = '') { - const result = new Map(); - const current = []; - result.set(rootClientId, current); - blocks.forEach(block => { - const { - clientId, - innerBlocks - } = block; - current.push(clientId); - mapBlockOrder(innerBlocks, clientId).forEach((order, subClientId) => { - result.set(subClientId, order); - }); - }); - return result; +function getTemplate(state) { + return state.settings.template; } /** - * Given an array of blocks, returns an object where each key contains - * the clientId of the block and the value is the parent of the block. + * Returns the defined block template lock. Optionally accepts a root block + * client ID as context, otherwise defaulting to the global context. * - * @param {Array} blocks Blocks to map. - * @param {?string} rootClientId Assumed root client ID. + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional block root client ID. * - * @return {Object} Block order map object. + * @return {string|false} Block Template Lock */ -function mapBlockParents(blocks, rootClientId = '') { - const result = []; - const stack = [[rootClientId, blocks]]; - while (stack.length) { - const [parent, currentBlocks] = stack.shift(); - currentBlocks.forEach(({ - innerBlocks, - ...block - }) => { - result.push([block.clientId, parent]); - if (innerBlocks?.length) { - stack.push([block.clientId, innerBlocks]); - } - }); +function getTemplateLock(state, rootClientId) { + var _getBlockListSettings; + if (!rootClientId) { + var _state$settings$templ; + return (_state$settings$templ = state.settings.templateLock) !== null && _state$settings$templ !== void 0 ? _state$settings$templ : false; } - return result; + return (_getBlockListSettings = getBlockListSettings(state, rootClientId)?.templateLock) !== null && _getBlockListSettings !== void 0 ? _getBlockListSettings : false; } +const checkAllowList = (list, item, defaultResult = null) => { + if (typeof list === 'boolean') { + return list; + } + if (Array.isArray(list)) { + // TODO: when there is a canonical way to detect that we are editing a post + // the following check should be changed to something like: + // if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null ) + if (list.includes('core/post-content') && item === null) { + return true; + } + return list.includes(item); + } + return defaultResult; +}; /** - * Helper method to iterate through all blocks, recursing into inner blocks, - * applying a transformation function to each one. - * Returns a flattened object with the transformed blocks. + * Determines if the given block type is allowed to be inserted into the block list. + * This function is not exported and not memoized because using a memoized selector + * inside another memoized selector is just a waste of time. * - * @param {Array} blocks Blocks to flatten. - * @param {Function} transform Transforming function to be applied to each block. + * @param {Object} state Editor state. + * @param {string|Object} blockName The block type object, e.g., the response + * from the block directory; or a string name of + * an installed block type, e.g.' core/paragraph'. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Array} Flattened object. + * @return {boolean} Whether the given block type is allowed to be inserted. */ -function flattenBlocks(blocks, transform = identity) { - const result = []; - const stack = [...blocks]; - while (stack.length) { - const { - innerBlocks, - ...block - } = stack.shift(); - stack.push(...innerBlocks); - result.push([block.clientId, transform(block)]); +const canInsertBlockTypeUnmemoized = (state, blockName, rootClientId = null) => { + let blockType; + if (blockName && 'object' === typeof blockName) { + blockType = blockName; + blockName = blockType.name; + } else { + blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); } - return result; -} -function getFlattenedClientIds(blocks) { - const result = {}; - const stack = [...blocks]; - while (stack.length) { - const { - innerBlocks, - ...block - } = stack.shift(); - stack.push(...innerBlocks); - result[block.clientId] = true; + if (!blockType) { + return false; } - return result; -} + const { + allowedBlockTypes + } = getSettings(state); + const isBlockAllowedInEditor = checkAllowList(allowedBlockTypes, blockName, true); + if (!isBlockAllowedInEditor) { + return false; + } + const isLocked = !!getTemplateLock(state, rootClientId); + if (isLocked) { + return false; + } + if (getBlockEditingMode(state, rootClientId !== null && rootClientId !== void 0 ? rootClientId : '') === 'disabled') { + return false; + } + const parentBlockListSettings = getBlockListSettings(state, rootClientId); + + // The parent block doesn't have settings indicating it doesn't support + // inner blocks, return false. + if (rootClientId && parentBlockListSettings === undefined) { + return false; + } + const parentAllowedBlocks = parentBlockListSettings?.allowedBlocks; + const hasParentAllowedBlock = checkAllowList(parentAllowedBlocks, blockName); + const blockAllowedParentBlocks = blockType.parent; + const parentName = getBlockName(state, rootClientId); + const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName); + let hasBlockAllowedAncestor = true; + const blockAllowedAncestorBlocks = blockType.ancestor; + if (blockAllowedAncestorBlocks) { + const ancestors = [rootClientId, ...getBlockParents(state, rootClientId)]; + hasBlockAllowedAncestor = ancestors.some(ancestorClientId => checkAllowList(blockAllowedAncestorBlocks, getBlockName(state, ancestorClientId))); + } + const canInsert = hasBlockAllowedAncestor && (hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true); + if (!canInsert) { + return canInsert; + } + + /** + * This filter is an ad-hoc solution to prevent adding template parts inside post content. + * Conceptually, having a filter inside a selector is bad pattern so this code will be + * replaced by a declarative API that doesn't the following drawbacks: + * + * Filters are not reactive: Upon switching between "template mode" and non "template mode", + * the filter and selector won't necessarily be executed again. For now, it doesn't matter much + * because you can't switch between the two modes while the inserter stays open. + * + * Filters are global: Once they're defined, they will affect all editor instances and all registries. + * An ideal API would only affect specific editor instances. + */ + return (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.__unstableCanInsertBlockType', canInsert, blockType, rootClientId, { + // Pass bound selectors of the current registry. If we're in a nested + // context, the data will differ from the one selected from the root + // registry. + getBlock: getBlock.bind(null, state), + getBlockParentsByBlockName: getBlockParentsByBlockName.bind(null, state) + }); +}; /** - * Given an array of blocks, returns an object containing all blocks, without - * attributes, recursing into inner blocks. Keys correspond to the block client - * ID, the value of which is the attributes object. + * Determines if the given block type is allowed to be inserted into the block list. * - * @param {Array} blocks Blocks to flatten. + * @param {Object} state Editor state. + * @param {string} blockName The name of the block type, e.g.' core/paragraph'. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Array} Flattened block attributes object. + * @return {boolean} Whether the given block type is allowed to be inserted. */ -function getFlattenedBlocksWithoutAttributes(blocks) { - return flattenBlocks(blocks, block => { - const { - attributes, - ...restBlock - } = block; - return restBlock; - }); -} +const canInsertBlockType = rememo(canInsertBlockTypeUnmemoized, (state, blockName, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes]); /** - * Given an array of blocks, returns an object containing all block attributes, - * recursing into inner blocks. Keys correspond to the block client ID, the - * value of which is the attributes object. + * Determines if the given blocks are allowed to be inserted into the block + * list. * - * @param {Array} blocks Blocks to flatten. + * @param {Object} state Editor state. + * @param {string} clientIds The block client IDs to be inserted. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Array} Flattened block attributes object. + * @return {boolean} Whether the given blocks are allowed to be inserted. */ -function getFlattenedBlockAttributes(blocks) { - return flattenBlocks(blocks, block => block.attributes); +function canInsertBlocks(state, clientIds, rootClientId = null) { + return clientIds.every(id => canInsertBlockType(state, getBlockName(state, id), rootClientId)); } /** - * Returns true if the two object arguments have the same keys, or false - * otherwise. + * Determines if the given block is allowed to be deleted. * - * @param {Object} a First object. - * @param {Object} b Second object. + * @param {Object} state Editor state. + * @param {string} clientId The block client Id. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {boolean} Whether the two objects have the same keys. + * @return {boolean} Whether the given block is allowed to be removed. */ -function hasSameKeys(a, b) { - return es6_default()(Object.keys(a), Object.keys(b)); +function canRemoveBlock(state, clientId, rootClientId = null) { + const attributes = getBlockAttributes(state, clientId); + if (attributes === null) { + return true; + } + if (attributes.lock?.remove !== undefined) { + return !attributes.lock.remove; + } + if (getTemplateLock(state, rootClientId)) { + return false; + } + return getBlockEditingMode(state, rootClientId) !== 'disabled'; } /** - * Returns true if, given the currently dispatching action and the previously - * dispatched action, the two actions are updating the same block attribute, or - * false otherwise. + * Determines if the given blocks are allowed to be removed. * - * @param {Object} action Currently dispatching action. - * @param {Object} lastAction Previously dispatched action. + * @param {Object} state Editor state. + * @param {string} clientIds The block client IDs to be removed. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {boolean} Whether actions are updating the same block attribute. + * @return {boolean} Whether the given blocks are allowed to be removed. */ -function isUpdatingSameBlockAttribute(action, lastAction) { - return action.type === 'UPDATE_BLOCK_ATTRIBUTES' && lastAction !== undefined && lastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' && es6_default()(action.clientIds, lastAction.clientIds) && hasSameKeys(action.attributes, lastAction.attributes); +function canRemoveBlocks(state, clientIds, rootClientId = null) { + return clientIds.every(clientId => canRemoveBlock(state, clientId, rootClientId)); } -function updateBlockTreeForBlocks(state, blocks) { - const treeToUpdate = state.tree; - const stack = [...blocks]; - const flattenedBlocks = [...blocks]; - while (stack.length) { - const block = stack.shift(); - stack.push(...block.innerBlocks); - flattenedBlocks.push(...block.innerBlocks); + +/** + * Determines if the given block is allowed to be moved. + * + * @param {Object} state Editor state. + * @param {string} clientId The block client Id. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {boolean | undefined} Whether the given block is allowed to be moved. + */ +function canMoveBlock(state, clientId, rootClientId = null) { + const attributes = getBlockAttributes(state, clientId); + if (attributes === null) { + return true; } - // Create objects before mutating them, that way it's always defined. - for (const block of flattenedBlocks) { - treeToUpdate.set(block.clientId, {}); + if (attributes.lock?.move !== undefined) { + return !attributes.lock.move; } - for (const block of flattenedBlocks) { - treeToUpdate.set(block.clientId, Object.assign(treeToUpdate.get(block.clientId), { - ...state.byClientId.get(block.clientId), - attributes: state.attributes.get(block.clientId), - innerBlocks: block.innerBlocks.map(subBlock => treeToUpdate.get(subBlock.clientId)) - })); + if (getTemplateLock(state, rootClientId) === 'all') { + return false; } + return getBlockEditingMode(state, rootClientId) !== 'disabled'; } -function updateParentInnerBlocksInTree(state, updatedClientIds, updateChildrenOfUpdatedClientIds = false) { - const treeToUpdate = state.tree; - const uncontrolledParents = new Set([]); - const controlledParents = new Set(); - for (const clientId of updatedClientIds) { - let current = updateChildrenOfUpdatedClientIds ? clientId : state.parents.get(clientId); - do { - if (state.controlledInnerBlocks[current]) { - // Should stop on controlled blocks. - // If we reach a controlled parent, break out of the loop. - controlledParents.add(current); - break; - } else { - // Else continue traversing up through parents. - uncontrolledParents.add(current); - current = state.parents.get(current); - } - } while (current !== undefined); - } - - // To make sure the order of assignments doesn't matter, - // we first create empty objects and mutates the inner blocks later. - for (const clientId of uncontrolledParents) { - treeToUpdate.set(clientId, { - ...treeToUpdate.get(clientId) - }); - } - for (const clientId of uncontrolledParents) { - treeToUpdate.get(clientId).innerBlocks = (state.order.get(clientId) || []).map(subClientId => treeToUpdate.get(subClientId)); - } - // Controlled parent blocks, need a dedicated key for their inner blocks - // to be used when doing getBlocks( controlledBlockClientId ). - for (const clientId of controlledParents) { - treeToUpdate.set('controlled||' + clientId, { - innerBlocks: (state.order.get(clientId) || []).map(subClientId => treeToUpdate.get(subClientId)) - }); - } +/** + * Determines if the given blocks are allowed to be moved. + * + * @param {Object} state Editor state. + * @param {string} clientIds The block client IDs to be moved. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {boolean} Whether the given blocks are allowed to be moved. + */ +function canMoveBlocks(state, clientIds, rootClientId = null) { + return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId)); } /** - * Higher-order reducer intended to compute full block objects key for each block in the post. - * This is a denormalization to optimize the performance of the getBlock selectors and avoid - * recomputing the block objects and avoid heavy memoization. + * Determines if the given block is allowed to be edited. * - * @param {Function} reducer Original reducer function. + * @param {Object} state Editor state. + * @param {string} clientId The block client Id. * - * @return {Function} Enhanced reducer function. + * @return {boolean} Whether the given block is allowed to be edited. */ -const withBlockTree = reducer => (state = {}, action) => { - const newState = reducer(state, action); - if (newState === state) { - return state; +function canEditBlock(state, clientId) { + const attributes = getBlockAttributes(state, clientId); + if (attributes === null) { + return true; } - newState.tree = state.tree ? state.tree : new Map(); - switch (action.type) { - case 'RECEIVE_BLOCKS': - case 'INSERT_BLOCKS': - { - newState.tree = new Map(newState.tree); - updateBlockTreeForBlocks(newState, action.blocks); - updateParentInnerBlocksInTree(newState, action.rootClientId ? [action.rootClientId] : [''], true); - break; - } - case 'UPDATE_BLOCK': - newState.tree = new Map(newState.tree); - newState.tree.set(action.clientId, { - ...newState.tree.get(action.clientId), - ...newState.byClientId.get(action.clientId), - attributes: newState.attributes.get(action.clientId) - }); - updateParentInnerBlocksInTree(newState, [action.clientId], false); - break; - case 'SYNC_DERIVED_BLOCK_ATTRIBUTES': - case 'UPDATE_BLOCK_ATTRIBUTES': - { - newState.tree = new Map(newState.tree); - action.clientIds.forEach(clientId => { - newState.tree.set(clientId, { - ...newState.tree.get(clientId), - attributes: newState.attributes.get(clientId) - }); - }); - updateParentInnerBlocksInTree(newState, action.clientIds, false); - break; - } - case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const inserterClientIds = getFlattenedClientIds(action.blocks); - newState.tree = new Map(newState.tree); - action.replacedClientIds.concat( - // Controlled inner blocks are only removed - // if the block doesn't move to another position - // otherwise their content will be lost. - action.replacedClientIds.filter(clientId => !inserterClientIds[clientId]).map(clientId => 'controlled||' + clientId)).forEach(key => { - newState.tree.delete(key); - }); - updateBlockTreeForBlocks(newState, action.blocks); - updateParentInnerBlocksInTree(newState, action.blocks.map(b => b.clientId), false); + const { + lock + } = attributes; - // If there are no replaced blocks, it means we're removing blocks so we need to update their parent. - const parentsOfRemovedBlocks = []; - for (const clientId of action.clientIds) { - if (state.parents.get(clientId) !== undefined && (state.parents.get(clientId) === '' || newState.byClientId.get(state.parents.get(clientId)))) { - parentsOfRemovedBlocks.push(state.parents.get(clientId)); - } - } - updateParentInnerBlocksInTree(newState, parentsOfRemovedBlocks, true); - break; - } - case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': - const parentsOfRemovedBlocks = []; - for (const clientId of action.clientIds) { - if (state.parents.get(clientId) !== undefined && (state.parents.get(clientId) === '' || newState.byClientId.get(state.parents.get(clientId)))) { - parentsOfRemovedBlocks.push(state.parents.get(clientId)); - } - } - newState.tree = new Map(newState.tree); - action.removedClientIds.concat(action.removedClientIds.map(clientId => 'controlled||' + clientId)).forEach(key => { - newState.tree.delete(key); - }); - updateParentInnerBlocksInTree(newState, parentsOfRemovedBlocks, true); - break; - case 'MOVE_BLOCKS_TO_POSITION': - { - const updatedBlockUids = []; - if (action.fromRootClientId) { - updatedBlockUids.push(action.fromRootClientId); - } else { - updatedBlockUids.push(''); - } - if (action.toRootClientId) { - updatedBlockUids.push(action.toRootClientId); - } - newState.tree = new Map(newState.tree); - updateParentInnerBlocksInTree(newState, updatedBlockUids, true); - break; - } - case 'MOVE_BLOCKS_UP': - case 'MOVE_BLOCKS_DOWN': - { - const updatedBlockUids = [action.rootClientId ? action.rootClientId : '']; - newState.tree = new Map(newState.tree); - updateParentInnerBlocksInTree(newState, updatedBlockUids, true); - break; - } - case 'SAVE_REUSABLE_BLOCK_SUCCESS': - { - const updatedBlockUids = []; - newState.attributes.forEach((attributes, clientId) => { - if (newState.byClientId.get(clientId).name === 'core/block' && attributes.ref === action.updatedId) { - updatedBlockUids.push(clientId); - } - }); - newState.tree = new Map(newState.tree); - updatedBlockUids.forEach(clientId => { - newState.tree.set(clientId, { - ...newState.byClientId.get(clientId), - attributes: newState.attributes.get(clientId), - innerBlocks: newState.tree.get(clientId).innerBlocks - }); - }); - updateParentInnerBlocksInTree(newState, updatedBlockUids, false); - } - } - return newState; -}; + // When the edit is true, we cannot edit the block. + return !lock?.edit; +} /** - * Higher-order reducer intended to augment the blocks reducer, assigning an - * `isPersistentChange` property value corresponding to whether a change in - * state can be considered as persistent. All changes are considered persistent - * except when updating the same block attribute as in the previous action. + * Determines if the given block type can be locked/unlocked by a user. * - * @param {Function} reducer Original reducer function. + * @param {Object} state Editor state. + * @param {(string|Object)} nameOrType Block name or type object. * - * @return {Function} Enhanced reducer function. + * @return {boolean} Whether a given block type can be locked/unlocked. */ -function withPersistentBlockChange(reducer) { - let lastAction; - let markNextChangeAsNotPersistent = false; - let explicitPersistent; - return (state, action) => { - let nextState = reducer(state, action); - let nextIsPersistentChange; - if (action.type === 'SET_EXPLICIT_PERSISTENT') { - var _state$isPersistentCh; - explicitPersistent = action.isPersistentChange; - nextIsPersistentChange = (_state$isPersistentCh = state.isPersistentChange) !== null && _state$isPersistentCh !== void 0 ? _state$isPersistentCh : true; - } - if (explicitPersistent !== undefined) { - nextIsPersistentChange = explicitPersistent; - return nextIsPersistentChange === nextState.isPersistentChange ? nextState : { - ...nextState, - isPersistentChange: nextIsPersistentChange - }; - } - const isExplicitPersistentChange = action.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' || markNextChangeAsNotPersistent; - - // Defer to previous state value (or default) unless changing or - // explicitly marking as persistent. - if (state === nextState && !isExplicitPersistentChange) { - var _state$isPersistentCh2; - markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT'; - nextIsPersistentChange = (_state$isPersistentCh2 = state?.isPersistentChange) !== null && _state$isPersistentCh2 !== void 0 ? _state$isPersistentCh2 : true; - if (state.isPersistentChange === nextIsPersistentChange) { - return state; - } - return { - ...nextState, - isPersistentChange: nextIsPersistentChange - }; - } - nextState = { - ...nextState, - isPersistentChange: isExplicitPersistentChange ? !markNextChangeAsNotPersistent : !isUpdatingSameBlockAttribute(action, lastAction) - }; +function canLockBlockType(state, nameOrType) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, 'lock', true)) { + return false; + } - // In comparing against the previous action, consider only those which - // would have qualified as one which would have been ignored or not - // have resulted in a changed state. - lastAction = action; - markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT'; - return nextState; - }; + // Use block editor settings as the default value. + return !!state.settings?.canLockBlocks; } /** - * Higher-order reducer intended to augment the blocks reducer, assigning an - * `isIgnoredChange` property value corresponding to whether a change in state - * can be considered as ignored. A change is considered ignored when the result - * of an action not incurred by direct user interaction. + * Returns information about how recently and frequently a block has been inserted. * - * @param {Function} reducer Original reducer function. + * @param {Object} state Global application state. + * @param {string} id A string which identifies the insert, e.g. 'core/block/12' * - * @return {Function} Enhanced reducer function. + * @return {?{ time: number, count: number }} An object containing `time` which is when the last + * insert occurred as a UNIX epoch, and `count` which is + * the number of inserts that have occurred. */ -function withIgnoredBlockChange(reducer) { - /** - * Set of action types for which a blocks state change should be ignored. - * - * @type {Set} - */ - const IGNORED_ACTION_TYPES = new Set(['RECEIVE_BLOCKS']); - return (state, action) => { - const nextState = reducer(state, action); - if (nextState !== state) { - nextState.isIgnoredChange = IGNORED_ACTION_TYPES.has(action.type); - } - return nextState; - }; +function getInsertUsage(state, id) { + var _state$preferences$in; + return (_state$preferences$in = state.preferences.insertUsage?.[id]) !== null && _state$preferences$in !== void 0 ? _state$preferences$in : null; } /** - * Higher-order reducer targeting the combined blocks reducer, augmenting - * block client IDs in remove action to include cascade of inner blocks. + * Returns whether we can show a block type in the inserter * - * @param {Function} reducer Original reducer function. + * @param {Object} state Global State + * @param {Object} blockType BlockType + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Function} Enhanced reducer function. + * @return {boolean} Whether the given block type is allowed to be shown in the inserter. */ -const withInnerBlocksRemoveCascade = reducer => (state, action) => { - // Gets all children which need to be removed. - const getAllChildren = clientIds => { - let result = clientIds; - for (let i = 0; i < result.length; i++) { - if (!state.order.get(result[i]) || action.keepControlledInnerBlocks && action.keepControlledInnerBlocks[result[i]]) { - continue; - } - if (result === clientIds) { - result = [...result]; - } - result.push(...state.order.get(result[i])); - } - return result; - }; - if (state) { - switch (action.type) { - case 'REMOVE_BLOCKS': - action = { - ...action, - type: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN', - removedClientIds: getAllChildren(action.clientIds) - }; - break; - case 'REPLACE_BLOCKS': - action = { - ...action, - type: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN', - replacedClientIds: getAllChildren(action.clientIds) - }; - break; - } +const canIncludeBlockTypeInInserter = (state, blockType, rootClientId) => { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'inserter', true)) { + return false; } - return reducer(state, action); + return canInsertBlockTypeUnmemoized(state, blockType.name, rootClientId); }; /** - * Higher-order reducer which targets the combined blocks reducer and handles - * the `RESET_BLOCKS` action. When dispatched, this action will replace all - * blocks that exist in the post, leaving blocks that exist only in state (e.g. - * reusable blocks and blocks controlled by inner blocks controllers) alone. - * - * @param {Function} reducer Original reducer function. + * Return a function to be used to tranform a block variation to an inserter item * - * @return {Function} Enhanced reducer function. + * @param {Object} state Global State + * @param {Object} item Denormalized inserter item + * @return {Function} Function to transform a block variation to inserter item */ -const withBlockReset = reducer => (state, action) => { - if (action.type === 'RESET_BLOCKS') { - const newState = { - ...state, - byClientId: new Map(getFlattenedBlocksWithoutAttributes(action.blocks)), - attributes: new Map(getFlattenedBlockAttributes(action.blocks)), - order: mapBlockOrder(action.blocks), - parents: new Map(mapBlockParents(action.blocks)), - controlledInnerBlocks: {} - }; - newState.tree = new Map(state?.tree); - updateBlockTreeForBlocks(newState, action.blocks); - newState.tree.set('', { - innerBlocks: action.blocks.map(subBlock => newState.tree.get(subBlock.clientId)) - }); - return newState; - } - return reducer(state, action); +const getItemFromVariation = (state, item) => variation => { + const variationId = `${item.id}/${variation.name}`; + const { + time, + count = 0 + } = getInsertUsage(state, variationId) || {}; + return { + ...item, + id: variationId, + icon: variation.icon || item.icon, + title: variation.title || item.title, + description: variation.description || item.description, + category: variation.category || item.category, + // If `example` is explicitly undefined for the variation, the preview will not be shown. + example: variation.hasOwnProperty('example') ? variation.example : item.example, + initialAttributes: { + ...item.initialAttributes, + ...variation.attributes + }, + innerBlocks: variation.innerBlocks, + keywords: variation.keywords || item.keywords, + frecency: calculateFrecency(time, count) + }; }; /** - * Higher-order reducer which targets the combined blocks reducer and handles - * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state - * should become equivalent to the execution of a `REMOVE_BLOCKS` action - * containing all the child's of the root block followed by the execution of - * `INSERT_BLOCKS` with the new blocks. + * Returns the calculated frecency. * - * @param {Function} reducer Original reducer function. + * 'frecency' is a heuristic (https://en.wikipedia.org/wiki/Frecency) + * that combines block usage frequenty and recency. * - * @return {Function} Enhanced reducer function. + * @param {number} time When the last insert occurred as a UNIX epoch + * @param {number} count The number of inserts that have occurred. + * + * @return {number} The calculated frecency. */ -const withReplaceInnerBlocks = reducer => (state, action) => { - if (action.type !== 'REPLACE_INNER_BLOCKS') { - return reducer(state, action); - } - - // Finds every nested inner block controller. We must check the action blocks - // and not just the block parent state because some inner block controllers - // should be deleted if specified, whereas others should not be deleted. If - // a controlled should not be deleted, then we need to avoid deleting its - // inner blocks from the block state because its inner blocks will not be - // attached to the block in the action. - const nestedControllers = {}; - if (Object.keys(state.controlledInnerBlocks).length) { - const stack = [...action.blocks]; - while (stack.length) { - const { - innerBlocks, - ...block - } = stack.shift(); - stack.push(...innerBlocks); - if (!!state.controlledInnerBlocks[block.clientId]) { - nestedControllers[block.clientId] = true; - } - } +const calculateFrecency = (time, count) => { + if (!time) { + return count; } - - // The `keepControlledInnerBlocks` prop will keep the inner blocks of the - // marked block in the block state so that they can be reattached to the - // marked block when we re-insert everything a few lines below. - let stateAfterBlocksRemoval = state; - if (state.order.get(action.rootClientId)) { - stateAfterBlocksRemoval = reducer(stateAfterBlocksRemoval, { - type: 'REMOVE_BLOCKS', - keepControlledInnerBlocks: nestedControllers, - clientIds: state.order.get(action.rootClientId) - }); + // The selector is cached, which means Date.now() is the last time that the + // relevant state changed. This suits our needs. + const duration = Date.now() - time; + switch (true) { + case duration < MILLISECONDS_PER_HOUR: + return count * 4; + case duration < MILLISECONDS_PER_DAY: + return count * 2; + case duration < MILLISECONDS_PER_WEEK: + return count / 2; + default: + return count / 4; } - let stateAfterInsert = stateAfterBlocksRemoval; - if (action.blocks.length) { - stateAfterInsert = reducer(stateAfterInsert, { - ...action, - type: 'INSERT_BLOCKS', - index: 0 - }); +}; - // We need to re-attach the controlled inner blocks to the blocks tree and - // preserve their block order. Otherwise, an inner block controller's blocks - // will be deleted entirely from its entity. - const stateAfterInsertOrder = new Map(stateAfterInsert.order); - Object.keys(nestedControllers).forEach(key => { - if (state.order.get(key)) { - stateAfterInsertOrder.set(key, state.order.get(key)); - } - }); - stateAfterInsert.order = stateAfterInsertOrder; - stateAfterInsert.tree = new Map(stateAfterInsert.tree); - Object.keys(nestedControllers).forEach(_key => { - const key = `controlled||${_key}`; - if (state.tree.has(key)) { - stateAfterInsert.tree.set(key, state.tree.get(key)); - } - }); +/** + * Returns a function that accepts a block type and builds an item to be shown + * in a specific context. It's used for building items for Inserter and available + * block Transfroms list. + * + * @param {Object} state Editor state. + * @param {Object} options Options object for handling the building of a block type. + * @param {string} options.buildScope The scope for which the item is going to be used. + * @return {Function} Function returns an item to be shown in a specific context (Inserter|Transforms list). + */ +const buildBlockTypeItem = (state, { + buildScope = 'inserter' +}) => blockType => { + const id = blockType.name; + let isDisabled = false; + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType.name, 'multiple', true)) { + isDisabled = getBlocksByClientId(state, getClientIdsWithDescendants(state)).some(({ + name + }) => name === blockType.name); } - return stateAfterInsert; + const { + time, + count = 0 + } = getInsertUsage(state, id) || {}; + const blockItemBase = { + id, + name: blockType.name, + title: blockType.title, + icon: blockType.icon, + isDisabled, + frecency: calculateFrecency(time, count) + }; + if (buildScope === 'transform') return blockItemBase; + const inserterVariations = (0,external_wp_blocks_namespaceObject.getBlockVariations)(blockType.name, 'inserter'); + return { + ...blockItemBase, + initialAttributes: {}, + description: blockType.description, + category: blockType.category, + keywords: blockType.keywords, + variations: inserterVariations, + example: blockType.example, + utility: 1 // Deprecated. + }; }; /** - * Higher-order reducer which targets the combined blocks reducer and handles - * the `SAVE_REUSABLE_BLOCK_SUCCESS` action. This action can't be handled by - * regular reducers and needs a higher-order reducer since it needs access to - * both `byClientId` and `attributes` simultaneously. + * Determines the items that appear in the inserter. Includes both static + * items (e.g. a regular block type) and dynamic items (e.g. a reusable block). * - * @param {Function} reducer Original reducer function. + * Each item object contains what's necessary to display a button in the + * inserter and handle its selection. * - * @return {Function} Enhanced reducer function. + * The 'frecency' property is a heuristic (https://en.wikipedia.org/wiki/Frecency) + * that combines block usage frequenty and recency. + * + * Items are returned ordered descendingly by their 'utility' and 'frecency'. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {WPEditorInserterItem[]} Items that appear in inserter. + * + * @typedef {Object} WPEditorInserterItem + * @property {string} id Unique identifier for the item. + * @property {string} name The type of block to create. + * @property {Object} initialAttributes Attributes to pass to the newly created block. + * @property {string} title Title of the item, as it appears in the inserter. + * @property {string} icon Dashicon for the item, as it appears in the inserter. + * @property {string} category Block category that the item is associated with. + * @property {string[]} keywords Keywords that can be searched to find this item. + * @property {boolean} isDisabled Whether or not the user should be prevented from inserting + * this item. + * @property {number} frecency Heuristic that combines frequency and recency. */ -const withSaveReusableBlock = reducer => (state, action) => { - if (state && action.type === 'SAVE_REUSABLE_BLOCK_SUCCESS') { +const getInserterItems = rememo((state, rootClientId = null) => { + const buildReusableBlockInserterItem = reusableBlock => { + const icon = !reusableBlock.wp_pattern_sync_status ? { + src: library_symbol, + foreground: 'var(--wp-block-synced-color)' + } : library_symbol; + const id = `core/block/${reusableBlock.id}`; const { + time, + count = 0 + } = getInsertUsage(state, id) || {}; + const frecency = calculateFrecency(time, count); + return { id, - updatedId - } = action; + name: 'core/block', + initialAttributes: { + ref: reusableBlock.id + }, + title: reusableBlock.title?.raw, + icon, + category: 'reusable', + keywords: ['reusable'], + isDisabled: false, + utility: 1, + // Deprecated. + frecency, + content: reusableBlock.content.raw, + syncStatus: reusableBlock.wp_pattern_sync_status + }; + }; + const syncedPatternInserterItems = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) ? getReusableBlocks(state).map(buildReusableBlockInserterItem) : []; + const buildBlockTypeInserterItem = buildBlockTypeItem(state, { + buildScope: 'inserter' + }); + const blockTypeInserterItems = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)).map(buildBlockTypeInserterItem); + const items = blockTypeInserterItems.reduce((accumulator, item) => { + const { + variations = [] + } = item; + // Exclude any block type item that is to be replaced by a default variation. + if (!variations.some(({ + isDefault + }) => isDefault)) { + accumulator.push(item); + } + if (variations.length) { + const variationMapper = getItemFromVariation(state, item); + accumulator.push(...variations.map(variationMapper)); + } + return accumulator; + }, []); - // If a temporary reusable block is saved, we swap the temporary id with the final one. - if (id === updatedId) { - return state; + // Ensure core blocks are prioritized in the returned results, + // because third party blocks can be registered earlier than + // the core blocks (usually by using the `init` action), + // thus affecting the display order. + // We don't sort reusable blocks as they are handled differently. + const groupByType = (blocks, block) => { + const { + core, + noncore + } = blocks; + const type = block.name.startsWith('core/') ? core : noncore; + type.push(block); + return blocks; + }; + const { + core: coreItems, + noncore: nonCoreItems + } = items.reduce(groupByType, { + core: [], + noncore: [] + }); + const sortedBlockTypes = [...coreItems, ...nonCoreItems]; + return [...sortedBlockTypes, ...syncedPatternInserterItems]; +}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.blocks.order, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); + +/** + * Determines the items that appear in the available block transforms list. + * + * Each item object contains what's necessary to display a menu item in the + * transform list and handle its selection. + * + * The 'frecency' property is a heuristic (https://en.wikipedia.org/wiki/Frecency) + * that combines block usage frequenty and recency. + * + * Items are returned ordered descendingly by their 'frecency'. + * + * @param {Object} state Editor state. + * @param {Object|Object[]} blocks Block object or array objects. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {WPEditorTransformItem[]} Items that appear in inserter. + * + * @typedef {Object} WPEditorTransformItem + * @property {string} id Unique identifier for the item. + * @property {string} name The type of block to create. + * @property {string} title Title of the item, as it appears in the inserter. + * @property {string} icon Dashicon for the item, as it appears in the inserter. + * @property {boolean} isDisabled Whether or not the user should be prevented from inserting + * this item. + * @property {number} frecency Heuristic that combines frequency and recency. + */ +const getBlockTransformItems = rememo((state, blocks, rootClientId = null) => { + const normalizedBlocks = Array.isArray(blocks) ? blocks : [blocks]; + const buildBlockTypeTransformItem = buildBlockTypeItem(state, { + buildScope: 'transform' + }); + const blockTypeTransformItems = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)).map(buildBlockTypeTransformItem); + const itemsByName = Object.fromEntries(Object.entries(blockTypeTransformItems).map(([, value]) => [value.name, value])); + const possibleTransforms = (0,external_wp_blocks_namespaceObject.getPossibleBlockTransformations)(normalizedBlocks).reduce((accumulator, block) => { + if (itemsByName[block?.name]) { + accumulator.push(itemsByName[block.name]); } - state = { - ...state - }; - state.attributes = new Map(state.attributes); - state.attributes.forEach((attributes, clientId) => { - const { - name - } = state.byClientId.get(clientId); - if (name === 'core/block' && attributes.ref === id) { - state.attributes.set(clientId, { - ...attributes, - ref: updatedId - }); - } - }); - } - return reducer(state, action); -}; + return accumulator; + }, []); + return orderBy(possibleTransforms, block => itemsByName[block.name].frecency, 'desc'); +}, (state, blocks, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); + /** - * Higher-order reducer which removes blocks from state when switching parent block controlled state. + * Determines whether there are items to show in the inserter. * - * @param {Function} reducer Original reducer function. + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Function} Enhanced reducer function. + * @return {boolean} Items that appear in inserter. */ -const withResetControlledBlocks = reducer => (state, action) => { - if (action.type === 'SET_HAS_CONTROLLED_INNER_BLOCKS') { - // when switching a block from controlled to uncontrolled or inverse, - // we need to remove its content first. - const tempState = reducer(state, { - type: 'REPLACE_INNER_BLOCKS', - rootClientId: action.clientId, - blocks: [] - }); - return reducer(tempState, action); +const hasInserterItems = rememo((state, rootClientId = null) => { + const hasBlockType = (0,external_wp_blocks_namespaceObject.getBlockTypes)().some(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)); + if (hasBlockType) { + return true; } - return reducer(state, action); -}; + const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0; + return hasReusableBlock; +}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); /** - * Reducer returning the blocks state. + * Returns the list of allowed inserter blocks for inner blocks children. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {Object} Updated state. + * @return {Array?} The list of allowed block types. */ -const blocks = (0,external_wp_compose_namespaceObject.pipe)(external_wp_data_namespaceObject.combineReducers, withSaveReusableBlock, -// Needs to be before withBlockCache. -withBlockTree, -// Needs to be before withInnerBlocksRemoveCascade. -withInnerBlocksRemoveCascade, withReplaceInnerBlocks, -// Needs to be after withInnerBlocksRemoveCascade. -withBlockReset, withPersistentBlockChange, withIgnoredBlockChange, withResetControlledBlocks)({ - // The state is using a Map instead of a plain object for performance reasons. - // You can run the "./test/performance.js" unit test to check the impact - // code changes can have on this reducer. - byClientId(state = new Map(), action) { - switch (action.type) { - case 'RECEIVE_BLOCKS': - case 'INSERT_BLOCKS': - { - const newState = new Map(state); - getFlattenedBlocksWithoutAttributes(action.blocks).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'UPDATE_BLOCK': - { - // Ignore updates if block isn't known. - if (!state.has(action.clientId)) { - return state; - } +const getAllowedBlocks = rememo((state, rootClientId = null) => { + if (!rootClientId) { + return; + } + const blockTypes = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)); + const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0; + return [...blockTypes, ...(hasReusableBlock ? ['core/block'] : [])]; +}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); +const __experimentalGetAllowedBlocks = rememo((state, rootClientId = null) => { + external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetAllowedBlocks', { + alternative: 'wp.data.select( "core/block-editor" ).getAllowedBlocks', + since: '6.2', + version: '6.4' + }); + return getAllowedBlocks(state, rootClientId); +}, (state, rootClientId) => [...getAllowedBlocks.getDependants(state, rootClientId)]); - // Do nothing if only attributes change. - const { - attributes, - ...changes - } = action.updates; - if (Object.values(changes).length === 0) { - return state; - } - const newState = new Map(state); - newState.set(action.clientId, { - ...state.get(action.clientId), - ...changes - }); - return newState; - } - case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - if (!action.blocks) { - return state; - } - const newState = new Map(state); - action.replacedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - getFlattenedBlocksWithoutAttributes(action.blocks).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const newState = new Map(state); - action.removedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - return newState; - } - } - return state; - }, - // The state is using a Map instead of a plain object for performance reasons. - // You can run the "./test/performance.js" unit test to check the impact - // code changes can have on this reducer. - attributes(state = new Map(), action) { - switch (action.type) { - case 'RECEIVE_BLOCKS': - case 'INSERT_BLOCKS': - { - const newState = new Map(state); - getFlattenedBlockAttributes(action.blocks).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'UPDATE_BLOCK': - { - // Ignore updates if block isn't known or there are no attribute changes. - if (!state.get(action.clientId) || !action.updates.attributes) { - return state; - } - const newState = new Map(state); - newState.set(action.clientId, { - ...state.get(action.clientId), - ...action.updates.attributes - }); - return newState; - } - case 'SYNC_DERIVED_BLOCK_ATTRIBUTES': - case 'UPDATE_BLOCK_ATTRIBUTES': - { - // Avoid a state change if none of the block IDs are known. - if (action.clientIds.every(id => !state.get(id))) { - return state; - } - let hasChange = false; - const newState = new Map(state); - for (const clientId of action.clientIds) { - var _action$attributes; - const updatedAttributeEntries = Object.entries(action.uniqueByBlock ? action.attributes[clientId] : (_action$attributes = action.attributes) !== null && _action$attributes !== void 0 ? _action$attributes : {}); - if (updatedAttributeEntries.length === 0) { - continue; - } - let hasUpdatedAttributes = false; - const existingAttributes = state.get(clientId); - const newAttributes = {}; - updatedAttributeEntries.forEach(([key, value]) => { - if (existingAttributes[key] !== value) { - hasUpdatedAttributes = true; - newAttributes[key] = value; - } - }); - hasChange = hasChange || hasUpdatedAttributes; - if (hasUpdatedAttributes) { - newState.set(clientId, { - ...existingAttributes, - ...newAttributes - }); - } - } - return hasChange ? newState : state; - } - case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - if (!action.blocks) { - return state; - } - const newState = new Map(state); - action.replacedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - getFlattenedBlockAttributes(action.blocks).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const newState = new Map(state); - action.removedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - return newState; - } +/** + * Returns the block to be directly inserted by the block appender. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {?WPDirectInsertBlock} The block type to be directly inserted. + * + * @typedef {Object} WPDirectInsertBlock + * @property {string} name The type of block. + * @property {?Object} attributes Attributes to pass to the newly created block. + * @property {?Array} attributesToCopy Attributes to be copied from adjecent blocks when inserted. + */ +const getDirectInsertBlock = rememo((state, rootClientId = null) => { + if (!rootClientId) { + return; + } + const defaultBlock = state.blockListSettings[rootClientId]?.defaultBlock; + const directInsert = state.blockListSettings[rootClientId]?.directInsert; + if (!defaultBlock || !directInsert) { + return; + } + if (typeof directInsert === 'function') { + return directInsert(getBlock(state, rootClientId)) ? defaultBlock : null; + } + return defaultBlock; +}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.tree.get(rootClientId)]); +const __experimentalGetDirectInsertBlock = rememo((state, rootClientId = null) => { + external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetDirectInsertBlock', { + alternative: 'wp.data.select( "core/block-editor" ).getDirectInsertBlock', + since: '6.3', + version: '6.4' + }); + return getDirectInsertBlock(state, rootClientId); +}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.tree.get(rootClientId)]); +const checkAllowListRecursive = (blocks, allowedBlockTypes) => { + if (typeof allowedBlockTypes === 'boolean') { + return allowedBlockTypes; + } + const blocksQueue = [...blocks]; + while (blocksQueue.length > 0) { + const block = blocksQueue.shift(); + const isAllowed = checkAllowList(allowedBlockTypes, block.name || block.blockName, true); + if (!isAllowed) { + return false; } - return state; - }, - // The state is using a Map instead of a plain object for performance reasons. - // You can run the "./test/performance.js" unit test to check the impact - // code changes can have on this reducer. - order(state = new Map(), action) { - switch (action.type) { - case 'RECEIVE_BLOCKS': - { - var _state$get; - const blockOrder = mapBlockOrder(action.blocks); - const newState = new Map(state); - blockOrder.forEach((order, clientId) => { - if (clientId !== '') { - newState.set(clientId, order); - } - }); - newState.set('', ((_state$get = state.get('')) !== null && _state$get !== void 0 ? _state$get : []).concat(blockOrder[''])); - return newState; - } - case 'INSERT_BLOCKS': - { - const { - rootClientId = '' - } = action; - const subState = state.get(rootClientId) || []; - const mappedBlocks = mapBlockOrder(action.blocks, rootClientId); - const { - index = subState.length - } = action; - const newState = new Map(state); - mappedBlocks.forEach((order, clientId) => { - newState.set(clientId, order); - }); - newState.set(rootClientId, insertAt(subState, mappedBlocks.get(rootClientId), index)); - return newState; - } - case 'MOVE_BLOCKS_TO_POSITION': - { - var _state$get$filter; - const { - fromRootClientId = '', - toRootClientId = '', - clientIds - } = action; - const { - index = state.get(toRootClientId).length - } = action; + block.innerBlocks?.forEach(innerBlock => { + blocksQueue.push(innerBlock); + }); + } + return true; +}; +function getUserPatterns(state) { + var _state$settings$__exp, _state$settings$__exp2; + const userPatterns = (_state$settings$__exp = state?.settings?.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY; + const userPatternCategories = (_state$settings$__exp2 = state?.settings?.__experimentalUserPatternCategories) !== null && _state$settings$__exp2 !== void 0 ? _state$settings$__exp2 : []; + const categories = new Map(); + userPatternCategories.forEach(userCategory => categories.set(userCategory.id, userCategory)); + return userPatterns.map(userPattern => { + return { + name: `core/block/${userPattern.id}`, + id: userPattern.id, + type: 'user', + title: userPattern.title.raw, + categories: userPattern.wp_pattern_category.map(catId => categories && categories.get(catId) ? categories.get(catId).slug : catId), + content: userPattern.content.raw, + syncStatus: userPattern.wp_pattern_sync_status + }; + }); +} +const __experimentalUserPatternCategories = rememo(state => { + return state?.settings?.__experimentalUserPatternCategories; +}, state => [state.settings.__experimentalUserPatternCategories]); +const __experimentalGetParsedPattern = rememo((state, patternName) => { + const patterns = state.settings.__experimentalBlockPatterns; + const userPatterns = getUserPatterns(state); + const pattern = [...patterns, ...userPatterns].find(({ + name + }) => name === patternName); + if (!pattern) { + return null; + } + return { + ...pattern, + blocks: (0,external_wp_blocks_namespaceObject.parse)(pattern.content, { + __unstableSkipMigrationLogs: true + }) + }; +}, state => [state.settings.__experimentalBlockPatterns, state.settings.__experimentalReusableBlocks, state?.settings?.__experimentalUserPatternCategories]); +const getAllAllowedPatterns = rememo(state => { + const patterns = state.settings.__experimentalBlockPatterns; + const userPatterns = getUserPatterns(state); + const { + allowedBlockTypes + } = getSettings(state); + const parsedPatterns = [...userPatterns, ...patterns].filter(({ + inserter = true + }) => !!inserter).map(({ + name + }) => __experimentalGetParsedPattern(state, name)); + const allowedPatterns = parsedPatterns.filter(({ + blocks + }) => checkAllowListRecursive(blocks, allowedBlockTypes)); + return allowedPatterns; +}, state => [state.settings.__experimentalBlockPatterns, state.settings.__experimentalReusableBlocks, state.settings.allowedBlockTypes, state?.settings?.__experimentalUserPatternCategories]); - // Moving inside the same parent block. - if (fromRootClientId === toRootClientId) { - const subState = state.get(toRootClientId); - const fromIndex = subState.indexOf(clientIds[0]); - const newState = new Map(state); - newState.set(toRootClientId, moveTo(state.get(toRootClientId), fromIndex, index, clientIds.length)); - return newState; - } +/** + * Returns the list of allowed patterns for inner blocks children. + * + * @param {Object} state Editor state. + * @param {?string} rootClientId Optional target root client ID. + * + * @return {Array?} The list of allowed patterns. + */ +const __experimentalGetAllowedPatterns = rememo((state, rootClientId = null) => { + const availableParsedPatterns = getAllAllowedPatterns(state); + const patternsAllowed = availableParsedPatterns.filter(({ + blocks + }) => blocks.every(({ + name + }) => canInsertBlockType(state, name, rootClientId))); + return patternsAllowed; +}, (state, rootClientId) => [state.settings.__experimentalBlockPatterns, state.settings.__experimentalReusableBlocks, state.settings.allowedBlockTypes, state.settings.templateLock, state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId)]); - // Moving from a parent block to another. - const newState = new Map(state); - newState.set(fromRootClientId, (_state$get$filter = state.get(fromRootClientId)?.filter(id => !clientIds.includes(id))) !== null && _state$get$filter !== void 0 ? _state$get$filter : []); - newState.set(toRootClientId, insertAt(state.get(toRootClientId), clientIds, index)); - return newState; - } - case 'MOVE_BLOCKS_UP': - { - const { - clientIds, - rootClientId = '' - } = action; - const firstClientId = clientIds[0]; - const subState = state.get(rootClientId); - if (!subState.length || firstClientId === subState[0]) { - return state; - } - const firstIndex = subState.indexOf(firstClientId); - const newState = new Map(state); - newState.set(rootClientId, moveTo(subState, firstIndex, firstIndex - 1, clientIds.length)); - return newState; - } - case 'MOVE_BLOCKS_DOWN': - { - const { - clientIds, - rootClientId = '' - } = action; - const firstClientId = clientIds[0]; - const lastClientId = clientIds[clientIds.length - 1]; - const subState = state.get(rootClientId); - if (!subState.length || lastClientId === subState[subState.length - 1]) { - return state; - } - const firstIndex = subState.indexOf(firstClientId); - const newState = new Map(state); - newState.set(rootClientId, moveTo(subState, firstIndex, firstIndex + 1, clientIds.length)); - return newState; - } - case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const { - clientIds - } = action; - if (!action.blocks) { - return state; - } - const mappedBlocks = mapBlockOrder(action.blocks); - const newState = new Map(state); - action.replacedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - mappedBlocks.forEach((order, clientId) => { - if (clientId !== '') { - newState.set(clientId, order); - } - }); - newState.forEach((order, clientId) => { - const newSubOrder = Object.values(order).reduce((result, subClientId) => { - if (subClientId === clientIds[0]) { - return [...result, ...mappedBlocks.get('')]; - } - if (clientIds.indexOf(subClientId) === -1) { - result.push(subClientId); - } - return result; - }, []); - newState.set(clientId, newSubOrder); - }); - return newState; - } - case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const newState = new Map(state); - // Remove inner block ordering for removed blocks. - action.removedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - newState.forEach((order, clientId) => { - var _order$filter; - const newSubOrder = (_order$filter = order?.filter(id => !action.removedClientIds.includes(id))) !== null && _order$filter !== void 0 ? _order$filter : []; - if (newSubOrder.length !== order.length) { - newState.set(clientId, newSubOrder); - } - }); - return newState; - } - } - return state; - }, - // While technically redundant data as the inverse of `order`, it serves as - // an optimization for the selectors which derive the ancestry of a block. - parents(state = new Map(), action) { - switch (action.type) { - case 'RECEIVE_BLOCKS': - { - const newState = new Map(state); - mapBlockParents(action.blocks).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'INSERT_BLOCKS': - { - const newState = new Map(state); - mapBlockParents(action.blocks, action.rootClientId || '').forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'MOVE_BLOCKS_TO_POSITION': - { - const newState = new Map(state); - action.clientIds.forEach(id => { - newState.set(id, action.toRootClientId || ''); - }); - return newState; - } - case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const newState = new Map(state); - action.replacedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - mapBlockParents(action.blocks, state.get(action.clientIds[0])).forEach(([key, value]) => { - newState.set(key, value); - }); - return newState; - } - case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': - { - const newState = new Map(state); - action.removedClientIds.forEach(clientId => { - newState.delete(clientId); - }); - return newState; - } - } - return state; - }, - controlledInnerBlocks(state = {}, { - type, - clientId, - hasControlledInnerBlocks - }) { - if (type === 'SET_HAS_CONTROLLED_INNER_BLOCKS') { - return { - ...state, - [clientId]: hasControlledInnerBlocks - }; - } - return state; +/** + * Returns the list of patterns based on their declared `blockTypes` + * and a block's name. + * Patterns can use `blockTypes` to integrate in work flows like + * suggesting appropriate patterns in a Placeholder state(during insertion) + * or blocks transformations. + * + * @param {Object} state Editor state. + * @param {string|string[]} blockNames Block's name or array of block names to find matching pattens. + * @param {?string} rootClientId Optional target root client ID. + * + * @return {Array} The list of matched block patterns based on declared `blockTypes` and block name. + */ +const getPatternsByBlockTypes = rememo((state, blockNames, rootClientId = null) => { + if (!blockNames) return EMPTY_ARRAY; + const patterns = __experimentalGetAllowedPatterns(state, rootClientId); + const normalizedBlockNames = Array.isArray(blockNames) ? blockNames : [blockNames]; + const filteredPatterns = patterns.filter(pattern => pattern?.blockTypes?.some?.(blockName => normalizedBlockNames.includes(blockName))); + if (filteredPatterns.length === 0) { + return EMPTY_ARRAY; } -}); + return filteredPatterns; +}, (state, blockNames, rootClientId) => [...__experimentalGetAllowedPatterns.getDependants(state, rootClientId)]); +const __experimentalGetPatternsByBlockTypes = rememo((state, blockNames, rootClientId = null) => { + external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetPatternsByBlockTypes', { + alternative: 'wp.data.select( "core/block-editor" ).getPatternsByBlockTypes', + since: '6.2', + version: '6.4' + }); + return getPatternsByBlockTypes(state, blockNames, rootClientId); +}, (state, blockNames, rootClientId) => [...__experimentalGetAllowedPatterns.getDependants(state, rootClientId)]); /** - * Reducer returning visibility status of block interface. + * Determines the items that appear in the available pattern transforms list. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * For now we only handle blocks without InnerBlocks and take into account + * the `__experimentalRole` property of blocks' attributes for the transformation. * - * @return {boolean} Updated state. + * We return the first set of possible eligible block patterns, + * by checking the `blockTypes` property. We still have to recurse through + * block pattern's blocks and try to find matches from the selected blocks. + * Now this happens in the consumer to avoid heavy operations in the selector. + * + * @param {Object} state Editor state. + * @param {Object[]} blocks The selected blocks. + * @param {?string} rootClientId Optional root client ID of block list. + * + * @return {WPBlockPattern[]} Items that are eligible for a pattern transformation. */ -function isBlockInterfaceHidden(state = false, action) { - switch (action.type) { - case 'HIDE_BLOCK_INTERFACE': - return true; - case 'SHOW_BLOCK_INTERFACE': - return false; +const __experimentalGetPatternTransformItems = rememo((state, blocks, rootClientId = null) => { + if (!blocks) return EMPTY_ARRAY; + /** + * For now we only handle blocks without InnerBlocks and take into account + * the `__experimentalRole` property of blocks' attributes for the transformation. + * Note that the blocks have been retrieved through `getBlock`, which doesn't + * return the inner blocks of an inner block controller, so we still need + * to check for this case too. + */ + if (blocks.some(({ + clientId, + innerBlocks + }) => innerBlocks.length || areInnerBlocksControlled(state, clientId))) { + return EMPTY_ARRAY; } - return state; -} + + // Create a Set of the selected block names that is used in patterns filtering. + const selectedBlockNames = Array.from(new Set(blocks.map(({ + name + }) => name))); + /** + * Here we will return first set of possible eligible block patterns, + * by checking the `blockTypes` property. We still have to recurse through + * block pattern's blocks and try to find matches from the selected blocks. + * Now this happens in the consumer to avoid heavy operations in the selector. + */ + return getPatternsByBlockTypes(state, selectedBlockNames, rootClientId); +}, (state, blocks, rootClientId) => [...getPatternsByBlockTypes.getDependants(state, rootClientId)]); /** - * Reducer returning typing state. + * Returns the Block List settings of a block, if any exist. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. + * @param {?string} clientId Block client ID. * - * @return {boolean} Updated state. + * @return {?Object} Block settings of the block if set. */ -function isTyping(state = false, action) { - switch (action.type) { - case 'START_TYPING': - return true; - case 'STOP_TYPING': - return false; - } - return state; +function getBlockListSettings(state, clientId) { + return state.blockListSettings[clientId]; } /** - * Reducer returning dragged block client id. + * Returns the editor settings. * - * @param {string[]} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. * - * @return {string[]} Updated state. + * @return {Object} The editor settings object. */ -function draggedBlocks(state = [], action) { - switch (action.type) { - case 'START_DRAGGING_BLOCKS': - return action.clientIds; - case 'STOP_DRAGGING_BLOCKS': - return []; - } - return state; +function getSettings(state) { + return state.settings; } /** - * Reducer tracking the visible blocks. + * Returns true if the most recent block change is be considered persistent, or + * false otherwise. A persistent change is one committed by BlockEditorProvider + * via its `onChange` callback, in addition to `onInput`. * - * @param {Record} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Block editor state. * - * @return {Record} Block visibility. + * @return {boolean} Whether the most recent block change was persistent. */ -function blockVisibility(state = {}, action) { - if (action.type === 'SET_BLOCK_VISIBILITY') { - return { - ...state, - ...action.updates - }; - } - return state; +function isLastBlockChangePersistent(state) { + return state.blocks.isPersistentChange; } /** - * Internal helper reducer for selectionStart and selectionEnd. Can hold a block - * selection, represented by an object with property clientId. + * Returns the block list settings for an array of blocks, if any exist. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. + * @param {Array} clientIds Block client IDs. * - * @return {Object} Updated state. + * @return {Object} An object where the keys are client ids and the values are + * a block list setting object. */ -function selectionHelper(state = {}, action) { - switch (action.type) { - case 'CLEAR_SELECTED_BLOCK': - { - if (state.clientId) { - return {}; - } - return state; - } - case 'SELECT_BLOCK': - if (action.clientId === state.clientId) { - return state; - } - return { - clientId: action.clientId - }; - case 'REPLACE_INNER_BLOCKS': - case 'INSERT_BLOCKS': - { - if (!action.updateSelection || !action.blocks.length) { - return state; - } - return { - clientId: action.blocks[0].clientId - }; - } - case 'REMOVE_BLOCKS': - if (!action.clientIds || !action.clientIds.length || action.clientIds.indexOf(state.clientId) === -1) { - return state; - } - return {}; - case 'REPLACE_BLOCKS': - { - if (action.clientIds.indexOf(state.clientId) === -1) { - return state; - } - const blockToSelect = action.blocks[action.indexToSelect] || action.blocks[action.blocks.length - 1]; - if (!blockToSelect) { - return {}; - } - if (blockToSelect.clientId === state.clientId) { - return state; - } - return { - clientId: blockToSelect.clientId - }; - } - } - return state; -} +const __experimentalGetBlockListSettingsForBlocks = rememo((state, clientIds = []) => { + return clientIds.reduce((blockListSettingsForBlocks, clientId) => { + if (!state.blockListSettings[clientId]) { + return blockListSettingsForBlocks; + } + return { + ...blockListSettingsForBlocks, + [clientId]: state.blockListSettings[clientId] + }; + }, {}); +}, state => [state.blockListSettings]); /** - * Reducer returning the selection state. + * Returns the title of a given reusable block * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. + * @param {number|string} ref The shared block's ID. * - * @return {boolean} Updated state. + * @return {string} The reusable block saved title. */ -function selection(state = {}, action) { - switch (action.type) { - case 'SELECTION_CHANGE': - if (action.clientId) { - return { - selectionStart: { - clientId: action.clientId, - attributeKey: action.attributeKey, - offset: action.startOffset - }, - selectionEnd: { - clientId: action.clientId, - attributeKey: action.attributeKey, - offset: action.endOffset - } - }; - } - return { - selectionStart: action.start || state.selectionStart, - selectionEnd: action.end || state.selectionEnd - }; - case 'RESET_SELECTION': - const { - selectionStart, - selectionEnd - } = action; - return { - selectionStart, - selectionEnd - }; - case 'MULTI_SELECT': - const { - start, - end - } = action; - if (start === state.selectionStart?.clientId && end === state.selectionEnd?.clientId) { - return state; - } - return { - selectionStart: { - clientId: start - }, - selectionEnd: { - clientId: end - } - }; - case 'RESET_BLOCKS': - const startClientId = state?.selectionStart?.clientId; - const endClientId = state?.selectionEnd?.clientId; - - // Do nothing if there's no selected block. - if (!startClientId && !endClientId) { - return state; - } - - // If the start of the selection won't exist after reset, remove selection. - if (!action.blocks.some(block => block.clientId === startClientId)) { - return { - selectionStart: {}, - selectionEnd: {} - }; - } - - // If the end of the selection won't exist after reset, collapse selection. - if (!action.blocks.some(block => block.clientId === endClientId)) { - return { - ...state, - selectionEnd: state.selectionStart - }; - } - } - const selectionStart = selectionHelper(state.selectionStart, action); - const selectionEnd = selectionHelper(state.selectionEnd, action); - if (selectionStart === state.selectionStart && selectionEnd === state.selectionEnd) { - return state; +const __experimentalGetReusableBlockTitle = rememo((state, ref) => { + const reusableBlock = getReusableBlocks(state).find(block => block.id === ref); + if (!reusableBlock) { + return null; } - return { - selectionStart, - selectionEnd - }; -} + return reusableBlock.title?.raw; +}, state => [getReusableBlocks(state)]); /** - * Reducer returning whether the user is multi-selecting. + * Returns true if the most recent block change is be considered ignored, or + * false otherwise. An ignored change is one not to be committed by + * BlockEditorProvider, neither via `onChange` nor `onInput`. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Block editor state. * - * @return {boolean} Updated state. + * @return {boolean} Whether the most recent block change was ignored. */ -function isMultiSelecting(state = false, action) { - switch (action.type) { - case 'START_MULTI_SELECT': - return true; - case 'STOP_MULTI_SELECT': - return false; - } - return state; +function __unstableIsLastBlockChangeIgnored(state) { + // TODO: Removal Plan: Changes incurred by RECEIVE_BLOCKS should not be + // ignored if in-fact they result in a change in blocks state. The current + // need to ignore changes not a result of user interaction should be + // accounted for in the refactoring of reusable blocks as occurring within + // their own separate block editor / state (#7119). + return state.blocks.isIgnoredChange; } /** - * Reducer returning whether selection is enabled. + * Returns the block attributes changed as a result of the last dispatched + * action. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Block editor state. * - * @return {boolean} Updated state. + * @return {Object} Subsets of block attributes changed, keyed + * by block client ID. */ -function isSelectionEnabled(state = true, action) { - switch (action.type) { - case 'TOGGLE_SELECTION': - return action.isSelectionEnabled; - } - return state; +function __experimentalGetLastBlockAttributeChanges(state) { + return state.lastBlockAttributesChange; } /** - * Reducer returning the data needed to display a prompt when certain blocks - * are removed, or `false` if no such prompt is requested. + * Returns the available reusable blocks * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. * - * @return {Object|false} Data for removal prompt display, if any. + * @return {Array} Reusable blocks */ -function removalPromptData(state = false, action) { - switch (action.type) { - case 'DISPLAY_BLOCK_REMOVAL_PROMPT': - const { - clientIds, - selectPrevious, - blockNamesForPrompt - } = action; - return { - clientIds, - selectPrevious, - blockNamesForPrompt - }; - case 'CLEAR_BLOCK_REMOVAL_PROMPT': - return false; - } - return state; +function getReusableBlocks(state) { + var _state$settings$__exp3; + return (_state$settings$__exp3 = state?.settings?.__experimentalReusableBlocks) !== null && _state$settings$__exp3 !== void 0 ? _state$settings$__exp3 : EMPTY_ARRAY; } /** - * Reducer returning any rules that a block editor may provide in order to - * prevent a user from accidentally removing certain blocks. These rules are - * then used to display a confirmation prompt to the user. For instance, in the - * Site Editor, the Query Loop block is important enough to warrant such - * confirmation. - * - * The data is a record whose keys are block types (e.g. 'core/query') and - * whose values are the explanation to be shown to users (e.g. 'Query Loop - * displays a list of posts or pages.'). + * Returns whether the navigation mode is enabled. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. * - * @return {Record} Updated state. + * @return {boolean} Is navigation mode enabled. */ -function blockRemovalRules(state = false, action) { - switch (action.type) { - case 'SET_BLOCK_REMOVAL_RULES': - return action.rules; - } - return state; +function isNavigationMode(state) { + return state.editorMode === 'navigation'; } /** - * Reducer returning the initial block selection. - * - * Currently this in only used to restore the selection after block deletion and - * pasting new content.This reducer should eventually be removed in favour of setting - * selection directly. + * Returns the current editor mode. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. * - * @return {number|null} Initial position: 0, -1 or null. + * @return {string} the editor mode. */ -function initialPosition(state = null, action) { - if (action.type === 'REPLACE_BLOCKS' && action.initialPosition !== undefined) { - return action.initialPosition; - } else if (['MULTI_SELECT', 'SELECT_BLOCK', 'RESET_SELECTION', 'INSERT_BLOCKS', 'REPLACE_INNER_BLOCKS'].includes(action.type)) { - return action.initialPosition; - } - return state; -} -function blocksMode(state = {}, action) { - if (action.type === 'TOGGLE_BLOCK_MODE') { - const { - clientId - } = action; - return { - ...state, - [clientId]: state[clientId] && state[clientId] === 'html' ? 'visual' : 'html' - }; - } - return state; +function __unstableGetEditorMode(state) { + return state.editorMode; } /** - * Reducer returning the block insertion point visibility, either null if there - * is not an explicit insertion point assigned, or an object of its `index` and - * `rootClientId`. + * Returns whether block moving mode is enabled. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Editor state. * - * @return {Object} Updated state. + * @return {string} Client Id of moving block. */ -function insertionPoint(state = null, action) { - switch (action.type) { - case 'SHOW_INSERTION_POINT': - { - const { - rootClientId, - index, - __unstableWithInserter, - operation, - nearestSide - } = action; - const nextState = { - rootClientId, - index, - __unstableWithInserter, - operation, - nearestSide - }; - - // Bail out updates if the states are the same. - return es6_default()(state, nextState) ? state : nextState; - } - case 'HIDE_INSERTION_POINT': - return null; - } - return state; +function selectors_hasBlockMovingClientId(state) { + return state.hasBlockMovingClientId; } /** - * Reducer returning whether the post blocks match the defined template or not. + * Returns true if the last change was an automatic change, false otherwise. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. * - * @return {boolean} Updated state. + * @return {boolean} Whether the last change was automatic. */ -function template(state = { - isValid: true -}, action) { - switch (action.type) { - case 'SET_TEMPLATE_VALIDITY': - return { - ...state, - isValid: action.isValid - }; - } - return state; +function didAutomaticChange(state) { + return !!state.automaticChangeStatus; } /** - * Reducer returning the editor setting. + * Returns true if the current highlighted block matches the block clientId. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. + * @param {string} clientId The block to check. * - * @return {Object} Updated state. + * @return {boolean} Whether the block is currently highlighted. */ -function settings(state = SETTINGS_DEFAULTS, action) { - switch (action.type) { - case 'UPDATE_SETTINGS': - if (action.reset) { - return { - ...SETTINGS_DEFAULTS, - ...action.settings - }; - } - return { - ...state, - ...action.settings - }; - } - return state; +function isBlockHighlighted(state, clientId) { + return state.highlightedBlock === clientId; } /** - * Reducer returning the user preferences. + * Checks if a given block has controlled inner blocks. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. + * @param {string} clientId The block to check. * - * @return {string} Updated state. + * @return {boolean} True if the block has controlled inner blocks. */ -function preferences(state = PREFERENCES_DEFAULTS, action) { - switch (action.type) { - case 'INSERT_BLOCKS': - case 'REPLACE_BLOCKS': - return action.blocks.reduce((prevState, block) => { - const { - attributes, - name: blockName - } = block; - let id = blockName; - // If a block variation match is found change the name to be the same with the - // one that is used for block variations in the Inserter (`getItemFromVariation`). - const match = (0,external_wp_data_namespaceObject.select)(external_wp_blocks_namespaceObject.store).getActiveBlockVariation(blockName, attributes); - if (match?.name) { - id += '/' + match.name; - } - if (blockName === 'core/block') { - id += '/' + attributes.ref; - } - return { - ...prevState, - insertUsage: { - ...prevState.insertUsage, - [id]: { - time: action.time, - count: prevState.insertUsage[id] ? prevState.insertUsage[id].count + 1 : 1 - } - } - }; - }, state); - } - return state; +function areInnerBlocksControlled(state, clientId) { + return !!state.blocks.controlledInnerBlocks[clientId]; } /** - * Reducer returning an object where each key is a block client ID, its value - * representing the settings for its nested blocks. + * Returns the clientId for the first 'active' block of a given array of block names. + * A block is 'active' if it (or a child) is the selected block. + * Returns the first match moving up the DOM from the selected block. * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * @param {Object} state Global application state. + * @param {string[]} validBlocksNames The names of block types to check for. * - * @return {Object} Updated state. + * @return {string} The matching block's clientId. */ -const blockListSettings = (state = {}, action) => { - switch (action.type) { - // Even if the replaced blocks have the same client ID, our logic - // should correct the state. - case 'REPLACE_BLOCKS': - case 'REMOVE_BLOCKS': - { - return Object.fromEntries(Object.entries(state).filter(([id]) => !action.clientIds.includes(id))); - } - case 'UPDATE_BLOCK_LIST_SETTINGS': - { - const { - clientId - } = action; - if (!action.settings) { - if (state.hasOwnProperty(clientId)) { - const { - [clientId]: removedBlock, - ...restBlocks - } = state; - return restBlocks; - } - return state; - } - if (es6_default()(state[clientId], action.settings)) { - return state; - } - return { - ...state, - [clientId]: action.settings - }; - } +const __experimentalGetActiveBlockIdByBlockNames = rememo((state, validBlockNames) => { + if (!validBlockNames.length) { + return null; } - return state; -}; + // Check if selected block is a valid entity area. + const selectedBlockClientId = getSelectedBlockClientId(state); + if (validBlockNames.includes(getBlockName(state, selectedBlockClientId))) { + return selectedBlockClientId; + } + // Check if first selected block is a child of a valid entity area. + const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(state); + const entityAreaParents = getBlockParentsByBlockName(state, selectedBlockClientId || multiSelectedBlockClientIds[0], validBlockNames); + if (entityAreaParents) { + // Last parent closest/most interior. + return entityAreaParents[entityAreaParents.length - 1]; + } + return null; +}, (state, validBlockNames) => [state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId, validBlockNames]); /** - * Reducer returning which mode is enabled. - * - * @param {string} state Current state. - * @param {Object} action Dispatched action. + * Tells if the block with the passed clientId was just inserted. * - * @return {string} Updated state. + * @param {Object} state Global application state. + * @param {Object} clientId Client Id of the block. + * @param {?string} source Optional insertion source of the block. + * @return {boolean} True if the block matches the last block inserted from the specified source. */ -function editorMode(state = 'edit', action) { - // Let inserting block in navigation mode always trigger Edit mode. - if (action.type === 'INSERT_BLOCKS' && state === 'navigation') { - return 'edit'; - } - if (action.type === 'SET_EDITOR_MODE') { - return action.mode; - } - return state; +function wasBlockJustInserted(state, clientId, source) { + const { + lastBlockInserted + } = state; + return lastBlockInserted.clientIds?.includes(clientId) && lastBlockInserted.source === source; } /** - * Reducer returning whether the block moving mode is enabled or not. - * - * @param {string|null} state Current state. - * @param {Object} action Dispatched action. + * Tells if the block is visible on the canvas or not. * - * @return {string|null} Updated state. + * @param {Object} state Global application state. + * @param {Object} clientId Client Id of the block. + * @return {boolean} True if the block is visible. */ -function hasBlockMovingClientId(state = null, action) { - if (action.type === 'SET_BLOCK_MOVING_MODE') { - return action.hasBlockMovingClientId; - } - if (action.type === 'SET_EDITOR_MODE') { - return null; - } - return state; +function isBlockVisible(state, clientId) { + var _state$blockVisibilit; + return (_state$blockVisibilit = state.blockVisibility?.[clientId]) !== null && _state$blockVisibilit !== void 0 ? _state$blockVisibilit : true; } /** - * Reducer return an updated state representing the most recent block attribute - * update. The state is structured as an object where the keys represent the - * client IDs of blocks, the values a subset of attributes from the most recent - * block update. The state is always reset to null if the last action is - * anything other than an attributes update. - * - * @param {Object} state Current state. - * @param {Object} action Action object. + * Returns the list of all hidden blocks. * - * @return {[string,Object]} Updated state. + * @param {Object} state Global application state. + * @return {[string]} List of hidden blocks. */ -function lastBlockAttributesChange(state = null, action) { - switch (action.type) { - case 'UPDATE_BLOCK': - if (!action.updates.attributes) { - break; - } - return { - [action.clientId]: action.updates.attributes - }; - case 'UPDATE_BLOCK_ATTRIBUTES': - return action.clientIds.reduce((accumulator, id) => ({ - ...accumulator, - [id]: action.uniqueByBlock ? action.attributes[id] : action.attributes - }), {}); +const __unstableGetVisibleBlocks = rememo(state => { + const visibleBlocks = new Set(Object.keys(state.blockVisibility).filter(key => state.blockVisibility[key])); + if (visibleBlocks.size === 0) { + return EMPTY_SET; } - return state; -} + return visibleBlocks; +}, state => [state.blockVisibility]); /** - * Reducer returning current highlighted block. - * - * @param {boolean} state Current highlighted block. - * @param {Object} action Dispatched action. - * - * @return {string} Updated state. + * DO-NOT-USE in production. + * This selector is created for internal/experimental only usage and may be + * removed anytime without any warning, causing breakage on any plugin or theme invoking it. */ -function highlightedBlock(state, action) { - switch (action.type) { - case 'TOGGLE_BLOCK_HIGHLIGHT': - const { - clientId, - isHighlighted - } = action; - if (isHighlighted) { - return clientId; - } else if (state === clientId) { - return null; - } - return state; - case 'SELECT_BLOCK': - if (action.clientId !== state) { - return null; - } +const __unstableGetContentLockingParent = rememo((state, clientId) => { + let current = clientId; + let result; + while (state.blocks.parents.has(current)) { + current = state.blocks.parents.get(current); + if (current && getTemplateLock(state, current) === 'contentOnly') { + result = current; + } } - return state; -} + return result; +}, state => [state.blocks.parents, state.blockListSettings]); /** - * Reducer returning the block insertion event list state. - * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. + * DO-NOT-USE in production. + * This selector is created for internal/experimental only usage and may be + * removed anytime without any warning, causing breakage on any plugin or theme invoking it. * - * @return {Object} Updated state. + * @param {Object} state Global application state. */ -function lastBlockInserted(state = {}, action) { - switch (action.type) { - case 'INSERT_BLOCKS': - case 'REPLACE_BLOCKS': - if (!action.blocks.length) { - return state; - } - const clientIds = action.blocks.map(block => { - return block.clientId; - }); - const source = action.meta?.source; - return { - clientIds, - source - }; - case 'RESET_BLOCKS': - return {}; - } - return state; +function __unstableGetTemporarilyEditingAsBlocks(state) { + return state.temporarilyEditingAsBlocks; } +function __unstableHasActiveBlockOverlayActive(state, clientId) { + // Prevent overlay on blocks with a non-default editing mode. If the mdoe is + // 'disabled' then the overlay is redundant since the block can't be + // selected. If the mode is 'contentOnly' then the overlay is redundant + // since there will be no controls to interact with once selected. + if (getBlockEditingMode(state, clientId) !== 'default') { + return false; + } -/** - * Reducer returning the block that is eding temporarily edited as blocks. - * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. - * - * @return {Object} Updated state. - */ -function temporarilyEditingAsBlocks(state = '', action) { - if (action.type === 'SET_TEMPORARILY_EDITING_AS_BLOCKS') { - return action.temporarilyEditingAsBlocks; + // If the block editing is locked, the block overlay is always active. + if (!canEditBlock(state, clientId)) { + return true; } - return state; -} + const editorMode = __unstableGetEditorMode(state); -/** - * Reducer returning the focus mode that should be used when temporarily edit as blocks finishes. - * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. - * - * @return {Object} Updated state. - */ -function temporarilyEditingFocusModeRevert(state = '', action) { - if (action.type === 'SET_TEMPORARILY_EDITING_AS_BLOCKS') { - return action.focusModeToRevert; + // In zoom-out mode, the block overlay is always active for top level blocks. + if (editorMode === 'zoom-out' && clientId && !getBlockRootClientId(state, clientId)) { + return true; } - return state; -} -/** - * Reducer returning a map of block client IDs to block editing modes. - * - * @param {Map} state Current state. - * @param {Object} action Dispatched action. - * - * @return {Map} Updated state. - */ -function blockEditingModes(state = new Map(), action) { - switch (action.type) { - case 'SET_BLOCK_EDITING_MODE': - return new Map(state).set(action.clientId, action.mode); - case 'UNSET_BLOCK_EDITING_MODE': - { - const newState = new Map(state); - newState.delete(action.clientId); - return newState; - } - case 'RESET_BLOCKS': - { - return state.has('') ? new Map().set('', state.get('')) : state; - } + // In navigation mode, the block overlay is active when the block is not + // selected (and doesn't contain a selected child). The same behavior is + // also enabled in all modes for blocks that have controlled children + // (reusable block, template part, navigation), unless explicitly disabled + // with `supports.__experimentalDisableBlockOverlay`. + const blockSupportDisable = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(getBlockName(state, clientId), '__experimentalDisableBlockOverlay', false); + const shouldEnableIfUnselected = editorMode === 'navigation' || (blockSupportDisable ? false : areInnerBlocksControlled(state, clientId)); + return shouldEnableIfUnselected && !isBlockSelected(state, clientId) && !hasSelectedInnerBlock(state, clientId, true); +} +function __unstableIsWithinBlockOverlay(state, clientId) { + let parent = state.blocks.parents.get(clientId); + while (!!parent) { + if (__unstableHasActiveBlockOverlayActive(state, parent)) { + return true; + } + parent = state.blocks.parents.get(parent); } - return state; + return false; } /** - * Reducer returning the clientId of the block settings menu that is currently open. - * - * @param {string|null} state Current state. - * @param {Object} action Dispatched action. - * - * @return {string|null} Updated state. + * @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode */ -function openedBlockSettingsMenu(state = null, action) { - if ('SET_OPENED_BLOCK_SETTINGS_MENU' === action.type) { - var _action$clientId; - return (_action$clientId = action?.clientId) !== null && _action$clientId !== void 0 ? _action$clientId : null; - } - return state; -} /** - * Reducer returning a map of style IDs to style overrides. + * Returns the block editing mode for a given block. * - * @param {Map} state Current state. - * @param {Object} action Dispatched action. + * The mode can be one of three options: * - * @return {Map} Updated state. - */ -function styleOverrides(state = new Map(), action) { - switch (action.type) { - case 'SET_STYLE_OVERRIDE': - return new Map(state).set(action.id, action.style); - case 'DELETE_STYLE_OVERRIDE': - { - const newState = new Map(state); - newState.delete(action.id); - return newState; - } - } - return state; -} - -/** - * Reducer returning a map of the registered inserter media categories. + * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be + * selected. + * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the + * toolbar, the block movers, block settings. + * - `'default'`: Allows editing the block as normal. * - * @param {Array} state Current state. - * @param {Object} action Dispatched action. + * Blocks can set a mode using the `useBlockEditingMode` hook. * - * @return {Array} Updated state. - */ -function registeredInserterMediaCategories(state = [], action) { - switch (action.type) { - case 'REGISTER_INSERTER_MEDIA_CATEGORY': - return [...state, action.category]; - } - return state; -} - -/** - * Reducer setting last focused element + * The mode is inherited by all of the block's inner blocks, unless they have + * their own mode. * - * @param {boolean} state Current state. - * @param {Object} action Dispatched action. + * A template lock can also set a mode. If the template lock is `'contentOnly'`, + * the block's mode is overridden to `'contentOnly'` if the block has a content + * role attribute, or `'disabled'` otherwise. * - * @return {boolean} Updated state. + * @see useBlockEditingMode + * + * @param {Object} state Global application state. + * @param {string} clientId The block client ID, or `''` for the root container. + * + * @return {BlockEditingMode} The block editing mode. One of `'disabled'`, + * `'contentOnly'`, or `'default'`. */ -function lastFocus(state = false, action) { - switch (action.type) { - case 'LAST_FOCUS': - return action.lastFocus; +const getBlockEditingMode = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientId = '') => { + if (state.blockEditingModes.has(clientId)) { + return state.blockEditingModes.get(clientId); } - return state; -} -function blockBindingsSources(state = {}, action) { - if (action.type === 'REGISTER_BLOCK_BINDINGS_SOURCE') { - return { - ...state, - [action.sourceName]: { - label: action.sourceLabel, - useSource: action.useSource, - lockAttributesEditing: action.lockAttributesEditing - } - }; + if (!clientId) { + return 'default'; } - return state; -} -function blockPatterns(state = [], action) { - switch (action.type) { - case 'RECEIVE_BLOCK_PATTERNS': - return action.patterns; + const rootClientId = getBlockRootClientId(state, clientId); + const templateLock = getTemplateLock(state, rootClientId); + if (templateLock === 'contentOnly') { + const name = getBlockName(state, clientId); + const isContent = select(external_wp_blocks_namespaceObject.store).__experimentalHasContentRoleAttribute(name); + return isContent ? 'contentOnly' : 'disabled'; } - return state; -} -const combinedReducers = (0,external_wp_data_namespaceObject.combineReducers)({ - blocks, - isTyping, - isBlockInterfaceHidden, - draggedBlocks, - selection, - isMultiSelecting, - isSelectionEnabled, - initialPosition, - blocksMode, - blockListSettings, - insertionPoint, - template, - settings, - preferences, - lastBlockAttributesChange, - lastFocus, - editorMode, - hasBlockMovingClientId, - highlightedBlock, - lastBlockInserted, - temporarilyEditingAsBlocks, - temporarilyEditingFocusModeRevert, - blockVisibility, - blockEditingModes, - styleOverrides, - removalPromptData, - blockRemovalRules, - openedBlockSettingsMenu, - registeredInserterMediaCategories, - blockBindingsSources, - blockPatterns + const parentMode = getBlockEditingMode(state, rootClientId); + return parentMode === 'contentOnly' ? 'default' : parentMode; }); -function withAutomaticChangeReset(reducer) { - return (state, action) => { - const nextState = reducer(state, action); - if (!state) { - return nextState; - } - - // Take over the last value without creating a new reference. - nextState.automaticChangeStatus = state.automaticChangeStatus; - if (action.type === 'MARK_AUTOMATIC_CHANGE') { - return { - ...nextState, - automaticChangeStatus: 'pending' - }; - } - if (action.type === 'MARK_AUTOMATIC_CHANGE_FINAL' && state.automaticChangeStatus === 'pending') { - return { - ...nextState, - automaticChangeStatus: 'final' - }; - } - - // If there's a change that doesn't affect blocks or selection, maintain - // the current status. - if (nextState.blocks === state.blocks && nextState.selection === state.selection) { - return nextState; - } - - // As long as the state is not final, ignore any selection changes. - if (nextState.automaticChangeStatus !== 'final' && nextState.selection !== state.selection) { - return nextState; - } - - // Reset the status if blocks change or selection changes (when status is final). - return { - ...nextState, - automaticChangeStatus: undefined - }; - }; -} -/* harmony default export */ var reducer = (withAutomaticChangeReset(combinedReducers)); - -;// CONCATENATED MODULE: ./node_modules/rememo/rememo.js - - -/** @typedef {(...args: any[]) => *[]} GetDependants */ - -/** @typedef {() => void} Clear */ /** - * @typedef {{ - * getDependants: GetDependants, - * clear: Clear - * }} EnhancedSelector + * Indicates if a block is ungroupable. + * A block is ungroupable if it is a single grouping block with inner blocks. + * If a block has an `ungroup` transform, it is also ungroupable, without the + * requirement of being the default grouping block. + * Additionally a block can only be ungrouped if it has inner blocks and can + * be removed. + * + * @param {Object} state Global application state. + * @param {string} clientId Client Id of the block. If not passed the selected block's client id will be used. + * @return {boolean} True if the block is ungroupable. */ +const isUngroupable = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientId = '') => { + const _clientId = clientId || getSelectedBlockClientId(state); + if (!_clientId) { + return false; + } + const { + getGroupingBlockName + } = select(external_wp_blocks_namespaceObject.store); + const block = getBlock(state, _clientId); + const groupingBlockName = getGroupingBlockName(); + const _isUngroupable = block && (block.name === groupingBlockName || (0,external_wp_blocks_namespaceObject.getBlockType)(block.name)?.transforms?.ungroup) && !!block.innerBlocks.length; + return _isUngroupable && canRemoveBlock(state, _clientId); +}); /** - * Internal cache entry. - * - * @typedef CacheNode + * Indicates if the provided blocks(by client ids) are groupable. + * We need to have at least one block, have a grouping block name set and + * be able to remove these blocks. * - * @property {?CacheNode|undefined} [prev] Previous node. - * @property {?CacheNode|undefined} [next] Next node. - * @property {*[]} args Function arguments for cache entry. - * @property {*} val Function result. + * @param {Object} state Global application state. + * @param {string[]} clientIds Block client ids. If not passed the selected blocks client ids will be used. + * @return {boolean} True if the blocks are groupable. */ +const isGroupable = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientIds = EMPTY_ARRAY) => { + const { + getGroupingBlockName + } = select(external_wp_blocks_namespaceObject.store); + const groupingBlockName = getGroupingBlockName(); + const _clientIds = clientIds?.length ? clientIds : getSelectedBlockClientIds(state); + const rootClientId = _clientIds?.length ? getBlockRootClientId(state, _clientIds[0]) : undefined; + const groupingBlockAvailable = canInsertBlockType(state, groupingBlockName, rootClientId); + const _isGroupable = groupingBlockAvailable && _clientIds.length; + return _isGroupable && canRemoveBlocks(state, _clientIds, rootClientId); +}); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/private-actions.js /** - * @typedef Cache - * - * @property {Clear} clear Function to clear cache. - * @property {boolean} [isUniqueByDependants] Whether dependants are valid in - * considering cache uniqueness. A cache is unique if dependents are all arrays - * or objects. - * @property {CacheNode?} [head] Cache head. - * @property {*[]} [lastDependants] Dependants from previous invocation. + * WordPress dependencies */ +const castArray = maybeArray => Array.isArray(maybeArray) ? maybeArray : [maybeArray]; + /** - * Arbitrary value used as key for referencing cache object in WeakMap tree. + * A list of private/experimental block editor settings that + * should not become a part of the WordPress public API. + * BlockEditorProvider will remove these settings from the + * settings object it receives. * - * @type {{}} + * @see https://github.com/WordPress/gutenberg/pull/46131 */ -var LEAF_KEY = {}; +const privateSettings = ['inserterMediaCategories', 'blockInspectorAnimation']; /** - * Returns the first argument as the sole entry in an array. - * - * @template T - * - * @param {T} value Value to return. + * Action that updates the block editor settings and + * conditionally preserves the experimental ones. * - * @return {[T]} Value returned as entry in array. + * @param {Object} settings Updated settings + * @param {Object} options Options object. + * @param {boolean} options.stripExperimentalSettings Whether to strip experimental settings. + * @param {boolean} options.reset Whether to reset the settings. + * @return {Object} Action object */ -function arrayOf(value) { - return [value]; +function __experimentalUpdateSettings(settings, { + stripExperimentalSettings = false, + reset = false +} = {}) { + let cleanSettings = settings; + // There are no plugins in the mobile apps, so there is no + // need to strip the experimental settings: + if (stripExperimentalSettings && external_wp_element_namespaceObject.Platform.OS === 'web') { + cleanSettings = {}; + for (const key in settings) { + if (!privateSettings.includes(key)) { + cleanSettings[key] = settings[key]; + } + } + } + return { + type: 'UPDATE_SETTINGS', + settings: cleanSettings, + reset + }; } /** - * Returns true if the value passed is object-like, or false otherwise. A value - * is object-like if it can support property assignment, e.g. object or array. - * - * @param {*} value Value to test. + * Hides the block interface (eg. toolbar, outline, etc.) * - * @return {boolean} Whether value is object-like. + * @return {Object} Action object. */ -function isObjectLike(value) { - return !!value && 'object' === typeof value; +function hideBlockInterface() { + return { + type: 'HIDE_BLOCK_INTERFACE' + }; } /** - * Creates and returns a new cache object. + * Shows the block interface (eg. toolbar, outline, etc.) * - * @return {Cache} Cache object. + * @return {Object} Action object. */ -function createCache() { - /** @type {Cache} */ - var cache = { - clear: function () { - cache.head = null; - }, - }; - - return cache; +function showBlockInterface() { + return { + type: 'SHOW_BLOCK_INTERFACE' + }; } /** - * Returns true if entries within the two arrays are strictly equal by - * reference from a starting index. + * Yields action objects used in signalling that the blocks corresponding to + * the set of specified client IDs are to be removed. * - * @param {*[]} a First array. - * @param {*[]} b Second array. - * @param {number} fromIndex Index from which to start comparison. + * Compared to `removeBlocks`, this private interface exposes an additional + * parameter; see `forceRemove`. * - * @return {boolean} Whether arrays are shallowly equal. + * @param {string|string[]} clientIds Client IDs of blocks to remove. + * @param {boolean} selectPrevious True if the previous block + * or the immediate parent + * (if no previous block exists) + * should be selected + * when a block is removed. + * @param {boolean} forceRemove Whether to force the operation, + * bypassing any checks for certain + * block types. */ -function isShallowEqual(a, b, fromIndex) { - var i; +const privateRemoveBlocks = (clientIds, selectPrevious = true, forceRemove = false) => ({ + select, + dispatch, + registry +}) => { + if (!clientIds || !clientIds.length) { + return; + } + clientIds = castArray(clientIds); + const rootClientId = select.getBlockRootClientId(clientIds[0]); + const canRemoveBlocks = select.canRemoveBlocks(clientIds, rootClientId); + if (!canRemoveBlocks) { + return; + } - if (a.length !== b.length) { - return false; - } - - for (i = fromIndex; i < a.length; i++) { - if (a[i] !== b[i]) { - return false; - } - } - - return true; -} - -/** - * Returns a memoized selector function. The getDependants function argument is - * called before the memoized selector and is expected to return an immutable - * reference or array of references on which the selector depends for computing - * its own return value. The memoize cache is preserved only as long as those - * dependant references remain the same. If getDependants returns a different - * reference(s), the cache is cleared and the selector value regenerated. - * - * @template {(...args: *[]) => *} S - * - * @param {S} selector Selector function. - * @param {GetDependants=} getDependants Dependant getter returning an array of - * references used in cache bust consideration. - */ -/* harmony default export */ function rememo(selector, getDependants) { - /** @type {WeakMap<*,*>} */ - var rootCache; - - /** @type {GetDependants} */ - var normalizedGetDependants = getDependants ? getDependants : arrayOf; - - /** - * Returns the cache for a given dependants array. When possible, a WeakMap - * will be used to create a unique cache for each set of dependants. This - * is feasible due to the nature of WeakMap in allowing garbage collection - * to occur on entries where the key object is no longer referenced. Since - * WeakMap requires the key to be an object, this is only possible when the - * dependant is object-like. The root cache is created as a hierarchy where - * each top-level key is the first entry in a dependants set, the value a - * WeakMap where each key is the next dependant, and so on. This continues - * so long as the dependants are object-like. If no dependants are object- - * like, then the cache is shared across all invocations. - * - * @see isObjectLike - * - * @param {*[]} dependants Selector dependants. - * - * @return {Cache} Cache object. - */ - function getCache(dependants) { - var caches = rootCache, - isUniqueByDependants = true, - i, - dependant, - map, - cache; - - for (i = 0; i < dependants.length; i++) { - dependant = dependants[i]; - - // Can only compose WeakMap from object-like key. - if (!isObjectLike(dependant)) { - isUniqueByDependants = false; - break; - } - - // Does current segment of cache already have a WeakMap? - if (caches.has(dependant)) { - // Traverse into nested WeakMap. - caches = caches.get(dependant); - } else { - // Create, set, and traverse into a new one. - map = new WeakMap(); - caches.set(dependant, map); - caches = map; - } - } - - // We use an arbitrary (but consistent) object as key for the last item - // in the WeakMap to serve as our running cache. - if (!caches.has(LEAF_KEY)) { - cache = createCache(); - cache.isUniqueByDependants = isUniqueByDependants; - caches.set(LEAF_KEY, cache); - } - - return caches.get(LEAF_KEY); - } - - /** - * Resets root memoization cache. - */ - function clear() { - rootCache = new WeakMap(); - } - - /* eslint-disable jsdoc/check-param-names */ - /** - * The augmented selector call, considering first whether dependants have - * changed before passing it to underlying memoize function. - * - * @param {*} source Source object for derivation. - * @param {...*} extraArgs Additional arguments to pass to selector. - * - * @return {*} Selector result. - */ - /* eslint-enable jsdoc/check-param-names */ - function callSelector(/* source, ...extraArgs */) { - var len = arguments.length, - cache, - node, - i, - args, - dependants; - - // Create copy of arguments (avoid leaking deoptimization). - args = new Array(len); - for (i = 0; i < len; i++) { - args[i] = arguments[i]; - } - - dependants = normalizedGetDependants.apply(null, args); - cache = getCache(dependants); - - // If not guaranteed uniqueness by dependants (primitive type), shallow - // compare against last dependants and, if references have changed, - // destroy cache to recalculate result. - if (!cache.isUniqueByDependants) { - if ( - cache.lastDependants && - !isShallowEqual(dependants, cache.lastDependants, 0) - ) { - cache.clear(); - } - - cache.lastDependants = dependants; - } - - node = cache.head; - while (node) { - // Check whether node arguments match arguments - if (!isShallowEqual(node.args, args, 1)) { - node = node.next; - continue; - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if (node !== cache.head) { - // Adjust siblings to point to each other. - /** @type {CacheNode} */ (node.prev).next = node.next; - if (node.next) { - node.next.prev = node.prev; - } - - node.next = cache.head; - node.prev = null; - /** @type {CacheNode} */ (cache.head).prev = node; - cache.head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - node = /** @type {CacheNode} */ ({ - // Generate the result from original function - val: selector.apply(null, args), - }); - - // Avoid including the source object in the cache. - args[0] = null; - node.args = args; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if (cache.head) { - cache.head.prev = node; - node.next = cache.head; - } - - cache.head = node; - - return node.val; - } + // In certain editing contexts, we'd like to prevent accidental removal + // of important blocks. For example, in the site editor, the Query Loop + // block is deemed important. In such cases, we'll ask the user for + // confirmation that they intended to remove such block(s). However, + // the editor instance is responsible for presenting those confirmation + // prompts to the user. Any instance opting into removal prompts must + // register using `setBlockRemovalRules()`. + // + // @see https://github.com/WordPress/gutenberg/pull/51145 + const rules = !forceRemove && select.getBlockRemovalRules(); + if (rules) { + const blockNamesForPrompt = new Set(); - callSelector.getDependants = normalizedGetDependants; - callSelector.clear = clear; - clear(); + // Given a list of client IDs of blocks that the user intended to + // remove, perform a tree search (BFS) to find all block names + // corresponding to "important" blocks, i.e. blocks that require a + // removal prompt. + const queue = [...clientIds]; + while (queue.length) { + const clientId = queue.shift(); + const blockName = select.getBlockName(clientId); + if (rules[blockName]) { + blockNamesForPrompt.add(blockName); + } + const innerBlocks = select.getBlockOrder(clientId); + queue.push(...innerBlocks); + } - return /** @type {S & EnhancedSelector} */ (callSelector); -} + // If any such blocks were found, trigger the removal prompt and + // skip any other steps (thus postponing actual removal). + if (blockNamesForPrompt.size) { + dispatch(displayBlockRemovalPrompt(clientIds, selectPrevious, Array.from(blockNamesForPrompt))); + return; + } + } + if (selectPrevious) { + dispatch.selectPreviousBlock(clientIds[0], selectPrevious); + } -;// CONCATENATED MODULE: external ["wp","primitives"] -var external_wp_primitives_namespaceObject = window["wp"]["primitives"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js + // We're batching these two actions because an extra `undo/redo` step can + // be created, based on whether we insert a default block or not. + registry.batch(() => { + dispatch({ + type: 'REMOVE_BLOCKS', + clientIds + }); + // To avoid a focus loss when removing the last block, assure there is + // always a default block if the last of the blocks have been removed. + dispatch(ensureDefaultBlock()); + }); +}; /** - * WordPress dependencies + * Action which will insert a default block insert action if there + * are no other blocks at the root of the editor. This action should be used + * in actions which may result in no blocks remaining in the editor (removal, + * replacement, etc). */ - -const symbol = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" -})); -/* harmony default export */ var library_symbol = (symbol); - -;// CONCATENATED MODULE: external ["wp","richText"] -var external_wp_richText_namespaceObject = window["wp"]["richText"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/utils.js -const checkAllowList = (list, item, defaultResult = null) => { - if (typeof list === 'boolean') { - return list; - } - if (Array.isArray(list)) { - // TODO: when there is a canonical way to detect that we are editing a post - // the following check should be changed to something like: - // if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null ) - if (list.includes('core/post-content') && item === null) { - return true; - } - return list.includes(item); - } - return defaultResult; -}; -const checkAllowListRecursive = (blocks, allowedBlockTypes) => { - if (typeof allowedBlockTypes === 'boolean') { - return allowedBlockTypes; +const ensureDefaultBlock = () => ({ + select, + dispatch +}) => { + // To avoid a focus loss when removing the last block, assure there is + // always a default block if the last of the blocks have been removed. + const count = select.getBlockCount(); + if (count > 0) { + return; } - const blocksQueue = [...blocks]; - while (blocksQueue.length > 0) { - const block = blocksQueue.shift(); - const isAllowed = checkAllowList(allowedBlockTypes, block.name || block.blockName, true); - if (!isAllowed) { - return false; - } - block.innerBlocks?.forEach(innerBlock => { - blocksQueue.push(innerBlock); - }); + + // If there's an custom appender, don't insert default block. + // We have to remember to manually move the focus elsewhere to + // prevent it from being lost though. + const { + __unstableHasCustomAppender + } = select.getSettings(); + if (__unstableHasCustomAppender) { + return; } - return true; -}; -const getAllPatternsDependants = state => { - return [state.settings.__experimentalBlockPatterns, state.settings.__experimentalUserPatternCategories, state.settings.__experimentalReusableBlocks, state.settings.__experimentalFetchBlockPatterns, state.blockPatterns]; + dispatch.insertDefaultBlock(); }; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/sorting.js /** - * Recursive stable sorting comparator function. + * Returns an action object used in signalling that a block removal prompt must + * be displayed. * - * @param {string|Function} field Field to sort by. - * @param {Array} items Items to sort. - * @param {string} order Order, 'asc' or 'desc'. - * @return {Function} Comparison function to be used in a `.sort()`. + * Contrast with `setBlockRemovalRules`. + * + * @param {string|string[]} clientIds Client IDs of blocks to remove. + * @param {boolean} selectPrevious True if the previous block + * or the immediate parent + * (if no previous block exists) + * should be selected + * when a block is removed. + * @param {string[]} blockNamesForPrompt Names of the blocks that + * triggered the need for + * confirmation before removal. + * + * @return {Object} Action object. */ -const comparator = (field, items, order) => { - return (a, b) => { - let cmpA, cmpB; - if (typeof field === 'function') { - cmpA = field(a); - cmpB = field(b); - } else { - cmpA = a[field]; - cmpB = b[field]; - } - if (cmpA > cmpB) { - return order === 'asc' ? 1 : -1; - } else if (cmpB > cmpA) { - return order === 'asc' ? -1 : 1; - } - const orderA = items.findIndex(item => item === a); - const orderB = items.findIndex(item => item === b); - - // Stable sort: maintaining original array order - if (orderA > orderB) { - return 1; - } else if (orderB > orderA) { - return -1; - } - return 0; +function displayBlockRemovalPrompt(clientIds, selectPrevious, blockNamesForPrompt) { + return { + type: 'DISPLAY_BLOCK_REMOVAL_PROMPT', + clientIds, + selectPrevious, + blockNamesForPrompt }; -}; +} /** - * Order items by a certain key. - * Supports decorator functions that allow complex picking of a comparison field. - * Sorts in ascending order by default, but supports descending as well. - * Stable sort - maintains original order of equal items. + * Returns an action object used in signalling that a block removal prompt must + * be cleared, either be cause the user has confirmed or canceled the request + * for removal. * - * @param {Array} items Items to order. - * @param {string|Function} field Field to order by. - * @param {string} order Sorting order, `asc` or `desc`. - * @return {Array} Sorted items. + * @return {Object} Action object. */ -function orderBy(items, field, order = 'asc') { - return items.concat().sort(comparator(field, items, order)); +function clearBlockRemovalPrompt() { + return { + type: 'CLEAR_BLOCK_REMOVAL_PROMPT' + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/constants.js -const STORE_NAME = 'core/block-editor'; - -;// CONCATENATED MODULE: external ["wp","privateApis"] -var external_wp_privateApis_namespaceObject = window["wp"]["privateApis"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/lock-unlock.js /** - * WordPress dependencies + * Returns an action object used to set up any rules that a block editor may + * provide in order to prevent a user from accidentally removing certain + * blocks. These rules are then used to display a confirmation prompt to the + * user. For instance, in the Site Editor, the Query Loop block is important + * enough to warrant such confirmation. + * + * IMPORTANT: Registering rules implicitly signals to the `privateRemoveBlocks` + * action that the editor will be responsible for displaying block removal + * prompts and confirming deletions. This action is meant to be used by + * component `BlockRemovalWarningModal` only. + * + * The data is a record whose keys are block types (e.g. 'core/query') and + * whose values are the explanation to be shown to users (e.g. 'Query Loop + * displays a list of posts or pages.'). + * + * Contrast with `displayBlockRemovalPrompt`. + * + * @param {Record|false} rules Block removal rules. + * @return {Object} Action object. */ +function setBlockRemovalRules(rules = false) { + return { + type: 'SET_BLOCK_REMOVAL_RULES', + rules + }; +} -const { - lock, - unlock -} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/block-editor'); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js /** - * External dependencies + * Sets the client ID of the block settings menu that is currently open. + * + * @param {?string} clientId The block client ID. + * @return {Object} Action object. */ +function setOpenedBlockSettingsMenu(clientId) { + return { + type: 'SET_OPENED_BLOCK_SETTINGS_MENU', + clientId + }; +} +function setStyleOverride(id, style) { + return { + type: 'SET_STYLE_OVERRIDE', + id, + style + }; +} +function deleteStyleOverride(id) { + return { + type: 'DELETE_STYLE_OVERRIDE', + id + }; +} - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/private-selectors.js /** - * WordPress dependencies + * External dependencies */ - - - - - - /** * Internal dependencies */ - - - /** - * A block selection object. + * Returns true if the block interface is hidden, or false otherwise. * - * @typedef {Object} WPBlockSelection + * @param {Object} state Global application state. * - * @property {string} clientId A block client ID. - * @property {string} attributeKey A block attribute key. - * @property {number} offset An attribute value offset, based on the rich - * text value. See `wp.richText.create`. + * @return {boolean} Whether the block toolbar is hidden. */ - -// Module constants. -const MILLISECONDS_PER_HOUR = 3600 * 1000; -const MILLISECONDS_PER_DAY = 24 * 3600 * 1000; -const MILLISECONDS_PER_WEEK = 7 * 24 * 3600 * 1000; +function private_selectors_isBlockInterfaceHidden(state) { + return state.isBlockInterfaceHidden; +} /** - * Shared reference to an empty array for cases where it is important to avoid - * returning a new array reference on every invocation, as in a connected or - * other pure component which performs `shouldComponentUpdate` check on props. - * This should be used as a last resort, since the normalized data should be - * maintained by the reducer result in state. + * Gets the client ids of the last inserted blocks. * - * @type {Array} + * @param {Object} state Global application state. + * @return {Array|undefined} Client Ids of the last inserted block(s). */ -const EMPTY_ARRAY = []; +function getLastInsertedBlocksClientIds(state) { + return state?.lastBlockInserted?.clientIds; +} /** - * Shared reference to an empty Set for cases where it is important to avoid - * returning a new Set reference on every invocation, as in a connected or - * other pure component which performs `shouldComponentUpdate` check on props. - * This should be used as a last resort, since the normalized data should be - * maintained by the reducer result in state. + * Returns true if the block with the given client ID and all of its descendants + * have an editing mode of 'disabled', or false otherwise. * - * @type {Set} + * @param {Object} state Global application state. + * @param {string} clientId The block client ID. + * + * @return {boolean} Whether the block and its descendants are disabled. */ -const EMPTY_SET = new Set(); +const isBlockSubtreeDisabled = rememo((state, clientId) => { + const isChildSubtreeDisabled = childClientId => { + return getBlockEditingMode(state, childClientId) === 'disabled' && getBlockOrder(state, childClientId).every(isChildSubtreeDisabled); + }; + return getBlockEditingMode(state, clientId) === 'disabled' && getBlockOrder(state, clientId).every(isChildSubtreeDisabled); +}, state => [state.blocks.parents, state.blocks.order, state.blockEditingModes, state.blockListSettings]); /** - * Returns a block's name given its client ID, or null if no block exists with - * the client ID. + * Returns a tree of block objects with only clientID and innerBlocks set. + * Blocks with a 'disabled' editing mode are not included. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * @param {Object} state Global application state. + * @param {?string} rootClientId Optional root client ID of block list. * - * @return {string} Block name. + * @return {Object[]} Tree of block objects with only clientID and innerBlocks set. */ -function getBlockName(state, clientId) { - const block = state.blocks.byClientId.get(clientId); - const socialLinkName = 'core/social-link'; - if (external_wp_element_namespaceObject.Platform.OS !== 'web' && block?.name === socialLinkName) { - const attributes = state.blocks.attributes.get(clientId); - const { - service - } = attributes !== null && attributes !== void 0 ? attributes : {}; - return service ? `${socialLinkName}-${service}` : socialLinkName; - } - return block ? block.name : null; -} +const getEnabledClientIdsTree = rememo((state, rootClientId = '') => { + return getBlockOrder(state, rootClientId).flatMap(clientId => { + if (getBlockEditingMode(state, clientId) !== 'disabled') { + return [{ + clientId, + innerBlocks: getEnabledClientIdsTree(state, clientId) + }]; + } + return getEnabledClientIdsTree(state, clientId); + }); +}, state => [state.blocks.order, state.blockEditingModes, state.settings.templateLock, state.blockListSettings]); /** - * Returns whether a block is valid or not. + * Returns a list of a given block's ancestors, from top to bottom. Blocks with + * a 'disabled' editing mode are excluded. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * @see getBlockParents * - * @return {boolean} Is Valid. + * @param {Object} state Global application state. + * @param {string} clientId The block client ID. + * @param {boolean} ascending Order results from bottom to top (true) or top + * to bottom (false). */ -function isBlockValid(state, clientId) { - const block = state.blocks.byClientId.get(clientId); - return !!block && block.isValid; -} +const getEnabledBlockParents = rememo((state, clientId, ascending = false) => { + return getBlockParents(state, clientId, ascending).filter(parent => getBlockEditingMode(state, parent) !== 'disabled'); +}, state => [state.blocks.parents, state.blockEditingModes, state.settings.templateLock, state.blockListSettings]); /** - * Returns a block's attributes given its client ID, or null if no block exists with - * the client ID. + * Selector that returns the data needed to display a prompt when certain + * blocks are removed, or `false` if no such prompt is requested. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * @param {Object} state Global application state. * - * @return {Object?} Block attributes. + * @return {Object|false} Data for removal prompt display, if any. */ -function getBlockAttributes(state, clientId) { - const block = state.blocks.byClientId.get(clientId); - if (!block) { - return null; - } - return state.blocks.attributes.get(clientId); +function getRemovalPromptData(state) { + return state.removalPromptData; } /** - * Returns a block given its client ID. This is a parsed copy of the block, - * containing its `blockName`, `clientId`, and current `attributes` state. This - * is not the block's registration settings, which must be retrieved from the - * blocks module registration store. - * - * getBlock recurses through its inner blocks until all its children blocks have - * been retrieved. Note that getBlock will not return the child inner blocks of - * an inner block controller. This is because an inner block controller syncs - * itself with its own entity, and should therefore not be included with the - * blocks of a different entity. For example, say you call `getBlocks( TP )` to - * get the blocks of a template part. If another template part is a child of TP, - * then the nested template part's child blocks will not be returned. This way, - * the template block itself is considered part of the parent, but the children - * are not. + * Returns true if removal prompt exists, or false otherwise. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * @param {Object} state Global application state. * - * @return {Object} Parsed block object. + * @return {boolean} Whether removal prompt exists. */ -function getBlock(state, clientId) { - if (!state.blocks.byClientId.has(clientId)) { - return null; - } - return state.blocks.tree.get(clientId); +function getBlockRemovalRules(state) { + return state.blockRemovalRules; } -const __unstableGetBlockWithoutInnerBlocks = rememo((state, clientId) => { - if (!state.blocks.byClientId.has(clientId)) { - return null; - } - return { - ...state.blocks.byClientId.get(clientId), - attributes: getBlockAttributes(state, clientId) - }; -}, (state, clientId) => [state.blocks.byClientId.get(clientId), state.blocks.attributes.get(clientId)]); /** - * Returns all block objects for the current post being edited as an array in - * the order they appear in the post. Note that this will exclude child blocks - * of nested inner block controllers. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * Returns the client ID of the block settings menu that is currently open. * - * @return {Object[]} Post blocks. + * @param {Object} state Global application state. + * @return {string|null} The client ID of the block menu that is currently open. */ -function getBlocks(state, rootClientId) { - const treeKey = !rootClientId || !areInnerBlocksControlled(state, rootClientId) ? rootClientId || '' : 'controlled||' + rootClientId; - return state.blocks.tree.get(treeKey)?.innerBlocks || EMPTY_ARRAY; +function getOpenedBlockSettingsMenu(state) { + return state.openedBlockSettingsMenu; } /** - * Returns a stripped down block object containing only its client ID, - * and its inner blocks' client IDs. - * - * @deprecated - * - * @param {Object} state Editor state. - * @param {string} clientId Client ID of the block to get. - * - * @return {Object} Client IDs of the post blocks. - */ -const __unstableGetClientIdWithClientIdsTree = rememo((state, clientId) => { - external_wp_deprecated_default()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdWithClientIdsTree", { - since: '6.3', - version: '6.5' - }); - return { - clientId, - innerBlocks: __unstableGetClientIdsTree(state, clientId) - }; -}, state => [state.blocks.order]); - -/** - * Returns the block tree represented in the block-editor store from the - * given root, consisting of stripped down block objects containing only - * their client IDs, and their inner blocks' client IDs. - * - * @deprecated + * Returns all style overrides, intended to be merged with global editor styles. * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * @param {Object} state Global application state. * - * @return {Object[]} Client IDs of the post blocks. + * @return {Map} A map of style IDs to style overrides. */ -const __unstableGetClientIdsTree = rememo((state, rootClientId = '') => { - external_wp_deprecated_default()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdsTree", { - since: '6.3', - version: '6.5' - }); - return getBlockOrder(state, rootClientId).map(clientId => __unstableGetClientIdWithClientIdsTree(state, clientId)); -}, state => [state.blocks.order]); +function getStyleOverrides(state) { + return state.styleOverrides; +} +/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */ /** - * Returns an array containing the clientIds of all descendants of the blocks - * given. Returned ids are ordered first by the order of the ids given, then - * by the order that they appear in the editor. + * Returns the registered inserter media categories through the public API. * - * @param {Object} state Global application state. - * @param {string|string[]} clientIds Client ID(s) for which descendant blocks are to be returned. + * @param {Object} state Editor state. * - * @return {Array} Client IDs of descendants. + * @return {InserterMediaCategory[]} Inserter media categories. */ -const getClientIdsOfDescendants = rememo((state, clientIds) => { - const givenIds = Array.isArray(clientIds) ? clientIds : [clientIds]; - const collectedIds = []; - for (const givenId of givenIds) { - for (const descendantId of getBlockOrder(state, givenId)) { - collectedIds.push(descendantId, ...getClientIdsOfDescendants(state, descendantId)); - } - } - return collectedIds; -}, state => [state.blocks.order]); +function getRegisteredInserterMediaCategories(state) { + return state.registeredInserterMediaCategories; +} /** - * Returns an array containing the clientIds of the top-level blocks and - * their descendants of any depth (for nested blocks). Ids are returned - * in the same order that they appear in the editor. + * Returns an array containing the allowed inserter media categories. + * It merges the registered media categories from extenders with the + * core ones. It also takes into account the allowed `mime_types`, which + * can be altered by `upload_mimes` filter and restrict some of them. * * @param {Object} state Global application state. * - * @return {Array} ids of top-level and descendant blocks. + * @return {InserterMediaCategory[]} Client IDs of descendants. */ -const getClientIdsWithDescendants = rememo(state => { - const collectedIds = []; - for (const topLevelId of getBlockOrder(state)) { - collectedIds.push(topLevelId, ...getClientIdsOfDescendants(state, topLevelId)); +const getInserterMediaCategories = rememo(state => { + const { + settings: { + inserterMediaCategories, + allowedMimeTypes, + enableOpenverseMediaCategory + }, + registeredInserterMediaCategories + } = state; + // The allowed `mime_types` can be altered by `upload_mimes` filter and restrict + // some of them. In this case we shouldn't add the category to the available media + // categories list in the inserter. + if (!inserterMediaCategories && !registeredInserterMediaCategories.length || !allowedMimeTypes) { + return; } - return collectedIds; -}, state => [state.blocks.order]); + const coreInserterMediaCategoriesNames = inserterMediaCategories?.map(({ + name + }) => name) || []; + const mergedCategories = [...(inserterMediaCategories || []), ...(registeredInserterMediaCategories || []).filter(({ + name + }) => !coreInserterMediaCategoriesNames.includes(name))]; + return mergedCategories.filter(category => { + // Check if Openverse category is enabled. + if (!enableOpenverseMediaCategory && category.name === 'openverse') { + return false; + } + return Object.values(allowedMimeTypes).some(mimeType => mimeType.startsWith(`${category.mediaType}/`)); + }); +}, state => [state.settings.inserterMediaCategories, state.settings.allowedMimeTypes, state.settings.enableOpenverseMediaCategory, state.registeredInserterMediaCategories]); +;// CONCATENATED MODULE: external ["wp","a11y"] +var external_wp_a11y_namespaceObject = window["wp"]["a11y"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/selection.js /** - * Returns the total number of blocks, or the total number of blocks with a specific name in a post. - * The number returned includes nested blocks. - * - * @param {Object} state Global application state. - * @param {?string} blockName Optional block name, if specified only blocks of that type will be counted. - * - * @return {number} Number of blocks in the post, or number of blocks with name equal to blockName. + * A robust way to retain selection position through various + * transforms is to insert a special character at the position and + * then recover it. */ -const getGlobalBlockCount = rememo((state, blockName) => { - const clientIds = getClientIdsWithDescendants(state); - if (!blockName) { - return clientIds.length; - } - return clientIds.reduce((accumulator, clientId) => { - const block = state.blocks.byClientId.get(clientId); - return block.name === blockName ? accumulator + 1 : accumulator; - }, 0); -}, state => [state.blocks.order, state.blocks.byClientId]); +const START_OF_SELECTED_AREA = '\u0086'; /** - * Returns all blocks that match a blockName. Results include nested blocks. - * - * @param {Object} state Global application state. - * @param {?string} blockName Optional block name, if not specified, returns an empty array. + * Retrieve the block attribute that contains the selection position. * - * @return {Array} Array of clientIds of blocks with name equal to blockName. + * @param {Object} blockAttributes Block attributes. + * @return {string|void} The name of the block attribute that was previously selected. */ -const getBlocksByName = rememo((state, blockName) => { - if (!blockName) { - return EMPTY_ARRAY; +function retrieveSelectedAttribute(blockAttributes) { + if (!blockAttributes) { + return; } - const blockNames = Array.isArray(blockName) ? blockName : [blockName]; - const clientIds = getClientIdsWithDescendants(state); - const foundBlocks = clientIds.filter(clientId => { - const block = state.blocks.byClientId.get(clientId); - return blockNames.includes(block.name); + return Object.keys(blockAttributes).find(name => { + const value = blockAttributes[name]; + return typeof value === 'string' && value.indexOf(START_OF_SELECTED_AREA) !== -1; }); - return foundBlocks.length > 0 ? foundBlocks : EMPTY_ARRAY; -}, state => [state.blocks.order, state.blocks.byClientId]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/actions.js +/* eslint no-console: [ 'error', { allow: [ 'error', 'warn' ] } ] */ /** - * Returns all global blocks that match a blockName. Results include nested blocks. - * - * @deprecated - * - * @param {Object} state Global application state. - * @param {?string} blockName Optional block name, if not specified, returns an empty array. - * - * @return {Array} Array of clientIds of blocks with name equal to blockName. + * WordPress dependencies */ -function __experimentalGetGlobalBlocksByName(state, blockName) { - external_wp_deprecated_default()("wp.data.select( 'core/block-editor' ).__experimentalGetGlobalBlocksByName", { - since: '6.5', - alternative: `wp.data.select( 'core/block-editor' ).getBlocksByName` - }); - return getBlocksByName(state, blockName); -} + + + + + /** - * Given an array of block client IDs, returns the corresponding array of block - * objects. - * - * @param {Object} state Editor state. - * @param {string[]} clientIds Client IDs for which blocks are to be returned. - * - * @return {WPBlock[]} Block objects. + * Internal dependencies */ -const getBlocksByClientId = rememo((state, clientIds) => (Array.isArray(clientIds) ? clientIds : [clientIds]).map(clientId => getBlock(state, clientId)), (state, clientIds) => (Array.isArray(clientIds) ? clientIds : [clientIds]).map(clientId => state.blocks.tree.get(clientId))); + + + + +/** @typedef {import('../components/use-on-block-drop/types').WPDropOperation} WPDropOperation */ + +const actions_castArray = maybeArray => Array.isArray(maybeArray) ? maybeArray : [maybeArray]; /** - * Given an array of block client IDs, returns the corresponding array of block - * names. - * - * @param {Object} state Editor state. - * @param {string[]} clientIds Client IDs for which block names are to be returned. + * Action that resets blocks state to the specified array of blocks, taking precedence + * over any other content reflected as an edit in state. * - * @return {string[]} Block names. + * @param {Array} blocks Array of blocks. */ -const getBlockNamesByClientId = rememo((state, clientIds) => getBlocksByClientId(state, clientIds).filter(Boolean).map(block => block.name), (state, clientIds) => getBlocksByClientId(state, clientIds)); +const resetBlocks = blocks => ({ + dispatch +}) => { + dispatch({ + type: 'RESET_BLOCKS', + blocks + }); + dispatch(validateBlocksToTemplate(blocks)); +}; /** - * Returns the number of blocks currently present in the post. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * Block validity is a function of blocks state (at the point of a + * reset) and the template setting. As a compromise to its placement + * across distinct parts of state, it is implemented here as a side + * effect of the block reset action. * - * @return {number} Number of blocks in the post. + * @param {Array} blocks Array of blocks. */ -function getBlockCount(state, rootClientId) { - return getBlockOrder(state, rootClientId).length; -} +const validateBlocksToTemplate = blocks => ({ + select, + dispatch +}) => { + const template = select.getTemplate(); + const templateLock = select.getTemplateLock(); + + // Unlocked templates are considered always valid because they act + // as default values only. + const isBlocksValidToTemplate = !template || templateLock !== 'all' || (0,external_wp_blocks_namespaceObject.doBlocksMatchTemplate)(blocks, template); + + // Update if validity has changed. + const isValidTemplate = select.isValidTemplate(); + if (isBlocksValidToTemplate !== isValidTemplate) { + dispatch.setTemplateValidity(isBlocksValidToTemplate); + return isBlocksValidToTemplate; + } +}; /** - * Returns the current selection start block client ID, attribute key and text - * offset. + * A block selection object. * - * @param {Object} state Block editor state. + * @typedef {Object} WPBlockSelection * - * @return {WPBlockSelection} Selection start information. + * @property {string} clientId A block client ID. + * @property {string} attributeKey A block attribute key. + * @property {number} offset An attribute value offset, based on the rich + * text value. See `wp.richText.create`. */ -function getSelectionStart(state) { - return state.selection.selectionStart; -} /** - * Returns the current selection end block client ID, attribute key and text - * offset. + * A selection object. * - * @param {Object} state Block editor state. + * @typedef {Object} WPSelection * - * @return {WPBlockSelection} Selection end information. + * @property {WPBlockSelection} start The selection start. + * @property {WPBlockSelection} end The selection end. */ -function getSelectionEnd(state) { - return state.selection.selectionEnd; -} +/* eslint-disable jsdoc/valid-types */ /** - * Returns the current block selection start. This value may be null, and it - * may represent either a singular block selection or multi-selection start. - * A selection is singular if its start and end match. + * Returns an action object used in signalling that selection state should be + * reset to the specified selection. * - * @param {Object} state Global application state. + * @param {WPBlockSelection} selectionStart The selection start. + * @param {WPBlockSelection} selectionEnd The selection end. + * @param {0|-1|null} initialPosition Initial block position. * - * @return {?string} Client ID of block selection start. + * @return {Object} Action object. */ -function getBlockSelectionStart(state) { - return state.selection.selectionStart.clientId; +function resetSelection(selectionStart, selectionEnd, initialPosition) { + /* eslint-enable jsdoc/valid-types */ + return { + type: 'RESET_SELECTION', + selectionStart, + selectionEnd, + initialPosition + }; } /** - * Returns the current block selection end. This value may be null, and it - * may represent either a singular block selection or multi-selection end. - * A selection is singular if its start and end match. + * Returns an action object used in signalling that blocks have been received. + * Unlike resetBlocks, these should be appended to the existing known set, not + * replacing. * - * @param {Object} state Global application state. + * @deprecated * - * @return {?string} Client ID of block selection end. + * @param {Object[]} blocks Array of block objects. + * + * @return {Object} Action object. */ -function getBlockSelectionEnd(state) { - return state.selection.selectionEnd.clientId; +function receiveBlocks(blocks) { + external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).receiveBlocks', { + since: '5.9', + alternative: 'resetBlocks or insertBlocks' + }); + return { + type: 'RECEIVE_BLOCKS', + blocks + }; } /** - * Returns the number of blocks currently selected in the post. - * - * @param {Object} state Global application state. + * Action that updates attributes of multiple blocks with the specified client IDs. * - * @return {number} Number of blocks selected in the post. + * @param {string|string[]} clientIds Block client IDs. + * @param {Object} attributes Block attributes to be merged. Should be keyed by clientIds if + * uniqueByBlock is true. + * @param {boolean} uniqueByBlock true if each block in clientIds array has a unique set of attributes + * @return {Object} Action object. */ -function getSelectedBlockCount(state) { - const multiSelectedBlockCount = getMultiSelectedBlockClientIds(state).length; - if (multiSelectedBlockCount) { - return multiSelectedBlockCount; - } - return state.selection.selectionStart.clientId ? 1 : 0; +function updateBlockAttributes(clientIds, attributes, uniqueByBlock = false) { + return { + type: 'UPDATE_BLOCK_ATTRIBUTES', + clientIds: actions_castArray(clientIds), + attributes, + uniqueByBlock + }; } /** - * Returns true if there is a single selected block, or false otherwise. + * Action that updates the block with the specified client ID. * - * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * @param {Object} updates Block attributes to be merged. * - * @return {boolean} Whether a single block is selected. + * @return {Object} Action object. */ -function hasSelectedBlock(state) { - const { - selectionStart, - selectionEnd - } = state.selection; - return !!selectionStart.clientId && selectionStart.clientId === selectionEnd.clientId; +function updateBlock(clientId, updates) { + return { + type: 'UPDATE_BLOCK', + clientId, + updates + }; } +/* eslint-disable jsdoc/valid-types */ /** - * Returns the currently selected block client ID, or null if there is no - * selected block. + * Returns an action object used in signalling that the block with the + * specified client ID has been selected, optionally accepting a position + * value reflecting its selection directionality. An initialPosition of -1 + * reflects a reverse selection. * - * @param {Object} state Editor state. + * @param {string} clientId Block client ID. + * @param {0|-1|null} initialPosition Optional initial position. Pass as -1 to + * reflect reverse selection. * - * @return {?string} Selected block client ID. + * @return {Object} Action object. */ -function getSelectedBlockClientId(state) { - const { - selectionStart, - selectionEnd - } = state.selection; - const { +function selectBlock(clientId, initialPosition = 0) { + /* eslint-enable jsdoc/valid-types */ + return { + type: 'SELECT_BLOCK', + initialPosition, clientId - } = selectionStart; - if (!clientId || clientId !== selectionEnd.clientId) { - return null; - } - return clientId; + }; } /** - * Returns the currently selected block, or null if there is no selected block. - * - * @param {Object} state Global application state. + * Yields action objects used in signalling that the block preceding the given + * clientId (or optionally, its first parent from bottom to top) + * should be selected. * - * @return {?Object} Selected block. + * @param {string} clientId Block client ID. + * @param {boolean} fallbackToParent If true, select the first parent if there is no previous block. */ -function getSelectedBlock(state) { - const clientId = getSelectedBlockClientId(state); - return clientId ? getBlock(state, clientId) : null; -} - -/** - * Given a block client ID, returns the root block from which the block is - * nested, an empty string for top-level blocks, or null if the block does not - * exist. - * - * @param {Object} state Editor state. - * @param {string} clientId Block from which to find root client ID. - * - * @return {?string} Root client ID, if exists - */ -function getBlockRootClientId(state, clientId) { - return state.blocks.parents.has(clientId) ? state.blocks.parents.get(clientId) : null; -} +const selectPreviousBlock = (clientId, fallbackToParent = false) => ({ + select, + dispatch +}) => { + const previousBlockClientId = select.getPreviousBlockClientId(clientId); + if (previousBlockClientId) { + dispatch.selectBlock(previousBlockClientId, -1); + } else if (fallbackToParent) { + const firstParentClientId = select.getBlockRootClientId(clientId); + if (firstParentClientId) { + dispatch.selectBlock(firstParentClientId, -1); + } + } +}; /** - * Given a block client ID, returns the list of all its parents from top to bottom. - * - * @param {Object} state Editor state. - * @param {string} clientId Block from which to find root client ID. - * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false). + * Yields action objects used in signalling that the block following the given + * clientId should be selected. * - * @return {Array} ClientIDs of the parent blocks. + * @param {string} clientId Block client ID. */ -const getBlockParents = rememo((state, clientId, ascending = false) => { - const parents = []; - let current = clientId; - while (!!state.blocks.parents.get(current)) { - current = state.blocks.parents.get(current); - parents.push(current); - } - if (!parents.length) { - return EMPTY_ARRAY; +const selectNextBlock = clientId => ({ + select, + dispatch +}) => { + const nextBlockClientId = select.getNextBlockClientId(clientId); + if (nextBlockClientId) { + dispatch.selectBlock(nextBlockClientId); } - return ascending ? parents : parents.reverse(); -}, state => [state.blocks.parents]); +}; /** - * Given a block client ID and a block name, returns the list of all its parents - * from top to bottom, filtered by the given name(s). For example, if passed - * 'core/group' as the blockName, it will only return parents which are group - * blocks. If passed `[ 'core/group', 'core/cover']`, as the blockName, it will - * return parents which are group blocks and parents which are cover blocks. - * - * @param {Object} state Editor state. - * @param {string} clientId Block from which to find root client ID. - * @param {string|string[]} blockName Block name(s) to filter. - * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false). - * - * @return {Array} ClientIDs of the parent blocks. - */ -const getBlockParentsByBlockName = rememo((state, clientId, blockName, ascending = false) => { - const parents = getBlockParents(state, clientId, ascending); - const hasName = Array.isArray(blockName) ? name => blockName.includes(name) : name => blockName === name; - return parents.filter(id => hasName(getBlockName(state, id))); -}, state => [state.blocks.parents]); -/** - * Given a block client ID, returns the root of the hierarchy from which the block is nested, return the block itself for root level blocks. - * - * @param {Object} state Editor state. - * @param {string} clientId Block from which to find root client ID. + * Action that starts block multi-selection. * - * @return {string} Root client ID + * @return {Object} Action object. */ -function getBlockHierarchyRootClientId(state, clientId) { - let current = clientId; - let parent; - do { - parent = current; - current = state.blocks.parents.get(current); - } while (current); - return parent; +function startMultiSelect() { + return { + type: 'START_MULTI_SELECT' + }; } /** - * Given a block client ID, returns the lowest common ancestor with selected client ID. - * - * @param {Object} state Editor state. - * @param {string} clientId Block from which to find common ancestor client ID. + * Action that stops block multi-selection. * - * @return {string} Common ancestor client ID or undefined + * @return {Object} Action object. */ -function getLowestCommonAncestorWithSelectedBlock(state, clientId) { - const selectedId = getSelectedBlockClientId(state); - const clientParents = [...getBlockParents(state, clientId), clientId]; - const selectedParents = [...getBlockParents(state, selectedId), selectedId]; - let lowestCommonAncestor; - const maxDepth = Math.min(clientParents.length, selectedParents.length); - for (let index = 0; index < maxDepth; index++) { - if (clientParents[index] === selectedParents[index]) { - lowestCommonAncestor = clientParents[index]; - } else { - break; - } - } - return lowestCommonAncestor; +function stopMultiSelect() { + return { + type: 'STOP_MULTI_SELECT' + }; } /** - * Returns the client ID of the block adjacent one at the given reference - * startClientId and modifier directionality. Defaults start startClientId to - * the selected block, and direction as next block. Returns null if there is no - * adjacent block. - * - * @param {Object} state Editor state. - * @param {?string} startClientId Optional client ID of block from which to - * search. - * @param {?number} modifier Directionality multiplier (1 next, -1 - * previous). + * Action that changes block multi-selection. * - * @return {?string} Return the client ID of the block, or null if none exists. + * @param {string} start First block of the multi selection. + * @param {string} end Last block of the multiselection. + * @param {number|null} __experimentalInitialPosition Optional initial position. Pass as null to skip focus within editor canvas. */ -function getAdjacentBlockClientId(state, startClientId, modifier = 1) { - // Default to selected block. - if (startClientId === undefined) { - startClientId = getSelectedBlockClientId(state); - } - - // Try multi-selection starting at extent based on modifier. - if (startClientId === undefined) { - if (modifier < 0) { - startClientId = getFirstMultiSelectedBlockClientId(state); - } else { - startClientId = getLastMultiSelectedBlockClientId(state); - } - } - - // Validate working start client ID. - if (!startClientId) { - return null; - } - - // Retrieve start block root client ID, being careful to allow the falsey - // empty string top-level root by explicitly testing against null. - const rootClientId = getBlockRootClientId(state, startClientId); - if (rootClientId === null) { - return null; - } - const { - order - } = state.blocks; - const orderSet = order.get(rootClientId); - const index = orderSet.indexOf(startClientId); - const nextIndex = index + 1 * modifier; - - // Block was first in set and we're attempting to get previous. - if (nextIndex < 0) { - return null; - } +const multiSelect = (start, end, __experimentalInitialPosition = 0) => ({ + select, + dispatch +}) => { + const startBlockRootClientId = select.getBlockRootClientId(start); + const endBlockRootClientId = select.getBlockRootClientId(end); - // Block was last in set and we're attempting to get next. - if (nextIndex === orderSet.length) { - return null; + // Only allow block multi-selections at the same level. + if (startBlockRootClientId !== endBlockRootClientId) { + return; } - - // Assume incremented index is within the set. - return orderSet[nextIndex]; -} + dispatch({ + type: 'MULTI_SELECT', + start, + end, + initialPosition: __experimentalInitialPosition + }); + const blockCount = select.getSelectedBlockCount(); + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of selected blocks */ + (0,external_wp_i18n_namespaceObject._n)('%s block selected.', '%s blocks selected.', blockCount), blockCount), 'assertive'); +}; /** - * Returns the previous block's client ID from the given reference start ID. - * Defaults start to the selected block. Returns null if there is no previous - * block. - * - * @param {Object} state Editor state. - * @param {?string} startClientId Optional client ID of block from which to - * search. + * Action that clears the block selection. * - * @return {?string} Adjacent block's client ID, or null if none exists. + * @return {Object} Action object. */ -function getPreviousBlockClientId(state, startClientId) { - return getAdjacentBlockClientId(state, startClientId, -1); +function clearSelectedBlock() { + return { + type: 'CLEAR_SELECTED_BLOCK' + }; } /** - * Returns the next block's client ID from the given reference start ID. - * Defaults start to the selected block. Returns null if there is no next - * block. + * Action that enables or disables block selection. * - * @param {Object} state Editor state. - * @param {?string} startClientId Optional client ID of block from which to - * search. + * @param {boolean} [isSelectionEnabled=true] Whether block selection should + * be enabled. * - * @return {?string} Adjacent block's client ID, or null if none exists. + * @return {Object} Action object. */ -function getNextBlockClientId(state, startClientId) { - return getAdjacentBlockClientId(state, startClientId, 1); +function toggleSelection(isSelectionEnabled = true) { + return { + type: 'TOGGLE_SELECTION', + isSelectionEnabled + }; +} +function getBlocksWithDefaultStylesApplied(blocks, blockEditorSettings) { + var _blockEditorSettings$; + const preferredStyleVariations = (_blockEditorSettings$ = blockEditorSettings?.__experimentalPreferredStyleVariations?.value) !== null && _blockEditorSettings$ !== void 0 ? _blockEditorSettings$ : {}; + return blocks.map(block => { + const blockName = block.name; + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true)) { + return block; + } + if (!preferredStyleVariations[blockName]) { + return block; + } + const className = block.attributes?.className; + if (className?.includes('is-style-')) { + return block; + } + const { + attributes = {} + } = block; + const blockStyle = preferredStyleVariations[blockName]; + return { + ...block, + attributes: { + ...attributes, + className: `${className || ''} is-style-${blockStyle}`.trim() + } + }; + }); } /* eslint-disable jsdoc/valid-types */ /** - * Returns the initial caret position for the selected block. - * This position is to used to position the caret properly when the selected block changes. - * If the current block is not a RichText, having initial position set to 0 means "focus block" + * Action that replaces given blocks with one or more replacement blocks. * - * @param {Object} state Global application state. + * @param {(string|string[])} clientIds Block client ID(s) to replace. + * @param {(Object|Object[])} blocks Replacement block(s). + * @param {number} indexToSelect Index of replacement block to select. + * @param {0|-1|null} initialPosition Index of caret after in the selected block after the operation. + * @param {?Object} meta Optional Meta values to be passed to the action object. * - * @return {0|-1|null} Initial position. + * @return {Object} Action object. */ -function getSelectedBlocksInitialCaretPosition(state) { +const replaceBlocks = (clientIds, blocks, indexToSelect, initialPosition = 0, meta) => ({ + select, + dispatch, + registry +}) => { /* eslint-enable jsdoc/valid-types */ - return state.initialPosition; -} + clientIds = actions_castArray(clientIds); + blocks = getBlocksWithDefaultStylesApplied(actions_castArray(blocks), select.getSettings()); + const rootClientId = select.getBlockRootClientId(clientIds[0]); + // Replace is valid if the new blocks can be inserted in the root block. + for (let index = 0; index < blocks.length; index++) { + const block = blocks[index]; + const canInsertBlock = select.canInsertBlockType(block.name, rootClientId); + if (!canInsertBlock) { + return; + } + } + // We're batching these two actions because an extra `undo/redo` step can + // be created, based on whether we insert a default block or not. + registry.batch(() => { + dispatch({ + type: 'REPLACE_BLOCKS', + clientIds, + blocks, + time: Date.now(), + indexToSelect, + initialPosition, + meta + }); + // To avoid a focus loss when removing the last block, assure there is + // always a default block if the last of the blocks have been removed. + dispatch.ensureDefaultBlock(); + }); +}; /** - * Returns the current selection set of block client IDs (multiselection or single selection). + * Action that replaces a single block with one or more replacement blocks. * - * @param {Object} state Editor state. + * @param {(string|string[])} clientId Block client ID to replace. + * @param {(Object|Object[])} block Replacement block(s). * - * @return {Array} Multi-selected block client IDs. + * @return {Object} Action object. */ -const getSelectedBlockClientIds = rememo(state => { - const { - selectionStart, - selectionEnd - } = state.selection; - if (!selectionStart.clientId || !selectionEnd.clientId) { - return EMPTY_ARRAY; - } - if (selectionStart.clientId === selectionEnd.clientId) { - return [selectionStart.clientId]; - } - - // Retrieve root client ID to aid in retrieving relevant nested block - // order, being careful to allow the falsey empty string top-level root - // by explicitly testing against null. - const rootClientId = getBlockRootClientId(state, selectionStart.clientId); - if (rootClientId === null) { - return EMPTY_ARRAY; - } - const blockOrder = getBlockOrder(state, rootClientId); - const startIndex = blockOrder.indexOf(selectionStart.clientId); - const endIndex = blockOrder.indexOf(selectionEnd.clientId); - if (startIndex > endIndex) { - return blockOrder.slice(endIndex, startIndex + 1); - } - return blockOrder.slice(startIndex, endIndex + 1); -}, state => [state.blocks.order, state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId]); +function replaceBlock(clientId, block) { + return replaceBlocks(clientId, block); +} /** - * Returns the current multi-selection set of block client IDs, or an empty - * array if there is no multi-selection. + * Higher-order action creator which, given the action type to dispatch creates + * an action creator for managing block movement. * - * @param {Object} state Editor state. + * @param {string} type Action type to dispatch. * - * @return {Array} Multi-selected block client IDs. + * @return {Function} Action creator. */ -function getMultiSelectedBlockClientIds(state) { - const { - selectionStart, - selectionEnd - } = state.selection; - if (selectionStart.clientId === selectionEnd.clientId) { - return EMPTY_ARRAY; +const createOnMove = type => (clientIds, rootClientId) => ({ + select, + dispatch +}) => { + // If one of the blocks is locked or the parent is locked, we cannot move any block. + const canMoveBlocks = select.canMoveBlocks(clientIds, rootClientId); + if (!canMoveBlocks) { + return; } - return getSelectedBlockClientIds(state); -} + dispatch({ + type, + clientIds: actions_castArray(clientIds), + rootClientId + }); +}; +const moveBlocksDown = createOnMove('MOVE_BLOCKS_DOWN'); +const moveBlocksUp = createOnMove('MOVE_BLOCKS_UP'); /** - * Returns the current multi-selection set of blocks, or an empty array if - * there is no multi-selection. - * - * @param {Object} state Editor state. + * Action that moves given blocks to a new position. * - * @return {Array} Multi-selected block objects. + * @param {?string} clientIds The client IDs of the blocks. + * @param {?string} fromRootClientId Root client ID source. + * @param {?string} toRootClientId Root client ID destination. + * @param {number} index The index to move the blocks to. */ -const getMultiSelectedBlocks = rememo(state => { - const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(state); - if (!multiSelectedBlockClientIds.length) { - return EMPTY_ARRAY; +const moveBlocksToPosition = (clientIds, fromRootClientId = '', toRootClientId = '', index) => ({ + select, + dispatch +}) => { + const canMoveBlocks = select.canMoveBlocks(clientIds, fromRootClientId); + + // If one of the blocks is locked or the parent is locked, we cannot move any block. + if (!canMoveBlocks) { + return; } - return multiSelectedBlockClientIds.map(clientId => getBlock(state, clientId)); -}, state => [...getSelectedBlockClientIds.getDependants(state), state.blocks.byClientId, state.blocks.order, state.blocks.attributes]); + + // If moving inside the same root block the move is always possible. + if (fromRootClientId !== toRootClientId) { + const canRemoveBlocks = select.canRemoveBlocks(clientIds, fromRootClientId); + + // If we're moving to another block, it means we're deleting blocks from + // the original block, so we need to check if removing is possible. + if (!canRemoveBlocks) { + return; + } + const canInsertBlocks = select.canInsertBlocks(clientIds, toRootClientId); + + // If moving to other parent block, the move is possible if we can insert a block of the same type inside the new parent block. + if (!canInsertBlocks) { + return; + } + } + dispatch({ + type: 'MOVE_BLOCKS_TO_POSITION', + fromRootClientId, + toRootClientId, + clientIds, + index + }); +}; /** - * Returns the client ID of the first block in the multi-selection set, or null - * if there is no multi-selection. - * - * @param {Object} state Editor state. + * Action that moves given block to a new position. * - * @return {?string} First block client ID in the multi-selection set. + * @param {?string} clientId The client ID of the block. + * @param {?string} fromRootClientId Root client ID source. + * @param {?string} toRootClientId Root client ID destination. + * @param {number} index The index to move the block to. */ -function getFirstMultiSelectedBlockClientId(state) { - return getMultiSelectedBlockClientIds(state)[0] || null; +function moveBlockToPosition(clientId, fromRootClientId = '', toRootClientId = '', index) { + return moveBlocksToPosition([clientId], fromRootClientId, toRootClientId, index); } /** - * Returns the client ID of the last block in the multi-selection set, or null - * if there is no multi-selection. + * Action that inserts a single block, optionally at a specific index respective a root block list. * - * @param {Object} state Editor state. + * Only allowed blocks are inserted. The action may fail silently for blocks that are not allowed or if + * a templateLock is active on the block list. * - * @return {?string} Last block client ID in the multi-selection set. + * @param {Object} block Block object to insert. + * @param {?number} index Index at which block should be inserted. + * @param {?string} rootClientId Optional root client ID of block list on which to insert. + * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true. + * @param {?Object} meta Optional Meta values to be passed to the action object. + * + * @return {Object} Action object. */ -function getLastMultiSelectedBlockClientId(state) { - const selectedClientIds = getMultiSelectedBlockClientIds(state); - return selectedClientIds[selectedClientIds.length - 1] || null; +function insertBlock(block, index, rootClientId, updateSelection, meta) { + return insertBlocks([block], index, rootClientId, updateSelection, 0, meta); } +/* eslint-disable jsdoc/valid-types */ /** - * Returns true if a multi-selection exists, and the block corresponding to the - * specified client ID is the first block of the multi-selection set, or false - * otherwise. + * Action that inserts an array of blocks, optionally at a specific index respective a root block list. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * Only allowed blocks are inserted. The action may fail silently for blocks that are not allowed or if + * a templateLock is active on the block list. * - * @return {boolean} Whether block is first in multi-selection. + * @param {Object[]} blocks Block objects to insert. + * @param {?number} index Index at which block should be inserted. + * @param {?string} rootClientId Optional root client ID of block list on which to insert. + * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true. + * @param {0|-1|null} initialPosition Initial focus position. Setting it to null prevent focusing the inserted block. + * @param {?Object} meta Optional Meta values to be passed to the action object. + * + * @return {Object} Action object. */ -function isFirstMultiSelectedBlock(state, clientId) { - return getFirstMultiSelectedBlockClientId(state) === clientId; -} +const insertBlocks = (blocks, index, rootClientId, updateSelection = true, initialPosition = 0, meta) => ({ + select, + dispatch +}) => { + /* eslint-enable jsdoc/valid-types */ + if (initialPosition !== null && typeof initialPosition === 'object') { + meta = initialPosition; + initialPosition = 0; + external_wp_deprecated_default()("meta argument in wp.data.dispatch('core/block-editor')", { + since: '5.8', + hint: 'The meta argument is now the 6th argument of the function' + }); + } + blocks = getBlocksWithDefaultStylesApplied(actions_castArray(blocks), select.getSettings()); + const allowedBlocks = []; + for (const block of blocks) { + const isValid = select.canInsertBlockType(block.name, rootClientId); + if (isValid) { + allowedBlocks.push(block); + } + } + if (allowedBlocks.length) { + dispatch({ + type: 'INSERT_BLOCKS', + blocks: allowedBlocks, + index, + rootClientId, + time: Date.now(), + updateSelection, + initialPosition: updateSelection ? initialPosition : null, + meta + }); + } +}; /** - * Returns true if the client ID occurs within the block multi-selection, or - * false otherwise. + * Action that shows the insertion point. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. - * - * @return {boolean} Whether block is in multi-selection set. - */ -function isBlockMultiSelected(state, clientId) { - return getMultiSelectedBlockClientIds(state).indexOf(clientId) !== -1; -} - -/** - * Returns true if an ancestor of the block is multi-selected, or false - * otherwise. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. - * - * @return {boolean} Whether an ancestor of the block is in multi-selection - * set. - */ -const isAncestorMultiSelected = rememo((state, clientId) => { - let ancestorClientId = clientId; - let isMultiSelected = false; - while (ancestorClientId && !isMultiSelected) { - ancestorClientId = getBlockRootClientId(state, ancestorClientId); - isMultiSelected = isBlockMultiSelected(state, ancestorClientId); - } - return isMultiSelected; -}, state => [state.blocks.order, state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId]); - -/** - * Returns the client ID of the block which begins the multi-selection set, or - * null if there is no multi-selection. - * - * This is not necessarily the first client ID in the selection. - * - * @see getFirstMultiSelectedBlockClientId - * - * @param {Object} state Editor state. + * @param {?string} rootClientId Optional root client ID of block list on + * which to insert. + * @param {?number} index Index at which block should be inserted. + * @param {?Object} __unstableOptions Additional options. + * @property {boolean} __unstableWithInserter Whether or not to show an inserter button. + * @property {WPDropOperation} operation The operation to perform when applied, + * either 'insert' or 'replace' for now. * - * @return {?string} Client ID of block beginning multi-selection. + * @return {Object} Action object. */ -function getMultiSelectedBlocksStartClientId(state) { +function showInsertionPoint(rootClientId, index, __unstableOptions = {}) { const { - selectionStart, - selectionEnd - } = state.selection; - if (selectionStart.clientId === selectionEnd.clientId) { - return null; - } - return selectionStart.clientId || null; + __unstableWithInserter, + operation + } = __unstableOptions; + return { + type: 'SHOW_INSERTION_POINT', + rootClientId, + index, + __unstableWithInserter, + operation + }; } - /** - * Returns the client ID of the block which ends the multi-selection set, or - * null if there is no multi-selection. - * - * This is not necessarily the last client ID in the selection. - * - * @see getLastMultiSelectedBlockClientId - * - * @param {Object} state Editor state. - * - * @return {?string} Client ID of block ending multi-selection. + * Action that hides the insertion point. */ -function getMultiSelectedBlocksEndClientId(state) { - const { - selectionStart, - selectionEnd - } = state.selection; - if (selectionStart.clientId === selectionEnd.clientId) { - return null; +const hideInsertionPoint = () => ({ + select, + dispatch +}) => { + if (!select.isBlockInsertionPointVisible()) { + return; } - return selectionEnd.clientId || null; -} + dispatch({ + type: 'HIDE_INSERTION_POINT' + }); +}; /** - * Returns true if the selection is not partial. + * Action that resets the template validity. * - * @param {Object} state Editor state. + * @param {boolean} isValid template validity flag. * - * @return {boolean} Whether the selection is mergeable. + * @return {Object} Action object. */ -function __unstableIsFullySelected(state) { - const selectionAnchor = getSelectionStart(state); - const selectionFocus = getSelectionEnd(state); - return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined'; +function setTemplateValidity(isValid) { + return { + type: 'SET_TEMPLATE_VALIDITY', + isValid + }; } /** - * Returns true if the selection is collapsed. - * - * @param {Object} state Editor state. + * Action that synchronizes the template with the list of blocks. * - * @return {boolean} Whether the selection is collapsed. + * @return {Object} Action object. */ -function __unstableIsSelectionCollapsed(state) { - const selectionAnchor = getSelectionStart(state); - const selectionFocus = getSelectionEnd(state); - return !!selectionAnchor && !!selectionFocus && selectionAnchor.clientId === selectionFocus.clientId && selectionAnchor.attributeKey === selectionFocus.attributeKey && selectionAnchor.offset === selectionFocus.offset; -} -function __unstableSelectionHasUnmergeableBlock(state) { - return getSelectedBlockClientIds(state).some(clientId => { - const blockName = getBlockName(state, clientId); - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); - return !blockType.merge; +const synchronizeTemplate = () => ({ + select, + dispatch +}) => { + dispatch({ + type: 'SYNCHRONIZE_TEMPLATE' }); -} + const blocks = select.getBlocks(); + const template = select.getTemplate(); + const updatedBlockList = (0,external_wp_blocks_namespaceObject.synchronizeBlocksWithTemplate)(blocks, template); + dispatch.resetBlocks(updatedBlockList); +}; /** - * Check whether the selection is mergeable. - * - * @param {Object} state Editor state. - * @param {boolean} isForward Whether to merge forwards. + * Delete the current selection. * - * @return {boolean} Whether the selection is mergeable. + * @param {boolean} isForward */ -function __unstableIsSelectionMergeable(state, isForward) { - const selectionAnchor = getSelectionStart(state); - const selectionFocus = getSelectionEnd(state); - - // It's not mergeable if the start and end are within the same block. - if (selectionAnchor.clientId === selectionFocus.clientId) return false; +const __unstableDeleteSelection = isForward => ({ + registry, + select, + dispatch +}) => { + const selectionAnchor = select.getSelectionStart(); + const selectionFocus = select.getSelectionEnd(); + if (selectionAnchor.clientId === selectionFocus.clientId) return; // It's not mergeable if there's no rich text selection. if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false; - const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId); - const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); + const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId); + const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); // It's not mergeable if the selection doesn't start and end in the same // block list. Maybe in the future it should be allowed. if (anchorRootClientId !== focusRootClientId) { - return false; + return; } - const blockOrder = getBlockOrder(state, anchorRootClientId); + const blockOrder = select.getBlockOrder(anchorRootClientId); const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); const focusIndex = blockOrder.indexOf(selectionFocus.clientId); @@ -12363,2307 +9876,2211 @@ function __unstableIsSelectionMergeable(state, isForward) { selectionStart = selectionAnchor; selectionEnd = selectionFocus; } - const targetBlockClientId = isForward ? selectionEnd.clientId : selectionStart.clientId; - const blockToMergeClientId = isForward ? selectionStart.clientId : selectionEnd.clientId; - const targetBlockName = getBlockName(state, targetBlockClientId); - const targetBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlockName); - if (!targetBlockType.merge) return false; - const blockToMerge = getBlock(state, blockToMergeClientId); + const targetSelection = isForward ? selectionEnd : selectionStart; + const targetBlock = select.getBlock(targetSelection.clientId); + const targetBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlock.name); + if (!targetBlockType.merge) { + return; + } + const selectionA = selectionStart; + const selectionB = selectionEnd; + const blockA = select.getBlock(selectionA.clientId); + const blockAType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockA.name); + const blockB = select.getBlock(selectionB.clientId); + const blockBType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockB.name); + const htmlA = blockA.attributes[selectionA.attributeKey]; + const htmlB = blockB.attributes[selectionB.attributeKey]; + const attributeDefinitionA = blockAType.attributes[selectionA.attributeKey]; + const attributeDefinitionB = blockBType.attributes[selectionB.attributeKey]; + let valueA = (0,external_wp_richText_namespaceObject.create)({ + html: htmlA, + ...mapRichTextSettings(attributeDefinitionA) + }); + let valueB = (0,external_wp_richText_namespaceObject.create)({ + html: htmlB, + ...mapRichTextSettings(attributeDefinitionB) + }); + valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, selectionA.offset, valueA.text.length); + valueB = (0,external_wp_richText_namespaceObject.insert)(valueB, START_OF_SELECTED_AREA, 0, selectionB.offset); - // It's mergeable if the blocks are of the same type. - if (blockToMerge.name === targetBlockName) return true; + // Clone the blocks so we don't manipulate the original. + const cloneA = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockA, { + [selectionA.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueA, + ...mapRichTextSettings(attributeDefinitionA) + }) + }); + const cloneB = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockB, { + [selectionB.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueB, + ...mapRichTextSettings(attributeDefinitionB) + }) + }); + const followingBlock = isForward ? cloneA : cloneB; - // If the blocks are of a different type, try to transform the block being - // merged into the same type of block. - const blocksToMerge = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blockToMerge, targetBlockName); - return blocksToMerge && blocksToMerge.length; -} + // We can only merge blocks with similar types + // thus, we transform the block to merge first + const blocksWithTheSameType = blockA.name === blockB.name ? [followingBlock] : (0,external_wp_blocks_namespaceObject.switchToBlockType)(followingBlock, targetBlockType.name); + + // If the block types can not match, do nothing + if (!blocksWithTheSameType || !blocksWithTheSameType.length) { + return; + } + let updatedAttributes; + if (isForward) { + const blockToMerge = blocksWithTheSameType.pop(); + updatedAttributes = targetBlockType.merge(blockToMerge.attributes, cloneB.attributes); + } else { + const blockToMerge = blocksWithTheSameType.shift(); + updatedAttributes = targetBlockType.merge(cloneA.attributes, blockToMerge.attributes); + } + const newAttributeKey = retrieveSelectedAttribute(updatedAttributes); + const convertedHtml = updatedAttributes[newAttributeKey]; + const convertedValue = (0,external_wp_richText_namespaceObject.create)({ + html: convertedHtml, + ...mapRichTextSettings(targetBlockType.attributes[newAttributeKey]) + }); + const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA); + const newValue = (0,external_wp_richText_namespaceObject.remove)(convertedValue, newOffset, newOffset + 1); + const newHtml = (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: newValue, + ...mapRichTextSettings(targetBlockType.attributes[newAttributeKey]) + }); + updatedAttributes[newAttributeKey] = newHtml; + const selectedBlockClientIds = select.getSelectedBlockClientIds(); + const replacement = [...(isForward ? blocksWithTheSameType : []), { + // Preserve the original client ID. + ...targetBlock, + attributes: { + ...targetBlock.attributes, + ...updatedAttributes + } + }, ...(isForward ? [] : blocksWithTheSameType)]; + registry.batch(() => { + dispatch.selectionChange(targetBlock.clientId, newAttributeKey, newOffset, newOffset); + dispatch.replaceBlocks(selectedBlockClientIds, replacement, 0, + // If we don't pass the `indexToSelect` it will default to the last block. + select.getSelectedBlocksInitialCaretPosition()); + }); +}; /** - * Get partial selected blocks with their content updated - * based on the selection. - * - * @param {Object} state Editor state. - * - * @return {Object[]} Updated partial selected blocks. + * Split the current selection. */ -const __unstableGetSelectedBlocksWithPartialSelection = state => { - const selectionAnchor = getSelectionStart(state); - const selectionFocus = getSelectionEnd(state); - if (selectionAnchor.clientId === selectionFocus.clientId) { - return EMPTY_ARRAY; - } +const __unstableSplitSelection = () => ({ + select, + dispatch +}) => { + const selectionAnchor = select.getSelectionStart(); + const selectionFocus = select.getSelectionEnd(); + if (selectionAnchor.clientId === selectionFocus.clientId) return; // Can't split if the selection is not set. - if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') { - return EMPTY_ARRAY; - } - const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId); - const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); + if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return; + const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId); + const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); // It's not splittable if the selection doesn't start and end in the same // block list. Maybe in the future it should be allowed. if (anchorRootClientId !== focusRootClientId) { - return EMPTY_ARRAY; + return; } - const blockOrder = getBlockOrder(state, anchorRootClientId); + const blockOrder = select.getBlockOrder(anchorRootClientId); const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order. - const [selectionStart, selectionEnd] = anchorIndex > focusIndex ? [selectionFocus, selectionAnchor] : [selectionAnchor, selectionFocus]; - const blockA = getBlock(state, selectionStart.clientId); - const blockB = getBlock(state, selectionEnd.clientId); - const htmlA = blockA.attributes[selectionStart.attributeKey]; - const htmlB = blockB.attributes[selectionEnd.attributeKey]; + let selectionStart, selectionEnd; + if (anchorIndex > focusIndex) { + selectionStart = selectionFocus; + selectionEnd = selectionAnchor; + } else { + selectionStart = selectionAnchor; + selectionEnd = selectionFocus; + } + const selectionA = selectionStart; + const selectionB = selectionEnd; + const blockA = select.getBlock(selectionA.clientId); + const blockAType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockA.name); + const blockB = select.getBlock(selectionB.clientId); + const blockBType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockB.name); + const htmlA = blockA.attributes[selectionA.attributeKey]; + const htmlB = blockB.attributes[selectionB.attributeKey]; + const attributeDefinitionA = blockAType.attributes[selectionA.attributeKey]; + const attributeDefinitionB = blockBType.attributes[selectionB.attributeKey]; let valueA = (0,external_wp_richText_namespaceObject.create)({ - html: htmlA + html: htmlA, + ...mapRichTextSettings(attributeDefinitionA) }); let valueB = (0,external_wp_richText_namespaceObject.create)({ - html: htmlB + html: htmlB, + ...mapRichTextSettings(attributeDefinitionB) }); - valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, 0, selectionStart.offset); - valueB = (0,external_wp_richText_namespaceObject.remove)(valueB, selectionEnd.offset, valueB.text.length); - return [{ + valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, selectionA.offset, valueA.text.length); + valueB = (0,external_wp_richText_namespaceObject.remove)(valueB, 0, selectionB.offset); + dispatch.replaceBlocks(select.getSelectedBlockClientIds(), [{ + // Preserve the original client ID. ...blockA, attributes: { ...blockA.attributes, - [selectionStart.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueA + [selectionA.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueA, + ...mapRichTextSettings(attributeDefinitionA) }) } }, { + // Preserve the original client ID. ...blockB, attributes: { ...blockB.attributes, - [selectionEnd.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueB + [selectionB.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: valueB, + ...mapRichTextSettings(attributeDefinitionB) }) } - }]; + }]); }; /** - * Returns an array containing all block client IDs in the editor in the order - * they appear. Optionally accepts a root client ID of the block list for which - * the order should be returned, defaulting to the top-level block order. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {Array} Ordered client IDs of editor blocks. + * Expand the selection to cover the entire blocks, removing partial selection. */ -function getBlockOrder(state, rootClientId) { - return state.blocks.order.get(rootClientId || '') || EMPTY_ARRAY; -} +const __unstableExpandSelection = () => ({ + select, + dispatch +}) => { + const selectionAnchor = select.getSelectionStart(); + const selectionFocus = select.getSelectionEnd(); + dispatch.selectionChange({ + start: { + clientId: selectionAnchor.clientId + }, + end: { + clientId: selectionFocus.clientId + } + }); +}; /** - * Returns the index at which the block corresponding to the specified client - * ID occurs within the block order, or `-1` if the block does not exist. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * Action that merges two blocks. * - * @return {number} Index at which block exists in order. + * @param {string} firstBlockClientId Client ID of the first block to merge. + * @param {string} secondBlockClientId Client ID of the second block to merge. */ -function getBlockIndex(state, clientId) { - const rootClientId = getBlockRootClientId(state, clientId); - return getBlockOrder(state, rootClientId).indexOf(clientId); -} +const mergeBlocks = (firstBlockClientId, secondBlockClientId) => ({ + registry, + select, + dispatch +}) => { + const blocks = [firstBlockClientId, secondBlockClientId]; + dispatch({ + type: 'MERGE_BLOCKS', + blocks + }); + const [clientIdA, clientIdB] = blocks; + const blockA = select.getBlock(clientIdA); + const blockAType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockA.name); + if (!blockAType) return; + if (!blockAType.merge && !(0,external_wp_blocks_namespaceObject.getBlockSupport)(blockA.name, '__experimentalOnMerge')) { + dispatch.selectBlock(blockA.clientId); + return; + } + const blockB = select.getBlock(clientIdB); + if (!blockAType.merge) { + // If there's no merge function defined, attempt merging inner + // blocks. + const blocksWithTheSameType = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blockB, blockAType.name); + // Only focus the previous block if it's not mergeable. + if (blocksWithTheSameType?.length !== 1) { + dispatch.selectBlock(blockA.clientId); + return; + } + const [blockWithSameType] = blocksWithTheSameType; + if (blockWithSameType.innerBlocks.length < 1) { + dispatch.selectBlock(blockA.clientId); + return; + } + registry.batch(() => { + dispatch.insertBlocks(blockWithSameType.innerBlocks, undefined, clientIdA); + dispatch.removeBlock(clientIdB); + dispatch.selectBlock(blockWithSameType.innerBlocks[0].clientId); -/** - * Returns true if the block corresponding to the specified client ID is - * currently selected and no multi-selection exists, or false otherwise. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. - * - * @return {boolean} Whether block is selected and multi-selection exists. - */ -function isBlockSelected(state, clientId) { + // Attempt to merge the next block if it's the same type and + // same attributes. This is useful when merging a paragraph into + // a list, and the next block is also a list. If we don't merge, + // it looks like one list, but it's actually two lists. The same + // applies to other blocks such as a group with the same + // attributes. + const nextBlockClientId = select.getNextBlockClientId(clientIdA); + if (nextBlockClientId && select.getBlockName(clientIdA) === select.getBlockName(nextBlockClientId)) { + const rootAttributes = select.getBlockAttributes(clientIdA); + const previousRootAttributes = select.getBlockAttributes(nextBlockClientId); + if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { + dispatch.moveBlocksToPosition(select.getBlockOrder(nextBlockClientId), nextBlockClientId, clientIdA); + dispatch.removeBlock(nextBlockClientId, false); + } + } + }); + return; + } + const blockBType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockB.name); const { - selectionStart, - selectionEnd - } = state.selection; - if (selectionStart.clientId !== selectionEnd.clientId) { - return false; + clientId, + attributeKey, + offset + } = select.getSelectionStart(); + const selectedBlockType = clientId === clientIdA ? blockAType : blockBType; + const attributeDefinition = selectedBlockType.attributes[attributeKey]; + const canRestoreTextSelection = (clientId === clientIdA || clientId === clientIdB) && attributeKey !== undefined && offset !== undefined && + // We cannot restore text selection if the RichText identifier + // is not a defined block attribute key. This can be the case if the + // fallback intance ID is used to store selection (and no RichText + // identifier is set), or when the identifier is wrong. + !!attributeDefinition; + if (!attributeDefinition) { + if (typeof attributeKey === 'number') { + window.console.error(`RichText needs an identifier prop that is the block attribute key of the attribute it controls. Its type is expected to be a string, but was ${typeof attributeKey}`); + } else { + window.console.error('The RichText identifier prop does not match any attributes defined by the block.'); + } } - return selectionStart.clientId === clientId; -} + + // Clone the blocks so we don't insert the character in a "live" block. + const cloneA = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockA); + const cloneB = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockB); + if (canRestoreTextSelection) { + const selectedBlock = clientId === clientIdA ? cloneA : cloneB; + const html = selectedBlock.attributes[attributeKey]; + const value = (0,external_wp_richText_namespaceObject.insert)((0,external_wp_richText_namespaceObject.create)({ + html, + ...mapRichTextSettings(attributeDefinition) + }), START_OF_SELECTED_AREA, offset, offset); + selectedBlock.attributes[attributeKey] = (0,external_wp_richText_namespaceObject.toHTMLString)({ + value, + ...mapRichTextSettings(attributeDefinition) + }); + } + + // We can only merge blocks with similar types + // thus, we transform the block to merge first. + const blocksWithTheSameType = blockA.name === blockB.name ? [cloneB] : (0,external_wp_blocks_namespaceObject.switchToBlockType)(cloneB, blockA.name); + + // If the block types can not match, do nothing. + if (!blocksWithTheSameType || !blocksWithTheSameType.length) { + return; + } + + // Calling the merge to update the attributes and remove the block to be merged. + const updatedAttributes = blockAType.merge(cloneA.attributes, blocksWithTheSameType[0].attributes); + if (canRestoreTextSelection) { + const newAttributeKey = retrieveSelectedAttribute(updatedAttributes); + const convertedHtml = updatedAttributes[newAttributeKey]; + const convertedValue = (0,external_wp_richText_namespaceObject.create)({ + html: convertedHtml, + ...mapRichTextSettings(blockAType.attributes[newAttributeKey]) + }); + const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA); + const newValue = (0,external_wp_richText_namespaceObject.remove)(convertedValue, newOffset, newOffset + 1); + const newHtml = (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: newValue, + ...mapRichTextSettings(blockAType.attributes[newAttributeKey]) + }); + updatedAttributes[newAttributeKey] = newHtml; + dispatch.selectionChange(blockA.clientId, newAttributeKey, newOffset, newOffset); + } + dispatch.replaceBlocks([blockA.clientId, blockB.clientId], [{ + ...blockA, + attributes: { + ...blockA.attributes, + ...updatedAttributes + } + }, ...blocksWithTheSameType.slice(1)], 0 // If we don't pass the `indexToSelect` it will default to the last block. + ); +}; /** - * Returns true if one of the block's inner blocks is selected. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. - * @param {boolean} deep Perform a deep check. + * Yields action objects used in signalling that the blocks corresponding to + * the set of specified client IDs are to be removed. * - * @return {boolean} Whether the block has an inner block selected + * @param {string|string[]} clientIds Client IDs of blocks to remove. + * @param {boolean} selectPrevious True if the previous block + * or the immediate parent + * (if no previous block exists) + * should be selected + * when a block is removed. */ -function hasSelectedInnerBlock(state, clientId, deep = false) { - return getBlockOrder(state, clientId).some(innerClientId => isBlockSelected(state, innerClientId) || isBlockMultiSelected(state, innerClientId) || deep && hasSelectedInnerBlock(state, innerClientId, deep)); -} +const removeBlocks = (clientIds, selectPrevious = true) => privateRemoveBlocks(clientIds, selectPrevious); /** - * Returns true if one of the block's inner blocks is dragged. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. - * @param {boolean} deep Perform a deep check. - * - * @return {boolean} Whether the block has an inner block dragged - */ -function hasDraggedInnerBlock(state, clientId, deep = false) { - return getBlockOrder(state, clientId).some(innerClientId => isBlockBeingDragged(state, innerClientId) || deep && hasDraggedInnerBlock(state, innerClientId, deep)); -} - -/** - * Returns true if the block corresponding to the specified client ID is - * currently selected but isn't the last of the selected blocks. Here "last" - * refers to the block sequence in the document, _not_ the sequence of - * multi-selection, which is why `state.selectionEnd` isn't used. + * Returns an action object used in signalling that the block with the + * specified client ID is to be removed. * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * @param {string} clientId Client ID of block to remove. + * @param {boolean} selectPrevious True if the previous block should be + * selected when a block is removed. * - * @return {boolean} Whether block is selected and not the last in the - * selection. + * @return {Object} Action object. */ -function isBlockWithinSelection(state, clientId) { - if (!clientId) { - return false; - } - const clientIds = getMultiSelectedBlockClientIds(state); - const index = clientIds.indexOf(clientId); - return index > -1 && index < clientIds.length - 1; +function removeBlock(clientId, selectPrevious) { + return removeBlocks([clientId], selectPrevious); } +/* eslint-disable jsdoc/valid-types */ /** - * Returns true if a multi-selection has been made, or false otherwise. - * - * @param {Object} state Editor state. + * Returns an action object used in signalling that the inner blocks with the + * specified client ID should be replaced. * - * @return {boolean} Whether multi-selection has been made. + * @param {string} rootClientId Client ID of the block whose InnerBlocks will re replaced. + * @param {Object[]} blocks Block objects to insert as new InnerBlocks + * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to false. + * @param {0|-1|null} initialPosition Initial block position. + * @return {Object} Action object. */ -function hasMultiSelection(state) { - const { - selectionStart, - selectionEnd - } = state.selection; - return selectionStart.clientId !== selectionEnd.clientId; +function replaceInnerBlocks(rootClientId, blocks, updateSelection = false, initialPosition = 0) { + /* eslint-enable jsdoc/valid-types */ + return { + type: 'REPLACE_INNER_BLOCKS', + rootClientId, + blocks, + updateSelection, + initialPosition: updateSelection ? initialPosition : null, + time: Date.now() + }; } /** - * Whether in the process of multi-selecting or not. This flag is only true - * while the multi-selection is being selected (by mouse move), and is false - * once the multi-selection has been settled. - * - * @see hasMultiSelection + * Returns an action object used to toggle the block editing mode between + * visual and HTML modes. * - * @param {Object} state Global application state. + * @param {string} clientId Block client ID. * - * @return {boolean} True if multi-selecting, false if not. + * @return {Object} Action object. */ -function selectors_isMultiSelecting(state) { - return state.isMultiSelecting; +function toggleBlockMode(clientId) { + return { + type: 'TOGGLE_BLOCK_MODE', + clientId + }; } /** - * Selector that returns if multi-selection is enabled or not. - * - * @param {Object} state Global application state. + * Returns an action object used in signalling that the user has begun to type. * - * @return {boolean} True if it should be possible to multi-select blocks, false if multi-selection is disabled. + * @return {Object} Action object. */ -function selectors_isSelectionEnabled(state) { - return state.isSelectionEnabled; +function startTyping() { + return { + type: 'START_TYPING' + }; } /** - * Returns the block's editing mode, defaulting to "visual" if not explicitly - * assigned. - * - * @param {Object} state Editor state. - * @param {string} clientId Block client ID. + * Returns an action object used in signalling that the user has stopped typing. * - * @return {Object} Block editing mode. + * @return {Object} Action object. */ -function getBlockMode(state, clientId) { - return state.blocksMode[clientId] || 'visual'; +function stopTyping() { + return { + type: 'STOP_TYPING' + }; } /** - * Returns true if the user is typing, or false otherwise. + * Returns an action object used in signalling that the user has begun to drag blocks. * - * @param {Object} state Global application state. + * @param {string[]} clientIds An array of client ids being dragged * - * @return {boolean} Whether user is typing. + * @return {Object} Action object. */ -function selectors_isTyping(state) { - return state.isTyping; +function startDraggingBlocks(clientIds = []) { + return { + type: 'START_DRAGGING_BLOCKS', + clientIds + }; } /** - * Returns true if the user is dragging blocks, or false otherwise. - * - * @param {Object} state Global application state. + * Returns an action object used in signalling that the user has stopped dragging blocks. * - * @return {boolean} Whether user is dragging blocks. + * @return {Object} Action object. */ -function isDraggingBlocks(state) { - return !!state.draggedBlocks.length; +function stopDraggingBlocks() { + return { + type: 'STOP_DRAGGING_BLOCKS' + }; } /** - * Returns the client ids of any blocks being directly dragged. - * - * This does not include children of a parent being dragged. + * Returns an action object used in signalling that the caret has entered formatted text. * - * @param {Object} state Global application state. + * @deprecated * - * @return {string[]} Array of dragged block client ids. + * @return {Object} Action object. */ -function getDraggedBlockClientIds(state) { - return state.draggedBlocks; +function enterFormattedText() { + external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).enterFormattedText', { + since: '6.1', + version: '6.3' + }); + return { + type: 'DO_NOTHING' + }; } /** - * Returns whether the block is being dragged. - * - * Only returns true if the block is being directly dragged, - * not if the block is a child of a parent being dragged. - * See `isAncestorBeingDragged` for child blocks. + * Returns an action object used in signalling that the user caret has exited formatted text. * - * @param {Object} state Global application state. - * @param {string} clientId Client id for block to check. + * @deprecated * - * @return {boolean} Whether the block is being dragged. + * @return {Object} Action object. */ -function isBlockBeingDragged(state, clientId) { - return state.draggedBlocks.includes(clientId); +function exitFormattedText() { + external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).exitFormattedText', { + since: '6.1', + version: '6.3' + }); + return { + type: 'DO_NOTHING' + }; } /** - * Returns whether a parent/ancestor of the block is being dragged. + * Action that changes the position of the user caret. * - * @param {Object} state Global application state. - * @param {string} clientId Client id for block to check. + * @param {string|WPSelection} clientId The selected block client ID. + * @param {string} attributeKey The selected block attribute key. + * @param {number} startOffset The start offset. + * @param {number} endOffset The end offset. * - * @return {boolean} Whether the block's ancestor is being dragged. + * @return {Object} Action object. */ -function isAncestorBeingDragged(state, clientId) { - // Return early if no blocks are being dragged rather than - // the more expensive check for parents. - if (!isDraggingBlocks(state)) { - return false; +function selectionChange(clientId, attributeKey, startOffset, endOffset) { + if (typeof clientId === 'string') { + return { + type: 'SELECTION_CHANGE', + clientId, + attributeKey, + startOffset, + endOffset + }; } - const parents = getBlockParents(state, clientId); - return parents.some(parentClientId => isBlockBeingDragged(state, parentClientId)); + return { + type: 'SELECTION_CHANGE', + ...clientId + }; } /** - * Returns true if the caret is within formatted text, or false otherwise. - * - * @deprecated + * Action that adds a new block of the default type to the block list. * - * @return {boolean} Whether the caret is within formatted text. + * @param {?Object} attributes Optional attributes of the block to assign. + * @param {?string} rootClientId Optional root client ID of block list on which + * to append. + * @param {?number} index Optional index where to insert the default block. */ -function isCaretWithinFormattedText() { - external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).isCaretWithinFormattedText', { - since: '6.1', - version: '6.3' - }); - return false; -} +const insertDefaultBlock = (attributes, rootClientId, index) => ({ + dispatch +}) => { + // Abort if there is no default block type (if it has been unregistered). + const defaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)(); + if (!defaultBlockName) { + return; + } + const block = (0,external_wp_blocks_namespaceObject.createBlock)(defaultBlockName, attributes); + return dispatch.insertBlock(block, index, rootClientId); +}; /** - * Returns the insertion point, the index at which the new inserted block would - * be placed. Defaults to the last index. + * Action that changes the nested settings of a given block. * - * @param {Object} state Editor state. + * @param {string} clientId Client ID of the block whose nested setting are + * being received. + * @param {Object} settings Object with the new settings for the nested block. * - * @return {Object} Insertion point object with `rootClientId`, `index`. + * @return {Object} Action object */ -const getBlockInsertionPoint = rememo(state => { - let rootClientId, index; - const { - insertionPoint, - selection: { - selectionEnd - } - } = state; - if (insertionPoint !== null) { - return insertionPoint; - } - const { - clientId - } = selectionEnd; - if (clientId) { - rootClientId = getBlockRootClientId(state, clientId) || undefined; - index = getBlockIndex(state, selectionEnd.clientId) + 1; - } else { - index = getBlockOrder(state).length; - } +function updateBlockListSettings(clientId, settings) { return { - rootClientId, - index + type: 'UPDATE_BLOCK_LIST_SETTINGS', + clientId, + settings }; -}, state => [state.insertionPoint, state.selection.selectionEnd.clientId, state.blocks.parents, state.blocks.order]); +} /** - * Returns true if we should show the block insertion point. + * Action that updates the block editor settings. * - * @param {Object} state Global application state. + * @param {Object} settings Updated settings * - * @return {?boolean} Whether the insertion point is visible or not. + * @return {Object} Action object */ -function isBlockInsertionPointVisible(state) { - return state.insertionPoint !== null; +function updateSettings(settings) { + return __experimentalUpdateSettings(settings, { + stripExperimentalSettings: true + }); } /** - * Returns whether the blocks matches the template or not. + * Action that signals that a temporary reusable block has been saved + * in order to switch its temporary id with the real id. * - * @param {boolean} state - * @return {?boolean} Whether the template is valid or not. + * @param {string} id Reusable block's id. + * @param {string} updatedId Updated block's id. + * + * @return {Object} Action object. */ -function isValidTemplate(state) { - return state.template.isValid; +function __unstableSaveReusableBlock(id, updatedId) { + return { + type: 'SAVE_REUSABLE_BLOCK_SUCCESS', + id, + updatedId + }; } /** - * Returns the defined block template - * - * @param {boolean} state + * Action that marks the last block change explicitly as persistent. * - * @return {?Array} Block Template. + * @return {Object} Action object. */ -function getTemplate(state) { - return state.settings.template; +function __unstableMarkLastChangeAsPersistent() { + return { + type: 'MARK_LAST_CHANGE_AS_PERSISTENT' + }; } /** - * Returns the defined block template lock. Optionally accepts a root block - * client ID as context, otherwise defaulting to the global context. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional block root client ID. + * Action that signals that the next block change should be marked explicitly as not persistent. * - * @return {string|false} Block Template Lock + * @return {Object} Action object. */ -function getTemplateLock(state, rootClientId) { - var _getBlockListSettings; - if (!rootClientId) { - var _state$settings$templ; - return (_state$settings$templ = state.settings.templateLock) !== null && _state$settings$templ !== void 0 ? _state$settings$templ : false; - } - return (_getBlockListSettings = getBlockListSettings(state, rootClientId)?.templateLock) !== null && _getBlockListSettings !== void 0 ? _getBlockListSettings : false; +function __unstableMarkNextChangeAsNotPersistent() { + return { + type: 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT' + }; } /** - * Determines if the given block type is allowed to be inserted into the block list. - * This function is not exported and not memoized because using a memoized selector - * inside another memoized selector is just a waste of time. - * - * @param {Object} state Editor state. - * @param {string|Object} blockName The block type object, e.g., the response - * from the block directory; or a string name of - * an installed block type, e.g.' core/paragraph'. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {boolean} Whether the given block type is allowed to be inserted. + * Action that marks the last block change as an automatic change, meaning it was not + * performed by the user, and can be undone using the `Escape` and `Backspace` keys. + * This action must be called after the change was made, and any actions that are a + * consequence of it, so it is recommended to be called at the next idle period to ensure all + * selection changes have been recorded. */ -const canInsertBlockTypeUnmemoized = (state, blockName, rootClientId = null) => { - let blockType; - if (blockName && 'object' === typeof blockName) { - blockType = blockName; - blockName = blockType.name; - } else { - blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); - } - if (!blockType) { - return false; - } +const __unstableMarkAutomaticChange = () => ({ + dispatch +}) => { + dispatch({ + type: 'MARK_AUTOMATIC_CHANGE' + }); const { - allowedBlockTypes - } = getSettings(state); - const isBlockAllowedInEditor = checkAllowList(allowedBlockTypes, blockName, true); - if (!isBlockAllowedInEditor) { - return false; - } - const isLocked = !!getTemplateLock(state, rootClientId); - if (isLocked) { - return false; - } - if (getBlockEditingMode(state, rootClientId !== null && rootClientId !== void 0 ? rootClientId : '') === 'disabled') { - return false; - } - const parentBlockListSettings = getBlockListSettings(state, rootClientId); - - // The parent block doesn't have settings indicating it doesn't support - // inner blocks, return false. - if (rootClientId && parentBlockListSettings === undefined) { - return false; - } - const parentAllowedBlocks = parentBlockListSettings?.allowedBlocks; - const hasParentAllowedBlock = checkAllowList(parentAllowedBlocks, blockName); - const blockAllowedParentBlocks = blockType.parent; - const parentName = getBlockName(state, rootClientId); - const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName); - let hasBlockAllowedAncestor = true; - const blockAllowedAncestorBlocks = blockType.ancestor; - if (blockAllowedAncestorBlocks) { - const ancestors = [rootClientId, ...getBlockParents(state, rootClientId)]; - hasBlockAllowedAncestor = ancestors.some(ancestorClientId => checkAllowList(blockAllowedAncestorBlocks, getBlockName(state, ancestorClientId))); - } - const canInsert = hasBlockAllowedAncestor && (hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true); - if (!canInsert) { - return canInsert; - } - - /** - * This filter is an ad-hoc solution to prevent adding template parts inside post content. - * Conceptually, having a filter inside a selector is bad pattern so this code will be - * replaced by a declarative API that doesn't the following drawbacks: - * - * Filters are not reactive: Upon switching between "template mode" and non "template mode", - * the filter and selector won't necessarily be executed again. For now, it doesn't matter much - * because you can't switch between the two modes while the inserter stays open. - * - * Filters are global: Once they're defined, they will affect all editor instances and all registries. - * An ideal API would only affect specific editor instances. - */ - return (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.__unstableCanInsertBlockType', canInsert, blockType, rootClientId, { - // Pass bound selectors of the current registry. If we're in a nested - // context, the data will differ from the one selected from the root - // registry. - getBlock: getBlock.bind(null, state), - getBlockParentsByBlockName: getBlockParentsByBlockName.bind(null, state) + requestIdleCallback = cb => setTimeout(cb, 100) + } = window; + requestIdleCallback(() => { + dispatch({ + type: 'MARK_AUTOMATIC_CHANGE_FINAL' + }); }); }; /** - * Determines if the given block type is allowed to be inserted into the block list. - * - * @param {Object} state Editor state. - * @param {string} blockName The name of the block type, e.g.' core/paragraph'. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {boolean} Whether the given block type is allowed to be inserted. - */ -const canInsertBlockType = rememo(canInsertBlockTypeUnmemoized, (state, blockName, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockEditingModes]); - -/** - * Determines if the given blocks are allowed to be inserted into the block - * list. - * - * @param {Object} state Editor state. - * @param {string} clientIds The block client IDs to be inserted. - * @param {?string} rootClientId Optional root client ID of block list. + * Action that enables or disables the navigation mode. * - * @return {boolean} Whether the given blocks are allowed to be inserted. + * @param {boolean} isNavigationMode Enable/Disable navigation mode. */ -function canInsertBlocks(state, clientIds, rootClientId = null) { - return clientIds.every(id => canInsertBlockType(state, getBlockName(state, id), rootClientId)); -} +const setNavigationMode = (isNavigationMode = true) => ({ + dispatch +}) => { + dispatch.__unstableSetEditorMode(isNavigationMode ? 'navigation' : 'edit'); +}; /** - * Determines if the given block is allowed to be deleted. - * - * @param {Object} state Editor state. - * @param {string} clientId The block client Id. - * @param {?string} rootClientId Optional root client ID of block list. + * Action that sets the editor mode * - * @return {boolean} Whether the given block is allowed to be removed. + * @param {string} mode Editor mode */ -function canRemoveBlock(state, clientId, rootClientId = null) { - const attributes = getBlockAttributes(state, clientId); - if (attributes === null) { - return true; - } - if (attributes.lock?.remove !== undefined) { - return !attributes.lock.remove; +const __unstableSetEditorMode = mode => ({ + dispatch, + select +}) => { + // When switching to zoom-out mode, we need to select the root block + if (mode === 'zoom-out') { + const firstSelectedClientId = select.getBlockSelectionStart(); + if (firstSelectedClientId) { + dispatch.selectBlock(select.getBlockHierarchyRootClientId(firstSelectedClientId)); + } } - if (getTemplateLock(state, rootClientId)) { - return false; + dispatch({ + type: 'SET_EDITOR_MODE', + mode + }); + if (mode === 'navigation') { + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.')); + } else if (mode === 'edit') { + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in edit mode. To return to the navigation mode, press Escape.')); + } else if (mode === 'zoom-out') { + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in zoom-out mode.')); } - return getBlockEditingMode(state, rootClientId) !== 'disabled'; -} +}; /** - * Determines if the given blocks are allowed to be removed. - * - * @param {Object} state Editor state. - * @param {string} clientIds The block client IDs to be removed. - * @param {?string} rootClientId Optional root client ID of block list. + * Action that enables or disables the block moving mode. * - * @return {boolean} Whether the given blocks are allowed to be removed. + * @param {string|null} hasBlockMovingClientId Enable/Disable block moving mode. */ -function canRemoveBlocks(state, clientIds, rootClientId = null) { - return clientIds.every(clientId => canRemoveBlock(state, clientId, rootClientId)); -} +const setBlockMovingClientId = (hasBlockMovingClientId = null) => ({ + dispatch +}) => { + dispatch({ + type: 'SET_BLOCK_MOVING_MODE', + hasBlockMovingClientId + }); + if (hasBlockMovingClientId) { + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Use the Tab key and Arrow keys to choose new block location. Use Left and Right Arrow keys to move between nesting levels. Once location is selected press Enter or Space to move the block.')); + } +}; /** - * Determines if the given block is allowed to be moved. + * Action that duplicates a list of blocks. * - * @param {Object} state Editor state. - * @param {string} clientId The block client Id. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {boolean | undefined} Whether the given block is allowed to be moved. + * @param {string[]} clientIds + * @param {boolean} updateSelection */ -function canMoveBlock(state, clientId, rootClientId = null) { - const attributes = getBlockAttributes(state, clientId); - if (attributes === null) { - return true; - } - if (attributes.lock?.move !== undefined) { - return !attributes.lock.move; +const duplicateBlocks = (clientIds, updateSelection = true) => ({ + select, + dispatch +}) => { + if (!clientIds || !clientIds.length) { + return; } - if (getTemplateLock(state, rootClientId) === 'all') { - return false; + + // Return early if blocks don't exist. + const blocks = select.getBlocksByClientId(clientIds); + if (blocks.some(block => !block)) { + return; } - return getBlockEditingMode(state, rootClientId) !== 'disabled'; -} -/** - * Determines if the given blocks are allowed to be moved. - * - * @param {Object} state Editor state. - * @param {string} clientIds The block client IDs to be moved. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {boolean} Whether the given blocks are allowed to be moved. - */ -function canMoveBlocks(state, clientIds, rootClientId = null) { - return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId)); -} + // Return early if blocks don't support multiple usage. + const blockNames = blocks.map(block => block.name); + if (blockNames.some(blockName => !(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'multiple', true))) { + return; + } + const rootClientId = select.getBlockRootClientId(clientIds[0]); + const clientIdsArray = actions_castArray(clientIds); + const lastSelectedIndex = select.getBlockIndex(clientIdsArray[clientIdsArray.length - 1]); + const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.__experimentalCloneSanitizedBlock)(block)); + dispatch.insertBlocks(clonedBlocks, lastSelectedIndex + 1, rootClientId, updateSelection); + if (clonedBlocks.length > 1 && updateSelection) { + dispatch.multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId); + } + return clonedBlocks.map(block => block.clientId); +}; /** - * Determines if the given block is allowed to be edited. - * - * @param {Object} state Editor state. - * @param {string} clientId The block client Id. + * Action that inserts an empty block before a given block. * - * @return {boolean} Whether the given block is allowed to be edited. + * @param {string} clientId */ -function canEditBlock(state, clientId) { - const attributes = getBlockAttributes(state, clientId); - if (attributes === null) { - return true; +const insertBeforeBlock = clientId => ({ + select, + dispatch +}) => { + if (!clientId) { + return; } - const { - lock - } = attributes; - - // When the edit is true, we cannot edit the block. - return !lock?.edit; -} + const rootClientId = select.getBlockRootClientId(clientId); + const isLocked = select.getTemplateLock(rootClientId); + if (isLocked) { + return; + } + const firstSelectedIndex = select.getBlockIndex(clientId); + return dispatch.insertDefaultBlock({}, rootClientId, firstSelectedIndex); +}; /** - * Determines if the given block type can be locked/unlocked by a user. - * - * @param {Object} state Editor state. - * @param {(string|Object)} nameOrType Block name or type object. + * Action that inserts an empty block after a given block. * - * @return {boolean} Whether a given block type can be locked/unlocked. + * @param {string} clientId */ -function canLockBlockType(state, nameOrType) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, 'lock', true)) { - return false; +const insertAfterBlock = clientId => ({ + select, + dispatch +}) => { + if (!clientId) { + return; } - - // Use block editor settings as the default value. - return !!state.settings?.canLockBlocks; -} + const rootClientId = select.getBlockRootClientId(clientId); + const isLocked = select.getTemplateLock(rootClientId); + if (isLocked) { + return; + } + const firstSelectedIndex = select.getBlockIndex(clientId); + return dispatch.insertDefaultBlock({}, rootClientId, firstSelectedIndex + 1); +}; /** - * Returns information about how recently and frequently a block has been inserted. - * - * @param {Object} state Global application state. - * @param {string} id A string which identifies the insert, e.g. 'core/block/12' + * Action that toggles the highlighted block state. * - * @return {?{ time: number, count: number }} An object containing `time` which is when the last - * insert occurred as a UNIX epoch, and `count` which is - * the number of inserts that have occurred. + * @param {string} clientId The block's clientId. + * @param {boolean} isHighlighted The highlight state. */ -function getInsertUsage(state, id) { - var _state$preferences$in; - return (_state$preferences$in = state.preferences.insertUsage?.[id]) !== null && _state$preferences$in !== void 0 ? _state$preferences$in : null; +function toggleBlockHighlight(clientId, isHighlighted) { + return { + type: 'TOGGLE_BLOCK_HIGHLIGHT', + clientId, + isHighlighted + }; } /** - * Returns whether we can show a block type in the inserter - * - * @param {Object} state Global State - * @param {Object} blockType BlockType - * @param {?string} rootClientId Optional root client ID of block list. + * Action that "flashes" the block with a given `clientId` by rhythmically highlighting it. * - * @return {boolean} Whether the given block type is allowed to be shown in the inserter. + * @param {string} clientId Target block client ID. */ -const canIncludeBlockTypeInInserter = (state, blockType, rootClientId) => { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'inserter', true)) { - return false; - } - return canInsertBlockTypeUnmemoized(state, blockType.name, rootClientId); +const flashBlock = clientId => async ({ + dispatch +}) => { + dispatch(toggleBlockHighlight(clientId, true)); + await new Promise(resolve => setTimeout(resolve, 150)); + dispatch(toggleBlockHighlight(clientId, false)); }; /** - * Return a function to be used to tranform a block variation to an inserter item + * Action that sets whether a block has controlled inner blocks. * - * @param {Object} state Global State - * @param {Object} item Denormalized inserter item - * @return {Function} Function to transform a block variation to inserter item + * @param {string} clientId The block's clientId. + * @param {boolean} hasControlledInnerBlocks True if the block's inner blocks are controlled. */ -const getItemFromVariation = (state, item) => variation => { - const variationId = `${item.id}/${variation.name}`; - const { - time, - count = 0 - } = getInsertUsage(state, variationId) || {}; +function setHasControlledInnerBlocks(clientId, hasControlledInnerBlocks) { return { - ...item, - id: variationId, - icon: variation.icon || item.icon, - title: variation.title || item.title, - description: variation.description || item.description, - category: variation.category || item.category, - // If `example` is explicitly undefined for the variation, the preview will not be shown. - example: variation.hasOwnProperty('example') ? variation.example : item.example, - initialAttributes: { - ...item.initialAttributes, - ...variation.attributes - }, - innerBlocks: variation.innerBlocks, - keywords: variation.keywords || item.keywords, - frecency: calculateFrecency(time, count) + type: 'SET_HAS_CONTROLLED_INNER_BLOCKS', + hasControlledInnerBlocks, + clientId }; -}; - -/** - * Returns the calculated frecency. - * - * 'frecency' is a heuristic (https://en.wikipedia.org/wiki/Frecency) - * that combines block usage frequenty and recency. - * - * @param {number} time When the last insert occurred as a UNIX epoch - * @param {number} count The number of inserts that have occurred. - * - * @return {number} The calculated frecency. - */ -const calculateFrecency = (time, count) => { - if (!time) { - return count; - } - // The selector is cached, which means Date.now() is the last time that the - // relevant state changed. This suits our needs. - const duration = Date.now() - time; - switch (true) { - case duration < MILLISECONDS_PER_HOUR: - return count * 4; - case duration < MILLISECONDS_PER_DAY: - return count * 2; - case duration < MILLISECONDS_PER_WEEK: - return count / 2; - default: - return count / 4; - } -}; +} /** - * Returns a function that accepts a block type and builds an item to be shown - * in a specific context. It's used for building items for Inserter and available - * block Transfroms list. + * Action that sets whether given blocks are visible on the canvas. * - * @param {Object} state Editor state. - * @param {Object} options Options object for handling the building of a block type. - * @param {string} options.buildScope The scope for which the item is going to be used. - * @return {Function} Function returns an item to be shown in a specific context (Inserter|Transforms list). + * @param {Record} updates For each block's clientId, its new visibility setting. */ -const buildBlockTypeItem = (state, { - buildScope = 'inserter' -}) => blockType => { - const id = blockType.name; - let isDisabled = false; - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType.name, 'multiple', true)) { - isDisabled = getBlocksByClientId(state, getClientIdsWithDescendants(state)).some(({ - name - }) => name === blockType.name); - } - const { - time, - count = 0 - } = getInsertUsage(state, id) || {}; - const blockItemBase = { - id, - name: blockType.name, - title: blockType.title, - icon: blockType.icon, - isDisabled, - frecency: calculateFrecency(time, count) - }; - if (buildScope === 'transform') return blockItemBase; - const inserterVariations = (0,external_wp_blocks_namespaceObject.getBlockVariations)(blockType.name, 'inserter'); +function setBlockVisibility(updates) { return { - ...blockItemBase, - initialAttributes: {}, - description: blockType.description, - category: blockType.category, - keywords: blockType.keywords, - variations: inserterVariations, - example: blockType.example, - utility: 1 // Deprecated. + type: 'SET_BLOCK_VISIBILITY', + updates }; -}; +} /** - * Determines the items that appear in the inserter. Includes both static - * items (e.g. a regular block type) and dynamic items (e.g. a reusable block). - * - * Each item object contains what's necessary to display a button in the - * inserter and handle its selection. - * - * The 'frecency' property is a heuristic (https://en.wikipedia.org/wiki/Frecency) - * that combines block usage frequenty and recency. - * - * Items are returned ordered descendingly by their 'utility' and 'frecency'. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * Action that sets whether a block is being temporaritly edited as blocks. * - * @return {WPEditorInserterItem[]} Items that appear in inserter. + * DO-NOT-USE in production. + * This action is created for internal/experimental only usage and may be + * removed anytime without any warning, causing breakage on any plugin or theme invoking it. * - * @typedef {Object} WPEditorInserterItem - * @property {string} id Unique identifier for the item. - * @property {string} name The type of block to create. - * @property {Object} initialAttributes Attributes to pass to the newly created block. - * @property {string} title Title of the item, as it appears in the inserter. - * @property {string} icon Dashicon for the item, as it appears in the inserter. - * @property {string} category Block category that the item is associated with. - * @property {string[]} keywords Keywords that can be searched to find this item. - * @property {boolean} isDisabled Whether or not the user should be prevented from inserting - * this item. - * @property {number} frecency Heuristic that combines frequency and recency. + * @param {?string} temporarilyEditingAsBlocks The block's clientId being temporaritly edited as blocks. */ -const getInserterItems = rememo((state, rootClientId = null) => { - const buildReusableBlockInserterItem = reusableBlock => { - const icon = !reusableBlock.wp_pattern_sync_status ? { - src: library_symbol, - foreground: 'var(--wp-block-synced-color)' - } : library_symbol; - const id = `core/block/${reusableBlock.id}`; - const { - time, - count = 0 - } = getInsertUsage(state, id) || {}; - const frecency = calculateFrecency(time, count); - return { - id, - name: 'core/block', - initialAttributes: { - ref: reusableBlock.id - }, - title: reusableBlock.title?.raw, - icon, - category: 'reusable', - keywords: ['reusable'], - isDisabled: false, - utility: 1, - // Deprecated. - frecency, - content: reusableBlock.content?.raw, - syncStatus: reusableBlock.wp_pattern_sync_status - }; - }; - const syncedPatternInserterItems = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) ? getReusableBlocks(state).map(buildReusableBlockInserterItem) : []; - const buildBlockTypeInserterItem = buildBlockTypeItem(state, { - buildScope: 'inserter' - }); - const blockTypeInserterItems = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)).map(buildBlockTypeInserterItem); - const items = blockTypeInserterItems.reduce((accumulator, item) => { - const { - variations = [] - } = item; - // Exclude any block type item that is to be replaced by a default variation. - if (!variations.some(({ - isDefault - }) => isDefault)) { - accumulator.push(item); - } - if (variations.length) { - const variationMapper = getItemFromVariation(state, item); - accumulator.push(...variations.map(variationMapper)); - } - return accumulator; - }, []); - - // Ensure core blocks are prioritized in the returned results, - // because third party blocks can be registered earlier than - // the core blocks (usually by using the `init` action), - // thus affecting the display order. - // We don't sort reusable blocks as they are handled differently. - const groupByType = (blocks, block) => { - const { - core, - noncore - } = blocks; - const type = block.name.startsWith('core/') ? core : noncore; - type.push(block); - return blocks; +function __unstableSetTemporarilyEditingAsBlocks(temporarilyEditingAsBlocks) { + return { + type: 'SET_TEMPORARILY_EDITING_AS_BLOCKS', + temporarilyEditingAsBlocks }; - const { - core: coreItems, - noncore: nonCoreItems - } = items.reduce(groupByType, { - core: [], - noncore: [] - }); - const sortedBlockTypes = [...coreItems, ...nonCoreItems]; - return [...sortedBlockTypes, ...syncedPatternInserterItems]; -}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.blocks.order, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); +} /** - * Determines the items that appear in the available block transforms list. - * - * Each item object contains what's necessary to display a menu item in the - * transform list and handle its selection. - * - * The 'frecency' property is a heuristic (https://en.wikipedia.org/wiki/Frecency) - * that combines block usage frequenty and recency. - * - * Items are returned ordered descendingly by their 'frecency'. - * - * @param {Object} state Editor state. - * @param {Object|Object[]} blocks Block object or array objects. - * @param {?string} rootClientId Optional root client ID of block list. - * - * @return {WPEditorTransformItem[]} Items that appear in inserter. + * Interface for inserter media requests. * - * @typedef {Object} WPEditorTransformItem - * @property {string} id Unique identifier for the item. - * @property {string} name The type of block to create. - * @property {string} title Title of the item, as it appears in the inserter. - * @property {string} icon Dashicon for the item, as it appears in the inserter. - * @property {boolean} isDisabled Whether or not the user should be prevented from inserting - * this item. - * @property {number} frecency Heuristic that combines frequency and recency. + * @typedef {Object} InserterMediaRequest + * @property {number} per_page How many items to fetch per page. + * @property {string} search The search term to use for filtering the results. */ -const getBlockTransformItems = rememo((state, blocks, rootClientId = null) => { - const normalizedBlocks = Array.isArray(blocks) ? blocks : [blocks]; - const buildBlockTypeTransformItem = buildBlockTypeItem(state, { - buildScope: 'transform' - }); - const blockTypeTransformItems = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)).map(buildBlockTypeTransformItem); - const itemsByName = Object.fromEntries(Object.entries(blockTypeTransformItems).map(([, value]) => [value.name, value])); - const possibleTransforms = (0,external_wp_blocks_namespaceObject.getPossibleBlockTransformations)(normalizedBlocks).reduce((accumulator, block) => { - if (itemsByName[block?.name]) { - accumulator.push(itemsByName[block.name]); - } - return accumulator; - }, []); - return orderBy(possibleTransforms, block => itemsByName[block.name].frecency, 'desc'); -}, (state, blocks, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); /** - * Determines whether there are items to show in the inserter. - * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * Interface for inserter media responses. Any media resource should + * map their response to this interface, in order to create the core + * WordPress media blocks (image, video, audio). * - * @return {boolean} Items that appear in inserter. + * @typedef {Object} InserterMediaItem + * @property {string} title The title of the media item. + * @property {string} url The source url of the media item. + * @property {string} [previewUrl] The preview source url of the media item to display in the media list. + * @property {number} [id] The WordPress id of the media item. + * @property {number|string} [sourceId] The id of the media item from external source. + * @property {string} [alt] The alt text of the media item. + * @property {string} [caption] The caption of the media item. */ -const hasInserterItems = rememo((state, rootClientId = null) => { - const hasBlockType = (0,external_wp_blocks_namespaceObject.getBlockTypes)().some(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)); - if (hasBlockType) { - return true; - } - const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0; - return hasReusableBlock; -}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); /** - * Returns the list of allowed inserter blocks for inner blocks children. + * Registers a new inserter media category. Once registered, the media category is + * available in the inserter's media tab. * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * The following interfaces are used: * - * @return {Array?} The list of allowed block types. - */ -const getAllowedBlocks = rememo((state, rootClientId = null) => { - if (!rootClientId) { - return; - } - const blockTypes = (0,external_wp_blocks_namespaceObject.getBlockTypes)().filter(blockType => canIncludeBlockTypeInInserter(state, blockType, rootClientId)); - const hasReusableBlock = canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0; - if (hasReusableBlock) { - blockTypes.push('core/block'); - } - return blockTypes; -}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId), state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), (0,external_wp_blocks_namespaceObject.getBlockTypes)()]); -const __experimentalGetAllowedBlocks = rememo((state, rootClientId = null) => { - external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetAllowedBlocks', { - alternative: 'wp.data.select( "core/block-editor" ).getAllowedBlocks', - since: '6.2', - version: '6.4' - }); - return getAllowedBlocks(state, rootClientId); -}, (state, rootClientId) => [...getAllowedBlocks.getDependants(state, rootClientId)]); - -/** - * Returns the block to be directly inserted by the block appender. + * _Type Definition_ * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional root client ID of block list. + * - _InserterMediaRequest_ `Object`: Interface for inserter media requests. * - * @return {?WPDirectInsertBlock} The block type to be directly inserted. + * _Properties_ * - * @typedef {Object} WPDirectInsertBlock - * @property {string} name The type of block. - * @property {?Object} attributes Attributes to pass to the newly created block. - * @property {?Array} attributesToCopy Attributes to be copied from adjecent blocks when inserted. - */ -const getDirectInsertBlock = rememo((state, rootClientId = null) => { - if (!rootClientId) { - return; - } - const defaultBlock = state.blockListSettings[rootClientId]?.defaultBlock; - const directInsert = state.blockListSettings[rootClientId]?.directInsert; - if (!defaultBlock || !directInsert) { - return; - } - if (typeof directInsert === 'function') { - return directInsert(getBlock(state, rootClientId)) ? defaultBlock : null; - } - return defaultBlock; -}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.tree.get(rootClientId)]); -const __experimentalGetDirectInsertBlock = rememo((state, rootClientId = null) => { - external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetDirectInsertBlock', { - alternative: 'wp.data.select( "core/block-editor" ).getDirectInsertBlock', - since: '6.3', - version: '6.4' - }); - return getDirectInsertBlock(state, rootClientId); -}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.tree.get(rootClientId)]); -const __experimentalGetParsedPattern = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => rememo((state, patternName) => { - const { - getAllPatterns - } = unlock(select(STORE_NAME)); - const patterns = getAllPatterns(); - const pattern = patterns.find(({ - name - }) => name === patternName); - if (!pattern) { - return null; - } - return { - ...pattern, - blocks: (0,external_wp_blocks_namespaceObject.parse)(pattern.content, { - __unstableSkipMigrationLogs: true - }) - }; -}, getAllPatternsDependants)); -const getAllowedPatternsDependants = (state, rootClientId) => { - return [...getAllPatternsDependants(state), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId)]; -}; - -/** - * Returns the list of allowed patterns for inner blocks children. + * - _per_page_ `number`: How many items to fetch per page. + * - _search_ `string`: The search term to use for filtering the results. * - * @param {Object} state Editor state. - * @param {?string} rootClientId Optional target root client ID. + * _Type Definition_ * - * @return {Array?} The list of allowed patterns. - */ -const __experimentalGetAllowedPatterns = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => { - return rememo((state, rootClientId = null) => { - const { - getAllPatterns, - __experimentalGetParsedPattern: getParsedPattern - } = unlock(select(STORE_NAME)); - const patterns = getAllPatterns(); - const { - allowedBlockTypes - } = getSettings(state); - const parsedPatterns = patterns.filter(({ - inserter = true - }) => !!inserter).map(({ - name - }) => getParsedPattern(name)); - const availableParsedPatterns = parsedPatterns.filter(({ - blocks - }) => checkAllowListRecursive(blocks, allowedBlockTypes)); - const patternsAllowed = availableParsedPatterns.filter(({ - blocks - }) => blocks.every(({ - name - }) => canInsertBlockType(state, name, rootClientId))); - return patternsAllowed; - }, getAllowedPatternsDependants); -}); - -/** - * Returns the list of patterns based on their declared `blockTypes` - * and a block's name. - * Patterns can use `blockTypes` to integrate in work flows like - * suggesting appropriate patterns in a Placeholder state(during insertion) - * or blocks transformations. + * - _InserterMediaItem_ `Object`: Interface for inserter media responses. Any media resource should + * map their response to this interface, in order to create the core + * WordPress media blocks (image, video, audio). * - * @param {Object} state Editor state. - * @param {string|string[]} blockNames Block's name or array of block names to find matching pattens. - * @param {?string} rootClientId Optional target root client ID. + * _Properties_ * - * @return {Array} The list of matched block patterns based on declared `blockTypes` and block name. - */ -const getPatternsByBlockTypes = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => rememo((state, blockNames, rootClientId = null) => { - if (!blockNames) return EMPTY_ARRAY; - const patterns = select(STORE_NAME).__experimentalGetAllowedPatterns(rootClientId); - const normalizedBlockNames = Array.isArray(blockNames) ? blockNames : [blockNames]; - const filteredPatterns = patterns.filter(pattern => pattern?.blockTypes?.some?.(blockName => normalizedBlockNames.includes(blockName))); - if (filteredPatterns.length === 0) { - return EMPTY_ARRAY; - } - return filteredPatterns; -}, (state, blockNames, rootClientId) => getAllowedPatternsDependants(state, rootClientId))); -const __experimentalGetPatternsByBlockTypes = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => { - external_wp_deprecated_default()('wp.data.select( "core/block-editor" ).__experimentalGetPatternsByBlockTypes', { - alternative: 'wp.data.select( "core/block-editor" ).getPatternsByBlockTypes', - since: '6.2', - version: '6.4' - }); - return select(STORE_NAME).getPatternsByBlockTypes; -}); - -/** - * Determines the items that appear in the available pattern transforms list. + * - _title_ `string`: The title of the media item. + * - _url_ `string: The source url of the media item. + * - _previewUrl_ `[string]`: The preview source url of the media item to display in the media list. + * - _id_ `[number]`: The WordPress id of the media item. + * - _sourceId_ `[number|string]`: The id of the media item from external source. + * - _alt_ `[string]`: The alt text of the media item. + * - _caption_ `[string]`: The caption of the media item. * - * For now we only handle blocks without InnerBlocks and take into account - * the `__experimentalRole` property of blocks' attributes for the transformation. + * @param {InserterMediaCategory} category The inserter media category to register. * - * We return the first set of possible eligible block patterns, - * by checking the `blockTypes` property. We still have to recurse through - * block pattern's blocks and try to find matches from the selected blocks. - * Now this happens in the consumer to avoid heavy operations in the selector. + * @example + * ```js * - * @param {Object} state Editor state. - * @param {Object[]} blocks The selected blocks. - * @param {?string} rootClientId Optional root client ID of block list. + * wp.data.dispatch('core/block-editor').registerInserterMediaCategory( { + * name: 'openverse', + * labels: { + * name: 'Openverse', + * search_items: 'Search Openverse', + * }, + * mediaType: 'image', + * async fetch( query = {} ) { + * const defaultArgs = { + * mature: false, + * excluded_source: 'flickr,inaturalist,wikimedia', + * license: 'pdm,cc0', + * }; + * const finalQuery = { ...query, ...defaultArgs }; + * // Sometimes you might need to map the supported request params according to `InserterMediaRequest`. + * // interface. In this example the `search` query param is named `q`. + * const mapFromInserterMediaRequest = { + * per_page: 'page_size', + * search: 'q', + * }; + * const url = new URL( 'https://api.openverse.engineering/v1/images/' ); + * Object.entries( finalQuery ).forEach( ( [ key, value ] ) => { + * const queryKey = mapFromInserterMediaRequest[ key ] || key; + * url.searchParams.set( queryKey, value ); + * } ); + * const response = await window.fetch( url, { + * headers: { + * 'User-Agent': 'WordPress/inserter-media-fetch', + * }, + * } ); + * const jsonResponse = await response.json(); + * const results = jsonResponse.results; + * return results.map( ( result ) => ( { + * ...result, + * // If your response result includes an `id` prop that you want to access later, it should + * // be mapped to `InserterMediaItem`'s `sourceId` prop. This can be useful if you provide + * // a report URL getter. + * // Additionally you should always clear the `id` value of your response results because + * // it is used to identify WordPress media items. + * sourceId: result.id, + * id: undefined, + * caption: result.caption, + * previewUrl: result.thumbnail, + * } ) ); + * }, + * getReportUrl: ( { sourceId } ) => + * `https://wordpress.org/openverse/image/${ sourceId }/report/`, + * isExternalResource: true, + * } ); + * ``` * - * @return {WPBlockPattern[]} Items that are eligible for a pattern transformation. + * @typedef {Object} InserterMediaCategory Interface for inserter media category. + * @property {string} name The name of the media category, that should be unique among all media categories. + * @property {Object} labels Labels for the media category. + * @property {string} labels.name General name of the media category. It's used in the inserter media items list. + * @property {string} [labels.search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’. + * @property {('image'|'audio'|'video')} mediaType The media type of the media category. + * @property {(InserterMediaRequest) => Promise} fetch The function to fetch media items for the category. + * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return + * the report url for the media item. It accepts the `InserterMediaItem` as an argument. + * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true. + * This is used to avoid making a request to the external resource when the user */ -const __experimentalGetPatternTransformItems = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => rememo((state, blocks, rootClientId = null) => { - if (!blocks) return EMPTY_ARRAY; - /** - * For now we only handle blocks without InnerBlocks and take into account - * the `__experimentalRole` property of blocks' attributes for the transformation. - * Note that the blocks have been retrieved through `getBlock`, which doesn't - * return the inner blocks of an inner block controller, so we still need - * to check for this case too. - */ - if (blocks.some(({ - clientId, - innerBlocks - }) => innerBlocks.length || areInnerBlocksControlled(state, clientId))) { - return EMPTY_ARRAY; +const registerInserterMediaCategory = category => ({ + select, + dispatch +}) => { + if (!category || typeof category !== 'object') { + console.error('Category should be an `InserterMediaCategory` object.'); + return; } - - // Create a Set of the selected block names that is used in patterns filtering. - const selectedBlockNames = Array.from(new Set(blocks.map(({ + if (!category.name) { + console.error('Category should have a `name` that should be unique among all media categories.'); + return; + } + if (!category.labels?.name) { + console.error('Category should have a `labels.name`.'); + return; + } + if (!['image', 'audio', 'video'].includes(category.mediaType)) { + console.error('Category should have `mediaType` property that is one of `image|audio|video`.'); + return; + } + if (!category.fetch || typeof category.fetch !== 'function') { + console.error('Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise`.'); + return; + } + const registeredInserterMediaCategories = select.getRegisteredInserterMediaCategories(); + if (registeredInserterMediaCategories.some(({ name - }) => name))); - /** - * Here we will return first set of possible eligible block patterns, - * by checking the `blockTypes` property. We still have to recurse through - * block pattern's blocks and try to find matches from the selected blocks. - * Now this happens in the consumer to avoid heavy operations in the selector. - */ - return select(STORE_NAME).getPatternsByBlockTypes(selectedBlockNames, rootClientId); -}, (state, blocks, rootClientId) => getAllowedPatternsDependants(state, rootClientId))); + }) => name === category.name)) { + console.error(`A category is already registered with the same name: "${category.name}".`); + return; + } + if (registeredInserterMediaCategories.some(({ + labels: { + name + } = {} + }) => name === category.labels?.name)) { + console.error(`A category is already registered with the same labels.name: "${category.labels.name}".`); + return; + } + // `inserterMediaCategories` is a private block editor setting, which means it cannot + // be updated through the public `updateSettings` action. We preserve this setting as + // private, so extenders can only add new inserter media categories and don't have any + // control over the core media categories. + dispatch({ + type: 'REGISTER_INSERTER_MEDIA_CATEGORY', + category: { + ...category, + isExternalResource: true + } + }); +}; /** - * Returns the Block List settings of a block, if any exist. - * - * @param {Object} state Editor state. - * @param {?string} clientId Block client ID. - * - * @return {?Object} Block settings of the block if set. + * @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode */ -function getBlockListSettings(state, clientId) { - return state.blockListSettings[clientId]; -} /** - * Returns the editor settings. + * Sets the block editing mode for a given block. * - * @param {Object} state Editor state. + * @see useBlockEditingMode * - * @return {Object} The editor settings object. + * @param {string} clientId The block client ID, or `''` for the root container. + * @param {BlockEditingMode} mode The block editing mode. One of `'disabled'`, + * `'contentOnly'`, or `'default'`. + * + * @return {Object} Action object. */ -function getSettings(state) { - return state.settings; +function setBlockEditingMode(clientId = '', mode) { + return { + type: 'SET_BLOCK_EDITING_MODE', + clientId, + mode + }; } /** - * Returns true if the most recent block change is be considered persistent, or - * false otherwise. A persistent change is one committed by BlockEditorProvider - * via its `onChange` callback, in addition to `onInput`. + * Clears the block editing mode for a given block. * - * @param {Object} state Block editor state. + * @see useBlockEditingMode * - * @return {boolean} Whether the most recent block change was persistent. + * @param {string} clientId The block client ID, or `''` for the root container. + * + * @return {Object} Action object. */ -function isLastBlockChangePersistent(state) { - return state.blocks.isPersistentChange; +function unsetBlockEditingMode(clientId = '') { + return { + type: 'UNSET_BLOCK_EDITING_MODE', + clientId + }; } -/** - * Returns the block list settings for an array of blocks, if any exist. - * - * @param {Object} state Editor state. - * @param {Array} clientIds Block client IDs. - * - * @return {Object} An object where the keys are client ids and the values are - * a block list setting object. - */ -const __experimentalGetBlockListSettingsForBlocks = rememo((state, clientIds = []) => { - return clientIds.reduce((blockListSettingsForBlocks, clientId) => { - if (!state.blockListSettings[clientId]) { - return blockListSettingsForBlocks; - } - return { - ...blockListSettingsForBlocks, - [clientId]: state.blockListSettings[clientId] - }; - }, {}); -}, state => [state.blockListSettings]); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/constants.js +const STORE_NAME = 'core/block-editor'; +;// CONCATENATED MODULE: external ["wp","privateApis"] +var external_wp_privateApis_namespaceObject = window["wp"]["privateApis"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/lock-unlock.js /** - * Returns the title of a given reusable block - * - * @param {Object} state Global application state. - * @param {number|string} ref The shared block's ID. - * - * @return {string} The reusable block saved title. + * WordPress dependencies */ -const __experimentalGetReusableBlockTitle = rememo((state, ref) => { - const reusableBlock = getReusableBlocks(state).find(block => block.id === ref); - if (!reusableBlock) { - return null; - } - return reusableBlock.title?.raw; -}, state => [getReusableBlocks(state)]); +const { + lock, + unlock +} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/block-editor'); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/index.js /** - * Returns true if the most recent block change is be considered ignored, or - * false otherwise. An ignored change is one not to be committed by - * BlockEditorProvider, neither via `onChange` nor `onInput`. - * - * @param {Object} state Block editor state. - * - * @return {boolean} Whether the most recent block change was ignored. + * WordPress dependencies */ -function __unstableIsLastBlockChangeIgnored(state) { - // TODO: Removal Plan: Changes incurred by RECEIVE_BLOCKS should not be - // ignored if in-fact they result in a change in blocks state. The current - // need to ignore changes not a result of user interaction should be - // accounted for in the refactoring of reusable blocks as occurring within - // their own separate block editor / state (#7119). - return state.blocks.isIgnoredChange; -} + /** - * Returns the block attributes changed as a result of the last dispatched - * action. - * - * @param {Object} state Block editor state. - * - * @return {Object} Subsets of block attributes changed, keyed - * by block client ID. + * Internal dependencies */ -function __experimentalGetLastBlockAttributeChanges(state) { - return state.lastBlockAttributesChange; -} + + + + + + + /** - * Returns the available reusable blocks - * - * @param {Object} state Global application state. + * Block editor data store configuration. * - * @return {Array} Reusable blocks + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore */ -function getReusableBlocks(state) { - var _state$settings$__exp; - return (_state$settings$__exp = state.settings.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY; -} +const storeConfig = { + reducer: reducer, + selectors: selectors_namespaceObject, + actions: actions_namespaceObject +}; /** - * Returns whether the navigation mode is enabled. - * - * @param {Object} state Editor state. + * Store definition for the block editor namespace. * - * @return {boolean} Is navigation mode enabled. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore */ -function isNavigationMode(state) { - return state.editorMode === 'navigation'; -} +const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, { + ...storeConfig, + persist: ['preferences'] +}); + +// We will be able to use the `register` function once we switch +// the "preferences" persistence to use the new preferences package. +const registeredStore = (0,external_wp_data_namespaceObject.registerStore)(STORE_NAME, { + ...storeConfig, + persist: ['preferences'] +}); +unlock(registeredStore).registerPrivateActions(private_actions_namespaceObject); +unlock(registeredStore).registerPrivateSelectors(private_selectors_namespaceObject); + +// TODO: Remove once we switch to the `register` function (see above). +// +// Until then, private functions also need to be attached to the original +// `store` descriptor in order to avoid unit tests failing, which could happen +// when tests create new registries in which they register stores. +// +// @see https://github.com/WordPress/gutenberg/pull/51145#discussion_r1239999590 +unlock(store).registerPrivateActions(private_actions_namespaceObject); +unlock(store).registerPrivateSelectors(private_selectors_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/context.js /** - * Returns the current editor mode. - * - * @param {Object} state Editor state. - * - * @return {string} the editor mode. + * WordPress dependencies */ -function __unstableGetEditorMode(state) { - return state.editorMode; -} + +const DEFAULT_BLOCK_EDIT_CONTEXT = { + name: '', + isSelected: false +}; +const Context = (0,external_wp_element_namespaceObject.createContext)(DEFAULT_BLOCK_EDIT_CONTEXT); +const { + Provider +} = Context; + /** - * Returns whether block moving mode is enabled. - * - * @param {Object} state Editor state. + * A hook that returns the block edit context. * - * @return {string} Client Id of moving block. + * @return {Object} Block edit context */ -function selectors_hasBlockMovingClientId(state) { - return state.hasBlockMovingClientId; +function useBlockEditContext() { + return (0,external_wp_element_namespaceObject.useContext)(Context); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-display-block-controls/index.js /** - * Returns true if the last change was an automatic change, false otherwise. - * - * @param {Object} state Global application state. - * - * @return {boolean} Whether the last change was automatic. + * WordPress dependencies */ -function didAutomaticChange(state) { - return !!state.automaticChangeStatus; -} + /** - * Returns true if the current highlighted block matches the block clientId. - * - * @param {Object} state Global application state. - * @param {string} clientId The block to check. - * - * @return {boolean} Whether the block is currently highlighted. + * Internal dependencies */ -function isBlockHighlighted(state, clientId) { - return state.highlightedBlock === clientId; + + +function useDisplayBlockControls() { + const { + isSelected, + clientId, + name + } = useBlockEditContext(); + return (0,external_wp_data_namespaceObject.useSelect)(select => { + if (isSelected) { + return true; + } + const { + getBlockName, + isFirstMultiSelectedBlock, + getMultiSelectedBlockClientIds + } = select(store); + if (isFirstMultiSelectedBlock(clientId)) { + return getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name); + } + return false; + }, [clientId, isSelected, name]); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/hook.js /** - * Checks if a given block has controlled inner blocks. - * - * @param {Object} state Global application state. - * @param {string} clientId The block to check. - * - * @return {boolean} True if the block has controlled inner blocks. + * WordPress dependencies */ -function areInnerBlocksControlled(state, clientId) { - return !!state.blocks.controlledInnerBlocks[clientId]; -} + + /** - * Returns the clientId for the first 'active' block of a given array of block names. - * A block is 'active' if it (or a child) is the selected block. - * Returns the first match moving up the DOM from the selected block. - * - * @param {Object} state Global application state. - * @param {string[]} validBlocksNames The names of block types to check for. - * - * @return {string} The matching block's clientId. + * Internal dependencies */ -const __experimentalGetActiveBlockIdByBlockNames = rememo((state, validBlockNames) => { - if (!validBlockNames.length) { - return null; - } - // Check if selected block is a valid entity area. - const selectedBlockClientId = getSelectedBlockClientId(state); - if (validBlockNames.includes(getBlockName(state, selectedBlockClientId))) { - return selectedBlockClientId; + + + + +function useBlockControlsFill(group, shareWithChildBlocks) { + const isDisplayed = useDisplayBlockControls(); + const { + clientId + } = useBlockEditContext(); + const isParentDisplayed = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + hasSelectedInnerBlock + } = select(store); + const { + hasBlockSupport + } = select(external_wp_blocks_namespaceObject.store); + return shareWithChildBlocks && hasBlockSupport(getBlockName(clientId), '__experimentalExposeControlsToChildren', false) && hasSelectedInnerBlock(clientId); + }, [shareWithChildBlocks, clientId]); + if (isDisplayed) { + return block_controls_groups[group]?.Fill; } - // Check if first selected block is a child of a valid entity area. - const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(state); - const entityAreaParents = getBlockParentsByBlockName(state, selectedBlockClientId || multiSelectedBlockClientIds[0], validBlockNames); - if (entityAreaParents) { - // Last parent closest/most interior. - return entityAreaParents[entityAreaParents.length - 1]; + if (isParentDisplayed) { + return block_controls_groups.parent.Fill; } return null; -}, (state, validBlockNames) => [state.selection.selectionStart.clientId, state.selection.selectionEnd.clientId, validBlockNames]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/fill.js /** - * Tells if the block with the passed clientId was just inserted. - * - * @param {Object} state Global application state. - * @param {Object} clientId Client Id of the block. - * @param {?string} source Optional insertion source of the block. - * @return {boolean} True if the block matches the last block inserted from the specified source. + * WordPress dependencies */ -function wasBlockJustInserted(state, clientId, source) { - const { - lastBlockInserted - } = state; - return lastBlockInserted.clientIds?.includes(clientId) && lastBlockInserted.source === source; -} + /** - * Tells if the block is visible on the canvas or not. - * - * @param {Object} state Global application state. - * @param {Object} clientId Client Id of the block. - * @return {boolean} True if the block is visible. + * Internal dependencies */ -function isBlockVisible(state, clientId) { - var _state$blockVisibilit; - return (_state$blockVisibilit = state.blockVisibility?.[clientId]) !== null && _state$blockVisibilit !== void 0 ? _state$blockVisibilit : true; -} -/** - * Returns the list of all hidden blocks. - * - * @param {Object} state Global application state. - * @return {[string]} List of hidden blocks. - */ -const __unstableGetVisibleBlocks = rememo(state => { - const visibleBlocks = new Set(Object.keys(state.blockVisibility).filter(key => state.blockVisibility[key])); - if (visibleBlocks.size === 0) { - return EMPTY_SET; +function BlockControlsFill({ + group = 'default', + controls, + children, + __experimentalShareWithChildBlocks = false +}) { + const Fill = useBlockControlsFill(group, __experimentalShareWithChildBlocks); + if (!Fill) { + return null; } - return visibleBlocks; -}, state => [state.blockVisibility]); + const innerMarkup = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, group === 'default' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { + controls: controls + }), children); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { + document: document + }, (0,external_wp_element_namespaceObject.createElement)(Fill, null, fillProps => { + // `fillProps.forwardedContext` is an array of context provider entries, provided by slot, + // that should wrap the fill markup. + const { + forwardedContext = [] + } = fillProps; + return forwardedContext.reduce((inner, [Provider, props]) => (0,external_wp_element_namespaceObject.createElement)(Provider, { + ...props + }, inner), innerMarkup); + })); +} -/** - * DO-NOT-USE in production. - * This selector is created for internal/experimental only usage and may be - * removed anytime without any warning, causing breakage on any plugin or theme invoking it. - */ -const __unstableGetContentLockingParent = rememo((state, clientId) => { - let current = clientId; - let result; - while (state.blocks.parents.has(current)) { - current = state.blocks.parents.get(current); - if (current && getBlockName(state, current) === 'core/block' || current && getTemplateLock(state, current) === 'contentOnly') { - result = current; - } - } - return result; -}, state => [state.blocks.parents, state.blockListSettings]); +;// CONCATENATED MODULE: external ["wp","warning"] +var external_wp_warning_namespaceObject = window["wp"]["warning"]; +var external_wp_warning_default = /*#__PURE__*/__webpack_require__.n(external_wp_warning_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/slot.js /** - * DO-NOT-USE in production. - * This selector is created for internal/experimental only usage and may be - * removed anytime without any warning, causing breakage on any plugin or theme invoking it. - * - * @param {Object} state Global application state. + * WordPress dependencies */ -function __unstableGetTemporarilyEditingAsBlocks(state) { - return state.temporarilyEditingAsBlocks; -} + + + /** - * DO-NOT-USE in production. - * This selector is created for internal/experimental only usage and may be - * removed anytime without any warning, causing breakage on any plugin or theme invoking it. - * - * @param {Object} state Global application state. + * Internal dependencies */ -function __unstableGetTemporarilyEditingFocusModeToRevert(state) { - return state.temporarilyEditingFocusModeRevert; -} -function __unstableHasActiveBlockOverlayActive(state, clientId) { - // Prevent overlay on blocks with a non-default editing mode. If the mdoe is - // 'disabled' then the overlay is redundant since the block can't be - // selected. If the mode is 'contentOnly' then the overlay is redundant - // since there will be no controls to interact with once selected. - if (getBlockEditingMode(state, clientId) !== 'default') { - return false; - } - // If the block editing is locked, the block overlay is always active. - if (!canEditBlock(state, clientId)) { - return true; - } - const editorMode = __unstableGetEditorMode(state); - // In zoom-out mode, the block overlay is always active for top level blocks. - if (editorMode === 'zoom-out' && clientId && !getBlockRootClientId(state, clientId)) { - return true; +const { + ComponentsContext +} = unlock(external_wp_components_namespaceObject.privateApis); +function BlockControlsSlot({ + group = 'default', + ...props +}) { + const toolbarState = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolbarContext); + const contextState = (0,external_wp_element_namespaceObject.useContext)(ComponentsContext); + const fillProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + forwardedContext: [[external_wp_components_namespaceObject.__experimentalToolbarContext.Provider, { + value: toolbarState + }], [ComponentsContext.Provider, { + value: contextState + }]] + }), [toolbarState, contextState]); + const Slot = block_controls_groups[group]?.Slot; + const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(Slot?.__unstableName); + if (!Slot) { + true ? external_wp_warning_default()(`Unknown BlockControls group "${group}" provided.`) : 0; + return null; } - - // In navigation mode, the block overlay is active when the block is not - // selected (and doesn't contain a selected child). The same behavior is - // also enabled in all modes for blocks that have controlled children - // (reusable block, template part, navigation), unless explicitly disabled - // with `supports.__experimentalDisableBlockOverlay`. - const blockSupportDisable = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(getBlockName(state, clientId), '__experimentalDisableBlockOverlay', false); - const shouldEnableIfUnselected = editorMode === 'navigation' || (blockSupportDisable ? false : areInnerBlocksControlled(state, clientId)); - return shouldEnableIfUnselected && !isBlockSelected(state, clientId) && !hasSelectedInnerBlock(state, clientId, true); -} -function __unstableIsWithinBlockOverlay(state, clientId) { - let parent = state.blocks.parents.get(clientId); - while (!!parent) { - if (__unstableHasActiveBlockOverlayActive(state, parent)) { - return true; - } - parent = state.blocks.parents.get(parent); + if (!fills?.length) { + return null; } - return false; + const slot = (0,external_wp_element_namespaceObject.createElement)(Slot, { + ...props, + bubblesVirtually: true, + fillProps: fillProps + }); + if (group === 'default') { + return slot; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, slot); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/index.js + /** - * @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode + * Internal dependencies */ + +const BlockControls = BlockControlsFill; +BlockControls.Slot = BlockControlsSlot; + +// This is just here for backward compatibility. +const BlockFormatControls = props => { + return (0,external_wp_element_namespaceObject.createElement)(BlockControlsFill, { + group: "inline", + ...props + }); +}; +BlockFormatControls.Slot = props => { + return (0,external_wp_element_namespaceObject.createElement)(BlockControlsSlot, { + group: "inline", + ...props + }); +}; +/* harmony default export */ var block_controls = (BlockControls); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-left.js + /** - * Returns the block editing mode for a given block. - * - * The mode can be one of three options: - * - * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be - * selected. - * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the - * toolbar, the block movers, block settings. - * - `'default'`: Allows editing the block as normal. - * - * Blocks can set a mode using the `useBlockEditingMode` hook. - * - * The mode is inherited by all of the block's inner blocks, unless they have - * their own mode. - * - * A template lock can also set a mode. If the template lock is `'contentOnly'`, - * the block's mode is overridden to `'contentOnly'` if the block has a content - * role attribute, or `'disabled'` otherwise. - * - * @see useBlockEditingMode - * - * @param {Object} state Global application state. - * @param {string} clientId The block client ID, or `''` for the root container. - * - * @return {BlockEditingMode} The block editing mode. One of `'disabled'`, - * `'contentOnly'`, or `'default'`. + * WordPress dependencies */ -const getBlockEditingMode = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientId = '') => { - if (state.blockEditingModes.has(clientId)) { - return state.blockEditingModes.get(clientId); - } - if (!clientId) { - return 'default'; - } - const rootClientId = getBlockRootClientId(state, clientId); - const templateLock = getTemplateLock(state, rootClientId); - if (templateLock === 'contentOnly') { - const name = getBlockName(state, clientId); - const isContent = select(external_wp_blocks_namespaceObject.store).__experimentalHasContentRoleAttribute(name); - return isContent ? 'contentOnly' : 'disabled'; - } - const parentMode = getBlockEditingMode(state, rootClientId); - return parentMode === 'contentOnly' ? 'default' : parentMode; -}); + +const justifyLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9 9v6h11V9H9zM4 20h1.5V4H4v16z" +})); +/* harmony default export */ var justify_left = (justifyLeft); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-center.js /** - * Indicates if a block is ungroupable. - * A block is ungroupable if it is a single grouping block with inner blocks. - * If a block has an `ungroup` transform, it is also ungroupable, without the - * requirement of being the default grouping block. - * Additionally a block can only be ungrouped if it has inner blocks and can - * be removed. - * - * @param {Object} state Global application state. - * @param {string} clientId Client Id of the block. If not passed the selected block's client id will be used. - * @return {boolean} True if the block is ungroupable. + * WordPress dependencies */ -const isUngroupable = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientId = '') => { - const _clientId = clientId || getSelectedBlockClientId(state); - if (!_clientId) { - return false; - } - const { - getGroupingBlockName - } = select(external_wp_blocks_namespaceObject.store); - const block = getBlock(state, _clientId); - const groupingBlockName = getGroupingBlockName(); - const _isUngroupable = block && (block.name === groupingBlockName || (0,external_wp_blocks_namespaceObject.getBlockType)(block.name)?.transforms?.ungroup) && !!block.innerBlocks.length; - return _isUngroupable && canRemoveBlock(state, _clientId); -}); + +const justifyCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12.5 15v5H11v-5H4V9h7V4h1.5v5h7v6h-7Z" +})); +/* harmony default export */ var justify_center = (justifyCenter); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-right.js /** - * Indicates if the provided blocks(by client ids) are groupable. - * We need to have at least one block, have a grouping block name set and - * be able to remove these blocks. - * - * @param {Object} state Global application state. - * @param {string[]} clientIds Block client ids. If not passed the selected blocks client ids will be used. - * @return {boolean} True if the blocks are groupable. + * WordPress dependencies */ -const isGroupable = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, clientIds = EMPTY_ARRAY) => { - const { - getGroupingBlockName - } = select(external_wp_blocks_namespaceObject.store); - const groupingBlockName = getGroupingBlockName(); - const _clientIds = clientIds?.length ? clientIds : getSelectedBlockClientIds(state); - const rootClientId = _clientIds?.length ? getBlockRootClientId(state, _clientIds[0]) : undefined; - const groupingBlockAvailable = canInsertBlockType(state, groupingBlockName, rootClientId); - const _isGroupable = groupingBlockAvailable && _clientIds.length; - return _isGroupable && canRemoveBlocks(state, _clientIds, rootClientId); -}); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/undo-ignore.js -// Keep track of the blocks that should not be pushing an additional -// undo stack when editing the entity. -// See the implementation of `syncDerivedUpdates` and `useBlockSync`. -const undoIgnoreBlocks = new WeakSet(); +const justifyRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M4 15h11V9H4v6zM18.5 4v16H20V4h-1.5z" +})); +/* harmony default export */ var justify_right = (justifyRight); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-space-between.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/private-actions.js /** * WordPress dependencies */ +const justifySpaceBetween = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9 15h6V9H9v6zm-5 5h1.5V4H4v16zM18.5 4v16H20V4h-1.5z" +})); +/* harmony default export */ var justify_space_between = (justifySpaceBetween); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-stretch.js /** - * Internal dependencies + * WordPress dependencies */ -const castArray = maybeArray => Array.isArray(maybeArray) ? maybeArray : [maybeArray]; +const justifyStretch = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M4 4H5.5V20H4V4ZM7 10L17 10V14L7 14V10ZM20 4H18.5V20H20V4Z" +})); +/* harmony default export */ var justify_stretch = (justifyStretch); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-right.js /** - * A list of private/experimental block editor settings that - * should not become a part of the WordPress public API. - * BlockEditorProvider will remove these settings from the - * settings object it receives. - * - * @see https://github.com/WordPress/gutenberg/pull/46131 + * WordPress dependencies */ -const privateSettings = ['inserterMediaCategories', 'blockInspectorAnimation']; + +const arrowRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z" +})); +/* harmony default export */ var arrow_right = (arrowRight); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-down.js /** - * Action that updates the block editor settings and - * conditionally preserves the experimental ones. - * - * @param {Object} settings Updated settings - * @param {Object} options Options object. - * @param {boolean} options.stripExperimentalSettings Whether to strip experimental settings. - * @param {boolean} options.reset Whether to reset the settings. - * @return {Object} Action object + * WordPress dependencies */ -function __experimentalUpdateSettings(settings, { - stripExperimentalSettings = false, - reset = false -} = {}) { - let cleanSettings = settings; - // There are no plugins in the mobile apps, so there is no - // need to strip the experimental settings: - if (stripExperimentalSettings && external_wp_element_namespaceObject.Platform.OS === 'web') { - cleanSettings = {}; - for (const key in settings) { - if (!privateSettings.includes(key)) { - cleanSettings[key] = settings[key]; + +const arrowDown = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z" +})); +/* harmony default export */ var arrow_down = (arrowDown); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/definitions.js +// Layout definitions keyed by layout type. +// Provides a common definition of slugs, classnames, base styles, and spacing styles for each layout type. +// If making changes or additions to layout definitions, be sure to update the corresponding PHP definitions in +// `block-supports/layout.php` so that the server-side and client-side definitions match. +const LAYOUT_DEFINITIONS = { + default: { + name: 'default', + slug: 'flow', + className: 'is-layout-flow', + baseStyles: [{ + selector: ' > .alignleft', + rules: { + float: 'left', + 'margin-inline-start': '0', + 'margin-inline-end': '2em' } - } + }, { + selector: ' > .alignright', + rules: { + float: 'right', + 'margin-inline-start': '2em', + 'margin-inline-end': '0' + } + }, { + selector: ' > .aligncenter', + rules: { + 'margin-left': 'auto !important', + 'margin-right': 'auto !important' + } + }], + spacingStyles: [{ + selector: ' > :first-child:first-child', + rules: { + 'margin-block-start': '0' + } + }, { + selector: ' > :last-child:last-child', + rules: { + 'margin-block-end': '0' + } + }, { + selector: ' > *', + rules: { + 'margin-block-start': null, + 'margin-block-end': '0' + } + }] + }, + constrained: { + name: 'constrained', + slug: 'constrained', + className: 'is-layout-constrained', + baseStyles: [{ + selector: ' > .alignleft', + rules: { + float: 'left', + 'margin-inline-start': '0', + 'margin-inline-end': '2em' + } + }, { + selector: ' > .alignright', + rules: { + float: 'right', + 'margin-inline-start': '2em', + 'margin-inline-end': '0' + } + }, { + selector: ' > .aligncenter', + rules: { + 'margin-left': 'auto !important', + 'margin-right': 'auto !important' + } + }, { + selector: ' > :where(:not(.alignleft):not(.alignright):not(.alignfull))', + rules: { + 'max-width': 'var(--wp--style--global--content-size)', + 'margin-left': 'auto !important', + 'margin-right': 'auto !important' + } + }, { + selector: ' > .alignwide', + rules: { + 'max-width': 'var(--wp--style--global--wide-size)' + } + }], + spacingStyles: [{ + selector: ' > :first-child:first-child', + rules: { + 'margin-block-start': '0' + } + }, { + selector: ' > :last-child:last-child', + rules: { + 'margin-block-end': '0' + } + }, { + selector: ' > *', + rules: { + 'margin-block-start': null, + 'margin-block-end': '0' + } + }] + }, + flex: { + name: 'flex', + slug: 'flex', + className: 'is-layout-flex', + displayMode: 'flex', + baseStyles: [{ + selector: '', + rules: { + 'flex-wrap': 'wrap', + 'align-items': 'center' + } + }, { + selector: ' > *', + rules: { + margin: '0' + } + }], + spacingStyles: [{ + selector: '', + rules: { + gap: null + } + }] + }, + grid: { + name: 'grid', + slug: 'grid', + className: 'is-layout-grid', + displayMode: 'grid', + baseStyles: [{ + selector: ' > *', + rules: { + margin: '0' + } + }], + spacingStyles: [{ + selector: '', + rules: { + gap: null + } + }] } - return { - type: 'UPDATE_SETTINGS', - settings: cleanSettings, - reset - }; -} +}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/utils.js /** - * Hides the block interface (eg. toolbar, outline, etc.) - * - * @return {Object} Action object. + * WordPress dependencies */ -function hideBlockInterface() { - return { - type: 'HIDE_BLOCK_INTERFACE' - }; -} + /** - * Shows the block interface (eg. toolbar, outline, etc.) - * - * @return {Object} Action object. + * Internal dependencies */ -function showBlockInterface() { - return { - type: 'SHOW_BLOCK_INTERFACE' - }; -} + /** - * Yields action objects used in signalling that the blocks corresponding to - * the set of specified client IDs are to be removed. + * Utility to generate the proper CSS selector for layout styles. * - * Compared to `removeBlocks`, this private interface exposes an additional - * parameter; see `forceRemove`. + * @param {string} selectors CSS selector, also supports multiple comma-separated selectors. + * @param {string} append The string to append. * - * @param {string|string[]} clientIds Client IDs of blocks to remove. - * @param {boolean} selectPrevious True if the previous block - * or the immediate parent - * (if no previous block exists) - * should be selected - * when a block is removed. - * @param {boolean} forceRemove Whether to force the operation, - * bypassing any checks for certain - * block types. - */ -const privateRemoveBlocks = (clientIds, selectPrevious = true, forceRemove = false) => ({ - select, - dispatch, - registry -}) => { - if (!clientIds || !clientIds.length) { - return; - } - clientIds = castArray(clientIds); - const rootClientId = select.getBlockRootClientId(clientIds[0]); - const canRemoveBlocks = select.canRemoveBlocks(clientIds, rootClientId); - if (!canRemoveBlocks) { - return; - } - - // In certain editing contexts, we'd like to prevent accidental removal - // of important blocks. For example, in the site editor, the Query Loop - // block is deemed important. In such cases, we'll ask the user for - // confirmation that they intended to remove such block(s). However, - // the editor instance is responsible for presenting those confirmation - // prompts to the user. Any instance opting into removal prompts must - // register using `setBlockRemovalRules()`. - // - // @see https://github.com/WordPress/gutenberg/pull/51145 - const rules = !forceRemove && select.getBlockRemovalRules(); - if (rules) { - const blockNamesForPrompt = new Set(); - - // Given a list of client IDs of blocks that the user intended to - // remove, perform a tree search (BFS) to find all block names - // corresponding to "important" blocks, i.e. blocks that require a - // removal prompt. - const queue = [...clientIds]; - while (queue.length) { - const clientId = queue.shift(); - const blockName = select.getBlockName(clientId); - if (rules[blockName]) { - blockNamesForPrompt.add(blockName); - } - const innerBlocks = select.getBlockOrder(clientId); - queue.push(...innerBlocks); - } - - // If any such blocks were found, trigger the removal prompt and - // skip any other steps (thus postponing actual removal). - if (blockNamesForPrompt.size) { - dispatch(displayBlockRemovalPrompt(clientIds, selectPrevious, Array.from(blockNamesForPrompt))); - return; - } - } - if (selectPrevious) { - dispatch.selectPreviousBlock(clientIds[0], selectPrevious); - } - - // We're batching these two actions because an extra `undo/redo` step can - // be created, based on whether we insert a default block or not. - registry.batch(() => { - dispatch({ - type: 'REMOVE_BLOCKS', - clientIds - }); - // To avoid a focus loss when removing the last block, assure there is - // always a default block if the last of the blocks have been removed. - dispatch(ensureDefaultBlock()); - }); -}; - -/** - * Action which will insert a default block insert action if there - * are no other blocks at the root of the editor. This action should be used - * in actions which may result in no blocks remaining in the editor (removal, - * replacement, etc). + * @return {string} - CSS selector. */ -const ensureDefaultBlock = () => ({ - select, - dispatch -}) => { - // To avoid a focus loss when removing the last block, assure there is - // always a default block if the last of the blocks have been removed. - const count = select.getBlockCount(); - if (count > 0) { - return; - } - - // If there's an custom appender, don't insert default block. - // We have to remember to manually move the focus elsewhere to - // prevent it from being lost though. - const { - __unstableHasCustomAppender - } = select.getSettings(); - if (__unstableHasCustomAppender) { - return; - } - dispatch.insertDefaultBlock(); -}; +function appendSelectors(selectors, append = '') { + // Ideally we shouldn't need the `.editor-styles-wrapper` increased specificity here + // The problem though is that we have a `.editor-styles-wrapper p { margin: reset; }` style + // it's used to reset the default margin added by wp-admin to paragraphs + // so we need this to be higher speficity otherwise, it won't be applied to paragraphs inside containers + // When the post editor is fully iframed, this extra classname could be removed. -/** - * Returns an action object used in signalling that a block removal prompt must - * be displayed. - * - * Contrast with `setBlockRemovalRules`. - * - * @param {string|string[]} clientIds Client IDs of blocks to remove. - * @param {boolean} selectPrevious True if the previous block - * or the immediate parent - * (if no previous block exists) - * should be selected - * when a block is removed. - * @param {string[]} blockNamesForPrompt Names of the blocks that - * triggered the need for - * confirmation before removal. - * - * @return {Object} Action object. - */ -function displayBlockRemovalPrompt(clientIds, selectPrevious, blockNamesForPrompt) { - return { - type: 'DISPLAY_BLOCK_REMOVAL_PROMPT', - clientIds, - selectPrevious, - blockNamesForPrompt - }; + return selectors.split(',').map(subselector => `.editor-styles-wrapper ${subselector}${append ? ` ${append}` : ''}`).join(','); } /** - * Returns an action object used in signalling that a block removal prompt must - * be cleared, either be cause the user has confirmed or canceled the request - * for removal. + * Get generated blockGap CSS rules based on layout definitions provided in theme.json + * Falsy values in the layout definition's spacingStyles rules will be swapped out + * with the provided `blockGapValue`. * - * @return {Object} Action object. + * @param {string} selector The CSS selector to target for the generated rules. + * @param {Object} layoutDefinitions Layout definitions object. + * @param {string} layoutType The layout type (e.g. `default` or `flex`). + * @param {string} blockGapValue The current blockGap value to be applied. + * @return {string} The generated CSS rules. */ -function clearBlockRemovalPrompt() { - return { - type: 'CLEAR_BLOCK_REMOVAL_PROMPT' - }; +function getBlockGapCSS(selector, layoutDefinitions = LAYOUT_DEFINITIONS, layoutType, blockGapValue) { + let output = ''; + if (layoutDefinitions?.[layoutType]?.spacingStyles?.length && blockGapValue) { + layoutDefinitions[layoutType].spacingStyles.forEach(gapStyle => { + output += `${appendSelectors(selector, gapStyle.selector.trim())} { `; + output += Object.entries(gapStyle.rules).map(([cssProperty, value]) => `${cssProperty}: ${value ? value : blockGapValue}`).join('; '); + output += '; }'; + }); + } + return output; } /** - * Returns an action object used to set up any rules that a block editor may - * provide in order to prevent a user from accidentally removing certain - * blocks. These rules are then used to display a confirmation prompt to the - * user. For instance, in the Site Editor, the Query Loop block is important - * enough to warrant such confirmation. - * - * IMPORTANT: Registering rules implicitly signals to the `privateRemoveBlocks` - * action that the editor will be responsible for displaying block removal - * prompts and confirming deletions. This action is meant to be used by - * component `BlockRemovalWarningModal` only. + * Helper method to assign contextual info to clarify + * alignment settings. * - * The data is a record whose keys are block types (e.g. 'core/query') and - * whose values are the explanation to be shown to users (e.g. 'Query Loop - * displays a list of posts or pages.'). + * Besides checking if `contentSize` and `wideSize` have a + * value, we now show this information only if their values + * are not a `css var`. This needs to change when parsing + * css variables land. * - * Contrast with `displayBlockRemovalPrompt`. + * @see https://github.com/WordPress/gutenberg/pull/34710#issuecomment-918000752 * - * @param {Record|false} rules Block removal rules. - * @return {Object} Action object. + * @param {Object} layout The layout object. + * @return {Object} An object with contextual info per alignment. */ -function setBlockRemovalRules(rules = false) { - return { - type: 'SET_BLOCK_REMOVAL_RULES', - rules - }; +function getAlignmentsInfo(layout) { + const { + contentSize, + wideSize, + type = 'default' + } = layout; + const alignmentInfo = {}; + const sizeRegex = /^(?!0)\d+(px|em|rem|vw|vh|%)?$/i; + if (sizeRegex.test(contentSize) && type === 'constrained') { + // translators: %s: container size (i.e. 600px etc) + alignmentInfo.none = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Max %s wide'), contentSize); + } + if (sizeRegex.test(wideSize)) { + // translators: %s: container size (i.e. 600px etc) + alignmentInfo.wide = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Max %s wide'), wideSize); + } + return alignmentInfo; } -/** - * Sets the client ID of the block settings menu that is currently open. - * - * @param {?string} clientId The block client ID. - * @return {Object} Action object. - */ -function setOpenedBlockSettingsMenu(clientId) { - return { - type: 'SET_OPENED_BLOCK_SETTINGS_MENU', - clientId - }; -} -function setStyleOverride(id, style) { - return { - type: 'SET_STYLE_OVERRIDE', - id, - style - }; -} -function deleteStyleOverride(id) { - return { - type: 'DELETE_STYLE_OVERRIDE', - id - }; -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-all.js /** - * A higher-order action that mark every change inside a callback as "non-persistent" - * and ignore pushing to the undo history stack. It's primarily used for synchronized - * derived updates from the block editor without affecting the undo history. - * - * @param {() => void} callback The synchronous callback to derive updates. + * WordPress dependencies */ -function syncDerivedUpdates(callback) { - return ({ - dispatch, - select, - registry - }) => { - registry.batch(() => { - // Mark every change in the `callback` as non-persistent. - dispatch({ - type: 'SET_EXPLICIT_PERSISTENT', - isPersistentChange: false - }); - callback(); - dispatch({ - type: 'SET_EXPLICIT_PERSISTENT', - isPersistentChange: undefined - }); - // Ignore pushing undo stack for the updated blocks. - const updatedBlocks = select.getBlocks(); - undoIgnoreBlocks.add(updatedBlocks); - }); - }; -} +const sidesAll = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z" +})); +/* harmony default export */ var sides_all = (sidesAll); -/** - * Action that sets the element that had focus when focus leaves the editor canvas. - * - * @param {Object} lastFocus The last focused element. - * - * - * @return {Object} Action object. - */ -function setLastFocus(lastFocus = null) { - return { - type: 'LAST_FOCUS', - lastFocus - }; -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-horizontal.js /** - * Action that stops temporarily editing as blocks. - * - * @param {string} clientId The block's clientId. + * WordPress dependencies */ -function stopEditingAsBlocks(clientId) { - return ({ - select, - dispatch - }) => { - const focusModeToRevert = select.__unstableGetTemporarilyEditingFocusModeToRevert(); - dispatch.__unstableMarkNextChangeAsNotPersistent(); - dispatch.updateBlockAttributes(clientId, { - templateLock: 'contentOnly' - }); - dispatch.updateBlockListSettings(clientId, { - ...select.getBlockListSettings(clientId), - templateLock: 'contentOnly' - }); - dispatch.updateSettings({ - focusMode: focusModeToRevert - }); - dispatch.__unstableSetTemporarilyEditingAsBlocks(); - }; -} -function registerBlockBindingsSource(source) { - return { - type: 'REGISTER_BLOCK_BINDINGS_SOURCE', - sourceName: source.name, - sourceLabel: source.label, - useSource: source.useSource, - lockAttributesEditing: source.lockAttributesEditing - }; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/utils.js +const sidesHorizontal = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 + } +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m4.5 7.5v9h1.5v-9z" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m18 7.5v9h1.5v-9z" +})); +/* harmony default export */ var sides_horizontal = (sidesHorizontal); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-vertical.js + /** * WordPress dependencies */ - -const INSERTER_PATTERN_TYPES = { - user: 'user', - theme: 'theme', - directory: 'directory' -}; -const INSERTER_SYNC_TYPES = { - full: 'fully', - unsynced: 'unsynced' -}; -const allPatternsCategory = { - name: 'allPatterns', - label: (0,external_wp_i18n_namespaceObject.__)('All') -}; -const myPatternsCategory = { - name: 'myPatterns', - label: (0,external_wp_i18n_namespaceObject.__)('My patterns') -}; -function isPatternFiltered(pattern, sourceFilter, syncFilter) { - const isUserPattern = pattern.name.startsWith('core/block'); - const isDirectoryPattern = pattern.source === 'core' || pattern.source?.startsWith('pattern-directory'); - - // If theme source selected, filter out user created patterns and those from - // the core patterns directory. - if (sourceFilter === INSERTER_PATTERN_TYPES.theme && (isUserPattern || isDirectoryPattern)) { - return true; +const sidesVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 } +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9z" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 19.5h9v-1.5h-9z" +})); +/* harmony default export */ var sides_vertical = (sidesVertical); - // If the directory source is selected, filter out user created patterns - // and those bundled with the theme. - if (sourceFilter === INSERTER_PATTERN_TYPES.directory && (isUserPattern || !isDirectoryPattern)) { - return true; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-top.js - // If user source selected, filter out theme patterns. - if (sourceFilter === INSERTER_PATTERN_TYPES.user && pattern.type !== INSERTER_PATTERN_TYPES.user) { - return true; - } +/** + * WordPress dependencies + */ - // Filter by sync status. - if (syncFilter === INSERTER_SYNC_TYPES.full && pattern.syncStatus !== '') { - return true; - } - if (syncFilter === INSERTER_SYNC_TYPES.unsynced && pattern.syncStatus !== 'unsynced' && isUserPattern) { - return true; +const sidesTop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 } - return false; -} +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m16.5 6h-9v-1.5h9z" +})); +/* harmony default export */ var sides_top = (sidesTop); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-right.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/private-selectors.js /** - * External dependencies + * WordPress dependencies */ +const sidesRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 + } +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m18 16.5v-9h1.5v9z" +})); +/* harmony default export */ var sides_right = (sidesRight); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-bottom.js /** * WordPress dependencies */ +const sidesBottom = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 + } +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m16.5 19.5h-9v-1.5h9z", + style: { + fill: '#1e1e1e' + } +})); +/* harmony default export */ var sides_bottom = (sidesBottom); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-left.js /** - * Internal dependencies + * WordPress dependencies */ +const sidesLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", + style: { + opacity: 0.25 + } +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m4.5 16.5v-9h1.5v9z" +})); +/* harmony default export */ var sides_left = (sidesLeft); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/utils.js +/** + * WordPress dependencies + */ - +const ALL_SIDES = ['top', 'right', 'bottom', 'left']; +const DEFAULT_VALUES = { + top: undefined, + right: undefined, + bottom: undefined, + left: undefined +}; +const ICONS = { + custom: sides_all, + axial: sides_all, + horizontal: sides_horizontal, + vertical: sides_vertical, + top: sides_top, + right: sides_right, + bottom: sides_bottom, + left: sides_left +}; +const LABELS = { + default: (0,external_wp_i18n_namespaceObject.__)('Spacing control'), + top: (0,external_wp_i18n_namespaceObject.__)('Top'), + bottom: (0,external_wp_i18n_namespaceObject.__)('Bottom'), + left: (0,external_wp_i18n_namespaceObject.__)('Left'), + right: (0,external_wp_i18n_namespaceObject.__)('Right'), + mixed: (0,external_wp_i18n_namespaceObject.__)('Mixed'), + vertical: (0,external_wp_i18n_namespaceObject.__)('Vertical'), + horizontal: (0,external_wp_i18n_namespaceObject.__)('Horizontal'), + axial: (0,external_wp_i18n_namespaceObject.__)('Horizontal & vertical'), + custom: (0,external_wp_i18n_namespaceObject.__)('Custom') +}; +const VIEWS = { + axial: 'axial', + top: 'top', + right: 'right', + bottom: 'bottom', + left: 'left', + custom: 'custom' +}; /** - * Returns true if the block interface is hidden, or false otherwise. + * Checks is given value is a spacing preset. * - * @param {Object} state Global application state. + * @param {string} value Value to check * - * @return {boolean} Whether the block toolbar is hidden. + * @return {boolean} Return true if value is string in format var:preset|spacing|. */ -function private_selectors_isBlockInterfaceHidden(state) { - return state.isBlockInterfaceHidden; +function isValueSpacingPreset(value) { + if (!value?.includes) { + return false; + } + return value === '0' || value.includes('var:preset|spacing|'); } /** - * Gets the client ids of the last inserted blocks. + * Converts a spacing preset into a custom value. * - * @param {Object} state Global application state. - * @return {Array|undefined} Client Ids of the last inserted block(s). + * @param {string} value Value to convert + * @param {Array} spacingSizes Array of the current spacing preset objects + * + * @return {string} Mapping of the spacing preset to its equivalent custom value. */ -function getLastInsertedBlocksClientIds(state) { - return state?.lastBlockInserted?.clientIds; +function getCustomValueFromPreset(value, spacingSizes) { + if (!isValueSpacingPreset(value)) { + return value; + } + const slug = getSpacingPresetSlug(value); + const spacingSize = spacingSizes.find(size => String(size.slug) === slug); + return spacingSize?.size; } /** - * Returns true if the block with the given client ID and all of its descendants - * have an editing mode of 'disabled', or false otherwise. + * Converts a custom value to preset value if one can be found. * - * @param {Object} state Global application state. - * @param {string} clientId The block client ID. + * Returns value as-is if no match is found. * - * @return {boolean} Whether the block and its descendants are disabled. + * @param {string} value Value to convert + * @param {Array} spacingSizes Array of the current spacing preset objects + * + * @return {string} The preset value if it can be found. */ -const isBlockSubtreeDisabled = rememo((state, clientId) => { - const isChildSubtreeDisabled = childClientId => { - return getBlockEditingMode(state, childClientId) === 'disabled' && getBlockOrder(state, childClientId).every(isChildSubtreeDisabled); - }; - return getBlockEditingMode(state, clientId) === 'disabled' && getBlockOrder(state, clientId).every(isChildSubtreeDisabled); -}, state => [state.blocks.parents, state.blocks.order, state.blockEditingModes, state.blockListSettings]); +function getPresetValueFromCustomValue(value, spacingSizes) { + // Return value as-is if it is undefined or is already a preset, or '0'; + if (!value || isValueSpacingPreset(value) || value === '0') { + return value; + } + const spacingMatch = spacingSizes.find(size => String(size.size) === String(value)); + if (spacingMatch?.slug) { + return `var:preset|spacing|${spacingMatch.slug}`; + } + return value; +} /** - * Returns a tree of block objects with only clientID and innerBlocks set. - * Blocks with a 'disabled' editing mode are not included. + * Converts a spacing preset into a custom value. * - * @param {Object} state Global application state. - * @param {?string} rootClientId Optional root client ID of block list. + * @param {string} value Value to convert. * - * @return {Object[]} Tree of block objects with only clientID and innerBlocks set. + * @return {string | undefined} CSS var string for given spacing preset value. */ -const getEnabledClientIdsTree = rememo((state, rootClientId = '') => { - return getBlockOrder(state, rootClientId).flatMap(clientId => { - if (getBlockEditingMode(state, clientId) !== 'disabled') { - return [{ - clientId, - innerBlocks: getEnabledClientIdsTree(state, clientId) - }]; - } - return getEnabledClientIdsTree(state, clientId); - }); -}, state => [state.blocks.order, state.blockEditingModes, state.settings.templateLock, state.blockListSettings]); +function getSpacingPresetCssVar(value) { + if (!value) { + return; + } + const slug = value.match(/var:preset\|spacing\|(.+)/); + if (!slug) { + return value; + } + return `var(--wp--preset--spacing--${slug[1]})`; +} /** - * Returns a list of a given block's ancestors, from top to bottom. Blocks with - * a 'disabled' editing mode are excluded. + * Returns the slug section of the given spacing preset string. * - * @see getBlockParents + * @param {string} value Value to extract slug from. * - * @param {Object} state Global application state. - * @param {string} clientId The block client ID. - * @param {boolean} ascending Order results from bottom to top (true) or top - * to bottom (false). + * @return {string|undefined} The int value of the slug from given spacing preset. */ -const getEnabledBlockParents = rememo((state, clientId, ascending = false) => { - return getBlockParents(state, clientId, ascending).filter(parent => getBlockEditingMode(state, parent) !== 'disabled'); -}, state => [state.blocks.parents, state.blockEditingModes, state.settings.templateLock, state.blockListSettings]); +function getSpacingPresetSlug(value) { + if (!value) { + return; + } + if (value === '0' || value === 'default') { + return value; + } + const slug = value.match(/var:preset\|spacing\|(.+)/); + return slug ? slug[1] : undefined; +} /** - * Selector that returns the data needed to display a prompt when certain - * blocks are removed, or `false` if no such prompt is requested. + * Converts spacing preset value into a Range component value . * - * @param {Object} state Global application state. + * @param {string} presetValue Value to convert to Range value. + * @param {Array} spacingSizes Array of current spacing preset value objects. * - * @return {Object|false} Data for removal prompt display, if any. + * @return {number} The int value for use in Range control. */ -function getRemovalPromptData(state) { - return state.removalPromptData; +function getSliderValueFromPreset(presetValue, spacingSizes) { + if (presetValue === undefined) { + return 0; + } + const slug = parseFloat(presetValue, 10) === 0 ? '0' : getSpacingPresetSlug(presetValue); + const sliderValue = spacingSizes.findIndex(spacingSize => { + return String(spacingSize.slug) === slug; + }); + + // Returning NaN rather than undefined as undefined makes range control thumb sit in center + return sliderValue !== -1 ? sliderValue : NaN; } /** - * Returns true if removal prompt exists, or false otherwise. - * - * @param {Object} state Global application state. + * Gets an items with the most occurrence within an array + * https://stackoverflow.com/a/20762713 * - * @return {boolean} Whether removal prompt exists. + * @param {Array} arr Array of items to check. + * @return {any} The item with the most occurrences. */ -function getBlockRemovalRules(state) { - return state.blockRemovalRules; +function mode(arr) { + return arr.sort((a, b) => arr.filter(v => v === a).length - arr.filter(v => v === b).length).pop(); } /** - * Returns the client ID of the block settings menu that is currently open. + * Gets the 'all' input value from values data. * - * @param {Object} state Global application state. - * @return {string|null} The client ID of the block menu that is currently open. + * @param {Object} values Box spacing values + * + * @return {string} The most common value from all sides of box. */ -function getOpenedBlockSettingsMenu(state) { - return state.openedBlockSettingsMenu; +function getAllRawValue(values = {}) { + return mode(Object.values(values)); } /** - * Returns all style overrides, intended to be merged with global editor styles. + * Checks to determine if values are mixed. * - * @param {Object} state Global application state. + * @param {Object} values Box values. + * @param {Array} sides Sides that values relate to. * - * @return {Map} A map of style IDs to style overrides. + * @return {boolean} Whether values are mixed. */ -function getStyleOverrides(state) { - return state.styleOverrides; +function isValuesMixed(values = {}, sides = ALL_SIDES) { + return Object.values(values).length >= 1 && Object.values(values).length < sides.length || new Set(Object.values(values)).size > 1; } -/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */ /** - * Returns the registered inserter media categories through the public API. + * Checks to determine if values are defined. * - * @param {Object} state Editor state. + * @param {Object} values Box values. * - * @return {InserterMediaCategory[]} Inserter media categories. + * @return {boolean} Whether values are defined. */ -function getRegisteredInserterMediaCategories(state) { - return state.registeredInserterMediaCategories; +function isValuesDefined(values) { + if (values === undefined || values === null) { + return false; + } + return Object.values(values).filter(value => !!value).length > 0; } /** - * Returns an array containing the allowed inserter media categories. - * It merges the registered media categories from extenders with the - * core ones. It also takes into account the allowed `mime_types`, which - * can be altered by `upload_mimes` filter and restrict some of them. + * Determines whether a particular axis has support. If no axis is + * specified, this function checks if either axis is supported. * - * @param {Object} state Global application state. + * @param {Array} sides Supported sides. + * @param {string} axis Which axis to check. * - * @return {InserterMediaCategory[]} Client IDs of descendants. + * @return {boolean} Whether there is support for the specified axis or both axes. */ -const getInserterMediaCategories = rememo(state => { - const { - settings: { - inserterMediaCategories, - allowedMimeTypes, - enableOpenverseMediaCategory - }, - registeredInserterMediaCategories - } = state; - // The allowed `mime_types` can be altered by `upload_mimes` filter and restrict - // some of them. In this case we shouldn't add the category to the available media - // categories list in the inserter. - if (!inserterMediaCategories && !registeredInserterMediaCategories.length || !allowedMimeTypes) { - return; +function hasAxisSupport(sides, axis) { + if (!sides || !sides.length) { + return false; } - const coreInserterMediaCategoriesNames = inserterMediaCategories?.map(({ - name - }) => name) || []; - const mergedCategories = [...(inserterMediaCategories || []), ...(registeredInserterMediaCategories || []).filter(({ - name - }) => !coreInserterMediaCategoriesNames.includes(name))]; - return mergedCategories.filter(category => { - // Check if Openverse category is enabled. - if (!enableOpenverseMediaCategory && category.name === 'openverse') { - return false; - } - return Object.values(allowedMimeTypes).some(mimeType => mimeType.startsWith(`${category.mediaType}/`)); - }); -}, state => [state.settings.inserterMediaCategories, state.settings.allowedMimeTypes, state.settings.enableOpenverseMediaCategory, state.registeredInserterMediaCategories]); -function getFetchedPatterns(state) { - return state.blockPatterns; + const hasHorizontalSupport = sides.includes('horizontal') || sides.includes('left') && sides.includes('right'); + const hasVerticalSupport = sides.includes('vertical') || sides.includes('top') && sides.includes('bottom'); + if (axis === 'horizontal') { + return hasHorizontalSupport; + } + if (axis === 'vertical') { + return hasVerticalSupport; + } + return hasHorizontalSupport || hasVerticalSupport; } /** - * Returns whether there is at least one allowed pattern for inner blocks children. - * This is useful for deferring the parsing of all patterns until needed. + * Determines which menu options should be included in the SidePicker. * - * @param {Object} state Editor state. - * @param {string} [rootClientId=null] Target root client ID. + * @param {Array} sides Supported sides. * - * @return {boolean} If there is at least one allowed pattern. + * @return {Object} Menu options with each option containing label & icon. */ -const hasAllowedPatterns = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => rememo((state, rootClientId = null) => { - const { - getAllPatterns, - __experimentalGetParsedPattern - } = unlock(select(store)); - const patterns = getAllPatterns(); - const { - allowedBlockTypes - } = getSettings(state); - return patterns.some(({ - name, - inserter = true - }) => { - if (!inserter) { - return false; +function getSupportedMenuItems(sides) { + if (!sides || !sides.length) { + return {}; + } + const menuItems = {}; + + // Determine the primary "side" menu options. + const hasHorizontalSupport = hasAxisSupport(sides, 'horizontal'); + const hasVerticalSupport = hasAxisSupport(sides, 'vertical'); + if (hasHorizontalSupport && hasVerticalSupport) { + menuItems.axial = { + label: LABELS.axial, + icon: ICONS.axial + }; + } else if (hasHorizontalSupport) { + menuItems.axial = { + label: LABELS.horizontal, + icon: ICONS.horizontal + }; + } else if (hasVerticalSupport) { + menuItems.axial = { + label: LABELS.vertical, + icon: ICONS.vertical + }; + } + + // Track whether we have any individual sides so we can omit the custom + // option if required. + let numberOfIndividualSides = 0; + ALL_SIDES.forEach(side => { + if (sides.includes(side)) { + numberOfIndividualSides += 1; + menuItems[side] = { + label: LABELS[side], + icon: ICONS[side] + }; } - const { - blocks - } = __experimentalGetParsedPattern(name); - return checkAllowListRecursive(blocks, allowedBlockTypes) && blocks.every(({ - name: blockName - }) => canInsertBlockType(state, blockName, rootClientId)); }); -}, (state, rootClientId) => [getAllPatternsDependants(state), state.settings.allowedBlockTypes, state.settings.templateLock, state.blockListSettings[rootClientId], state.blocks.byClientId.get(rootClientId)])); -const getAllPatterns = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => rememo(state => { - // This setting is left for back compat. - const { - __experimentalBlockPatterns = [], - __experimentalUserPatternCategories = [], - __experimentalReusableBlocks = [] - } = state.settings; - const userPatterns = (__experimentalReusableBlocks !== null && __experimentalReusableBlocks !== void 0 ? __experimentalReusableBlocks : []).map(userPattern => { - return { - name: `core/block/${userPattern.id}`, - id: userPattern.id, - type: INSERTER_PATTERN_TYPES.user, - title: userPattern.title.raw, - categories: userPattern.wp_pattern_category.map(catId => { - const category = (__experimentalUserPatternCategories !== null && __experimentalUserPatternCategories !== void 0 ? __experimentalUserPatternCategories : []).find(({ - id - }) => id === catId); - return category ? category.slug : catId; - }), - content: userPattern.content.raw, - syncStatus: userPattern.wp_pattern_sync_status + + // Add custom item if there are enough sides to warrant a separated view. + if (numberOfIndividualSides > 1) { + menuItems.custom = { + label: LABELS.custom, + icon: ICONS.custom }; - }); - return [...userPatterns, ...__experimentalBlockPatterns, ...unlock(select(store)).getFetchedPatterns()].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name)); -}, getAllPatternsDependants)); + } + return menuItems; +} /** - * Returns the element of the last element that had focus when focus left the editor canvas. + * Checks if the supported sides are balanced for each axis. + * - Horizontal - both left and right sides are supported. + * - Vertical - both top and bottom are supported. * - * @param {Object} state Block editor state. + * @param {Array} sides The supported sides which may be axes as well. * - * @return {Object} Element. + * @return {boolean} Whether or not the supported sides are balanced. */ -function getLastFocus(state) { - return state.lastFocus; -} -function getAllBlockBindingsSources(state) { - return state.blockBindingsSources; -} -function getBlockBindingsSource(state, sourceName) { - return state.blockBindingsSources[sourceName]; +function hasBalancedSidesSupport(sides = []) { + const counts = { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + sides.forEach(side => counts[side] += 1); + return (counts.top + counts.bottom) % 2 === 0 && (counts.left + counts.right) % 2 === 0; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/resolvers.js -const resolvers_getFetchedPatterns = () => async ({ - dispatch, - select -}) => { +/** + * Determines which view the SpacingSizesControl should default to on its + * first render; Axial, Custom, or Single side. + * + * @param {Object} values Current side values. + * @param {Array} sides Supported sides. + * + * @return {string} View to display. + */ +function getInitialView(values = {}, sides) { const { - __experimentalFetchBlockPatterns - } = select.getSettings(); - if (!__experimentalFetchBlockPatterns) { - return []; + top, + right, + bottom, + left + } = values; + const sideValues = [top, right, bottom, left].filter(Boolean); + + // Axial ( Horizontal & vertical ). + // - Has axial side support + // - Has axial side values which match + // - Has no values and the supported sides are balanced + const hasMatchingAxialValues = top === bottom && left === right && (!!top || !!left); + const hasNoValuesAndBalancedSides = !sideValues.length && hasBalancedSidesSupport(sides); + if (hasAxisSupport(sides) && (hasMatchingAxialValues || hasNoValuesAndBalancedSides)) { + return VIEWS.axial; } - const patterns = await __experimentalFetchBlockPatterns(); - dispatch({ - type: 'RECEIVE_BLOCK_PATTERNS', - patterns - }); -}; -resolvers_getFetchedPatterns.shouldInvalidate = action => { - return action.type === 'UPDATE_SETTINGS' && !!action.settings.__experimentalFetchBlockPatterns; -}; -;// CONCATENATED MODULE: external ["wp","a11y"] -var external_wp_a11y_namespaceObject = window["wp"]["a11y"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/selection.js + // Single side. + // - Ensure the side returned is the first side that has a value. + if (sideValues.length === 1) { + let side; + Object.entries(values).some(([key, value]) => { + side = key; + return value !== undefined; + }); + return side; + } + + // Only single side supported and no value defined. + if (sides?.length === 1 && !sideValues.length) { + return sides[0]; + } + + // Default to the Custom (separated sides) view. + return VIEWS.custom; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/gap.js /** - * WordPress dependencies + * Internal dependencies */ /** - * A robust way to retain selection position through various - * transforms is to insert a special character at the position and - * then recover it. + * Returns a BoxControl object value from a given blockGap style value. + * The string check is for backwards compatibility before Gutenberg supported + * split gap values (row and column) and the value was a string n + unit. + * + * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}. + * @return {Object|null} A value to pass to the BoxControl component. */ -const START_OF_SELECTED_AREA = '\u0086'; +function getGapBoxControlValueFromStyle(blockGapValue) { + if (!blockGapValue) { + return null; + } + const isValueString = typeof blockGapValue === 'string'; + return { + top: isValueString ? blockGapValue : blockGapValue?.top, + left: isValueString ? blockGapValue : blockGapValue?.left + }; +} /** - * Retrieve the block attribute that contains the selection position. + * Returns a CSS value for the `gap` property from a given blockGap style. * - * @param {Object} blockAttributes Block attributes. - * @return {string|void} The name of the block attribute that was previously selected. + * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}. + * @param {string?} defaultValue A default gap value. + * @return {string|null} The concatenated gap value (row and column). */ -function retrieveSelectedAttribute(blockAttributes) { - if (!blockAttributes) { - return; +function getGapCSSValue(blockGapValue, defaultValue = '0') { + const blockGapBoxControlValue = getGapBoxControlValueFromStyle(blockGapValue); + if (!blockGapBoxControlValue) { + return null; } - return Object.keys(blockAttributes).find(name => { - const value = blockAttributes[name]; - return (typeof value === 'string' || value instanceof external_wp_richText_namespaceObject.RichTextData) && - // To do: refactor this to use rich text's selection instead, so we - // no longer have to use on this hack inserting a special character. - value.toString().indexOf(START_OF_SELECTED_AREA) !== -1; - }); + const row = getSpacingPresetCssVar(blockGapBoxControlValue?.top) || defaultValue; + const column = getSpacingPresetCssVar(blockGapBoxControlValue?.left) || defaultValue; + return row === column ? row : `${row} ${column}`; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/actions.js -/* eslint no-console: [ 'error', { allow: [ 'error', 'warn' ] } ] */ +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/icons.js + /** * WordPress dependencies */ +const alignBottom = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z" +})); +const alignCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z" +})); +const alignTop = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M9 20h6V9H9v11zM4 4v1.5h16V4H4z" +})); +const alignStretch = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M4 4L20 4L20 5.5L4 5.5L4 4ZM10 7L14 7L14 17L10 17L10 7ZM20 18.5L4 18.5L4 20L20 20L20 18.5Z" +})); +const spaceBetween = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M7 4H17V8L7 8V4ZM7 16L17 16V20L7 20V16ZM20 11.25H4V12.75H20V11.25Z" +})); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/ui.js +/** + * WordPress dependencies + */ @@ -14671,1656 +12088,2124 @@ function retrieveSelectedAttribute(blockAttributes) { * Internal dependencies */ +const BLOCK_ALIGNMENTS_CONTROLS = { + top: { + icon: alignTop, + title: (0,external_wp_i18n_namespaceObject._x)('Align top', 'Block vertical alignment setting') + }, + center: { + icon: alignCenter, + title: (0,external_wp_i18n_namespaceObject._x)('Align middle', 'Block vertical alignment setting') + }, + bottom: { + icon: alignBottom, + title: (0,external_wp_i18n_namespaceObject._x)('Align bottom', 'Block vertical alignment setting') + }, + stretch: { + icon: alignStretch, + title: (0,external_wp_i18n_namespaceObject._x)('Stretch to fill', 'Block vertical alignment setting') + }, + 'space-between': { + icon: spaceBetween, + title: (0,external_wp_i18n_namespaceObject._x)('Space between', 'Block vertical alignment setting') + } +}; +const DEFAULT_CONTROLS = ['top', 'center', 'bottom']; +const DEFAULT_CONTROL = 'top'; +function BlockVerticalAlignmentUI({ + value, + onChange, + controls = DEFAULT_CONTROLS, + isCollapsed = true, + isToolbar +}) { + function applyOrUnset(align) { + return () => onChange(value === align ? undefined : align); + } + const activeAlignment = BLOCK_ALIGNMENTS_CONTROLS[value]; + const defaultAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[DEFAULT_CONTROL]; + const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; + const extraProps = isToolbar ? { + isCollapsed + } : {}; + return (0,external_wp_element_namespaceObject.createElement)(UIComponent, { + icon: activeAlignment ? activeAlignment.icon : defaultAlignmentControl.icon, + label: (0,external_wp_i18n_namespaceObject._x)('Change vertical alignment', 'Block vertical alignment setting label'), + controls: controls.map(control => { + return { + ...BLOCK_ALIGNMENTS_CONTROLS[control], + isActive: value === control, + role: isCollapsed ? 'menuitemradio' : undefined, + onClick: applyOrUnset(control) + }; + }), + ...extraProps + }); +} +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-vertical-alignment-toolbar/README.md + */ +/* harmony default export */ var ui = (BlockVerticalAlignmentUI); -/** @typedef {import('../components/use-on-block-drop/types').WPDropOperation} WPDropOperation */ - -const actions_castArray = maybeArray => Array.isArray(maybeArray) ? maybeArray : [maybeArray]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/index.js /** - * Action that resets blocks state to the specified array of blocks, taking precedence - * over any other content reflected as an edit in state. - * - * @param {Array} blocks Array of blocks. + * Internal dependencies */ -const resetBlocks = blocks => ({ - dispatch -}) => { - dispatch({ - type: 'RESET_BLOCKS', - blocks + +const BlockVerticalAlignmentControl = props => { + return (0,external_wp_element_namespaceObject.createElement)(ui, { + ...props, + isToolbar: false + }); +}; +const BlockVerticalAlignmentToolbar = props => { + return (0,external_wp_element_namespaceObject.createElement)(ui, { + ...props, + isToolbar: true }); - dispatch(validateBlocksToTemplate(blocks)); }; /** - * Block validity is a function of blocks state (at the point of a - * reset) and the template setting. As a compromise to its placement - * across distinct parts of state, it is implemented here as a side - * effect of the block reset action. - * - * @param {Array} blocks Array of blocks. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-vertical-alignment-control/README.md */ -const validateBlocksToTemplate = blocks => ({ - select, - dispatch -}) => { - const template = select.getTemplate(); - const templateLock = select.getTemplateLock(); - // Unlocked templates are considered always valid because they act - // as default values only. - const isBlocksValidToTemplate = !template || templateLock !== 'all' || (0,external_wp_blocks_namespaceObject.doBlocksMatchTemplate)(blocks, template); - // Update if validity has changed. - const isValidTemplate = select.isValidTemplate(); - if (isBlocksValidToTemplate !== isValidTemplate) { - dispatch.setTemplateValidity(isBlocksValidToTemplate); - return isBlocksValidToTemplate; - } -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/justify-content-control/ui.js /** - * A block selection object. - * - * @typedef {Object} WPBlockSelection - * - * @property {string} clientId A block client ID. - * @property {string} attributeKey A block attribute key. - * @property {number} offset An attribute value offset, based on the rich - * text value. See `wp.richText.create`. + * WordPress dependencies */ -/** - * A selection object. - * - * @typedef {Object} WPSelection - * - * @property {WPBlockSelection} start The selection start. - * @property {WPBlockSelection} end The selection end. - */ -/* eslint-disable jsdoc/valid-types */ -/** - * Returns an action object used in signalling that selection state should be - * reset to the specified selection. - * - * @param {WPBlockSelection} selectionStart The selection start. - * @param {WPBlockSelection} selectionEnd The selection end. - * @param {0|-1|null} initialPosition Initial block position. - * - * @return {Object} Action object. - */ -function resetSelection(selectionStart, selectionEnd, initialPosition) { - /* eslint-enable jsdoc/valid-types */ - return { - type: 'RESET_SELECTION', - selectionStart, - selectionEnd, - initialPosition - }; -} -/** - * Returns an action object used in signalling that blocks have been received. - * Unlike resetBlocks, these should be appended to the existing known set, not - * replacing. - * - * @deprecated - * - * @param {Object[]} blocks Array of block objects. - * - * @return {Object} Action object. - */ -function receiveBlocks(blocks) { - external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).receiveBlocks', { - since: '5.9', - alternative: 'resetBlocks or insertBlocks' - }); - return { - type: 'RECEIVE_BLOCKS', - blocks +const icons = { + left: justify_left, + center: justify_center, + right: justify_right, + 'space-between': justify_space_between, + stretch: justify_stretch +}; +function JustifyContentUI({ + allowedControls = ['left', 'center', 'right', 'space-between'], + isCollapsed = true, + onChange, + value, + popoverProps, + isToolbar +}) { + // If the control is already selected we want a click + // again on the control to deselect the item, so we + // call onChange( undefined ) + const handleClick = next => { + if (next === value) { + onChange(undefined); + } else { + onChange(next); + } }; + const icon = value ? icons[value] : icons.left; + const allControls = [{ + name: 'left', + icon: justify_left, + title: (0,external_wp_i18n_namespaceObject.__)('Justify items left'), + isActive: 'left' === value, + onClick: () => handleClick('left') + }, { + name: 'center', + icon: justify_center, + title: (0,external_wp_i18n_namespaceObject.__)('Justify items center'), + isActive: 'center' === value, + onClick: () => handleClick('center') + }, { + name: 'right', + icon: justify_right, + title: (0,external_wp_i18n_namespaceObject.__)('Justify items right'), + isActive: 'right' === value, + onClick: () => handleClick('right') + }, { + name: 'space-between', + icon: justify_space_between, + title: (0,external_wp_i18n_namespaceObject.__)('Space between items'), + isActive: 'space-between' === value, + onClick: () => handleClick('space-between') + }, { + name: 'stretch', + icon: justify_stretch, + title: (0,external_wp_i18n_namespaceObject.__)('Stretch items'), + isActive: 'stretch' === value, + onClick: () => handleClick('stretch') + }]; + const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; + const extraProps = isToolbar ? { + isCollapsed + } : {}; + return (0,external_wp_element_namespaceObject.createElement)(UIComponent, { + icon: icon, + popoverProps: popoverProps, + label: (0,external_wp_i18n_namespaceObject.__)('Change items justification'), + controls: allControls.filter(elem => allowedControls.includes(elem.name)), + ...extraProps + }); } +/* harmony default export */ var justify_content_control_ui = (JustifyContentUI); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/justify-content-control/index.js /** - * Action that updates attributes of multiple blocks with the specified client IDs. - * - * @param {string|string[]} clientIds Block client IDs. - * @param {Object} attributes Block attributes to be merged. Should be keyed by clientIds if - * uniqueByBlock is true. - * @param {boolean} uniqueByBlock true if each block in clientIds array has a unique set of attributes - * @return {Object} Action object. + * Internal dependencies */ -function updateBlockAttributes(clientIds, attributes, uniqueByBlock = false) { - return { - type: 'UPDATE_BLOCK_ATTRIBUTES', - clientIds: actions_castArray(clientIds), - attributes, - uniqueByBlock - }; -} + +const JustifyContentControl = props => { + return (0,external_wp_element_namespaceObject.createElement)(justify_content_control_ui, { + ...props, + isToolbar: false + }); +}; +const JustifyToolbar = props => { + return (0,external_wp_element_namespaceObject.createElement)(justify_content_control_ui, { + ...props, + isToolbar: true + }); +}; /** - * Action that updates the block with the specified client ID. - * - * @param {string} clientId Block client ID. - * @param {Object} updates Block attributes to be merged. - * - * @return {Object} Action object. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/justify-content-control/README.md */ -function updateBlock(clientId, updates) { - return { - type: 'UPDATE_BLOCK', - clientId, - updates - }; + + +;// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.mjs +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } -/* eslint-disable jsdoc/valid-types */ -/** - * Returns an action object used in signalling that the block with the - * specified client ID has been selected, optionally accepting a position - * value reflecting its selection directionality. An initialPosition of -1 - * reflects a reverse selection. - * - * @param {string} clientId Block client ID. - * @param {0|-1|null} initialPosition Optional initial position. Pass as -1 to - * reflect reverse selection. - * - * @return {Object} Action object. - */ -function selectBlock(clientId, initialPosition = 0) { - /* eslint-enable jsdoc/valid-types */ - return { - type: 'SELECT_BLOCK', - initialPosition, - clientId +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +}; + +function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +}; + +function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +}; + +function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +}; + +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} + +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } -/** - * Yields action objects used in signalling that the block preceding the given - * clientId (or optionally, its first parent from bottom to top) - * should be selected. - * - * @param {string} clientId Block client ID. - * @param {boolean} fallbackToParent If true, select the first parent if there is no previous block. - */ -const selectPreviousBlock = (clientId, fallbackToParent = false) => ({ - select, - dispatch -}) => { - const previousBlockClientId = select.getPreviousBlockClientId(clientId); - if (previousBlockClientId) { - dispatch.selectBlock(previousBlockClientId, -1); - } else if (fallbackToParent) { - const firstParentClientId = select.getBlockRootClientId(clientId); - if (firstParentClientId) { - dispatch.selectBlock(firstParentClientId, -1); +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +/** @deprecated */ +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +/** @deprecated */ +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } +} + +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +} + +function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +} + +function __classPrivateFieldIn(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} + +function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + env.stack.push({ value: value, dispose: dispose, async: async }); } + else if (async) { + env.stack.push({ async: true }); + } + return value; +} + +var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; +function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + function next() { + while (env.stack.length) { + var rec = env.stack.pop(); + try { + var result = rec.dispose && rec.dispose.call(rec.value); + if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + catch (e) { + fail(e); + } + } + if (env.hasError) throw env.error; + } + return next(); +} + +/* harmony default export */ var tslib_es6 = ({ + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __createBinding, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, +}); + +;// CONCATENATED MODULE: ./node_modules/lower-case/dist.es2015/index.js /** - * Yields action objects used in signalling that the block following the given - * clientId should be selected. - * - * @param {string} clientId Block client ID. + * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt */ -const selectNextBlock = clientId => ({ - select, - dispatch -}) => { - const nextBlockClientId = select.getNextBlockClientId(clientId); - if (nextBlockClientId) { - dispatch.selectBlock(nextBlockClientId); - } +var SUPPORTED_LOCALE = { + tr: { + regexp: /\u0130|\u0049|\u0049\u0307/g, + map: { + İ: "\u0069", + I: "\u0131", + İ: "\u0069", + }, + }, + az: { + regexp: /\u0130/g, + map: { + İ: "\u0069", + I: "\u0131", + İ: "\u0069", + }, + }, + lt: { + regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g, + map: { + I: "\u0069\u0307", + J: "\u006A\u0307", + Į: "\u012F\u0307", + Ì: "\u0069\u0307\u0300", + Í: "\u0069\u0307\u0301", + Ĩ: "\u0069\u0307\u0303", + }, + }, }; - /** - * Action that starts block multi-selection. - * - * @return {Object} Action object. + * Localized lower case. */ -function startMultiSelect() { - return { - type: 'START_MULTI_SELECT' - }; +function localeLowerCase(str, locale) { + var lang = SUPPORTED_LOCALE[locale.toLowerCase()]; + if (lang) + return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; })); + return lowerCase(str); +} +/** + * Lower case as a function. + */ +function lowerCase(str) { + return str.toLowerCase(); } +;// CONCATENATED MODULE: ./node_modules/no-case/dist.es2015/index.js + +// Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case"). +var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; +// Remove all non-word characters. +var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; /** - * Action that stops block multi-selection. - * - * @return {Object} Action object. + * Normalize the string into something other libraries can manipulate easier. */ -function stopMultiSelect() { - return { - type: 'STOP_MULTI_SELECT' - }; +function noCase(input, options) { + if (options === void 0) { options = {}; } + var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; + var result = dist_es2015_replace(dist_es2015_replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); + var start = 0; + var end = result.length; + // Trim the delimiter from around the output string. + while (result.charAt(start) === "\0") + start++; + while (result.charAt(end - 1) === "\0") + end--; + // Transform each token independently. + return result.slice(start, end).split("\0").map(transform).join(delimiter); +} +/** + * Replace `re` in the input string with the replacement value. + */ +function dist_es2015_replace(input, re, value) { + if (re instanceof RegExp) + return input.replace(re, value); + return re.reduce(function (input, re) { return input.replace(re, value); }, input); +} + +;// CONCATENATED MODULE: ./node_modules/dot-case/dist.es2015/index.js + + +function dotCase(input, options) { + if (options === void 0) { options = {}; } + return noCase(input, __assign({ delimiter: "." }, options)); +} + +;// CONCATENATED MODULE: ./node_modules/param-case/dist.es2015/index.js + + +function paramCase(input, options) { + if (options === void 0) { options = {}; } + return dotCase(input, __assign({ delimiter: "-" }, options)); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/object.js /** - * Action that changes block multi-selection. - * - * @param {string} start First block of the multi selection. - * @param {string} end Last block of the multiselection. - * @param {number|null} __experimentalInitialPosition Optional initial position. Pass as null to skip focus within editor canvas. + * External dependencies */ -const multiSelect = (start, end, __experimentalInitialPosition = 0) => ({ - select, - dispatch -}) => { - const startBlockRootClientId = select.getBlockRootClientId(start); - const endBlockRootClientId = select.getBlockRootClientId(end); - // Only allow block multi-selections at the same level. - if (startBlockRootClientId !== endBlockRootClientId) { - return; - } - dispatch({ - type: 'MULTI_SELECT', - start, - end, - initialPosition: __experimentalInitialPosition - }); - const blockCount = select.getSelectedBlockCount(); - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of selected blocks */ - (0,external_wp_i18n_namespaceObject._n)('%s block selected.', '%s blocks selected.', blockCount), blockCount), 'assertive'); -}; /** - * Action that clears the block selection. + * Converts a path to an array of its fragments. + * Supports strings, numbers and arrays: * - * @return {Object} Action object. + * 'foo' => [ 'foo' ] + * 2 => [ '2' ] + * [ 'foo', 'bar' ] => [ 'foo', 'bar' ] + * + * @param {string|number|Array} path Path + * @return {Array} Normalized path. */ -function clearSelectedBlock() { - return { - type: 'CLEAR_SELECTED_BLOCK' - }; +function normalizePath(path) { + if (Array.isArray(path)) { + return path; + } else if (typeof path === 'number') { + return [path.toString()]; + } + return [path]; } /** - * Action that enables or disables block selection. + * Converts any string to kebab case. + * Backwards compatible with Lodash's `_.kebabCase()`. + * Backwards compatible with `_wp_to_kebab_case()`. * - * @param {boolean} [isSelectionEnabled=true] Whether block selection should - * be enabled. + * @see https://lodash.com/docs/4.17.15#kebabCase + * @see https://developer.wordpress.org/reference/functions/_wp_to_kebab_case/ * - * @return {Object} Action object. + * @param {string} str String to convert. + * @return {string} Kebab-cased string */ -function toggleSelection(isSelectionEnabled = true) { - return { - type: 'TOGGLE_SELECTION', - isSelectionEnabled - }; -} -function getBlocksWithDefaultStylesApplied(blocks, blockEditorSettings) { - var _blockEditorSettings$; - const preferredStyleVariations = (_blockEditorSettings$ = blockEditorSettings?.__experimentalPreferredStyleVariations?.value) !== null && _blockEditorSettings$ !== void 0 ? _blockEditorSettings$ : {}; - return blocks.map(block => { - const blockName = block.name; - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true)) { - return block; - } - if (!preferredStyleVariations[blockName]) { - return block; - } - const className = block.attributes?.className; - if (className?.includes('is-style-')) { - return block; - } - const { - attributes = {} - } = block; - const blockStyle = preferredStyleVariations[blockName]; - return { - ...block, - attributes: { - ...attributes, - className: `${className || ''} is-style-${blockStyle}`.trim() - } - }; +function kebabCase(str) { + let input = str; + if (typeof str !== 'string') { + var _str$toString; + input = (_str$toString = str?.toString?.()) !== null && _str$toString !== void 0 ? _str$toString : ''; + } + + // See https://github.com/lodash/lodash/blob/b185fcee26b2133bd071f4aaca14b455c2ed1008/lodash.js#L4970 + input = input.replace(/['\u2019]/, ''); + return paramCase(input, { + splitRegexp: [/(?!(?:1ST|2ND|3RD|[4-9]TH)(?![a-z]))([a-z0-9])([A-Z])/g, + // fooBar => foo-bar, 3Bar => 3-bar + /(?!(?:1st|2nd|3rd|[4-9]th)(?![a-z]))([0-9])([a-z])/g, + // 3bar => 3-bar + /([A-Za-z])([0-9])/g, + // Foo3 => foo-3, foo3 => foo-3 + /([A-Z])([A-Z][a-z])/g // FOOBar => foo-bar + ] }); } -/* eslint-disable jsdoc/valid-types */ /** - * Action that replaces given blocks with one or more replacement blocks. - * - * @param {(string|string[])} clientIds Block client ID(s) to replace. - * @param {(Object|Object[])} blocks Replacement block(s). - * @param {number} indexToSelect Index of replacement block to select. - * @param {0|-1|null} initialPosition Index of caret after in the selected block after the operation. - * @param {?Object} meta Optional Meta values to be passed to the action object. + * Clones an object. + * Arrays are also cloned as arrays. + * Non-object values are returned unchanged. * - * @return {Object} Action object. + * @param {*} object Object to clone. + * @return {*} Cloned object, or original literal non-object value. */ -const replaceBlocks = (clientIds, blocks, indexToSelect, initialPosition = 0, meta) => ({ - select, - dispatch, - registry -}) => { - /* eslint-enable jsdoc/valid-types */ - clientIds = actions_castArray(clientIds); - blocks = getBlocksWithDefaultStylesApplied(actions_castArray(blocks), select.getSettings()); - const rootClientId = select.getBlockRootClientId(clientIds[0]); - // Replace is valid if the new blocks can be inserted in the root block. - for (let index = 0; index < blocks.length; index++) { - const block = blocks[index]; - const canInsertBlock = select.canInsertBlockType(block.name, rootClientId); - if (!canInsertBlock) { - return; - } +function cloneObject(object) { + if (Array.isArray(object)) { + return object.map(cloneObject); } - // We're batching these two actions because an extra `undo/redo` step can - // be created, based on whether we insert a default block or not. - registry.batch(() => { - dispatch({ - type: 'REPLACE_BLOCKS', - clientIds, - blocks, - time: Date.now(), - indexToSelect, - initialPosition, - meta - }); - // To avoid a focus loss when removing the last block, assure there is - // always a default block if the last of the blocks have been removed. - dispatch.ensureDefaultBlock(); - }); -}; + if (object && typeof object === 'object') { + return { + ...Object.fromEntries(Object.entries(object).map(([key, value]) => [key, cloneObject(value)])) + }; + } + return object; +} /** - * Action that replaces a single block with one or more replacement blocks. - * - * @param {(string|string[])} clientId Block client ID to replace. - * @param {(Object|Object[])} block Replacement block(s). + * Immutably sets a value inside an object. Like `lodash#set`, but returning a + * new object. Treats nullish initial values as empty objects. Clones any + * nested objects. Supports arrays, too. * - * @return {Object} Action object. + * @param {Object} object Object to set a value in. + * @param {number|string|Array} path Path in the object to modify. + * @param {*} value New value to set. + * @return {Object} Cloned object with the new value set. */ -function replaceBlock(clientId, block) { - return replaceBlocks(clientId, block); +function setImmutably(object, path, value) { + const normalizedPath = normalizePath(path); + const newObject = object ? cloneObject(object) : {}; + normalizedPath.reduce((acc, key, i) => { + if (acc[key] === undefined) { + if (Number.isInteger(path[i + 1])) { + acc[key] = []; + } else { + acc[key] = {}; + } + } + if (i === normalizedPath.length - 1) { + acc[key] = value; + } + return acc[key]; + }, newObject); + return newObject; } /** - * Higher-order action creator which, given the action type to dispatch creates - * an action creator for managing block movement. - * - * @param {string} type Action type to dispatch. + * Helper util to return a value from a certain path of the object. + * Path is specified as either: + * - a string of properties, separated by dots, for example: "x.y". + * - an array of properties, for example `[ 'x', 'y' ]`. + * You can also specify a default value in case the result is nullish. * - * @return {Function} Action creator. + * @param {Object} object Input object. + * @param {string|Array} path Path to the object property. + * @param {*} defaultValue Default value if the value at the specified path is nullish. + * @return {*} Value of the object property at the specified path. */ -const createOnMove = type => (clientIds, rootClientId) => ({ - select, - dispatch -}) => { - // If one of the blocks is locked or the parent is locked, we cannot move any block. - const canMoveBlocks = select.canMoveBlocks(clientIds, rootClientId); - if (!canMoveBlocks) { - return; - } - dispatch({ - type, - clientIds: actions_castArray(clientIds), - rootClientId +const getValueFromObjectPath = (object, path, defaultValue) => { + var _value; + const normalizedPath = Array.isArray(path) ? path : path.split('.'); + let value = object; + normalizedPath.forEach(fieldName => { + value = value?.[fieldName]; }); + return (_value = value) !== null && _value !== void 0 ? _value : defaultValue; }; -const moveBlocksDown = createOnMove('MOVE_BLOCKS_DOWN'); -const moveBlocksUp = createOnMove('MOVE_BLOCKS_UP'); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-setting/index.js /** - * Action that moves given blocks to a new position. - * - * @param {?string} clientIds The client IDs of the blocks. - * @param {?string} fromRootClientId Root client ID source. - * @param {?string} toRootClientId Root client ID destination. - * @param {number} index The index to move the blocks to. + * WordPress dependencies */ -const moveBlocksToPosition = (clientIds, fromRootClientId = '', toRootClientId = '', index) => ({ - select, - dispatch -}) => { - const canMoveBlocks = select.canMoveBlocks(clientIds, fromRootClientId); - // If one of the blocks is locked or the parent is locked, we cannot move any block. - if (!canMoveBlocks) { - return; - } - // If moving inside the same root block the move is always possible. - if (fromRootClientId !== toRootClientId) { - const canRemoveBlocks = select.canRemoveBlocks(clientIds, fromRootClientId); - // If we're moving to another block, it means we're deleting blocks from - // the original block, so we need to check if removing is possible. - if (!canRemoveBlocks) { - return; - } - const canInsertBlocks = select.canInsertBlocks(clientIds, toRootClientId); - // If moving to other parent block, the move is possible if we can insert a block of the same type inside the new parent block. - if (!canInsertBlocks) { +/** + * Internal dependencies + */ + + + +const blockedPaths = ['color', 'border', 'dimensions', 'typography', 'spacing']; +const deprecatedFlags = { + 'color.palette': settings => settings.colors, + 'color.gradients': settings => settings.gradients, + 'color.custom': settings => settings.disableCustomColors === undefined ? undefined : !settings.disableCustomColors, + 'color.customGradient': settings => settings.disableCustomGradients === undefined ? undefined : !settings.disableCustomGradients, + 'typography.fontSizes': settings => settings.fontSizes, + 'typography.customFontSize': settings => settings.disableCustomFontSizes === undefined ? undefined : !settings.disableCustomFontSizes, + 'typography.lineHeight': settings => settings.enableCustomLineHeight, + 'spacing.units': settings => { + if (settings.enableCustomUnits === undefined) { return; } - } - dispatch({ - type: 'MOVE_BLOCKS_TO_POSITION', - fromRootClientId, - toRootClientId, - clientIds, - index - }); + if (settings.enableCustomUnits === true) { + return ['px', 'em', 'rem', 'vh', 'vw', '%']; + } + return settings.enableCustomUnits; + }, + 'spacing.padding': settings => settings.enableCustomSpacing +}; +const prefixedFlags = { + /* + * These were only available in the plugin + * and can be removed when the minimum WordPress version + * for the plugin is 5.9. + */ + 'border.customColor': 'border.color', + 'border.customStyle': 'border.style', + 'border.customWidth': 'border.width', + 'typography.customFontStyle': 'typography.fontStyle', + 'typography.customFontWeight': 'typography.fontWeight', + 'typography.customLetterSpacing': 'typography.letterSpacing', + 'typography.customTextDecorations': 'typography.textDecoration', + 'typography.customTextTransforms': 'typography.textTransform', + /* + * These were part of WordPress 5.8 and we need to keep them. + */ + 'border.customRadius': 'border.radius', + 'spacing.customMargin': 'spacing.margin', + 'spacing.customPadding': 'spacing.padding', + 'typography.customLineHeight': 'typography.lineHeight' }; /** - * Action that moves given block to a new position. + * Remove `custom` prefixes for flags that did not land in 5.8. * - * @param {?string} clientId The client ID of the block. - * @param {?string} fromRootClientId Root client ID source. - * @param {?string} toRootClientId Root client ID destination. - * @param {number} index The index to move the block to. + * This provides continued support for `custom` prefixed properties. It will + * be removed once third party devs have had sufficient time to update themes, + * plugins, etc. + * + * @see https://github.com/WordPress/gutenberg/pull/34485 + * + * @param {string} path Path to desired value in settings. + * @return {string} The value for defined setting. */ -function moveBlockToPosition(clientId, fromRootClientId = '', toRootClientId = '', index) { - return moveBlocksToPosition([clientId], fromRootClientId, toRootClientId, index); -} +const removeCustomPrefixes = path => { + return prefixedFlags[path] || path; +}; /** - * Action that inserts a single block, optionally at a specific index respective a root block list. - * - * Only allowed blocks are inserted. The action may fail silently for blocks that are not allowed or if - * a templateLock is active on the block list. + * Hook that retrieves the given setting for the block instance in use. * - * @param {Object} block Block object to insert. - * @param {?number} index Index at which block should be inserted. - * @param {?string} rootClientId Optional root client ID of block list on which to insert. - * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true. - * @param {?Object} meta Optional Meta values to be passed to the action object. + * It looks up the settings first in the block instance hierarchy. + * If none is found, it'll look it up in the block editor store. * - * @return {Object} Action object. + * @param {string} path The path to the setting. + * @return {any} Returns the value defined for the setting. + * @example + * ```js + * const isEnabled = useSetting( 'typography.dropCap' ); + * ``` */ -function insertBlock(block, index, rootClientId, updateSelection, meta) { - return insertBlocks([block], index, rootClientId, updateSelection, 0, meta); +function use_setting_useSetting(path) { + const { + name: blockName, + clientId + } = useBlockEditContext(); + return (0,external_wp_data_namespaceObject.useSelect)(select => { + if (blockedPaths.includes(path)) { + // eslint-disable-next-line no-console + console.warn('Top level useSetting paths are disabled. Please use a subpath to query the information needed.'); + return undefined; + } + + // 0. Allow third parties to filter the block's settings at runtime. + let result = (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.useSetting.before', undefined, path, clientId, blockName); + if (undefined !== result) { + return result; + } + const normalizedPath = removeCustomPrefixes(path); + + // 1. Take settings from the block instance or its ancestors. + // Start from the current block and work our way up the ancestors. + const candidates = [clientId, ...select(store).getBlockParents(clientId, /* ascending */true)]; + for (const candidateClientId of candidates) { + const candidateBlockName = select(store).getBlockName(candidateClientId); + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(candidateBlockName, '__experimentalSettings', false)) { + var _getValueFromObjectPa; + const candidateAtts = select(store).getBlockAttributes(candidateClientId); + result = (_getValueFromObjectPa = getValueFromObjectPath(candidateAtts, `settings.blocks.${blockName}.${normalizedPath}`)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(candidateAtts, `settings.${normalizedPath}`); + if (result !== undefined) { + // Stop the search for more distant ancestors and move on. + break; + } + } + } + + // 2. Fall back to the settings from the block editor store (__experimentalFeatures). + const settings = select(store).getSettings(); + if (result === undefined) { + var _getValueFromObjectPa2; + const defaultsPath = `__experimentalFeatures.${normalizedPath}`; + const blockPath = `__experimentalFeatures.blocks.${blockName}.${normalizedPath}`; + result = (_getValueFromObjectPa2 = getValueFromObjectPath(settings, blockPath)) !== null && _getValueFromObjectPa2 !== void 0 ? _getValueFromObjectPa2 : getValueFromObjectPath(settings, defaultsPath); + } + + // Return if the setting was found in either the block instance or the store. + if (result !== undefined) { + if (external_wp_blocks_namespaceObject.__EXPERIMENTAL_PATHS_WITH_MERGE[normalizedPath]) { + var _ref, _result$custom; + return (_ref = (_result$custom = result.custom) !== null && _result$custom !== void 0 ? _result$custom : result.theme) !== null && _ref !== void 0 ? _ref : result.default; + } + return result; + } + + // 3. Otherwise, use deprecated settings. + const deprecatedSettingsValue = deprecatedFlags[normalizedPath] ? deprecatedFlags[normalizedPath](settings) : undefined; + if (deprecatedSettingsValue !== undefined) { + return deprecatedSettingsValue; + } + + // 4. Fallback for typography.dropCap: + // This is only necessary to support typography.dropCap. + // when __experimentalFeatures are not present (core without plugin). + // To remove when __experimentalFeatures are ported to core. + return normalizedPath === 'typography.dropCap' ? true : undefined; + }, [blockName, clientId, path]); } -/* eslint-disable jsdoc/valid-types */ +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/fluid-utils.js /** - * Action that inserts an array of blocks, optionally at a specific index respective a root block list. + * The fluid utilities must match the backend equivalent. + * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php + * --------------------------------------------------------------- + */ + +// Defaults. +const DEFAULT_MAXIMUM_VIEWPORT_WIDTH = '1600px'; +const DEFAULT_MINIMUM_VIEWPORT_WIDTH = '320px'; +const DEFAULT_SCALE_FACTOR = 1; +const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25; +const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75; +const DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px'; + +/** + * Computes a fluid font-size value that uses clamp(). A minimum and maximum + * font size OR a single font size can be specified. * - * Only allowed blocks are inserted. The action may fail silently for blocks that are not allowed or if - * a templateLock is active on the block list. + * If a single font size is specified, it is scaled up and down using a logarithmic scale. * - * @param {Object[]} blocks Block objects to insert. - * @param {?number} index Index at which block should be inserted. - * @param {?string} rootClientId Optional root client ID of block list on which to insert. - * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true. - * @param {0|-1|null} initialPosition Initial focus position. Setting it to null prevent focusing the inserted block. - * @param {?Object} meta Optional Meta values to be passed to the action object. + * @example + * ```js + * // Calculate fluid font-size value from a minimum and maximum value. + * const fontSize = getComputedFluidTypographyValue( { + * minimumFontSize: '20px', + * maximumFontSize: '45px' + * } ); + * // Calculate fluid font-size value from a single font size. + * const fontSize = getComputedFluidTypographyValue( { + * fontSize: '30px', + * } ); + * ``` * - * @return {Object} Action object. + * @param {Object} args + * @param {?string} args.minimumViewportWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified. + * @param {?string} args.maximumViewportWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified. + * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified. + * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional. + * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional. + * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional. + * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional. + * + * @return {string|null} A font-size value using clamp(). */ -const insertBlocks = (blocks, index, rootClientId, updateSelection = true, initialPosition = 0, meta) => ({ - select, - dispatch -}) => { - /* eslint-enable jsdoc/valid-types */ - if (initialPosition !== null && typeof initialPosition === 'object') { - meta = initialPosition; - initialPosition = 0; - external_wp_deprecated_default()("meta argument in wp.data.dispatch('core/block-editor')", { - since: '5.8', - hint: 'The meta argument is now the 6th argument of the function' +function getComputedFluidTypographyValue({ + minimumFontSize, + maximumFontSize, + fontSize, + minimumViewportWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH, + maximumViewportWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH, + scaleFactor = DEFAULT_SCALE_FACTOR, + minimumFontSizeLimit +}) { + // Validate incoming settings and set defaults. + minimumFontSizeLimit = !!getTypographyValueAndUnit(minimumFontSizeLimit) ? minimumFontSizeLimit : DEFAULT_MINIMUM_FONT_SIZE_LIMIT; + + /* + * Calculates missing minimumFontSize and maximumFontSize from + * defaultFontSize if provided. + */ + if (fontSize) { + // Parses default font size. + const fontSizeParsed = getTypographyValueAndUnit(fontSize); + + // Protect against invalid units. + if (!fontSizeParsed?.unit) { + return null; + } + + // Parses the minimum font size limit, so we can perform checks using it. + const minimumFontSizeLimitParsed = getTypographyValueAndUnit(minimumFontSizeLimit, { + coerceTo: fontSizeParsed.unit }); - } - blocks = getBlocksWithDefaultStylesApplied(actions_castArray(blocks), select.getSettings()); - const allowedBlocks = []; - for (const block of blocks) { - const isValid = select.canInsertBlockType(block.name, rootClientId); - if (isValid) { - allowedBlocks.push(block); + + // Don't enforce minimum font size if a font size has explicitly set a min and max value. + if (!!minimumFontSizeLimitParsed?.value && !minimumFontSize && !maximumFontSize) { + /* + * If a minimum size was not passed to this function + * and the user-defined font size is lower than $minimum_font_size_limit, + * do not calculate a fluid value. + */ + if (fontSizeParsed?.value <= minimumFontSizeLimitParsed?.value) { + return null; + } + } + + // If no fluid max font size is available use the incoming value. + if (!maximumFontSize) { + maximumFontSize = `${fontSizeParsed.value}${fontSizeParsed.unit}`; + } + + /* + * If no minimumFontSize is provided, create one using + * the given font size multiplied by the min font size scale factor. + */ + if (!minimumFontSize) { + const fontSizeValueInPx = fontSizeParsed.unit === 'px' ? fontSizeParsed.value : fontSizeParsed.value * 16; + + /* + * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum, + * that is, how quickly the size factor reaches 0 given increasing font size values. + * For a - b * log2(), lower values of b will make the curve move towards the minimum faster. + * The scale factor is constrained between min and max values. + */ + const minimumFontSizeFactor = Math.min(Math.max(1 - 0.075 * Math.log2(fontSizeValueInPx), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX); + + // Calculates the minimum font size. + const calculatedMinimumFontSize = roundToPrecision(fontSizeParsed.value * minimumFontSizeFactor, 3); + + // Only use calculated min font size if it's > $minimum_font_size_limit value. + if (!!minimumFontSizeLimitParsed?.value && calculatedMinimumFontSize < minimumFontSizeLimitParsed?.value) { + minimumFontSize = `${minimumFontSizeLimitParsed.value}${minimumFontSizeLimitParsed.unit}`; + } else { + minimumFontSize = `${calculatedMinimumFontSize}${fontSizeParsed.unit}`; + } } } - if (allowedBlocks.length) { - dispatch({ - type: 'INSERT_BLOCKS', - blocks: allowedBlocks, - index, - rootClientId, - time: Date.now(), - updateSelection, - initialPosition: updateSelection ? initialPosition : null, - meta - }); + + // Grab the minimum font size and normalize it in order to use the value for calculations. + const minimumFontSizeParsed = getTypographyValueAndUnit(minimumFontSize); + + // We get a 'preferred' unit to keep units consistent when calculating, + // otherwise the result will not be accurate. + const fontSizeUnit = minimumFontSizeParsed?.unit || 'rem'; + + // Grabs the maximum font size and normalize it in order to use the value for calculations. + const maximumFontSizeParsed = getTypographyValueAndUnit(maximumFontSize, { + coerceTo: fontSizeUnit + }); + + // Checks for mandatory min and max sizes, and protects against unsupported units. + if (!minimumFontSizeParsed || !maximumFontSizeParsed) { + return null; + } + + // Uses rem for accessible fluid target font scaling. + const minimumFontSizeRem = getTypographyValueAndUnit(minimumFontSize, { + coerceTo: 'rem' + }); + + // Viewport widths defined for fluid typography. Normalize units + const maximumViewportWidthParsed = getTypographyValueAndUnit(maximumViewportWidth, { + coerceTo: fontSizeUnit + }); + const minimumViewportWidthParsed = getTypographyValueAndUnit(minimumViewportWidth, { + coerceTo: fontSizeUnit + }); + + // Protect against unsupported units. + if (!maximumViewportWidthParsed || !minimumViewportWidthParsed || !minimumFontSizeRem) { + return null; } -}; + + // Build CSS rule. + // Borrowed from https://websemantics.uk/tools/responsive-font-calculator/. + const minViewportWidthOffsetValue = roundToPrecision(minimumViewportWidthParsed.value / 100, 3); + const viewportWidthOffset = roundToPrecision(minViewportWidthOffsetValue, 3) + fontSizeUnit; + const linearFactor = 100 * ((maximumFontSizeParsed.value - minimumFontSizeParsed.value) / (maximumViewportWidthParsed.value - minimumViewportWidthParsed.value)); + const linearFactorScaled = roundToPrecision((linearFactor || 1) * scaleFactor, 3); + const fluidTargetFontSize = `${minimumFontSizeRem.value}${minimumFontSizeRem.unit} + ((1vw - ${viewportWidthOffset}) * ${linearFactorScaled})`; + return `clamp(${minimumFontSize}, ${fluidTargetFontSize}, ${maximumFontSize})`; +} /** - * Action that shows the insertion point. + * Internal method that checks a string for a unit and value and returns an array consisting of `'value'` and `'unit'`, e.g., [ '42', 'rem' ]. + * A raw font size of `value + unit` is expected. If the value is an integer, it will convert to `value + 'px'`. * - * @param {?string} rootClientId Optional root client ID of block list on - * which to insert. - * @param {?number} index Index at which block should be inserted. - * @param {?Object} __unstableOptions Additional options. - * @property {boolean} __unstableWithInserter Whether or not to show an inserter button. - * @property {WPDropOperation} operation The operation to perform when applied, - * either 'insert' or 'replace' for now. + * @param {string|number} rawValue Raw size value from theme.json. + * @param {Object|undefined} options Calculation options. * - * @return {Object} Action object. + * @return {{ unit: string, value: number }|null} An object consisting of `'value'` and `'unit'` properties. */ -function showInsertionPoint(rootClientId, index, __unstableOptions = {}) { +function getTypographyValueAndUnit(rawValue, options = {}) { + if (typeof rawValue !== 'string' && typeof rawValue !== 'number') { + return null; + } + + // Converts numeric values to pixel values by default. + if (isFinite(rawValue)) { + rawValue = `${rawValue}px`; + } const { - __unstableWithInserter, - operation, - nearestSide - } = __unstableOptions; + coerceTo, + rootSizeValue, + acceptableUnits + } = { + coerceTo: '', + // Default browser font size. Later we could inject some JS to compute this `getComputedStyle( document.querySelector( "html" ) ).fontSize`. + rootSizeValue: 16, + acceptableUnits: ['rem', 'px', 'em'], + ...options + }; + const acceptableUnitsGroup = acceptableUnits?.join('|'); + const regexUnits = new RegExp(`^(\\d*\\.?\\d+)(${acceptableUnitsGroup}){1,1}$`); + const matches = rawValue.match(regexUnits); + + // We need a number value and a unit. + if (!matches || matches.length < 3) { + return null; + } + let [, value, unit] = matches; + let returnValue = parseFloat(value); + if ('px' === coerceTo && ('em' === unit || 'rem' === unit)) { + returnValue = returnValue * rootSizeValue; + unit = coerceTo; + } + if ('px' === unit && ('em' === coerceTo || 'rem' === coerceTo)) { + returnValue = returnValue / rootSizeValue; + unit = coerceTo; + } + + /* + * No calculation is required if swapping between em and rem yet, + * since we assume a root size value. Later we might like to differentiate between + * :root font size (rem) and parent element font size (em) relativity. + */ + if (('em' === coerceTo || 'rem' === coerceTo) && ('em' === unit || 'rem' === unit)) { + unit = coerceTo; + } return { - type: 'SHOW_INSERTION_POINT', - rootClientId, - index, - __unstableWithInserter, - operation, - nearestSide + value: roundToPrecision(returnValue, 3), + unit }; } -/** - * Action that hides the insertion point. - */ -const hideInsertionPoint = () => ({ - select, - dispatch -}) => { - if (!select.isBlockInsertionPointVisible()) { - return; - } - dispatch({ - type: 'HIDE_INSERTION_POINT' - }); -}; /** - * Action that resets the template validity. + * Returns a value rounded to defined precision. + * Returns `undefined` if the value is not a valid finite number. * - * @param {boolean} isValid template validity flag. + * @param {number} value Raw value. + * @param {number} digits The number of digits to appear after the decimal point * - * @return {Object} Action object. + * @return {number|undefined} Value rounded to standard precision. */ -function setTemplateValidity(isValid) { - return { - type: 'SET_TEMPLATE_VALIDITY', - isValid - }; +function roundToPrecision(value, digits = 3) { + const base = Math.pow(10, digits); + return Number.isFinite(value) ? parseFloat(Math.round(value * base) / base) : undefined; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/typography-utils.js /** - * Action that synchronizes the template with the list of blocks. - * - * @return {Object} Action object. + * The fluid utilities must match the backend equivalent. + * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php + * --------------------------------------------------------------- */ -const synchronizeTemplate = () => ({ - select, - dispatch -}) => { - dispatch({ - type: 'SYNCHRONIZE_TEMPLATE' - }); - const blocks = select.getBlocks(); - const template = select.getTemplate(); - const updatedBlockList = (0,external_wp_blocks_namespaceObject.synchronizeBlocksWithTemplate)(blocks, template); - dispatch.resetBlocks(updatedBlockList); -}; /** - * Delete the current selection. - * - * @param {boolean} isForward + * Internal dependencies */ -const __unstableDeleteSelection = isForward => ({ - registry, - select, - dispatch -}) => { - const selectionAnchor = select.getSelectionStart(); - const selectionFocus = select.getSelectionEnd(); - if (selectionAnchor.clientId === selectionFocus.clientId) return; - // It's not mergeable if there's no rich text selection. - if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false; - const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId); - const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); - // It's not mergeable if the selection doesn't start and end in the same - // block list. Maybe in the future it should be allowed. - if (anchorRootClientId !== focusRootClientId) { - return; - } - const blockOrder = select.getBlockOrder(anchorRootClientId); - const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); - const focusIndex = blockOrder.indexOf(selectionFocus.clientId); - - // Reassign selection start and end based on order. - let selectionStart, selectionEnd; - if (anchorIndex > focusIndex) { - selectionStart = selectionFocus; - selectionEnd = selectionAnchor; - } else { - selectionStart = selectionAnchor; - selectionEnd = selectionFocus; - } - const targetSelection = isForward ? selectionEnd : selectionStart; - const targetBlock = select.getBlock(targetSelection.clientId); - const targetBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlock.name); - if (!targetBlockType.merge) { - return; - } - const selectionA = selectionStart; - const selectionB = selectionEnd; - const blockA = select.getBlock(selectionA.clientId); - const blockB = select.getBlock(selectionB.clientId); - const htmlA = blockA.attributes[selectionA.attributeKey]; - const htmlB = blockB.attributes[selectionB.attributeKey]; - let valueA = (0,external_wp_richText_namespaceObject.create)({ - html: htmlA - }); - let valueB = (0,external_wp_richText_namespaceObject.create)({ - html: htmlB - }); - valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, selectionA.offset, valueA.text.length); - valueB = (0,external_wp_richText_namespaceObject.insert)(valueB, START_OF_SELECTED_AREA, 0, selectionB.offset); - - // Clone the blocks so we don't manipulate the original. - const cloneA = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockA, { - [selectionA.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueA - }) - }); - const cloneB = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockB, { - [selectionB.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueB - }) - }); - const followingBlock = isForward ? cloneA : cloneB; - - // We can only merge blocks with similar types - // thus, we transform the block to merge first - const blocksWithTheSameType = blockA.name === blockB.name ? [followingBlock] : (0,external_wp_blocks_namespaceObject.switchToBlockType)(followingBlock, targetBlockType.name); - - // If the block types can not match, do nothing - if (!blocksWithTheSameType || !blocksWithTheSameType.length) { - return; - } - let updatedAttributes; - if (isForward) { - const blockToMerge = blocksWithTheSameType.pop(); - updatedAttributes = targetBlockType.merge(blockToMerge.attributes, cloneB.attributes); - } else { - const blockToMerge = blocksWithTheSameType.shift(); - updatedAttributes = targetBlockType.merge(cloneA.attributes, blockToMerge.attributes); - } - const newAttributeKey = retrieveSelectedAttribute(updatedAttributes); - const convertedHtml = updatedAttributes[newAttributeKey]; - const convertedValue = (0,external_wp_richText_namespaceObject.create)({ - html: convertedHtml - }); - const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA); - const newValue = (0,external_wp_richText_namespaceObject.remove)(convertedValue, newOffset, newOffset + 1); - const newHtml = (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: newValue - }); - updatedAttributes[newAttributeKey] = newHtml; - const selectedBlockClientIds = select.getSelectedBlockClientIds(); - const replacement = [...(isForward ? blocksWithTheSameType : []), { - // Preserve the original client ID. - ...targetBlock, - attributes: { - ...targetBlock.attributes, - ...updatedAttributes - } - }, ...(isForward ? [] : blocksWithTheSameType)]; - registry.batch(() => { - dispatch.selectionChange(targetBlock.clientId, newAttributeKey, newOffset, newOffset); - dispatch.replaceBlocks(selectedBlockClientIds, replacement, 0, - // If we don't pass the `indexToSelect` it will default to the last block. - select.getSelectedBlocksInitialCaretPosition()); - }); -}; +/** + * @typedef {Object} FluidPreset + * @property {string|undefined} max A maximum font size value. + * @property {?string|undefined} min A minimum font size value. + */ /** - * Split the current selection. + * @typedef {Object} Preset + * @property {?string|?number} size A default font size. + * @property {string} name A font size name, displayed in the UI. + * @property {string} slug A font size slug + * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size. */ -const __unstableSplitSelection = () => ({ - select, - dispatch -}) => { - const selectionAnchor = select.getSelectionStart(); - const selectionFocus = select.getSelectionEnd(); - if (selectionAnchor.clientId === selectionFocus.clientId) return; - - // Can't split if the selection is not set. - if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return; - const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId); - const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); - - // It's not splittable if the selection doesn't start and end in the same - // block list. Maybe in the future it should be allowed. - if (anchorRootClientId !== focusRootClientId) { - return; - } - const blockOrder = select.getBlockOrder(anchorRootClientId); - const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId); - const focusIndex = blockOrder.indexOf(selectionFocus.clientId); - - // Reassign selection start and end based on order. - let selectionStart, selectionEnd; - if (anchorIndex > focusIndex) { - selectionStart = selectionFocus; - selectionEnd = selectionAnchor; - } else { - selectionStart = selectionAnchor; - selectionEnd = selectionFocus; - } - const selectionA = selectionStart; - const selectionB = selectionEnd; - const blockA = select.getBlock(selectionA.clientId); - const blockB = select.getBlock(selectionB.clientId); - const htmlA = blockA.attributes[selectionA.attributeKey]; - const htmlB = blockB.attributes[selectionB.attributeKey]; - let valueA = (0,external_wp_richText_namespaceObject.create)({ - html: htmlA - }); - let valueB = (0,external_wp_richText_namespaceObject.create)({ - html: htmlB - }); - valueA = (0,external_wp_richText_namespaceObject.remove)(valueA, selectionA.offset, valueA.text.length); - valueB = (0,external_wp_richText_namespaceObject.remove)(valueB, 0, selectionB.offset); - dispatch.replaceBlocks(select.getSelectedBlockClientIds(), [{ - // Preserve the original client ID. - ...blockA, - attributes: { - ...blockA.attributes, - [selectionA.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueA - }) - } - }, { - // Preserve the original client ID. - ...blockB, - attributes: { - ...blockB.attributes, - [selectionB.attributeKey]: (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: valueB - }) - } - }]); -}; /** - * Expand the selection to cover the entire blocks, removing partial selection. + * @typedef {Object} TypographySettings + * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified. + * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified. + * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional. + * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional. + * @property {?string} minFontSize The smallest a calculated font size may be. Optional. */ -const __unstableExpandSelection = () => ({ - select, - dispatch -}) => { - const selectionAnchor = select.getSelectionStart(); - const selectionFocus = select.getSelectionEnd(); - dispatch.selectionChange({ - start: { - clientId: selectionAnchor.clientId - }, - end: { - clientId: selectionFocus.clientId - } - }); -}; /** - * Action that merges two blocks. + * Returns a font-size value based on a given font-size preset. + * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values. * - * @param {string} firstBlockClientId Client ID of the first block to merge. - * @param {string} secondBlockClientId Client ID of the second block to merge. + * @param {Preset} preset + * @param {Object} typographyOptions + * @param {boolean|TypographySettings} typographyOptions.fluid Whether fluid typography is enabled, and, optionally, fluid font size options. + * + * @return {string|*} A font-size value or the value of preset.size. */ -const mergeBlocks = (firstBlockClientId, secondBlockClientId) => ({ - registry, - select, - dispatch -}) => { - const blocks = [firstBlockClientId, secondBlockClientId]; - dispatch({ - type: 'MERGE_BLOCKS', - blocks - }); - const [clientIdA, clientIdB] = blocks; - const blockA = select.getBlock(clientIdA); - const blockAType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockA.name); - if (!blockAType) return; - const blockB = select.getBlock(clientIdB); - if (!blockAType.merge && (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockA.name, '__experimentalOnMerge')) { - // If there's no merge function defined, attempt merging inner - // blocks. - const blocksWithTheSameType = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blockB, blockAType.name); - // Only focus the previous block if it's not mergeable. - if (blocksWithTheSameType?.length !== 1) { - dispatch.selectBlock(blockA.clientId); - return; - } - const [blockWithSameType] = blocksWithTheSameType; - if (blockWithSameType.innerBlocks.length < 1) { - dispatch.selectBlock(blockA.clientId); - return; - } - registry.batch(() => { - dispatch.insertBlocks(blockWithSameType.innerBlocks, undefined, clientIdA); - dispatch.removeBlock(clientIdB); - dispatch.selectBlock(blockWithSameType.innerBlocks[0].clientId); - - // Attempt to merge the next block if it's the same type and - // same attributes. This is useful when merging a paragraph into - // a list, and the next block is also a list. If we don't merge, - // it looks like one list, but it's actually two lists. The same - // applies to other blocks such as a group with the same - // attributes. - const nextBlockClientId = select.getNextBlockClientId(clientIdA); - if (nextBlockClientId && select.getBlockName(clientIdA) === select.getBlockName(nextBlockClientId)) { - const rootAttributes = select.getBlockAttributes(clientIdA); - const previousRootAttributes = select.getBlockAttributes(nextBlockClientId); - if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { - dispatch.moveBlocksToPosition(select.getBlockOrder(nextBlockClientId), nextBlockClientId, clientIdA); - dispatch.removeBlock(nextBlockClientId, false); - } - } - }); - return; - } - if ((0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(blockA)) { - dispatch.removeBlock(clientIdA, select.isBlockSelected(clientIdA)); - return; - } - if ((0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(blockB)) { - dispatch.removeBlock(clientIdB, select.isBlockSelected(clientIdB)); - return; - } - if (!blockAType.merge) { - dispatch.selectBlock(blockA.clientId); - return; - } - const blockBType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockB.name); +function getTypographyFontSizeValue(preset, typographyOptions) { const { - clientId, - attributeKey, - offset - } = select.getSelectionStart(); - const selectedBlockType = clientId === clientIdA ? blockAType : blockBType; - const attributeDefinition = selectedBlockType.attributes[attributeKey]; - const canRestoreTextSelection = (clientId === clientIdA || clientId === clientIdB) && attributeKey !== undefined && offset !== undefined && - // We cannot restore text selection if the RichText identifier - // is not a defined block attribute key. This can be the case if the - // fallback intance ID is used to store selection (and no RichText - // identifier is set), or when the identifier is wrong. - !!attributeDefinition; - if (!attributeDefinition) { - if (typeof attributeKey === 'number') { - window.console.error(`RichText needs an identifier prop that is the block attribute key of the attribute it controls. Its type is expected to be a string, but was ${typeof attributeKey}`); - } else { - window.console.error('The RichText identifier prop does not match any attributes defined by the block.'); - } - } - - // Clone the blocks so we don't insert the character in a "live" block. - const cloneA = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockA); - const cloneB = (0,external_wp_blocks_namespaceObject.cloneBlock)(blockB); - if (canRestoreTextSelection) { - const selectedBlock = clientId === clientIdA ? cloneA : cloneB; - const html = selectedBlock.attributes[attributeKey]; - const value = (0,external_wp_richText_namespaceObject.insert)((0,external_wp_richText_namespaceObject.create)({ - html - }), START_OF_SELECTED_AREA, offset, offset); - selectedBlock.attributes[attributeKey] = (0,external_wp_richText_namespaceObject.toHTMLString)({ - value - }); + size: defaultSize + } = preset; + if (!isFluidTypographyEnabled(typographyOptions)) { + return defaultSize; } - - // We can only merge blocks with similar types - // thus, we transform the block to merge first. - const blocksWithTheSameType = blockA.name === blockB.name ? [cloneB] : (0,external_wp_blocks_namespaceObject.switchToBlockType)(cloneB, blockA.name); - - // If the block types can not match, do nothing. - if (!blocksWithTheSameType || !blocksWithTheSameType.length) { - return; + /* + * Checks whether a font size has explicitly bypassed fluid calculations. + * Also catches falsy values and 0/'0'. + * Fluid calculations cannot be performed on `0`. + */ + if (!defaultSize || '0' === defaultSize || false === preset?.fluid) { + return defaultSize; } - - // Calling the merge to update the attributes and remove the block to be merged. - const updatedAttributes = blockAType.merge(cloneA.attributes, blocksWithTheSameType[0].attributes); - if (canRestoreTextSelection) { - const newAttributeKey = retrieveSelectedAttribute(updatedAttributes); - const convertedHtml = updatedAttributes[newAttributeKey]; - const convertedValue = (0,external_wp_richText_namespaceObject.create)({ - html: convertedHtml - }); - const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA); - const newValue = (0,external_wp_richText_namespaceObject.remove)(convertedValue, newOffset, newOffset + 1); - const newHtml = (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: newValue - }); - updatedAttributes[newAttributeKey] = newHtml; - dispatch.selectionChange(blockA.clientId, newAttributeKey, newOffset, newOffset); + const fluidTypographySettings = typeof typographyOptions?.fluid === 'object' ? typographyOptions?.fluid : {}; + const fluidFontSizeValue = getComputedFluidTypographyValue({ + minimumFontSize: preset?.fluid?.min, + maximumFontSize: preset?.fluid?.max, + fontSize: defaultSize, + minimumFontSizeLimit: fluidTypographySettings?.minFontSize, + maximumViewportWidth: fluidTypographySettings?.maxViewportWidth, + minimumViewportWidth: fluidTypographySettings?.minViewportWidth + }); + if (!!fluidFontSizeValue) { + return fluidFontSizeValue; } - dispatch.replaceBlocks([blockA.clientId, blockB.clientId], [{ - ...blockA, - attributes: { - ...blockA.attributes, - ...updatedAttributes - } - }, ...blocksWithTheSameType.slice(1)], 0 // If we don't pass the `indexToSelect` it will default to the last block. - ); -}; - -/** - * Yields action objects used in signalling that the blocks corresponding to - * the set of specified client IDs are to be removed. - * - * @param {string|string[]} clientIds Client IDs of blocks to remove. - * @param {boolean} selectPrevious True if the previous block - * or the immediate parent - * (if no previous block exists) - * should be selected - * when a block is removed. - */ -const removeBlocks = (clientIds, selectPrevious = true) => privateRemoveBlocks(clientIds, selectPrevious); - -/** - * Returns an action object used in signalling that the block with the - * specified client ID is to be removed. - * - * @param {string} clientId Client ID of block to remove. - * @param {boolean} selectPrevious True if the previous block should be - * selected when a block is removed. - * - * @return {Object} Action object. - */ -function removeBlock(clientId, selectPrevious) { - return removeBlocks([clientId], selectPrevious); -} - -/* eslint-disable jsdoc/valid-types */ -/** - * Returns an action object used in signalling that the inner blocks with the - * specified client ID should be replaced. - * - * @param {string} rootClientId Client ID of the block whose InnerBlocks will re replaced. - * @param {Object[]} blocks Block objects to insert as new InnerBlocks - * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to false. - * @param {0|-1|null} initialPosition Initial block position. - * @return {Object} Action object. - */ -function replaceInnerBlocks(rootClientId, blocks, updateSelection = false, initialPosition = 0) { - /* eslint-enable jsdoc/valid-types */ - return { - type: 'REPLACE_INNER_BLOCKS', - rootClientId, - blocks, - updateSelection, - initialPosition: updateSelection ? initialPosition : null, - time: Date.now() - }; -} - -/** - * Returns an action object used to toggle the block editing mode between - * visual and HTML modes. - * - * @param {string} clientId Block client ID. - * - * @return {Object} Action object. - */ -function toggleBlockMode(clientId) { - return { - type: 'TOGGLE_BLOCK_MODE', - clientId - }; + return defaultSize; } - -/** - * Returns an action object used in signalling that the user has begun to type. - * - * @return {Object} Action object. - */ -function startTyping() { - return { - type: 'START_TYPING' - }; +function isFluidTypographyEnabled(typographySettings) { + const fluidSettings = typographySettings?.fluid; + return true === fluidSettings || fluidSettings && typeof fluidSettings === 'object' && Object.keys(fluidSettings).length > 0; } /** - * Returns an action object used in signalling that the user has stopped typing. + * Returns fluid typography settings from theme.json setting object. * - * @return {Object} Action object. + * @param {Object} settings Theme.json settings + * @param {Object} settings.typography Theme.json typography settings + * @param {Object} settings.layout Theme.json layout settings + * @return {TypographySettings} Fluid typography settings */ -function stopTyping() { - return { - type: 'STOP_TYPING' +function getFluidTypographyOptionsFromSettings(settings) { + const typographySettings = settings?.typography; + const layoutSettings = settings?.layout; + const defaultMaxViewportWidth = getTypographyValueAndUnit(layoutSettings?.wideSize) ? layoutSettings?.wideSize : null; + return isFluidTypographyEnabled(typographySettings) && defaultMaxViewportWidth ? { + fluid: { + maxViewportWidth: defaultMaxViewportWidth, + ...typographySettings.fluid + } + } : { + fluid: typographySettings?.fluid }; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/utils.js /** - * Returns an action object used in signalling that the user has begun to drag blocks. - * - * @param {string[]} clientIds An array of client ids being dragged - * - * @return {Object} Action object. + * External dependencies */ -function startDraggingBlocks(clientIds = []) { - return { - type: 'START_DRAGGING_BLOCKS', - clientIds - }; -} -/** - * Returns an action object used in signalling that the user has stopped dragging blocks. - * - * @return {Object} Action object. - */ -function stopDraggingBlocks() { - return { - type: 'STOP_DRAGGING_BLOCKS' - }; -} /** - * Returns an action object used in signalling that the caret has entered formatted text. - * - * @deprecated - * - * @return {Object} Action object. + * Internal dependencies */ -function enterFormattedText() { - external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).enterFormattedText', { - since: '6.1', - version: '6.3' - }); - return { - type: 'DO_NOTHING' - }; -} -/** - * Returns an action object used in signalling that the user caret has exited formatted text. - * - * @deprecated - * - * @return {Object} Action object. - */ -function exitFormattedText() { - external_wp_deprecated_default()('wp.data.dispatch( "core/block-editor" ).exitFormattedText', { - since: '6.1', - version: '6.3' - }); - return { - type: 'DO_NOTHING' - }; -} -/** - * Action that changes the position of the user caret. - * - * @param {string|WPSelection} clientId The selected block client ID. - * @param {string} attributeKey The selected block attribute key. - * @param {number} startOffset The start offset. - * @param {number} endOffset The end offset. - * - * @return {Object} Action object. - */ -function selectionChange(clientId, attributeKey, startOffset, endOffset) { - if (typeof clientId === 'string') { - return { - type: 'SELECTION_CHANGE', - clientId, - attributeKey, - startOffset, - endOffset - }; - } - return { - type: 'SELECTION_CHANGE', - ...clientId - }; -} -/** - * Action that adds a new block of the default type to the block list. - * - * @param {?Object} attributes Optional attributes of the block to assign. - * @param {?string} rootClientId Optional root client ID of block list on which - * to append. - * @param {?number} index Optional index where to insert the default block. - */ -const insertDefaultBlock = (attributes, rootClientId, index) => ({ - dispatch -}) => { - // Abort if there is no default block type (if it has been unregistered). - const defaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)(); - if (!defaultBlockName) { - return; - } - const block = (0,external_wp_blocks_namespaceObject.createBlock)(defaultBlockName, attributes); - return dispatch.insertBlock(block, index, rootClientId); +/* Supporting data. */ +const ROOT_BLOCK_NAME = 'root'; +const ROOT_BLOCK_SELECTOR = 'body'; +const ROOT_BLOCK_SUPPORTS = (/* unused pure expression or super */ null && (['background', 'backgroundColor', 'color', 'linkColor', 'captionColor', 'buttonColor', 'headingColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'])); +const PRESET_METADATA = [{ + path: ['color', 'palette'], + valueKey: 'color', + cssVarInfix: 'color', + classes: [{ + classSuffix: 'color', + propertyName: 'color' + }, { + classSuffix: 'background-color', + propertyName: 'background-color' + }, { + classSuffix: 'border-color', + propertyName: 'border-color' + }] +}, { + path: ['color', 'gradients'], + valueKey: 'gradient', + cssVarInfix: 'gradient', + classes: [{ + classSuffix: 'gradient-background', + propertyName: 'background' + }] +}, { + path: ['color', 'duotone'], + valueKey: 'colors', + cssVarInfix: 'duotone', + valueFunc: ({ + slug + }) => `url( '#wp-duotone-${slug}' )`, + classes: [] +}, { + path: ['shadow', 'presets'], + valueKey: 'shadow', + cssVarInfix: 'shadow', + classes: [] +}, { + path: ['typography', 'fontSizes'], + valueFunc: (preset, settings) => getTypographyFontSizeValue(preset, getFluidTypographyOptionsFromSettings(settings)), + valueKey: 'size', + cssVarInfix: 'font-size', + classes: [{ + classSuffix: 'font-size', + propertyName: 'font-size' + }] +}, { + path: ['typography', 'fontFamilies'], + valueKey: 'fontFamily', + cssVarInfix: 'font-family', + classes: [{ + classSuffix: 'font-family', + propertyName: 'font-family' + }] +}, { + path: ['spacing', 'spacingSizes'], + valueKey: 'size', + cssVarInfix: 'spacing', + valueFunc: ({ + size + }) => size, + classes: [] +}]; +const STYLE_PATH_TO_CSS_VAR_INFIX = { + 'color.background': 'color', + 'color.text': 'color', + 'filter.duotone': 'duotone', + 'elements.link.color.text': 'color', + 'elements.link.:hover.color.text': 'color', + 'elements.link.typography.fontFamily': 'font-family', + 'elements.link.typography.fontSize': 'font-size', + 'elements.button.color.text': 'color', + 'elements.button.color.background': 'color', + 'elements.caption.color.text': 'color', + 'elements.button.typography.fontFamily': 'font-family', + 'elements.button.typography.fontSize': 'font-size', + 'elements.heading.color': 'color', + 'elements.heading.color.background': 'color', + 'elements.heading.typography.fontFamily': 'font-family', + 'elements.heading.gradient': 'gradient', + 'elements.heading.color.gradient': 'gradient', + 'elements.h1.color': 'color', + 'elements.h1.color.background': 'color', + 'elements.h1.typography.fontFamily': 'font-family', + 'elements.h1.color.gradient': 'gradient', + 'elements.h2.color': 'color', + 'elements.h2.color.background': 'color', + 'elements.h2.typography.fontFamily': 'font-family', + 'elements.h2.color.gradient': 'gradient', + 'elements.h3.color': 'color', + 'elements.h3.color.background': 'color', + 'elements.h3.typography.fontFamily': 'font-family', + 'elements.h3.color.gradient': 'gradient', + 'elements.h4.color': 'color', + 'elements.h4.color.background': 'color', + 'elements.h4.typography.fontFamily': 'font-family', + 'elements.h4.color.gradient': 'gradient', + 'elements.h5.color': 'color', + 'elements.h5.color.background': 'color', + 'elements.h5.typography.fontFamily': 'font-family', + 'elements.h5.color.gradient': 'gradient', + 'elements.h6.color': 'color', + 'elements.h6.color.background': 'color', + 'elements.h6.typography.fontFamily': 'font-family', + 'elements.h6.color.gradient': 'gradient', + 'color.gradient': 'gradient', + shadow: 'shadow', + 'typography.fontSize': 'font-size', + 'typography.fontFamily': 'font-family' +}; + +// A static list of block attributes that store global style preset slugs. +const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = { + 'color.background': 'backgroundColor', + 'color.text': 'textColor', + 'color.gradient': 'gradient', + 'typography.fontSize': 'fontSize', + 'typography.fontFamily': 'fontFamily' }; +function findInPresetsBy(features, blockName, presetPath, presetProperty, presetValueValue) { + // Block presets take priority above root level presets. + const orderedPresetsByOrigin = [getValueFromObjectPath(features, ['blocks', blockName, ...presetPath]), getValueFromObjectPath(features, presetPath)]; + for (const presetByOrigin of orderedPresetsByOrigin) { + if (presetByOrigin) { + // Preset origins ordered by priority. + const origins = ['custom', 'theme', 'default']; + for (const origin of origins) { + const presets = presetByOrigin[origin]; + if (presets) { + const presetObject = presets.find(preset => preset[presetProperty] === presetValueValue); + if (presetObject) { + if (presetProperty === 'slug') { + return presetObject; + } + // If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored. + const highestPresetObjectWithSameSlug = findInPresetsBy(features, blockName, presetPath, 'slug', presetObject.slug); + if (highestPresetObjectWithSameSlug[presetProperty] === presetObject[presetProperty]) { + return presetObject; + } + return undefined; + } + } + } + } + } +} +function getPresetVariableFromValue(features, blockName, variableStylePath, presetPropertyValue) { + if (!presetPropertyValue) { + return presetPropertyValue; + } + const cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[variableStylePath]; + const metadata = PRESET_METADATA.find(data => data.cssVarInfix === cssVarInfix); + if (!metadata) { + // The property doesn't have preset data + // so the value should be returned as it is. + return presetPropertyValue; + } + const { + valueKey, + path + } = metadata; + const presetObject = findInPresetsBy(features, blockName, path, valueKey, presetPropertyValue); + if (!presetObject) { + // Value wasn't found in the presets, + // so it must be a custom value. + return presetPropertyValue; + } + return `var:preset|${cssVarInfix}|${presetObject.slug}`; +} +function getValueFromPresetVariable(features, blockName, variable, [presetType, slug]) { + const metadata = PRESET_METADATA.find(data => data.cssVarInfix === presetType); + if (!metadata) { + return variable; + } + const presetObject = findInPresetsBy(features.settings, blockName, metadata.path, 'slug', slug); + if (presetObject) { + const { + valueKey + } = metadata; + const result = presetObject[valueKey]; + return getValueFromVariable(features, blockName, result); + } + return variable; +} +function getValueFromCustomVariable(features, blockName, variable, path) { + var _getValueFromObjectPa; + const result = (_getValueFromObjectPa = getValueFromObjectPath(features.settings, ['blocks', blockName, 'custom', ...path])) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(features.settings, ['custom', ...path]); + if (!result) { + return variable; + } + // A variable may reference another variable so we need recursion until we find the value. + return getValueFromVariable(features, blockName, result); +} /** - * Action that changes the nested settings of a given block. - * - * @param {string} clientId Client ID of the block whose nested setting are - * being received. - * @param {Object} settings Object with the new settings for the nested block. + * Attempts to fetch the value of a theme.json CSS variable. * - * @return {Object} Action object + * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree. + * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks. + * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value. + * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument. */ -function updateBlockListSettings(clientId, settings) { - return { - type: 'UPDATE_BLOCK_LIST_SETTINGS', - clientId, - settings - }; +function getValueFromVariable(features, blockName, variable) { + if (!variable || typeof variable !== 'string') { + if (variable?.ref && typeof variable?.ref === 'string') { + const refPath = variable.ref.split('.'); + variable = getValueFromObjectPath(features, refPath); + // Presence of another ref indicates a reference to another dynamic value. + // Pointing to another dynamic value is not supported. + if (!variable || !!variable?.ref) { + return variable; + } + } else { + return variable; + } + } + const USER_VALUE_PREFIX = 'var:'; + const THEME_VALUE_PREFIX = 'var(--wp--'; + const THEME_VALUE_SUFFIX = ')'; + let parsedVar; + if (variable.startsWith(USER_VALUE_PREFIX)) { + parsedVar = variable.slice(USER_VALUE_PREFIX.length).split('|'); + } else if (variable.startsWith(THEME_VALUE_PREFIX) && variable.endsWith(THEME_VALUE_SUFFIX)) { + parsedVar = variable.slice(THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length).split('--'); + } else { + // We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )` + return variable; + } + const [type, ...path] = parsedVar; + if (type === 'preset') { + return getValueFromPresetVariable(features, blockName, variable, path); + } + if (type === 'custom') { + return getValueFromCustomVariable(features, blockName, variable, path); + } + return variable; } /** - * Action that updates the block editor settings. + * Function that scopes a selector with another one. This works a bit like + * SCSS nesting except the `&` operator isn't supported. * - * @param {Object} settings Updated settings + * @example + * ```js + * const scope = '.a, .b .c'; + * const selector = '> .x, .y'; + * const merged = scopeSelector( scope, selector ); + * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y' + * ``` * - * @return {Object} Action object + * @param {string} scope Selector to scope to. + * @param {string} selector Original selector. + * + * @return {string} Scoped selector. */ -function updateSettings(settings) { - return __experimentalUpdateSettings(settings, { - stripExperimentalSettings: true +function scopeSelector(scope, selector) { + const scopes = scope.split(','); + const selectors = selector.split(','); + const selectorsScoped = []; + scopes.forEach(outer => { + selectors.forEach(inner => { + selectorsScoped.push(`${outer.trim()} ${inner.trim()}`); + }); }); + return selectorsScoped.join(', '); } /** - * Action that signals that a temporary reusable block has been saved - * in order to switch its temporary id with the real id. + * Appends a sub-selector to an existing one. * - * @param {string} id Reusable block's id. - * @param {string} updatedId Updated block's id. + * Given the compounded `selector` "h1, h2, h3" + * and the `toAppend` selector ".some-class" the result will be + * "h1.some-class, h2.some-class, h3.some-class". * - * @return {Object} Action object. - */ -function __unstableSaveReusableBlock(id, updatedId) { - return { - type: 'SAVE_REUSABLE_BLOCK_SUCCESS', - id, - updatedId - }; -} - -/** - * Action that marks the last block change explicitly as persistent. + * @param {string} selector Original selector. + * @param {string} toAppend Selector to append. * - * @return {Object} Action object. + * @return {string} The new selector. */ -function __unstableMarkLastChangeAsPersistent() { - return { - type: 'MARK_LAST_CHANGE_AS_PERSISTENT' - }; +function appendToSelector(selector, toAppend) { + if (!selector.includes(',')) { + return selector + toAppend; + } + const selectors = selector.split(','); + const newSelectors = selectors.map(sel => sel + toAppend); + return newSelectors.join(','); } /** - * Action that signals that the next block change should be marked explicitly as not persistent. + * Compares global style variations according to their styles and settings properties. * - * @return {Object} Action object. + * @example + * ```js + * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} }; + * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} }; + * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation ); + * // false + * ``` + * + * @param {Object} original A global styles object. + * @param {Object} variation A global styles object. + * + * @return {boolean} Whether `original` and `variation` match. */ -function __unstableMarkNextChangeAsNotPersistent() { - return { - type: 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT' - }; +function areGlobalStyleConfigsEqual(original, variation) { + if (typeof original !== 'object' || typeof variation !== 'object') { + return original === variation; + } + return es6_default()(original?.styles, variation?.styles) && es6_default()(original?.settings, variation?.settings); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/context.js /** - * Action that marks the last block change as an automatic change, meaning it was not - * performed by the user, and can be undone using the `Escape` and `Backspace` keys. - * This action must be called after the change was made, and any actions that are a - * consequence of it, so it is recommended to be called at the next idle period to ensure all - * selection changes have been recorded. + * WordPress dependencies */ -const __unstableMarkAutomaticChange = () => ({ - dispatch -}) => { - dispatch({ - type: 'MARK_AUTOMATIC_CHANGE' - }); - const { - requestIdleCallback = cb => setTimeout(cb, 100) - } = window; - requestIdleCallback(() => { - dispatch({ - type: 'MARK_AUTOMATIC_CHANGE_FINAL' - }); - }); -}; -/** - * Action that enables or disables the navigation mode. - * - * @param {boolean} isNavigationMode Enable/Disable navigation mode. - */ -const setNavigationMode = (isNavigationMode = true) => ({ - dispatch -}) => { - dispatch.__unstableSetEditorMode(isNavigationMode ? 'navigation' : 'edit'); +const DEFAULT_GLOBAL_STYLES_CONTEXT = { + user: {}, + base: {}, + merged: {}, + setUserConfig: () => {} }; +const GlobalStylesContext = (0,external_wp_element_namespaceObject.createContext)(DEFAULT_GLOBAL_STYLES_CONTEXT); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/hooks.js /** - * Action that sets the editor mode - * - * @param {string} mode Editor mode + * External dependencies */ -const __unstableSetEditorMode = mode => ({ - dispatch, - select -}) => { - // When switching to zoom-out mode, we need to select the root block - if (mode === 'zoom-out') { - const firstSelectedClientId = select.getBlockSelectionStart(); - if (firstSelectedClientId) { - dispatch.selectBlock(select.getBlockHierarchyRootClientId(firstSelectedClientId)); - } - } - dispatch({ - type: 'SET_EDITOR_MODE', - mode - }); - if (mode === 'navigation') { - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.')); - } else if (mode === 'edit') { - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in edit mode. To return to the navigation mode, press Escape.')); - } else if (mode === 'zoom-out') { - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('You are currently in zoom-out mode.')); - } -}; -/** - * Action that enables or disables the block moving mode. - * - * @param {string|null} hasBlockMovingClientId Enable/Disable block moving mode. - */ -const setBlockMovingClientId = (hasBlockMovingClientId = null) => ({ - dispatch -}) => { - dispatch({ - type: 'SET_BLOCK_MOVING_MODE', - hasBlockMovingClientId - }); - if (hasBlockMovingClientId) { - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Use the Tab key and Arrow keys to choose new block location. Use Left and Right Arrow keys to move between nesting levels. Once location is selected press Enter or Space to move the block.')); - } -}; /** - * Action that duplicates a list of blocks. - * - * @param {string[]} clientIds - * @param {boolean} updateSelection + * WordPress dependencies */ -const duplicateBlocks = (clientIds, updateSelection = true) => ({ - select, - dispatch -}) => { - if (!clientIds || !clientIds.length) { - return; - } - // Return early if blocks don't exist. - const blocks = select.getBlocksByClientId(clientIds); - if (blocks.some(block => !block)) { - return; - } - // Return early if blocks don't support multiple usage. - const blockNames = blocks.map(block => block.name); - if (blockNames.some(blockName => !(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'multiple', true))) { - return; - } - const rootClientId = select.getBlockRootClientId(clientIds[0]); - const clientIdsArray = actions_castArray(clientIds); - const lastSelectedIndex = select.getBlockIndex(clientIdsArray[clientIdsArray.length - 1]); - const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.__experimentalCloneSanitizedBlock)(block)); - dispatch.insertBlocks(clonedBlocks, lastSelectedIndex + 1, rootClientId, updateSelection); - if (clonedBlocks.length > 1 && updateSelection) { - dispatch.multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId); - } - return clonedBlocks.map(block => block.clientId); -}; -/** - * Action that inserts an empty block before a given block. - * - * @param {string} clientId - */ -const insertBeforeBlock = clientId => ({ - select, - dispatch -}) => { - if (!clientId) { - return; - } - const rootClientId = select.getBlockRootClientId(clientId); - const isLocked = select.getTemplateLock(rootClientId); - if (isLocked) { - return; - } - const firstSelectedIndex = select.getBlockIndex(clientId); - return dispatch.insertDefaultBlock({}, rootClientId, firstSelectedIndex); -}; -/** - * Action that inserts an empty block after a given block. - * - * @param {string} clientId - */ -const insertAfterBlock = clientId => ({ - select, - dispatch -}) => { - if (!clientId) { - return; - } - const rootClientId = select.getBlockRootClientId(clientId); - const isLocked = select.getTemplateLock(rootClientId); - if (isLocked) { - return; - } - const firstSelectedIndex = select.getBlockIndex(clientId); - return dispatch.insertDefaultBlock({}, rootClientId, firstSelectedIndex + 1); -}; /** - * Action that toggles the highlighted block state. - * - * @param {string} clientId The block's clientId. - * @param {boolean} isHighlighted The highlight state. + * Internal dependencies */ -function toggleBlockHighlight(clientId, isHighlighted) { - return { - type: 'TOGGLE_BLOCK_HIGHLIGHT', - clientId, - isHighlighted - }; -} -/** - * Action that "flashes" the block with a given `clientId` by rhythmically highlighting it. - * - * @param {string} clientId Target block client ID. - */ -const flashBlock = clientId => async ({ - dispatch -}) => { - dispatch(toggleBlockHighlight(clientId, true)); - await new Promise(resolve => setTimeout(resolve, 150)); - dispatch(toggleBlockHighlight(clientId, false)); -}; -/** - * Action that sets whether a block has controlled inner blocks. - * - * @param {string} clientId The block's clientId. - * @param {boolean} hasControlledInnerBlocks True if the block's inner blocks are controlled. - */ -function setHasControlledInnerBlocks(clientId, hasControlledInnerBlocks) { - return { - type: 'SET_HAS_CONTROLLED_INNER_BLOCKS', - hasControlledInnerBlocks, - clientId + + +const EMPTY_CONFIG = { + settings: {}, + styles: {} +}; +const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.button', 'color.caption', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.heading', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'lightbox.enabled', 'lightbox.allowEditing', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform', 'typography.writingMode']; +const useGlobalStylesReset = () => { + const { + user: config, + setUserConfig + } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); + const canReset = !!config && !es6_default()(config, EMPTY_CONFIG); + return [canReset, (0,external_wp_element_namespaceObject.useCallback)(() => setUserConfig(() => EMPTY_CONFIG), [setUserConfig])]; +}; +function useGlobalSetting(propertyPath, blockName, source = 'all') { + const { + setUserConfig, + ...configs + } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); + const appendedBlockPath = blockName ? '.blocks.' + blockName : ''; + const appendedPropertyPath = propertyPath ? '.' + propertyPath : ''; + const contextualPath = `settings${appendedBlockPath}${appendedPropertyPath}`; + const globalPath = `settings${appendedPropertyPath}`; + const sourceKey = source === 'all' ? 'merged' : source; + const settingValue = (0,external_wp_element_namespaceObject.useMemo)(() => { + const configToUse = configs[sourceKey]; + if (!configToUse) { + throw 'Unsupported source'; + } + if (propertyPath) { + var _getValueFromObjectPa; + return (_getValueFromObjectPa = getValueFromObjectPath(configToUse, contextualPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(configToUse, globalPath); + } + let result = {}; + VALID_SETTINGS.forEach(setting => { + var _getValueFromObjectPa2; + const value = (_getValueFromObjectPa2 = getValueFromObjectPath(configToUse, `settings${appendedBlockPath}.${setting}`)) !== null && _getValueFromObjectPa2 !== void 0 ? _getValueFromObjectPa2 : getValueFromObjectPath(configToUse, `settings.${setting}`); + if (value !== undefined) { + result = setImmutably(result, setting.split('.'), value); + } + }); + return result; + }, [configs, sourceKey, propertyPath, contextualPath, globalPath, appendedBlockPath]); + const setSetting = newValue => { + setUserConfig(currentConfig => setImmutably(currentConfig, contextualPath.split('.'), newValue)); }; + return [settingValue, setSetting]; } - -/** - * Action that sets whether given blocks are visible on the canvas. - * - * @param {Record} updates For each block's clientId, its new visibility setting. - */ -function setBlockVisibility(updates) { - return { - type: 'SET_BLOCK_VISIBILITY', - updates +function useGlobalStyle(path, blockName, source = 'all', { + shouldDecodeEncode = true +} = {}) { + const { + merged: mergedConfig, + base: baseConfig, + user: userConfig, + setUserConfig + } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); + const appendedPath = path ? '.' + path : ''; + const finalPath = !blockName ? `styles${appendedPath}` : `styles.blocks.${blockName}${appendedPath}`; + const setStyle = newValue => { + setUserConfig(currentConfig => setImmutably(currentConfig, finalPath.split('.'), shouldDecodeEncode ? getPresetVariableFromValue(mergedConfig.settings, blockName, path, newValue) : newValue)); }; + let rawResult, result; + switch (source) { + case 'all': + rawResult = getValueFromObjectPath(mergedConfig, finalPath); + result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult; + break; + case 'user': + rawResult = getValueFromObjectPath(userConfig, finalPath); + result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult; + break; + case 'base': + rawResult = getValueFromObjectPath(baseConfig, finalPath); + result = shouldDecodeEncode ? getValueFromVariable(baseConfig, blockName, rawResult) : rawResult; + break; + default: + throw 'Unsupported source'; + } + return [result, setStyle]; } /** - * Action that sets whether a block is being temporarily edited as blocks. + * React hook that overrides a global settings object with block and element specific settings. * - * DO-NOT-USE in production. - * This action is created for internal/experimental only usage and may be - * removed anytime without any warning, causing breakage on any plugin or theme invoking it. + * @param {Object} parentSettings Settings object. + * @param {blockName?} blockName Block name. + * @param {element?} element Element name. * - * @param {?string} temporarilyEditingAsBlocks The block's clientId being temporarily edited as blocks. - * @param {?string} focusModeToRevert The focus mode to revert after temporarily edit as blocks finishes. + * @return {Object} Merge of settings and supports. */ -function __unstableSetTemporarilyEditingAsBlocks(temporarilyEditingAsBlocks, focusModeToRevert) { - return { - type: 'SET_TEMPORARILY_EDITING_AS_BLOCKS', - temporarilyEditingAsBlocks, - focusModeToRevert - }; +function useSettingsForBlockElement(parentSettings, blockName, element) { + const { + supportedStyles, + supports + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + return { + supportedStyles: unlock(select(external_wp_blocks_namespaceObject.store)).getSupportedStyles(blockName, element), + supports: select(external_wp_blocks_namespaceObject.store).getBlockType(blockName)?.supports + }; + }, [blockName, element]); + return (0,external_wp_element_namespaceObject.useMemo)(() => { + const updatedSettings = { + ...parentSettings + }; + if (!supportedStyles.includes('fontSize')) { + updatedSettings.typography = { + ...updatedSettings.typography, + fontSizes: {}, + customFontSize: false + }; + } + if (!supportedStyles.includes('fontFamily')) { + updatedSettings.typography = { + ...updatedSettings.typography, + fontFamilies: {} + }; + } + updatedSettings.color = { + ...updatedSettings.color, + text: updatedSettings.color?.text && supportedStyles.includes('color'), + background: updatedSettings.color?.background && (supportedStyles.includes('background') || supportedStyles.includes('backgroundColor')), + button: updatedSettings.color?.button && supportedStyles.includes('buttonColor'), + heading: updatedSettings.color?.heading && supportedStyles.includes('headingColor'), + link: updatedSettings.color?.link && supportedStyles.includes('linkColor'), + caption: updatedSettings.color?.caption && supportedStyles.includes('captionColor') + }; + + // Some blocks can enable background colors but disable gradients. + if (!supportedStyles.includes('background')) { + updatedSettings.color.gradients = []; + updatedSettings.color.customGradient = false; + } + + // If filters are not supported by the block/element, disable duotone. + if (!supportedStyles.includes('filter')) { + updatedSettings.color.defaultDuotone = false; + updatedSettings.color.customDuotone = false; + } + ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform', 'textDecoration', 'writingMode'].forEach(key => { + if (!supportedStyles.includes(key)) { + updatedSettings.typography = { + ...updatedSettings.typography, + [key]: false + }; + } + }); + + // The column-count style is named text column to reduce confusion with + // the columns block and manage expectations from the support. + // See: https://github.com/WordPress/gutenberg/pull/33587 + if (!supportedStyles.includes('columnCount')) { + updatedSettings.typography = { + ...updatedSettings.typography, + textColumns: false + }; + } + ['contentSize', 'wideSize'].forEach(key => { + if (!supportedStyles.includes(key)) { + updatedSettings.layout = { + ...updatedSettings.layout, + [key]: false + }; + } + }); + ['padding', 'margin', 'blockGap'].forEach(key => { + if (!supportedStyles.includes(key)) { + updatedSettings.spacing = { + ...updatedSettings.spacing, + [key]: false + }; + } + const sides = Array.isArray(supports?.spacing?.[key]) ? supports?.spacing?.[key] : supports?.spacing?.[key]?.sides; + // Check if spacing type is supported before adding sides. + if (sides?.length && updatedSettings.spacing?.[key]) { + updatedSettings.spacing = { + ...updatedSettings.spacing, + [key]: { + ...updatedSettings.spacing?.[key], + sides + } + }; + } + }); + if (!supportedStyles.includes('minHeight')) { + updatedSettings.dimensions = { + ...updatedSettings.dimensions, + minHeight: false + }; + } + ['radius', 'color', 'style', 'width'].forEach(key => { + if (!supportedStyles.includes('border' + key.charAt(0).toUpperCase() + key.slice(1))) { + updatedSettings.border = { + ...updatedSettings.border, + [key]: false + }; + } + }); + updatedSettings.shadow = supportedStyles.includes('shadow') ? updatedSettings.shadow : false; + return updatedSettings; + }, [parentSettings, supportedStyles, supports]); +} +function useColorsPerOrigin(settings) { + const customColors = settings?.color?.palette?.custom; + const themeColors = settings?.color?.palette?.theme; + const defaultColors = settings?.color?.palette?.default; + const shouldDisplayDefaultColors = settings?.color?.defaultPalette; + return (0,external_wp_element_namespaceObject.useMemo)(() => { + const result = []; + if (themeColors && themeColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), + colors: themeColors + }); + } + if (shouldDisplayDefaultColors && defaultColors && defaultColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), + colors: defaultColors + }); + } + if (customColors && customColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), + colors: customColors + }); + } + return result; + }, [customColors, themeColors, defaultColors, shouldDisplayDefaultColors]); +} +function useGradientsPerOrigin(settings) { + const customGradients = settings?.color?.gradients?.custom; + const themeGradients = settings?.color?.gradients?.theme; + const defaultGradients = settings?.color?.gradients?.default; + const shouldDisplayDefaultGradients = settings?.color?.defaultGradients; + return (0,external_wp_element_namespaceObject.useMemo)(() => { + const result = []; + if (themeGradients && themeGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), + gradients: themeGradients + }); + } + if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), + gradients: defaultGradients + }); + } + if (customGradients && customGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), + gradients: customGradients + }); + } + return result; + }, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/utils.js /** - * Interface for inserter media requests. - * - * @typedef {Object} InserterMediaRequest - * @property {number} per_page How many items to fetch per page. - * @property {string} search The search term to use for filtering the results. + * WordPress dependencies */ + + /** - * Interface for inserter media responses. Any media resource should - * map their response to this interface, in order to create the core - * WordPress media blocks (image, video, audio). - * - * @typedef {Object} InserterMediaItem - * @property {string} title The title of the media item. - * @property {string} url The source url of the media item. - * @property {string} [previewUrl] The preview source url of the media item to display in the media list. - * @property {number} [id] The WordPress id of the media item. - * @property {number|string} [sourceId] The id of the media item from external source. - * @property {string} [alt] The alt text of the media item. - * @property {string} [caption] The caption of the media item. + * Internal dependencies */ + + + /** - * Registers a new inserter media category. Once registered, the media category is - * available in the inserter's media tab. - * - * The following interfaces are used: - * - * _Type Definition_ - * - * - _InserterMediaRequest_ `Object`: Interface for inserter media requests. - * - * _Properties_ - * - * - _per_page_ `number`: How many items to fetch per page. - * - _search_ `string`: The search term to use for filtering the results. - * - * _Type Definition_ - * - * - _InserterMediaItem_ `Object`: Interface for inserter media responses. Any media resource should - * map their response to this interface, in order to create the core - * WordPress media blocks (image, video, audio). - * - * _Properties_ - * - * - _title_ `string`: The title of the media item. - * - _url_ `string: The source url of the media item. - * - _previewUrl_ `[string]`: The preview source url of the media item to display in the media list. - * - _id_ `[number]`: The WordPress id of the media item. - * - _sourceId_ `[number|string]`: The id of the media item from external source. - * - _alt_ `[string]`: The alt text of the media item. - * - _caption_ `[string]`: The caption of the media item. - * - * @param {InserterMediaCategory} category The inserter media category to register. - * - * @example - * ```js - * - * wp.data.dispatch('core/block-editor').registerInserterMediaCategory( { - * name: 'openverse', - * labels: { - * name: 'Openverse', - * search_items: 'Search Openverse', - * }, - * mediaType: 'image', - * async fetch( query = {} ) { - * const defaultArgs = { - * mature: false, - * excluded_source: 'flickr,inaturalist,wikimedia', - * license: 'pdm,cc0', - * }; - * const finalQuery = { ...query, ...defaultArgs }; - * // Sometimes you might need to map the supported request params according to `InserterMediaRequest`. - * // interface. In this example the `search` query param is named `q`. - * const mapFromInserterMediaRequest = { - * per_page: 'page_size', - * search: 'q', - * }; - * const url = new URL( 'https://api.openverse.engineering/v1/images/' ); - * Object.entries( finalQuery ).forEach( ( [ key, value ] ) => { - * const queryKey = mapFromInserterMediaRequest[ key ] || key; - * url.searchParams.set( queryKey, value ); - * } ); - * const response = await window.fetch( url, { - * headers: { - * 'User-Agent': 'WordPress/inserter-media-fetch', - * }, - * } ); - * const jsonResponse = await response.json(); - * const results = jsonResponse.results; - * return results.map( ( result ) => ( { - * ...result, - * // If your response result includes an `id` prop that you want to access later, it should - * // be mapped to `InserterMediaItem`'s `sourceId` prop. This can be useful if you provide - * // a report URL getter. - * // Additionally you should always clear the `id` value of your response results because - * // it is used to identify WordPress media items. - * sourceId: result.id, - * id: undefined, - * caption: result.caption, - * previewUrl: result.thumbnail, - * } ) ); - * }, - * getReportUrl: ( { sourceId } ) => - * `https://wordpress.org/openverse/image/${ sourceId }/report/`, - * isExternalResource: true, - * } ); - * ``` + * Removed falsy values from nested object. * - * @typedef {Object} InserterMediaCategory Interface for inserter media category. - * @property {string} name The name of the media category, that should be unique among all media categories. - * @property {Object} labels Labels for the media category. - * @property {string} labels.name General name of the media category. It's used in the inserter media items list. - * @property {string} [labels.search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’. - * @property {('image'|'audio'|'video')} mediaType The media type of the media category. - * @property {(InserterMediaRequest) => Promise} fetch The function to fetch media items for the category. - * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return - * the report url for the media item. It accepts the `InserterMediaItem` as an argument. - * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true. - * This is used to avoid making a request to the external resource when the user + * @param {*} object + * @return {*} Object cleaned from falsy values */ -const registerInserterMediaCategory = category => ({ - select, - dispatch -}) => { - if (!category || typeof category !== 'object') { - console.error('Category should be an `InserterMediaCategory` object.'); - return; - } - if (!category.name) { - console.error('Category should have a `name` that should be unique among all media categories.'); - return; - } - if (!category.labels?.name) { - console.error('Category should have a `labels.name`.'); - return; - } - if (!['image', 'audio', 'video'].includes(category.mediaType)) { - console.error('Category should have `mediaType` property that is one of `image|audio|video`.'); - return; +const utils_cleanEmptyObject = object => { + if (object === null || typeof object !== 'object' || Array.isArray(object)) { + return object; } - if (!category.fetch || typeof category.fetch !== 'function') { - console.error('Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise`.'); - return; + const cleanedNestedObjects = Object.entries(object).map(([key, value]) => [key, utils_cleanEmptyObject(value)]).filter(([, value]) => value !== undefined); + return !cleanedNestedObjects.length ? undefined : Object.fromEntries(cleanedNestedObjects); +}; +function transformStyles(activeSupports, migrationPaths, result, source, index, results) { + // If there are no active supports return early. + if (Object.values(activeSupports !== null && activeSupports !== void 0 ? activeSupports : {}).every(isActive => !isActive)) { + return result; } - const registeredInserterMediaCategories = select.getRegisteredInserterMediaCategories(); - if (registeredInserterMediaCategories.some(({ - name - }) => name === category.name)) { - console.error(`A category is already registered with the same name: "${category.name}".`); - return; + // If the condition verifies we are probably in the presence of a wrapping transform + // e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed. + if (results.length === 1 && result.innerBlocks.length === source.length) { + return result; } - if (registeredInserterMediaCategories.some(({ - labels: { - name - } = {} - }) => name === category.labels?.name)) { - console.error(`A category is already registered with the same labels.name: "${category.labels.name}".`); - return; + // For cases where we have a transform from one block to multiple blocks + // or multiple blocks to one block we apply the styles of the first source block + // to the result(s). + let referenceBlockAttributes = source[0]?.attributes; + // If we are in presence of transform between more than one block in the source + // that has more than one block in the result + // we apply the styles on source N to the result N, + // if source N does not exists we do nothing. + if (results.length > 1 && source.length > 1) { + if (source[index]) { + referenceBlockAttributes = source[index]?.attributes; + } else { + return result; + } } - // `inserterMediaCategories` is a private block editor setting, which means it cannot - // be updated through the public `updateSettings` action. We preserve this setting as - // private, so extenders can only add new inserter media categories and don't have any - // control over the core media categories. - dispatch({ - type: 'REGISTER_INSERTER_MEDIA_CATEGORY', - category: { - ...category, - isExternalResource: true + let returnBlock = result; + Object.entries(activeSupports).forEach(([support, isActive]) => { + if (isActive) { + migrationPaths[support].forEach(path => { + const styleValue = getValueFromObjectPath(referenceBlockAttributes, path); + if (styleValue) { + returnBlock = { + ...returnBlock, + attributes: setImmutably(returnBlock.attributes, path, styleValue) + }; + } + }); } }); -}; - -/** - * @typedef {import('../components/block-editing-mode').BlockEditingMode} BlockEditingMode - */ + return returnBlock; +} /** - * Sets the block editing mode for a given block. - * - * @see useBlockEditingMode + * Check whether serialization of specific block support feature or set should + * be skipped. * - * @param {string} clientId The block client ID, or `''` for the root container. - * @param {BlockEditingMode} mode The block editing mode. One of `'disabled'`, - * `'contentOnly'`, or `'default'`. + * @param {string|Object} blockType Block name or block type object. + * @param {string} featureSet Name of block support feature set. + * @param {string} feature Name of the individual feature to check. * - * @return {Object} Action object. + * @return {boolean} Whether serialization should occur. */ -function setBlockEditingMode(clientId = '', mode) { - return { - type: 'SET_BLOCK_EDITING_MODE', - clientId, - mode - }; +function shouldSkipSerialization(blockType, featureSet, feature) { + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, featureSet); + const skipSerialization = support?.__experimentalSkipSerialization; + if (Array.isArray(skipSerialization)) { + return skipSerialization.includes(feature); + } + return skipSerialization; } /** - * Clears the block editing mode for a given block. + * Based on the block and its context, returns an object of all the block settings. + * This object can be passed as a prop to all the Styles UI components + * (TypographyPanel, DimensionsPanel...). * - * @see useBlockEditingMode - * - * @param {string} clientId The block client ID, or `''` for the root container. + * @param {string} name Block name. + * @param {*} parentLayout Parent layout. * - * @return {Object} Action object. + * @return {Object} Settings object. */ -function unsetBlockEditingMode(clientId = '') { - return { - type: 'UNSET_BLOCK_EDITING_MODE', - clientId - }; +function useBlockSettings(name, parentLayout) { + const fontFamilies = use_setting_useSetting('typography.fontFamilies'); + const fontSizes = use_setting_useSetting('typography.fontSizes'); + const customFontSize = use_setting_useSetting('typography.customFontSize'); + const fontStyle = use_setting_useSetting('typography.fontStyle'); + const fontWeight = use_setting_useSetting('typography.fontWeight'); + const lineHeight = use_setting_useSetting('typography.lineHeight'); + const textColumns = use_setting_useSetting('typography.textColumns'); + const textDecoration = use_setting_useSetting('typography.textDecoration'); + const writingMode = use_setting_useSetting('typography.writingMode'); + const textTransform = use_setting_useSetting('typography.textTransform'); + const letterSpacing = use_setting_useSetting('typography.letterSpacing'); + const padding = use_setting_useSetting('spacing.padding'); + const margin = use_setting_useSetting('spacing.margin'); + const blockGap = use_setting_useSetting('spacing.blockGap'); + const spacingSizes = use_setting_useSetting('spacing.spacingSizes'); + const units = use_setting_useSetting('spacing.units'); + const minHeight = use_setting_useSetting('dimensions.minHeight'); + const layout = use_setting_useSetting('layout'); + const borderColor = use_setting_useSetting('border.color'); + const borderRadius = use_setting_useSetting('border.radius'); + const borderStyle = use_setting_useSetting('border.style'); + const borderWidth = use_setting_useSetting('border.width'); + const customColorsEnabled = use_setting_useSetting('color.custom'); + const customColors = use_setting_useSetting('color.palette.custom'); + const customDuotone = use_setting_useSetting('color.customDuotone'); + const themeColors = use_setting_useSetting('color.palette.theme'); + const defaultColors = use_setting_useSetting('color.palette.default'); + const defaultPalette = use_setting_useSetting('color.defaultPalette'); + const defaultDuotone = use_setting_useSetting('color.defaultDuotone'); + const userDuotonePalette = use_setting_useSetting('color.duotone.custom'); + const themeDuotonePalette = use_setting_useSetting('color.duotone.theme'); + const defaultDuotonePalette = use_setting_useSetting('color.duotone.default'); + const userGradientPalette = use_setting_useSetting('color.gradients.custom'); + const themeGradientPalette = use_setting_useSetting('color.gradients.theme'); + const defaultGradientPalette = use_setting_useSetting('color.gradients.default'); + const defaultGradients = use_setting_useSetting('color.defaultGradients'); + const areCustomGradientsEnabled = use_setting_useSetting('color.customGradient'); + const isBackgroundEnabled = use_setting_useSetting('color.background'); + const isLinkEnabled = use_setting_useSetting('color.link'); + const isTextEnabled = use_setting_useSetting('color.text'); + const isHeadingEnabled = use_setting_useSetting('color.heading'); + const isButtonEnabled = use_setting_useSetting('color.button'); + const rawSettings = (0,external_wp_element_namespaceObject.useMemo)(() => { + return { + color: { + palette: { + custom: customColors, + theme: themeColors, + default: defaultColors + }, + gradients: { + custom: userGradientPalette, + theme: themeGradientPalette, + default: defaultGradientPalette + }, + duotone: { + custom: userDuotonePalette, + theme: themeDuotonePalette, + default: defaultDuotonePalette + }, + defaultGradients, + defaultPalette, + defaultDuotone, + custom: customColorsEnabled, + customGradient: areCustomGradientsEnabled, + customDuotone, + background: isBackgroundEnabled, + link: isLinkEnabled, + heading: isHeadingEnabled, + button: isButtonEnabled, + text: isTextEnabled + }, + typography: { + fontFamilies: { + custom: fontFamilies + }, + fontSizes: { + custom: fontSizes + }, + customFontSize, + fontStyle, + fontWeight, + lineHeight, + textColumns, + textDecoration, + textTransform, + letterSpacing, + writingMode + }, + spacing: { + spacingSizes: { + custom: spacingSizes + }, + padding, + margin, + blockGap, + units + }, + border: { + color: borderColor, + radius: borderRadius, + style: borderStyle, + width: borderWidth + }, + dimensions: { + minHeight + }, + layout, + parentLayout + }; + }, [fontFamilies, fontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, textTransform, letterSpacing, writingMode, padding, margin, blockGap, spacingSizes, units, minHeight, layout, parentLayout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled]); + return useSettingsForBlockElement(rawSettings, name); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flex.js + /** * WordPress dependencies */ + + /** * Internal dependencies */ @@ -16330,1030 +14215,1335 @@ function unsetBlockEditingMode(clientId = '') { +// Used with the default, horizontal flex orientation. +const justifyContentMap = { + left: 'flex-start', + right: 'flex-end', + center: 'center', + 'space-between': 'space-between' +}; - - -/** - * Block editor data store configuration. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore - */ -const storeConfig = { - reducer: reducer, - selectors: selectors_namespaceObject, - resolvers: resolvers_namespaceObject, - actions: actions_namespaceObject +// Used with the vertical (column) flex orientation. +const alignItemsMap = { + left: 'flex-start', + right: 'flex-end', + center: 'center', + stretch: 'stretch' +}; +const verticalAlignmentMap = { + top: 'flex-start', + center: 'center', + bottom: 'flex-end', + stretch: 'stretch', + 'space-between': 'space-between' }; +const flexWrapOptions = ['wrap', 'nowrap']; +/* harmony default export */ var flex = ({ + name: 'flex', + label: (0,external_wp_i18n_namespaceObject.__)('Flex'), + inspectorControls: function FlexLayoutInspectorControls({ + layout = {}, + onChange, + layoutBlockSupport = {} + }) { + const { + allowOrientation = true + } = layoutBlockSupport; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(FlexLayoutJustifyContentControl, { + layout: layout, + onChange: onChange + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, allowOrientation && (0,external_wp_element_namespaceObject.createElement)(OrientationControl, { + layout: layout, + onChange: onChange + }))), (0,external_wp_element_namespaceObject.createElement)(FlexWrapControl, { + layout: layout, + onChange: onChange + })); + }, + toolBarControls: function FlexLayoutToolbarControls({ + layout = {}, + onChange, + layoutBlockSupport + }) { + if (layoutBlockSupport?.allowSwitching) { + return null; + } + const { + allowVerticalAlignment = true + } = layoutBlockSupport; + return (0,external_wp_element_namespaceObject.createElement)(block_controls, { + group: "block", + __experimentalShareWithChildBlocks: true + }, (0,external_wp_element_namespaceObject.createElement)(FlexLayoutJustifyContentControl, { + layout: layout, + onChange: onChange, + isToolbar: true + }), allowVerticalAlignment && (0,external_wp_element_namespaceObject.createElement)(FlexLayoutVerticalAlignmentControl, { + layout: layout, + onChange: onChange, + isToolbar: true + })); + }, + getLayoutStyle: function getLayoutStyle({ + selector, + layout, + style, + blockName, + hasBlockGapSupport, + layoutDefinitions = LAYOUT_DEFINITIONS + }) { + const { + orientation = 'horizontal' + } = layout; -/** - * Store definition for the block editor namespace. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore - */ -const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, { - ...storeConfig, - persist: ['preferences'] -}); + // If a block's block.json skips serialization for spacing or spacing.blockGap, + // don't apply the user-defined value to the styles. + const blockGapValue = style?.spacing?.blockGap && !shouldSkipSerialization(blockName, 'spacing', 'blockGap') ? getGapCSSValue(style?.spacing?.blockGap, '0.5em') : undefined; + const justifyContent = justifyContentMap[layout.justifyContent]; + const flexWrap = flexWrapOptions.includes(layout.flexWrap) ? layout.flexWrap : 'wrap'; + const verticalAlignment = verticalAlignmentMap[layout.verticalAlignment]; + const alignItems = alignItemsMap[layout.justifyContent] || alignItemsMap.left; + let output = ''; + const rules = []; + if (flexWrap && flexWrap !== 'wrap') { + rules.push(`flex-wrap: ${flexWrap}`); + } + if (orientation === 'horizontal') { + if (verticalAlignment) { + rules.push(`align-items: ${verticalAlignment}`); + } + if (justifyContent) { + rules.push(`justify-content: ${justifyContent}`); + } + } else { + if (verticalAlignment) { + rules.push(`justify-content: ${verticalAlignment}`); + } + rules.push('flex-direction: column'); + rules.push(`align-items: ${alignItems}`); + } + if (rules.length) { + output = `${appendSelectors(selector)} { + ${rules.join('; ')}; + }`; + } -// We will be able to use the `register` function once we switch -// the "preferences" persistence to use the new preferences package. -const registeredStore = (0,external_wp_data_namespaceObject.registerStore)(STORE_NAME, { - ...storeConfig, - persist: ['preferences'] + // Output blockGap styles based on rules contained in layout definitions in theme.json. + if (hasBlockGapSupport && blockGapValue) { + output += getBlockGapCSS(selector, layoutDefinitions, 'flex', blockGapValue); + } + return output; + }, + getOrientation(layout) { + const { + orientation = 'horizontal' + } = layout; + return orientation; + }, + getAlignments() { + return []; + } }); -unlock(registeredStore).registerPrivateActions(private_actions_namespaceObject); -unlock(registeredStore).registerPrivateSelectors(private_selectors_namespaceObject); - -// TODO: Remove once we switch to the `register` function (see above). -// -// Until then, private functions also need to be attached to the original -// `store` descriptor in order to avoid unit tests failing, which could happen -// when tests create new registries in which they register stores. -// -// @see https://github.com/WordPress/gutenberg/pull/51145#discussion_r1239999590 -unlock(store).registerPrivateActions(private_actions_namespaceObject); -unlock(store).registerPrivateSelectors(private_selectors_namespaceObject); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/object.js -/** - * Immutably sets a value inside an object. Like `lodash#set`, but returning a - * new object. Treats nullish initial values as empty objects. Clones any - * nested objects. Supports arrays, too. - * - * @param {Object} object Object to set a value in. - * @param {number|string|Array} path Path in the object to modify. - * @param {*} value New value to set. - * @return {Object} Cloned object with the new value set. - */ -function setImmutably(object, path, value) { - // Normalize path - path = Array.isArray(path) ? [...path] : [path]; - - // Shallowly clone the base of the object - object = Array.isArray(object) ? [...object] : { - ...object +function FlexLayoutVerticalAlignmentControl({ + layout, + onChange, + isToolbar = false +}) { + const { + orientation = 'horizontal' + } = layout; + const defaultVerticalAlignment = orientation === 'horizontal' ? verticalAlignmentMap.center : verticalAlignmentMap.top; + const { + verticalAlignment = defaultVerticalAlignment + } = layout; + const onVerticalAlignmentChange = value => { + onChange({ + ...layout, + verticalAlignment: value + }); }; - const leaf = path.pop(); - - // Traverse object from root to leaf, shallowly cloning at each level - let prev = object; - for (const key of path) { - const lvl = prev[key]; - prev = prev[key] = Array.isArray(lvl) ? [...lvl] : { - ...lvl - }; + if (isToolbar) { + return (0,external_wp_element_namespaceObject.createElement)(BlockVerticalAlignmentControl, { + onChange: onVerticalAlignmentChange, + value: verticalAlignment, + controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between'] + }); } - prev[leaf] = value; - return object; + const verticalAlignmentOptions = [{ + value: 'flex-start', + label: (0,external_wp_i18n_namespaceObject.__)('Align items top') + }, { + value: 'center', + label: (0,external_wp_i18n_namespaceObject.__)('Align items center') + }, { + value: 'flex-end', + label: (0,external_wp_i18n_namespaceObject.__)('Align items bottom') + }]; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-hooks__flex-layout-vertical-alignment-control" + }, (0,external_wp_element_namespaceObject.createElement)("legend", null, (0,external_wp_i18n_namespaceObject.__)('Vertical alignment')), (0,external_wp_element_namespaceObject.createElement)("div", null, verticalAlignmentOptions.map((value, icon, label) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: value, + label: label, + icon: icon, + isPressed: verticalAlignment === value, + onClick: () => onVerticalAlignmentChange(value) + }); + }))); } - -/** - * Helper util to return a value from a certain path of the object. - * Path is specified as either: - * - a string of properties, separated by dots, for example: "x.y". - * - an array of properties, for example `[ 'x', 'y' ]`. - * You can also specify a default value in case the result is nullish. - * - * @param {Object} object Input object. - * @param {string|Array} path Path to the object property. - * @param {*} defaultValue Default value if the value at the specified path is nullish. - * @return {*} Value of the object property at the specified path. - */ -const getValueFromObjectPath = (object, path, defaultValue) => { - var _value; - const arrayPath = Array.isArray(path) ? path : path.split('.'); - let value = object; - arrayPath.forEach(fieldName => { - value = value?.[fieldName]; - }); - return (_value = value) !== null && _value !== void 0 ? _value : defaultValue; +const POPOVER_PROPS = { + placement: 'bottom-start' }; - -/** - * Helper util to filter out objects with duplicate values for a given property. - * - * @param {Object[]} array Array of objects to filter. - * @param {string} property Property to filter unique values by. - * - * @return {Object[]} Array of objects with unique values for the specified property. - */ -function uniqByProperty(array, property) { - const seen = new Set(); - return array.filter(item => { - const value = item[property]; - return seen.has(value) ? false : seen.add(value); +function FlexLayoutJustifyContentControl({ + layout, + onChange, + isToolbar = false +}) { + const { + justifyContent = 'left', + orientation = 'horizontal' + } = layout; + const onJustificationChange = value => { + onChange({ + ...layout, + justifyContent: value + }); + }; + const allowedControls = ['left', 'center', 'right']; + if (orientation === 'horizontal') { + allowedControls.push('space-between'); + } else { + allowedControls.push('stretch'); + } + if (isToolbar) { + return (0,external_wp_element_namespaceObject.createElement)(JustifyContentControl, { + allowedControls: allowedControls, + value: justifyContent, + onChange: onJustificationChange, + popoverProps: POPOVER_PROPS + }); + } + const justificationOptions = [{ + value: 'left', + icon: justify_left, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items left') + }, { + value: 'center', + icon: justify_center, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items center') + }, { + value: 'right', + icon: justify_right, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items right') + }]; + if (orientation === 'horizontal') { + justificationOptions.push({ + value: 'space-between', + icon: justify_space_between, + label: (0,external_wp_i18n_namespaceObject.__)('Space between items') + }); + } else { + justificationOptions.push({ + value: 'stretch', + icon: justify_stretch, + label: (0,external_wp_i18n_namespaceObject.__)('Stretch items') + }); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Justification'), + value: justifyContent, + onChange: onJustificationChange, + className: "block-editor-hooks__flex-layout-justification-controls" + }, justificationOptions.map(({ + value, + icon, + label + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { + key: value, + value: value, + icon: icon, + label: label + }); + })); +} +function FlexWrapControl({ + layout, + onChange +}) { + const { + flexWrap = 'wrap' + } = layout; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Allow to wrap to multiple lines'), + onChange: value => { + onChange({ + ...layout, + flexWrap: value ? 'wrap' : 'nowrap' + }); + }, + checked: flexWrap === 'wrap' }); } +function OrientationControl({ + layout, + onChange +}) { + const { + orientation = 'horizontal', + verticalAlignment, + justifyContent + } = layout; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-hooks__flex-layout-orientation-controls", + label: (0,external_wp_i18n_namespaceObject.__)('Orientation'), + value: orientation, + onChange: value => { + // Make sure the vertical alignment and justification are compatible with the new orientation. + let newVerticalAlignment = verticalAlignment; + let newJustification = justifyContent; + if (value === 'horizontal') { + if (verticalAlignment === 'space-between') { + newVerticalAlignment = 'center'; + } + if (justifyContent === 'stretch') { + newJustification = 'left'; + } + } else { + if (verticalAlignment === 'stretch') { + newVerticalAlignment = 'top'; + } + if (justifyContent === 'space-between') { + newJustification = 'left'; + } + } + return onChange({ + ...layout, + orientation: value, + verticalAlignment: newVerticalAlignment, + justifyContent: newJustification + }); + } + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { + icon: arrow_right, + value: 'horizontal', + label: (0,external_wp_i18n_namespaceObject.__)('Horizontal') + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { + icon: arrow_down, + value: 'vertical', + label: (0,external_wp_i18n_namespaceObject.__)('Vertical') + })); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-settings/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flow.js /** * WordPress dependencies */ - - - - /** * Internal dependencies */ -const blockedPaths = ['color', 'border', 'dimensions', 'typography', 'spacing']; -const deprecatedFlags = { - 'color.palette': settings => settings.colors, - 'color.gradients': settings => settings.gradients, - 'color.custom': settings => settings.disableCustomColors === undefined ? undefined : !settings.disableCustomColors, - 'color.customGradient': settings => settings.disableCustomGradients === undefined ? undefined : !settings.disableCustomGradients, - 'typography.fontSizes': settings => settings.fontSizes, - 'typography.customFontSize': settings => settings.disableCustomFontSizes === undefined ? undefined : !settings.disableCustomFontSizes, - 'typography.lineHeight': settings => settings.enableCustomLineHeight, - 'spacing.units': settings => { - if (settings.enableCustomUnits === undefined) { - return; + +/* harmony default export */ var flow = ({ + name: 'default', + label: (0,external_wp_i18n_namespaceObject.__)('Flow'), + inspectorControls: function DefaultLayoutInspectorControls() { + return null; + }, + toolBarControls: function DefaultLayoutToolbarControls() { + return null; + }, + getLayoutStyle: function getLayoutStyle({ + selector, + style, + blockName, + hasBlockGapSupport, + layoutDefinitions = LAYOUT_DEFINITIONS + }) { + const blockGapStyleValue = getGapCSSValue(style?.spacing?.blockGap); + + // If a block's block.json skips serialization for spacing or + // spacing.blockGap, don't apply the user-defined value to the styles. + let blockGapValue = ''; + if (!shouldSkipSerialization(blockName, 'spacing', 'blockGap')) { + // If an object is provided only use the 'top' value for this kind of gap. + if (blockGapStyleValue?.top) { + blockGapValue = getGapCSSValue(blockGapStyleValue?.top); + } else if (typeof blockGapStyleValue === 'string') { + blockGapValue = getGapCSSValue(blockGapStyleValue); + } } - if (settings.enableCustomUnits === true) { - return ['px', 'em', 'rem', 'vh', 'vw', '%']; + let output = ''; + + // Output blockGap styles based on rules contained in layout definitions in theme.json. + if (hasBlockGapSupport && blockGapValue) { + output += getBlockGapCSS(selector, layoutDefinitions, 'default', blockGapValue); } - return settings.enableCustomUnits; + return output; }, - 'spacing.padding': settings => settings.enableCustomSpacing -}; -const prefixedFlags = { - /* - * These were only available in the plugin - * and can be removed when the minimum WordPress version - * for the plugin is 5.9. - */ - 'border.customColor': 'border.color', - 'border.customStyle': 'border.style', - 'border.customWidth': 'border.width', - 'typography.customFontStyle': 'typography.fontStyle', - 'typography.customFontWeight': 'typography.fontWeight', - 'typography.customLetterSpacing': 'typography.letterSpacing', - 'typography.customTextDecorations': 'typography.textDecoration', - 'typography.customTextTransforms': 'typography.textTransform', - /* - * These were part of WordPress 5.8 and we need to keep them. - */ - 'border.customRadius': 'border.radius', - 'spacing.customMargin': 'spacing.margin', - 'spacing.customPadding': 'spacing.padding', - 'typography.customLineHeight': 'typography.lineHeight' -}; - -/** - * Remove `custom` prefixes for flags that did not land in 5.8. - * - * This provides continued support for `custom` prefixed properties. It will - * be removed once third party devs have had sufficient time to update themes, - * plugins, etc. - * - * @see https://github.com/WordPress/gutenberg/pull/34485 - * - * @param {string} path Path to desired value in settings. - * @return {string} The value for defined setting. - */ -const removeCustomPrefixes = path => { - return prefixedFlags[path] || path; -}; + getOrientation() { + return 'vertical'; + }, + getAlignments(layout, isBlockBasedTheme) { + const alignmentInfo = getAlignmentsInfo(layout); + if (layout.alignments !== undefined) { + if (!layout.alignments.includes('none')) { + layout.alignments.unshift('none'); + } + return layout.alignments.map(alignment => ({ + name: alignment, + info: alignmentInfo[alignment] + })); + } + const alignments = [{ + name: 'left' + }, { + name: 'center' + }, { + name: 'right' + }]; -/** - * For settings like `color.palette`, which have a value that is an object - * with `default`, `theme`, `custom`, with field values that are arrays of - * items, merge these three arrays into one and return it. The calculation - * is memoized so that identical input values produce identical output. - * @param {Object} value Object to merge - * @return {Array} Array of merged items - */ -function mergeOrigins(value) { - let result = mergeCache.get(value); - if (!result) { - result = ['default', 'theme', 'custom'].flatMap(key => { - var _value$key; - return (_value$key = value[key]) !== null && _value$key !== void 0 ? _value$key : []; + // This is for backwards compatibility with hybrid themes. + if (!isBlockBasedTheme) { + const { + contentSize, + wideSize + } = layout; + if (contentSize) { + alignments.unshift({ + name: 'full' + }); + } + if (wideSize) { + alignments.unshift({ + name: 'wide', + info: alignmentInfo.wide + }); + } + } + alignments.unshift({ + name: 'none', + info: alignmentInfo.none }); - mergeCache.set(value, result); + return alignments; } - return result; -} -const mergeCache = new WeakMap(); +}); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js /** - * For settings like `color.palette`, which have a value that is an object - * with `default`, `theme`, `custom`, with field values that are arrays of - * items, see if any of the three origins have values. - * - * @param {Object} value Object to check - * @return {boolean} Whether the object has values in any of the three origins + * WordPress dependencies */ -function hasMergedOrigins(value) { - return ['default', 'theme', 'custom'].some(key => value?.[key]?.length); -} + + +/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */ /** - * Hook that retrieves the given settings for the block instance in use. + * Return an SVG icon. * - * It looks up the settings first in the block instance hierarchy. - * If none are found, it'll look them up in the block editor settings. + * @param {IconProps} props icon is the SVG component to render + * size is a number specifiying the icon size in pixels + * Other props will be passed to wrapped SVG component + * @param {import('react').ForwardedRef} ref The forwarded ref to the SVG element. * - * @param {string[]} paths The paths to the settings. - * @return {any[]} Returns the values defined for the settings. - * @example - * ```js - * const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' ); - * ``` + * @return {JSX.Element} Icon component */ -function use_settings_useSettings(...paths) { - const { - name: blockName, - clientId = null - } = useBlockEditContext(); +function Icon({ + icon, + size = 24, + ...props +}, ref) { + return (0,external_wp_element_namespaceObject.cloneElement)(icon, { + width: size, + height: size, + ...props, + ref + }); +} +/* harmony default export */ var build_module_icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon)); - // eslint-disable-next-line react-hooks/exhaustive-deps - paths = (0,external_wp_element_namespaceObject.useMemo)(() => paths, paths); - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const candidates = clientId ? [clientId, ...select(store).getBlockParents(clientId, /* ascending */true)].filter(candidateClientId => { - const candidateBlockName = select(store).getBlockName(candidateClientId); - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(candidateBlockName, '__experimentalSettings', false); - }) : []; - return paths.map(path => { - if (blockedPaths.includes(path)) { - // eslint-disable-next-line no-console - console.warn('Top level useSetting paths are disabled. Please use a subpath to query the information needed.'); - return undefined; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-center.js - // 0. Allow third parties to filter the block's settings at runtime. - let result = (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.useSetting.before', undefined, path, clientId, blockName); - if (undefined !== result) { - return result; - } - const normalizedPath = removeCustomPrefixes(path); +/** + * WordPress dependencies + */ - // 1. Take settings from the block instance or its ancestors. - // Start from the current block and work our way up the ancestors. - for (const candidateClientId of candidates) { - var _getValueFromObjectPa; - const candidateAtts = select(store).getBlockAttributes(candidateClientId); - result = (_getValueFromObjectPa = getValueFromObjectPath(candidateAtts.settings?.blocks?.[blockName], normalizedPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(candidateAtts.settings, normalizedPath); - if (result !== undefined) { - // Stop the search for more distant ancestors and move on. - break; - } - } +const positionCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z" +})); +/* harmony default export */ var position_center = (positionCenter); - // 2. Fall back to the settings from the block editor store (__experimentalFeatures). - const settings = select(store).getSettings(); - if (result === undefined && blockName) { - result = getValueFromObjectPath(settings.__experimentalFeatures?.blocks?.[blockName], normalizedPath); - } - if (result === undefined) { - result = getValueFromObjectPath(settings.__experimentalFeatures, normalizedPath); - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-wide.js - // Return if the setting was found in either the block instance or the store. - if (result !== undefined) { - if (external_wp_blocks_namespaceObject.__EXPERIMENTAL_PATHS_WITH_MERGE[normalizedPath]) { - return mergeOrigins(result); - } - return result; - } +/** + * WordPress dependencies + */ - // 3. Otherwise, use deprecated settings. - const deprecatedSettingsValue = deprecatedFlags[normalizedPath]?.(settings); - if (deprecatedSettingsValue !== undefined) { - return deprecatedSettingsValue; - } +const stretchWide = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M16 5.5H8V4h8v1.5ZM16 20H8v-1.5h8V20ZM5 9h14v6H5V9Z" +})); +/* harmony default export */ var stretch_wide = (stretchWide); - // 4. Fallback for typography.dropCap: - // This is only necessary to support typography.dropCap. - // when __experimentalFeatures are not present (core without plugin). - // To remove when __experimentalFeatures are ported to core. - return normalizedPath === 'typography.dropCap' ? true : undefined; - }); - }, [blockName, clientId, paths]); -} +;// CONCATENATED MODULE: external ["wp","styleEngine"] +var external_wp_styleEngine_namespaceObject = window["wp"]["styleEngine"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/constrained.js /** - * Hook that retrieves the given setting for the block instance in use. - * - * It looks up the setting first in the block instance hierarchy. - * If none is found, it'll look it up in the block editor settings. - * - * @param {string} path The path to the setting. - * @return {any} Returns the value defined for the setting. - * @deprecated 6.5.0 Use useSettings instead. - * @example - * ```js - * const isEnabled = useSetting( 'typography.dropCap' ); - * ``` + * WordPress dependencies */ -function useSetting(path) { - external_wp_deprecated_default()('wp.blockEditor.useSetting', { - since: '6.5', - alternative: 'wp.blockEditor.useSettings', - note: 'The new useSettings function can retrieve multiple settings at once, with better performance.' - }); - const [value] = use_settings_useSettings(path); - return value; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/fluid-utils.js -/** - * The fluid utilities must match the backend equivalent. - * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php - * --------------------------------------------------------------- - */ -// Defaults. -const DEFAULT_MAXIMUM_VIEWPORT_WIDTH = '1600px'; -const DEFAULT_MINIMUM_VIEWPORT_WIDTH = '320px'; -const DEFAULT_SCALE_FACTOR = 1; -const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25; -const DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75; -const DEFAULT_MINIMUM_FONT_SIZE_LIMIT = '14px'; + + /** - * Computes a fluid font-size value that uses clamp(). A minimum and maximum - * font size OR a single font size can be specified. - * - * If a single font size is specified, it is scaled up and down using a logarithmic scale. - * - * @example - * ```js - * // Calculate fluid font-size value from a minimum and maximum value. - * const fontSize = getComputedFluidTypographyValue( { - * minimumFontSize: '20px', - * maximumFontSize: '45px' - * } ); - * // Calculate fluid font-size value from a single font size. - * const fontSize = getComputedFluidTypographyValue( { - * fontSize: '30px', - * } ); - * ``` - * - * @param {Object} args - * @param {?string} args.minimumViewportWidth Minimum viewport size from which type will have fluidity. Optional if fontSize is specified. - * @param {?string} args.maximumViewportWidth Maximum size up to which type will have fluidity. Optional if fontSize is specified. - * @param {string|number} [args.fontSize] Size to derive maximumFontSize and minimumFontSize from, if necessary. Optional if minimumFontSize and maximumFontSize are specified. - * @param {?string} args.maximumFontSize Maximum font size for any clamp() calculation. Optional. - * @param {?string} args.minimumFontSize Minimum font size for any clamp() calculation. Optional. - * @param {?number} args.scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional. - * @param {?string} args.minimumFontSizeLimit The smallest a calculated font size may be. Optional. - * - * @return {string|null} A font-size value using clamp(). + * Internal dependencies */ -function getComputedFluidTypographyValue({ - minimumFontSize, - maximumFontSize, - fontSize, - minimumViewportWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH, - maximumViewportWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH, - scaleFactor = DEFAULT_SCALE_FACTOR, - minimumFontSizeLimit -}) { - // Validate incoming settings and set defaults. - minimumFontSizeLimit = !!getTypographyValueAndUnit(minimumFontSizeLimit) ? minimumFontSizeLimit : DEFAULT_MINIMUM_FONT_SIZE_LIMIT; - /* - * Calculates missing minimumFontSize and maximumFontSize from - * defaultFontSize if provided. - */ - if (fontSize) { - // Parses default font size. - const fontSizeParsed = getTypographyValueAndUnit(fontSize); - // Protect against invalid units. - if (!fontSizeParsed?.unit) { - return null; - } - // Parses the minimum font size limit, so we can perform checks using it. - const minimumFontSizeLimitParsed = getTypographyValueAndUnit(minimumFontSizeLimit, { - coerceTo: fontSizeParsed.unit + + +/* harmony default export */ var constrained = ({ + name: 'constrained', + label: (0,external_wp_i18n_namespaceObject.__)('Constrained'), + inspectorControls: function DefaultLayoutInspectorControls({ + layout, + onChange, + layoutBlockSupport = {} + }) { + const { + wideSize, + contentSize, + justifyContent = 'center' + } = layout; + const { + allowJustification = true + } = layoutBlockSupport; + const onJustificationChange = value => { + onChange({ + ...layout, + justifyContent: value + }); + }; + const justificationOptions = [{ + value: 'left', + icon: justify_left, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items left') + }, { + value: 'center', + icon: justify_center, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items center') + }, { + value: 'right', + icon: justify_right, + label: (0,external_wp_i18n_namespaceObject.__)('Justify items right') + }]; + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['%', 'px', 'em', 'rem', 'vw'] }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-hooks__layout-controls" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-hooks__layout-controls-unit" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + className: "block-editor-hooks__layout-controls-unit-input", + label: (0,external_wp_i18n_namespaceObject.__)('Content'), + labelPosition: "top", + __unstableInputWidth: "80px", + value: contentSize || wideSize || '', + onChange: nextWidth => { + nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth; + onChange({ + ...layout, + contentSize: nextWidth + }); + }, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: position_center + })), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-hooks__layout-controls-unit" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + className: "block-editor-hooks__layout-controls-unit-input", + label: (0,external_wp_i18n_namespaceObject.__)('Wide'), + labelPosition: "top", + __unstableInputWidth: "80px", + value: wideSize || contentSize || '', + onChange: nextWidth => { + nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth; + onChange({ + ...layout, + wideSize: nextWidth + }); + }, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: stretch_wide + }))), (0,external_wp_element_namespaceObject.createElement)("p", { + className: "block-editor-hooks__layout-controls-helptext" + }, (0,external_wp_i18n_namespaceObject.__)('Customize the width for all elements that are assigned to the center or wide columns.')), allowJustification && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Justification'), + value: justifyContent, + onChange: onJustificationChange + }, justificationOptions.map(({ + value, + icon, + label + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { + key: value, + value: value, + icon: icon, + label: label + }); + }))); + }, + toolBarControls: function DefaultLayoutToolbarControls() { + return null; + }, + getLayoutStyle: function getLayoutStyle({ + selector, + layout = {}, + style, + blockName, + hasBlockGapSupport, + layoutDefinitions = LAYOUT_DEFINITIONS + }) { + const { + contentSize, + wideSize, + justifyContent + } = layout; + const blockGapStyleValue = getGapCSSValue(style?.spacing?.blockGap); - // Don't enforce minimum font size if a font size has explicitly set a min and max value. - if (!!minimumFontSizeLimitParsed?.value && !minimumFontSize && !maximumFontSize) { - /* - * If a minimum size was not passed to this function - * and the user-defined font size is lower than $minimum_font_size_limit, - * do not calculate a fluid value. - */ - if (fontSizeParsed?.value <= minimumFontSizeLimitParsed?.value) { - return null; + // If a block's block.json skips serialization for spacing or + // spacing.blockGap, don't apply the user-defined value to the styles. + let blockGapValue = ''; + if (!shouldSkipSerialization(blockName, 'spacing', 'blockGap')) { + // If an object is provided only use the 'top' value for this kind of gap. + if (blockGapStyleValue?.top) { + blockGapValue = getGapCSSValue(blockGapStyleValue?.top); + } else if (typeof blockGapStyleValue === 'string') { + blockGapValue = getGapCSSValue(blockGapStyleValue); } } - - // If no fluid max font size is available use the incoming value. - if (!maximumFontSize) { - maximumFontSize = `${fontSizeParsed.value}${fontSizeParsed.unit}`; + const marginLeft = justifyContent === 'left' ? '0 !important' : 'auto !important'; + const marginRight = justifyContent === 'right' ? '0 !important' : 'auto !important'; + let output = !!contentSize || !!wideSize ? ` + ${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} { + max-width: ${contentSize !== null && contentSize !== void 0 ? contentSize : wideSize}; + margin-left: ${marginLeft}; + margin-right: ${marginRight}; + } + ${appendSelectors(selector, '> .alignwide')} { + max-width: ${wideSize !== null && wideSize !== void 0 ? wideSize : contentSize}; + } + ${appendSelectors(selector, '> .alignfull')} { + max-width: none; + } + ` : ''; + if (justifyContent === 'left') { + output += `${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} + { margin-left: ${marginLeft}; }`; + } else if (justifyContent === 'right') { + output += `${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} + { margin-right: ${marginRight}; }`; } - /* - * If no minimumFontSize is provided, create one using - * the given font size multiplied by the min font size scale factor. - */ - if (!minimumFontSize) { - const fontSizeValueInPx = fontSizeParsed.unit === 'px' ? fontSizeParsed.value : fontSizeParsed.value * 16; - - /* - * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum, - * that is, how quickly the size factor reaches 0 given increasing font size values. - * For a - b * log2(), lower values of b will make the curve move towards the minimum faster. - * The scale factor is constrained between min and max values. - */ - const minimumFontSizeFactor = Math.min(Math.max(1 - 0.075 * Math.log2(fontSizeValueInPx), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX); - - // Calculates the minimum font size. - const calculatedMinimumFontSize = roundToPrecision(fontSizeParsed.value * minimumFontSizeFactor, 3); + // If there is custom padding, add negative margins for alignfull blocks. + if (style?.spacing?.padding) { + // The style object might be storing a preset so we need to make sure we get a usable value. + const paddingValues = (0,external_wp_styleEngine_namespaceObject.getCSSRules)(style); + paddingValues.forEach(rule => { + if (rule.key === 'paddingRight') { + output += ` + ${appendSelectors(selector, '> .alignfull')} { + margin-right: calc(${rule.value} * -1); + } + `; + } else if (rule.key === 'paddingLeft') { + output += ` + ${appendSelectors(selector, '> .alignfull')} { + margin-left: calc(${rule.value} * -1); + } + `; + } + }); + } - // Only use calculated min font size if it's > $minimum_font_size_limit value. - if (!!minimumFontSizeLimitParsed?.value && calculatedMinimumFontSize < minimumFontSizeLimitParsed?.value) { - minimumFontSize = `${minimumFontSizeLimitParsed.value}${minimumFontSizeLimitParsed.unit}`; - } else { - minimumFontSize = `${calculatedMinimumFontSize}${fontSizeParsed.unit}`; + // Output blockGap styles based on rules contained in layout definitions in theme.json. + if (hasBlockGapSupport && blockGapValue) { + output += getBlockGapCSS(selector, layoutDefinitions, 'constrained', blockGapValue); + } + return output; + }, + getOrientation() { + return 'vertical'; + }, + getAlignments(layout) { + const alignmentInfo = getAlignmentsInfo(layout); + if (layout.alignments !== undefined) { + if (!layout.alignments.includes('none')) { + layout.alignments.unshift('none'); } + return layout.alignments.map(alignment => ({ + name: alignment, + info: alignmentInfo[alignment] + })); + } + const { + contentSize, + wideSize + } = layout; + const alignments = [{ + name: 'left' + }, { + name: 'center' + }, { + name: 'right' + }]; + if (contentSize) { + alignments.unshift({ + name: 'full' + }); + } + if (wideSize) { + alignments.unshift({ + name: 'wide', + info: alignmentInfo.wide + }); } + alignments.unshift({ + name: 'none', + info: alignmentInfo.none + }); + return alignments; } +}); - // Grab the minimum font size and normalize it in order to use the value for calculations. - const minimumFontSizeParsed = getTypographyValueAndUnit(minimumFontSize); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/grid.js - // We get a 'preferred' unit to keep units consistent when calculating, - // otherwise the result will not be accurate. - const fontSizeUnit = minimumFontSizeParsed?.unit || 'rem'; +/** + * WordPress dependencies + */ - // Grabs the maximum font size and normalize it in order to use the value for calculations. - const maximumFontSizeParsed = getTypographyValueAndUnit(maximumFontSize, { - coerceTo: fontSizeUnit - }); - // Checks for mandatory min and max sizes, and protects against unsupported units. - if (!minimumFontSizeParsed || !maximumFontSizeParsed) { - return null; - } - // Uses rem for accessible fluid target font scaling. - const minimumFontSizeRem = getTypographyValueAndUnit(minimumFontSize, { - coerceTo: 'rem' - }); +/** + * Internal dependencies + */ + - // Viewport widths defined for fluid typography. Normalize units - const maximumViewportWidthParsed = getTypographyValueAndUnit(maximumViewportWidth, { - coerceTo: fontSizeUnit - }); - const minimumViewportWidthParsed = getTypographyValueAndUnit(minimumViewportWidth, { - coerceTo: fontSizeUnit - }); - // Protect against unsupported units. - if (!maximumViewportWidthParsed || !minimumViewportWidthParsed || !minimumFontSizeRem) { - return null; - } - // Calculates the linear factor denominator. If it's 0, we cannot calculate a fluid value. - const linearDenominator = maximumViewportWidthParsed.value - minimumViewportWidthParsed.value; - if (!linearDenominator) { +const RANGE_CONTROL_MAX_VALUES = { + px: 600, + '%': 100, + vw: 100, + vh: 100, + em: 38, + rem: 38 +}; +/* harmony default export */ var grid = ({ + name: 'grid', + label: (0,external_wp_i18n_namespaceObject.__)('Grid'), + inspectorControls: function GridLayoutInspectorControls({ + layout = {}, + onChange + }) { + return layout?.columnCount ? (0,external_wp_element_namespaceObject.createElement)(GridLayoutColumnsControl, { + layout: layout, + onChange: onChange + }) : (0,external_wp_element_namespaceObject.createElement)(GridLayoutMinimumWidthControl, { + layout: layout, + onChange: onChange + }); + }, + toolBarControls: function DefaultLayoutToolbarControls() { return null; - } + }, + getLayoutStyle: function getLayoutStyle({ + selector, + layout, + style, + blockName, + hasBlockGapSupport, + layoutDefinitions = LAYOUT_DEFINITIONS + }) { + const { + minimumColumnWidth = '12rem', + columnCount = null + } = layout; - // Build CSS rule. - // Borrowed from https://websemantics.uk/tools/responsive-font-calculator/. - const minViewportWidthOffsetValue = roundToPrecision(minimumViewportWidthParsed.value / 100, 3); - const viewportWidthOffset = roundToPrecision(minViewportWidthOffsetValue, 3) + fontSizeUnit; - const linearFactor = 100 * ((maximumFontSizeParsed.value - minimumFontSizeParsed.value) / linearDenominator); - const linearFactorScaled = roundToPrecision((linearFactor || 1) * scaleFactor, 3); - const fluidTargetFontSize = `${minimumFontSizeRem.value}${minimumFontSizeRem.unit} + ((1vw - ${viewportWidthOffset}) * ${linearFactorScaled})`; - return `clamp(${minimumFontSize}, ${fluidTargetFontSize}, ${maximumFontSize})`; -} + // If a block's block.json skips serialization for spacing or spacing.blockGap, + // don't apply the user-defined value to the styles. + const blockGapValue = style?.spacing?.blockGap && !shouldSkipSerialization(blockName, 'spacing', 'blockGap') ? getGapCSSValue(style?.spacing?.blockGap, '0.5em') : undefined; + let output = ''; + const rules = []; + if (columnCount) { + rules.push(`grid-template-columns: repeat(${columnCount}, minmax(0, 1fr))`); + } else if (minimumColumnWidth) { + rules.push(`grid-template-columns: repeat(auto-fill, minmax(min(${minimumColumnWidth}, 100%), 1fr))`); + } + if (rules.length) { + // Reason to disable: the extra line breaks added by prettier mess with the unit tests. + // eslint-disable-next-line prettier/prettier + output = `${appendSelectors(selector)} { ${rules.join('; ')}; }`; + } -/** - * Internal method that checks a string for a unit and value and returns an array consisting of `'value'` and `'unit'`, e.g., [ '42', 'rem' ]. - * A raw font size of `value + unit` is expected. If the value is an integer, it will convert to `value + 'px'`. - * - * @param {string|number} rawValue Raw size value from theme.json. - * @param {Object|undefined} options Calculation options. - * - * @return {{ unit: string, value: number }|null} An object consisting of `'value'` and `'unit'` properties. - */ -function getTypographyValueAndUnit(rawValue, options = {}) { - if (typeof rawValue !== 'string' && typeof rawValue !== 'number') { - return null; + // Output blockGap styles based on rules contained in layout definitions in theme.json. + if (hasBlockGapSupport && blockGapValue) { + output += getBlockGapCSS(selector, layoutDefinitions, 'grid', blockGapValue); + } + return output; + }, + getOrientation() { + return 'horizontal'; + }, + getAlignments() { + return []; } +}); - // Converts numeric values to pixel values by default. - if (isFinite(rawValue)) { - rawValue = `${rawValue}px`; - } +// Enables setting minimum width of grid items. +function GridLayoutMinimumWidthControl({ + layout, + onChange +}) { const { - coerceTo, - rootSizeValue, - acceptableUnits - } = { - coerceTo: '', - // Default browser font size. Later we could inject some JS to compute this `getComputedStyle( document.querySelector( "html" ) ).fontSize`. - rootSizeValue: 16, - acceptableUnits: ['rem', 'px', 'em'], - ...options + minimumColumnWidth: value = '12rem' + } = layout; + const [quantity, unit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); + const handleSliderChange = next => { + onChange({ + ...layout, + minimumColumnWidth: [next, unit].join('') + }); }; - const acceptableUnitsGroup = acceptableUnits?.join('|'); - const regexUnits = new RegExp(`^(\\d*\\.?\\d+)(${acceptableUnitsGroup}){1,1}$`); - const matches = rawValue.match(regexUnits); - - // We need a number value and a unit. - if (!matches || matches.length < 3) { - return null; - } - let [, value, unit] = matches; - let returnValue = parseFloat(value); - if ('px' === coerceTo && ('em' === unit || 'rem' === unit)) { - returnValue = returnValue * rootSizeValue; - unit = coerceTo; - } - if ('px' === unit && ('em' === coerceTo || 'rem' === coerceTo)) { - returnValue = returnValue / rootSizeValue; - unit = coerceTo; - } - /* - * No calculation is required if swapping between em and rem yet, - * since we assume a root size value. Later we might like to differentiate between - * :root font size (rem) and parent element font size (em) relativity. - */ - if (('em' === coerceTo || 'rem' === coerceTo) && ('em' === unit || 'rem' === unit)) { - unit = coerceTo; - } - return { - value: roundToPrecision(returnValue, 3), - unit + // Mostly copied from HeightControl. + const handleUnitChange = newUnit => { + // Attempt to smooth over differences between currentUnit and newUnit. + // This should slightly improve the experience of switching between unit types. + let newValue; + if (['em', 'rem'].includes(newUnit) && unit === 'px') { + // Convert pixel value to an approximate of the new unit, assuming a root size of 16px. + newValue = (quantity / 16).toFixed(2) + newUnit; + } else if (['em', 'rem'].includes(unit) && newUnit === 'px') { + // Convert to pixel value assuming a root size of 16px. + newValue = Math.round(quantity * 16) + newUnit; + } else if (['vh', 'vw', '%'].includes(newUnit) && quantity > 100) { + // When converting to `vh`, `vw`, or `%` units, cap the new value at 100. + newValue = 100 + newUnit; + } + onChange({ + ...layout, + minimumColumnWidth: newValue + }); }; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Minimum column width')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + gap: 4 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + isBlock: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + size: '__unstable-large', + onChange: newValue => { + onChange({ + ...layout, + minimumColumnWidth: newValue + }); + }, + onUnitChange: handleUnitChange, + value: value, + min: 0 + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + isBlock: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + onChange: handleSliderChange, + value: quantity, + min: 0, + max: RANGE_CONTROL_MAX_VALUES[unit] || 600, + withInputField: false + })))); +} + +// Enables setting number of grid columns +function GridLayoutColumnsControl({ + layout, + onChange +}) { + const { + columnCount = 3 + } = layout; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Columns'), + value: columnCount, + onChange: value => onChange({ + ...layout, + columnCount: value + }), + min: 1, + max: 6 + }); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/index.js /** - * Returns a value rounded to defined precision. - * Returns `undefined` if the value is not a valid finite number. + * Internal dependencies + */ + + + + +const layoutTypes = [flow, flex, constrained, grid]; + +/** + * Retrieves a layout type by name. * - * @param {number} value Raw value. - * @param {number} digits The number of digits to appear after the decimal point + * @param {string} name - The name of the layout type. + * @return {Object} Layout type. + */ +function getLayoutType(name = 'default') { + return layoutTypes.find(layoutType => layoutType.name === name); +} + +/** + * Retrieves the available layout types. * - * @return {number|undefined} Value rounded to standard precision. + * @return {Array} Layout types. */ -function roundToPrecision(value, digits = 3) { - const base = Math.pow(10, digits); - return Number.isFinite(value) ? parseFloat(Math.round(value * base) / base) : undefined; +function getLayoutTypes() { + return layoutTypes; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/typography-utils.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/layout.js + /** - * The fluid utilities must match the backend equivalent. - * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php - * --------------------------------------------------------------- + * WordPress dependencies */ + /** * Internal dependencies */ +const defaultLayout = { + type: 'default' +}; +const Layout = (0,external_wp_element_namespaceObject.createContext)(defaultLayout); + /** - * @typedef {Object} FluidPreset - * @property {string|undefined} max A maximum font size value. - * @property {?string|undefined} min A minimum font size value. + * Allows to define the layout. */ +const LayoutProvider = Layout.Provider; /** - * @typedef {Object} Preset - * @property {?string|?number} size A default font size. - * @property {string} name A font size name, displayed in the UI. - * @property {string} slug A font size slug - * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size. + * React hook used to retrieve the layout config. */ +function useLayout() { + return (0,external_wp_element_namespaceObject.useContext)(Layout); +} +function LayoutStyle({ + layout = {}, + css, + ...props +}) { + const layoutType = getLayoutType(layout.type); + const blockGapSupport = use_setting_useSetting('spacing.blockGap'); + const hasBlockGapSupport = blockGapSupport !== null; + if (layoutType) { + if (css) { + return (0,external_wp_element_namespaceObject.createElement)("style", null, css); + } + const layoutStyle = layoutType.getLayoutStyle?.({ + hasBlockGapSupport, + layout, + ...props + }); + if (layoutStyle) { + return (0,external_wp_element_namespaceObject.createElement)("style", null, layoutStyle); + } + } + return null; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/use-available-alignments.js /** - * @typedef {Object} TypographySettings - * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified. - * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified. - * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional. - * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional. - * @property {?string} minFontSize The smallest a calculated font size may be. Optional. + * WordPress dependencies */ + /** - * Returns a font-size value based on a given font-size preset. - * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values. - * - * @param {Preset} preset - * @param {Object} typographyOptions - * @param {boolean|TypographySettings} typographyOptions.fluid Whether fluid typography is enabled, and, optionally, fluid font size options. - * - * @return {string|*} A font-size value or the value of preset.size. + * Internal dependencies */ -function getTypographyFontSizeValue(preset, typographyOptions) { + + + +const use_available_alignments_EMPTY_ARRAY = []; +const use_available_alignments_DEFAULT_CONTROLS = ['none', 'left', 'center', 'right', 'wide', 'full']; +const WIDE_CONTROLS = ['wide', 'full']; +function useAvailableAlignments(controls = use_available_alignments_DEFAULT_CONTROLS) { + // Always add the `none` option if not exists. + if (!controls.includes('none')) { + controls = ['none', ...controls]; + } const { - size: defaultSize - } = preset; - if (!isFluidTypographyEnabled(typographyOptions)) { - return defaultSize; + wideControlsEnabled = false, + themeSupportsLayout, + isBlockBasedTheme + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + const settings = getSettings(); + return { + wideControlsEnabled: settings.alignWide, + themeSupportsLayout: settings.supportsLayout, + isBlockBasedTheme: settings.__unstableIsBlockBasedTheme + }; + }, []); + const layout = useLayout(); + const layoutType = getLayoutType(layout?.type); + const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme); + if (themeSupportsLayout) { + const alignments = layoutAlignments.filter(({ + name: alignmentName + }) => controls.includes(alignmentName)); + // While we treat `none` as an alignment, we shouldn't return it if no + // other alignments exist. + if (alignments.length === 1 && alignments[0].name === 'none') { + return use_available_alignments_EMPTY_ARRAY; + } + return alignments; } - /* - * Checks whether a font size has explicitly bypassed fluid calculations. - * Also catches falsy values and 0/'0'. - * Fluid calculations cannot be performed on `0`. - */ - if (!defaultSize || '0' === defaultSize || false === preset?.fluid) { - return defaultSize; + + // Starting here, it's the fallback for themes not supporting the layout config. + if (layoutType.name !== 'default' && layoutType.name !== 'constrained') { + return use_available_alignments_EMPTY_ARRAY; } - const fluidTypographySettings = typeof typographyOptions?.fluid === 'object' ? typographyOptions?.fluid : {}; - const fluidFontSizeValue = getComputedFluidTypographyValue({ - minimumFontSize: preset?.fluid?.min, - maximumFontSize: preset?.fluid?.max, - fontSize: defaultSize, - minimumFontSizeLimit: fluidTypographySettings?.minFontSize, - maximumViewportWidth: fluidTypographySettings?.maxViewportWidth, - minimumViewportWidth: fluidTypographySettings?.minViewportWidth - }); - if (!!fluidFontSizeValue) { - return fluidFontSizeValue; + const { + alignments: availableAlignments = use_available_alignments_DEFAULT_CONTROLS + } = layout; + const enabledControls = controls.filter(control => (layout.alignments || + // Ignore the global wideAlignment check if the layout explicitely defines alignments. + wideControlsEnabled || !WIDE_CONTROLS.includes(control)) && availableAlignments.includes(control)).map(enabledControl => ({ + name: enabledControl + })); + + // While we treat `none` as an alignment, we shouldn't return it if no + // other alignments exist. + if (enabledControls.length === 1 && enabledControls[0].name === 'none') { + return use_available_alignments_EMPTY_ARRAY; } - return defaultSize; -} -function isFluidTypographyEnabled(typographySettings) { - const fluidSettings = typographySettings?.fluid; - return true === fluidSettings || fluidSettings && typeof fluidSettings === 'object' && Object.keys(fluidSettings).length > 0; + return enabledControls; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-none.js + /** - * Returns fluid typography settings from theme.json setting object. - * - * @param {Object} settings Theme.json settings - * @param {Object} settings.typography Theme.json typography settings - * @param {Object} settings.layout Theme.json layout settings - * @return {TypographySettings} Fluid typography settings + * WordPress dependencies */ -function getFluidTypographyOptionsFromSettings(settings) { - const typographySettings = settings?.typography; - const layoutSettings = settings?.layout; - const defaultMaxViewportWidth = getTypographyValueAndUnit(layoutSettings?.wideSize) ? layoutSettings?.wideSize : null; - return isFluidTypographyEnabled(typographySettings) && defaultMaxViewportWidth ? { - fluid: { - maxViewportWidth: defaultMaxViewportWidth, - ...typographySettings.fluid - } - } : { - fluid: typographySettings?.fluid - }; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/utils.js +const alignNone = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z" +})); +/* harmony default export */ var align_none = (alignNone); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-left.js + +/** + * WordPress dependencies + */ + +const positionLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z" +})); +/* harmony default export */ var position_left = (positionLeft); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-right.js + +/** + * WordPress dependencies + */ + +const positionRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z" +})); +/* harmony default export */ var position_right = (positionRight); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js + +/** + * WordPress dependencies + */ + +const stretchFullWidth = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M5 4h14v11H5V4Zm11 16H8v-1.5h8V20Z" +})); +/* harmony default export */ var stretch_full_width = (stretchFullWidth); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/constants.js +/** + * WordPress dependencies + */ + + +const constants_BLOCK_ALIGNMENTS_CONTROLS = { + none: { + icon: align_none, + title: (0,external_wp_i18n_namespaceObject._x)('None', 'Alignment option') + }, + left: { + icon: position_left, + title: (0,external_wp_i18n_namespaceObject.__)('Align left') + }, + center: { + icon: position_center, + title: (0,external_wp_i18n_namespaceObject.__)('Align center') + }, + right: { + icon: position_right, + title: (0,external_wp_i18n_namespaceObject.__)('Align right') + }, + wide: { + icon: stretch_wide, + title: (0,external_wp_i18n_namespaceObject.__)('Wide width') + }, + full: { + icon: stretch_full_width, + title: (0,external_wp_i18n_namespaceObject.__)('Full width') + } +}; +const constants_DEFAULT_CONTROL = 'none'; + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/ui.js + /** * External dependencies */ /** - * Internal dependencies + * WordPress dependencies */ -/* Supporting data. */ -const ROOT_BLOCK_NAME = 'root'; -const ROOT_BLOCK_SELECTOR = 'body'; -const ROOT_BLOCK_SUPPORTS = (/* unused pure expression or super */ null && (['background', 'backgroundColor', 'color', 'linkColor', 'captionColor', 'buttonColor', 'headingColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'])); -const PRESET_METADATA = [{ - path: ['color', 'palette'], - valueKey: 'color', - cssVarInfix: 'color', - classes: [{ - classSuffix: 'color', - propertyName: 'color' - }, { - classSuffix: 'background-color', - propertyName: 'background-color' - }, { - classSuffix: 'border-color', - propertyName: 'border-color' - }] -}, { - path: ['color', 'gradients'], - valueKey: 'gradient', - cssVarInfix: 'gradient', - classes: [{ - classSuffix: 'gradient-background', - propertyName: 'background' - }] -}, { - path: ['color', 'duotone'], - valueKey: 'colors', - cssVarInfix: 'duotone', - valueFunc: ({ - slug - }) => `url( '#wp-duotone-${slug}' )`, - classes: [] -}, { - path: ['shadow', 'presets'], - valueKey: 'shadow', - cssVarInfix: 'shadow', - classes: [] -}, { - path: ['typography', 'fontSizes'], - valueFunc: (preset, settings) => getTypographyFontSizeValue(preset, getFluidTypographyOptionsFromSettings(settings)), - valueKey: 'size', - cssVarInfix: 'font-size', - classes: [{ - classSuffix: 'font-size', - propertyName: 'font-size' - }] -}, { - path: ['typography', 'fontFamilies'], - valueKey: 'fontFamily', - cssVarInfix: 'font-family', - classes: [{ - classSuffix: 'font-family', - propertyName: 'font-family' - }] -}, { - path: ['spacing', 'spacingSizes'], - valueKey: 'size', - cssVarInfix: 'spacing', - valueFunc: ({ - size - }) => size, - classes: [] -}]; -const STYLE_PATH_TO_CSS_VAR_INFIX = { - 'color.background': 'color', - 'color.text': 'color', - 'filter.duotone': 'duotone', - 'elements.link.color.text': 'color', - 'elements.link.:hover.color.text': 'color', - 'elements.link.typography.fontFamily': 'font-family', - 'elements.link.typography.fontSize': 'font-size', - 'elements.button.color.text': 'color', - 'elements.button.color.background': 'color', - 'elements.caption.color.text': 'color', - 'elements.button.typography.fontFamily': 'font-family', - 'elements.button.typography.fontSize': 'font-size', - 'elements.heading.color': 'color', - 'elements.heading.color.background': 'color', - 'elements.heading.typography.fontFamily': 'font-family', - 'elements.heading.gradient': 'gradient', - 'elements.heading.color.gradient': 'gradient', - 'elements.h1.color': 'color', - 'elements.h1.color.background': 'color', - 'elements.h1.typography.fontFamily': 'font-family', - 'elements.h1.color.gradient': 'gradient', - 'elements.h2.color': 'color', - 'elements.h2.color.background': 'color', - 'elements.h2.typography.fontFamily': 'font-family', - 'elements.h2.color.gradient': 'gradient', - 'elements.h3.color': 'color', - 'elements.h3.color.background': 'color', - 'elements.h3.typography.fontFamily': 'font-family', - 'elements.h3.color.gradient': 'gradient', - 'elements.h4.color': 'color', - 'elements.h4.color.background': 'color', - 'elements.h4.typography.fontFamily': 'font-family', - 'elements.h4.color.gradient': 'gradient', - 'elements.h5.color': 'color', - 'elements.h5.color.background': 'color', - 'elements.h5.typography.fontFamily': 'font-family', - 'elements.h5.color.gradient': 'gradient', - 'elements.h6.color': 'color', - 'elements.h6.color.background': 'color', - 'elements.h6.typography.fontFamily': 'font-family', - 'elements.h6.color.gradient': 'gradient', - 'color.gradient': 'gradient', - shadow: 'shadow', - 'typography.fontSize': 'font-size', - 'typography.fontFamily': 'font-family' -}; +/** + * Internal dependencies + */ -// A static list of block attributes that store global style preset slugs. -const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = { - 'color.background': 'backgroundColor', - 'color.text': 'textColor', - 'color.gradient': 'gradient', - 'typography.fontSize': 'fontSize', - 'typography.fontFamily': 'fontFamily' -}; -const TOOLSPANEL_DROPDOWNMENU_PROPS = { - popoverProps: { - placement: 'left-start', - offset: 259 // Inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px) - } -}; -function findInPresetsBy(features, blockName, presetPath, presetProperty, presetValueValue) { - // Block presets take priority above root level presets. - const orderedPresetsByOrigin = [getValueFromObjectPath(features, ['blocks', blockName, ...presetPath]), getValueFromObjectPath(features, presetPath)]; - for (const presetByOrigin of orderedPresetsByOrigin) { - if (presetByOrigin) { - // Preset origins ordered by priority. - const origins = ['custom', 'theme', 'default']; - for (const origin of origins) { - const presets = presetByOrigin[origin]; - if (presets) { - const presetObject = presets.find(preset => preset[presetProperty] === presetValueValue); - if (presetObject) { - if (presetProperty === 'slug') { - return presetObject; - } - // If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored. - const highestPresetObjectWithSameSlug = findInPresetsBy(features, blockName, presetPath, 'slug', presetObject.slug); - if (highestPresetObjectWithSameSlug[presetProperty] === presetObject[presetProperty]) { - return presetObject; - } - return undefined; - } - } - } - } - } -} -function getPresetVariableFromValue(features, blockName, variableStylePath, presetPropertyValue) { - if (!presetPropertyValue) { - return presetPropertyValue; - } - const cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[variableStylePath]; - const metadata = PRESET_METADATA.find(data => data.cssVarInfix === cssVarInfix); - if (!metadata) { - // The property doesn't have preset data - // so the value should be returned as it is. - return presetPropertyValue; - } - const { - valueKey, - path - } = metadata; - const presetObject = findInPresetsBy(features, blockName, path, valueKey, presetPropertyValue); - if (!presetObject) { - // Value wasn't found in the presets, - // so it must be a custom value. - return presetPropertyValue; - } - return `var:preset|${cssVarInfix}|${presetObject.slug}`; -} -function getValueFromPresetVariable(features, blockName, variable, [presetType, slug]) { - const metadata = PRESET_METADATA.find(data => data.cssVarInfix === presetType); - if (!metadata) { - return variable; - } - const presetObject = findInPresetsBy(features.settings, blockName, metadata.path, 'slug', slug); - if (presetObject) { - const { - valueKey - } = metadata; - const result = presetObject[valueKey]; - return getValueFromVariable(features, blockName, result); +function BlockAlignmentUI({ + value, + onChange, + controls, + isToolbar, + isCollapsed = true +}) { + const enabledControls = useAvailableAlignments(controls); + const hasEnabledControls = !!enabledControls.length; + if (!hasEnabledControls) { + return null; } - return variable; -} -function getValueFromCustomVariable(features, blockName, variable, path) { - var _getValueFromObjectPa; - const result = (_getValueFromObjectPa = getValueFromObjectPath(features.settings, ['blocks', blockName, 'custom', ...path])) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(features.settings, ['custom', ...path]); - if (!result) { - return variable; + function onChangeAlignment(align) { + onChange([value, 'none'].includes(align) ? undefined : align); } - // A variable may reference another variable so we need recursion until we find the value. - return getValueFromVariable(features, blockName, result); + const activeAlignmentControl = constants_BLOCK_ALIGNMENTS_CONTROLS[value]; + const defaultAlignmentControl = constants_BLOCK_ALIGNMENTS_CONTROLS[constants_DEFAULT_CONTROL]; + const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; + const commonProps = { + icon: activeAlignmentControl ? activeAlignmentControl.icon : defaultAlignmentControl.icon, + label: (0,external_wp_i18n_namespaceObject.__)('Align') + }; + const extraProps = isToolbar ? { + isCollapsed, + controls: enabledControls.map(({ + name: controlName + }) => { + return { + ...constants_BLOCK_ALIGNMENTS_CONTROLS[controlName], + isActive: value === controlName || !value && controlName === 'none', + role: isCollapsed ? 'menuitemradio' : undefined, + onClick: () => onChangeAlignment(controlName) + }; + }) + } : { + toggleProps: { + describedBy: (0,external_wp_i18n_namespaceObject.__)('Change alignment') + }, + children: ({ + onClose + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + className: "block-editor-block-alignment-control__menu-group" + }, enabledControls.map(({ + name: controlName, + info + }) => { + const { + icon, + title + } = constants_BLOCK_ALIGNMENTS_CONTROLS[controlName]; + // If no value is provided, mark as selected the `none` option. + const isSelected = controlName === value || !value && controlName === 'none'; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + key: controlName, + icon: icon, + iconPosition: "left", + className: classnames_default()('components-dropdown-menu__menu-item', { + 'is-active': isSelected + }), + isSelected: isSelected, + onClick: () => { + onChangeAlignment(controlName); + onClose(); + }, + role: "menuitemradio", + info: info + }, title); + }))); + } + }; + return (0,external_wp_element_namespaceObject.createElement)(UIComponent, { + ...commonProps, + ...extraProps + }); } +/* harmony default export */ var block_alignment_control_ui = (BlockAlignmentUI); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/index.js /** - * Attempts to fetch the value of a theme.json CSS variable. - * - * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree. - * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks. - * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value. - * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument. + * Internal dependencies */ -function getValueFromVariable(features, blockName, variable) { - if (!variable || typeof variable !== 'string') { - if (variable?.ref && typeof variable?.ref === 'string') { - const refPath = variable.ref.split('.'); - variable = getValueFromObjectPath(features, refPath); - // Presence of another ref indicates a reference to another dynamic value. - // Pointing to another dynamic value is not supported. - if (!variable || !!variable?.ref) { - return variable; - } - } else { - return variable; - } - } - const USER_VALUE_PREFIX = 'var:'; - const THEME_VALUE_PREFIX = 'var(--wp--'; - const THEME_VALUE_SUFFIX = ')'; - let parsedVar; - if (variable.startsWith(USER_VALUE_PREFIX)) { - parsedVar = variable.slice(USER_VALUE_PREFIX.length).split('|'); - } else if (variable.startsWith(THEME_VALUE_PREFIX) && variable.endsWith(THEME_VALUE_SUFFIX)) { - parsedVar = variable.slice(THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length).split('--'); - } else { - // We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )` - return variable; - } - const [type, ...path] = parsedVar; - if (type === 'preset') { - return getValueFromPresetVariable(features, blockName, variable, path); - } - if (type === 'custom') { - return getValueFromCustomVariable(features, blockName, variable, path); - } - return variable; -} + +const BlockAlignmentControl = props => { + return (0,external_wp_element_namespaceObject.createElement)(block_alignment_control_ui, { + ...props, + isToolbar: false + }); +}; +const BlockAlignmentToolbar = props => { + return (0,external_wp_element_namespaceObject.createElement)(block_alignment_control_ui, { + ...props, + isToolbar: true + }); +}; /** - * Function that scopes a selector with another one. This works a bit like - * SCSS nesting except the `&` operator isn't supported. - * - * @example - * ```js - * const scope = '.a, .b .c'; - * const selector = '> .x, .y'; - * const merged = scopeSelector( scope, selector ); - * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y' - * ``` - * - * @param {string} scope Selector to scope to. - * @param {string} selector Original selector. - * - * @return {string} Scoped selector. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-alignment-control/README.md */ -function scopeSelector(scope, selector) { - const scopes = scope.split(','); - const selectors = selector.split(','); - const selectorsScoped = []; - scopes.forEach(outer => { - selectors.forEach(inner => { - selectorsScoped.push(`${outer.trim()} ${inner.trim()}`); - }); - }); - return selectorsScoped.join(', '); -} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-list-block-context.js /** - * Appends a sub-selector to an existing one. - * - * Given the compounded `selector` "h1, h2, h3" - * and the `toAppend` selector ".some-class" the result will be - * "h1.some-class, h2.some-class, h3.some-class". - * - * @param {string} selector Original selector. - * @param {string} toAppend Selector to append. - * - * @return {string} The new selector. + * WordPress dependencies */ -function appendToSelector(selector, toAppend) { - if (!selector.includes(',')) { - return selector + toAppend; - } - const selectors = selector.split(','); - const newSelectors = selectors.map(sel => sel + toAppend); - return newSelectors.join(','); -} +const BlockListBlockContext = (0,external_wp_element_namespaceObject.createContext)(null); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-editing-mode/index.js /** - * Compares global style variations according to their styles and settings properties. + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +/** + * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode + */ + +/** + * Allows a block to restrict the user interface that is displayed for editing + * that block and its inner blocks. * * @example * ```js - * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} }; - * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} }; - * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation ); - * // false + * function MyBlock( { attributes, setAttributes } ) { + * useBlockEditingMode( 'disabled' ); + * return
; + * } * ``` * - * @param {Object} original A global styles object. - * @param {Object} variation A global styles object. + * `mode` can be one of three options: * - * @return {boolean} Whether `original` and `variation` match. + * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be + * selected. + * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the + * toolbar, the block movers, block settings. + * - `'default'`: Allows editing the block as normal. + * + * The mode is inherited by all of the block's inner blocks, unless they have + * their own mode. + * + * If called outside of a block context, the mode is applied to all blocks. + * + * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the + * current editing mode is not changed. + * + * @return {BlockEditingMode} The current editing mode. */ -function areGlobalStyleConfigsEqual(original, variation) { - if (typeof original !== 'object' || typeof variation !== 'object') { - return original === variation; - } - return es6_default()(original?.styles, variation?.styles) && es6_default()(original?.settings, variation?.settings); +function useBlockEditingMode(mode) { + var _useContext; + const { + clientId = '' + } = (_useContext = (0,external_wp_element_namespaceObject.useContext)(BlockListBlockContext)) !== null && _useContext !== void 0 ? _useContext : {}; + const blockEditingMode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockEditingMode(clientId), [clientId]); + const { + setBlockEditingMode, + unsetBlockEditingMode + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (mode) { + setBlockEditingMode(clientId, mode); + } + return () => { + if (mode) { + unsetBlockEditingMode(clientId); + } + }; + }, [clientId, mode, setBlockEditingMode, unsetBlockEditingMode]); + return blockEditingMode; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/context.js -/** - * WordPress dependencies - */ - -const DEFAULT_GLOBAL_STYLES_CONTEXT = { - user: {}, - base: {}, - merged: {}, - setUserConfig: () => {} -}; -const GlobalStylesContext = (0,external_wp_element_namespaceObject.createContext)(DEFAULT_GLOBAL_STYLES_CONTEXT); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/align.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/hooks.js /** * External dependencies */ @@ -17366,7 +15556,6 @@ const GlobalStylesContext = (0,external_wp_element_namespaceObject.createContext - /** * Internal dependencies */ @@ -17374,759 +15563,451 @@ const GlobalStylesContext = (0,external_wp_element_namespaceObject.createContext -const EMPTY_CONFIG = { - settings: {}, - styles: {} -}; -const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'background.backgroundImage', 'background.backgroundRepeat', 'background.backgroundSize', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.button', 'color.caption', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.heading', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.aspectRatio', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'lightbox.enabled', 'lightbox.allowEditing', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.defaultFontSizes', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform', 'typography.writingMode']; -const useGlobalStylesReset = () => { - const { - user: config, - setUserConfig - } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); - const canReset = !!config && !es6_default()(config, EMPTY_CONFIG); - return [canReset, (0,external_wp_element_namespaceObject.useCallback)(() => setUserConfig(() => EMPTY_CONFIG), [setUserConfig])]; -}; -function useGlobalSetting(propertyPath, blockName, source = 'all') { - const { - setUserConfig, - ...configs - } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); - const appendedBlockPath = blockName ? '.blocks.' + blockName : ''; - const appendedPropertyPath = propertyPath ? '.' + propertyPath : ''; - const contextualPath = `settings${appendedBlockPath}${appendedPropertyPath}`; - const globalPath = `settings${appendedPropertyPath}`; - const sourceKey = source === 'all' ? 'merged' : source; - const settingValue = (0,external_wp_element_namespaceObject.useMemo)(() => { - const configToUse = configs[sourceKey]; - if (!configToUse) { - throw 'Unsupported source'; - } - if (propertyPath) { - var _getValueFromObjectPa; - return (_getValueFromObjectPa = getValueFromObjectPath(configToUse, contextualPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(configToUse, globalPath); - } - let result = {}; - VALID_SETTINGS.forEach(setting => { - var _getValueFromObjectPa2; - const value = (_getValueFromObjectPa2 = getValueFromObjectPath(configToUse, `settings${appendedBlockPath}.${setting}`)) !== null && _getValueFromObjectPa2 !== void 0 ? _getValueFromObjectPa2 : getValueFromObjectPath(configToUse, `settings.${setting}`); - if (value !== undefined) { - result = setImmutably(result, setting.split('.'), value); - } - }); - return result; - }, [configs, sourceKey, propertyPath, contextualPath, globalPath, appendedBlockPath]); - const setSetting = newValue => { - setUserConfig(currentConfig => setImmutably(currentConfig, contextualPath.split('.'), newValue)); - }; - return [settingValue, setSetting]; -} -function useGlobalStyle(path, blockName, source = 'all', { - shouldDecodeEncode = true -} = {}) { - const { - merged: mergedConfig, - base: baseConfig, - user: userConfig, - setUserConfig - } = (0,external_wp_element_namespaceObject.useContext)(GlobalStylesContext); - const appendedPath = path ? '.' + path : ''; - const finalPath = !blockName ? `styles${appendedPath}` : `styles.blocks.${blockName}${appendedPath}`; - const setStyle = newValue => { - setUserConfig(currentConfig => setImmutably(currentConfig, finalPath.split('.'), shouldDecodeEncode ? getPresetVariableFromValue(mergedConfig.settings, blockName, path, newValue) : newValue)); - }; - let rawResult, result; - switch (source) { - case 'all': - rawResult = getValueFromObjectPath(mergedConfig, finalPath); - result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult; - break; - case 'user': - rawResult = getValueFromObjectPath(userConfig, finalPath); - result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult; - break; - case 'base': - rawResult = getValueFromObjectPath(baseConfig, finalPath); - result = shouldDecodeEncode ? getValueFromVariable(baseConfig, blockName, rawResult) : rawResult; - break; - default: - throw 'Unsupported source'; - } - return [result, setStyle]; -} - /** - * React hook that overrides a global settings object with block and element specific settings. + * An array which includes all possible valid alignments, + * used to validate if an alignment is valid or not. * - * @param {Object} parentSettings Settings object. - * @param {blockName?} blockName Block name. - * @param {element?} element Element name. + * @constant + * @type {string[]} + */ +const ALL_ALIGNMENTS = ['left', 'center', 'right', 'wide', 'full']; + +/** + * An array which includes all wide alignments. + * In order for this alignments to be valid they need to be supported by the block, + * and by the theme. * - * @return {Object} Merge of settings and supports. + * @constant + * @type {string[]} */ -function useSettingsForBlockElement(parentSettings, blockName, element) { - const { - supportedStyles, - supports - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - return { - supportedStyles: unlock(select(external_wp_blocks_namespaceObject.store)).getSupportedStyles(blockName, element), - supports: select(external_wp_blocks_namespaceObject.store).getBlockType(blockName)?.supports - }; - }, [blockName, element]); - return (0,external_wp_element_namespaceObject.useMemo)(() => { - const updatedSettings = { - ...parentSettings - }; - if (!supportedStyles.includes('fontSize')) { - updatedSettings.typography = { - ...updatedSettings.typography, - fontSizes: {}, - customFontSize: false, - defaultFontSizes: false - }; - } - if (!supportedStyles.includes('fontFamily')) { - updatedSettings.typography = { - ...updatedSettings.typography, - fontFamilies: {} - }; - } - updatedSettings.color = { - ...updatedSettings.color, - text: updatedSettings.color?.text && supportedStyles.includes('color'), - background: updatedSettings.color?.background && (supportedStyles.includes('background') || supportedStyles.includes('backgroundColor')), - button: updatedSettings.color?.button && supportedStyles.includes('buttonColor'), - heading: updatedSettings.color?.heading && supportedStyles.includes('headingColor'), - link: updatedSettings.color?.link && supportedStyles.includes('linkColor'), - caption: updatedSettings.color?.caption && supportedStyles.includes('captionColor') - }; +const WIDE_ALIGNMENTS = ['wide', 'full']; - // Some blocks can enable background colors but disable gradients. - if (!supportedStyles.includes('background')) { - updatedSettings.color.gradients = []; - updatedSettings.color.customGradient = false; - } +/** + * Returns the valid alignments. + * Takes into consideration the aligns supported by a block, if the block supports wide controls or not and if theme supports wide controls or not. + * Exported just for testing purposes, not exported outside the module. + * + * @param {?boolean|string[]} blockAlign Aligns supported by the block. + * @param {?boolean} hasWideBlockSupport True if block supports wide alignments. And False otherwise. + * @param {?boolean} hasWideEnabled True if theme supports wide alignments. And False otherwise. + * + * @return {string[]} Valid alignments. + */ +function getValidAlignments(blockAlign, hasWideBlockSupport = true, hasWideEnabled = true) { + let validAlignments; + if (Array.isArray(blockAlign)) { + validAlignments = ALL_ALIGNMENTS.filter(value => blockAlign.includes(value)); + } else if (blockAlign === true) { + // `true` includes all alignments... + validAlignments = [...ALL_ALIGNMENTS]; + } else { + validAlignments = []; + } + if (!hasWideEnabled || blockAlign === true && !hasWideBlockSupport) { + return validAlignments.filter(alignment => !WIDE_ALIGNMENTS.includes(alignment)); + } + return validAlignments; +} - // If filters are not supported by the block/element, disable duotone. - if (!supportedStyles.includes('filter')) { - updatedSettings.color.defaultDuotone = false; - updatedSettings.color.customDuotone = false; - } - ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform', 'textDecoration', 'writingMode'].forEach(key => { - if (!supportedStyles.includes(key)) { - updatedSettings.typography = { - ...updatedSettings.typography, - [key]: false - }; +/** + * Filters registered block settings, extending attributes to include `align`. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function addAttribute(settings) { + var _settings$attributes$; + // Allow blocks to specify their own attribute definition with default values if needed. + if ('type' in ((_settings$attributes$ = settings.attributes?.align) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { + return settings; + } + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'align')) { + // Gracefully handle if settings.attributes is undefined. + settings.attributes = { + ...settings.attributes, + align: { + type: 'string', + // Allow for '' since it is used by updateAlignment function + // in withToolbarControls for special cases with defined default values. + enum: [...ALL_ALIGNMENTS, ''] } - }); + }; + } + return settings; +} - // The column-count style is named text column to reduce confusion with - // the columns block and manage expectations from the support. - // See: https://github.com/WordPress/gutenberg/pull/33587 - if (!supportedStyles.includes('columnCount')) { - updatedSettings.typography = { - ...updatedSettings.typography, - textColumns: false - }; - } - ['contentSize', 'wideSize'].forEach(key => { - if (!supportedStyles.includes(key)) { - updatedSettings.layout = { - ...updatedSettings.layout, - [key]: false - }; - } - }); - ['padding', 'margin', 'blockGap'].forEach(key => { - if (!supportedStyles.includes(key)) { - updatedSettings.spacing = { - ...updatedSettings.spacing, - [key]: false - }; - } - const sides = Array.isArray(supports?.spacing?.[key]) ? supports?.spacing?.[key] : supports?.spacing?.[key]?.sides; - // Check if spacing type is supported before adding sides. - if (sides?.length && updatedSettings.spacing?.[key]) { - updatedSettings.spacing = { - ...updatedSettings.spacing, - [key]: { - ...updatedSettings.spacing?.[key], - sides - } - }; - } - }); - ['aspectRatio', 'minHeight'].forEach(key => { - if (!supportedStyles.includes(key)) { - updatedSettings.dimensions = { - ...updatedSettings.dimensions, - [key]: false - }; +/** + * Override the default edit UI to include new toolbar controls for block + * alignment, if block defines support. + * + * @param {Function} BlockEdit Original component. + * + * @return {Function} Wrapped component. + */ +const withToolbarControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { + const blockEdit = (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + }); + const { + name: blockName + } = props; + // Compute the block valid alignments by taking into account, + // if the theme supports wide alignments or not and the layout's + // availble alignments. We do that for conditionally rendering + // Slot. + const blockAllowedAlignments = getValidAlignments((0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'align'), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'alignWide', true)); + const validAlignments = useAvailableAlignments(blockAllowedAlignments).map(({ + name + }) => name); + const blockEditingMode = useBlockEditingMode(); + if (!validAlignments.length || blockEditingMode !== 'default') { + return blockEdit; + } + const updateAlignment = nextAlign => { + if (!nextAlign) { + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(props.name); + const blockDefaultAlign = blockType?.attributes?.align?.default; + if (blockDefaultAlign) { + nextAlign = ''; } + } + props.setAttributes({ + align: nextAlign }); - ['radius', 'color', 'style', 'width'].forEach(key => { - if (!supportedStyles.includes('border' + key.charAt(0).toUpperCase() + key.slice(1))) { - updatedSettings.border = { - ...updatedSettings.border, - [key]: false - }; - } + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_controls, { + group: "block", + __experimentalShareWithChildBlocks: true + }, (0,external_wp_element_namespaceObject.createElement)(BlockAlignmentControl, { + value: props.attributes.align, + onChange: updateAlignment, + controls: validAlignments + })), blockEdit); +}, 'withToolbarControls'); + +/** + * Override the default block element to add alignment wrapper props. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. + */ +const withDataAlign = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + name, + attributes + } = props; + const { + align + } = attributes; + const blockAllowedAlignments = getValidAlignments((0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'align'), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'alignWide', true)); + const validAlignments = useAvailableAlignments(blockAllowedAlignments); + + // If an alignment is not assigned, there's no need to go through the + // effort to validate or assign its value. + if (align === undefined) { + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props }); - updatedSettings.shadow = supportedStyles.includes('shadow') ? updatedSettings.shadow : false; - return updatedSettings; - }, [parentSettings, supportedStyles, supports]); -} -function useColorsPerOrigin(settings) { - const customColors = settings?.color?.palette?.custom; - const themeColors = settings?.color?.palette?.theme; - const defaultColors = settings?.color?.palette?.default; - const shouldDisplayDefaultColors = settings?.color?.defaultPalette; - return (0,external_wp_element_namespaceObject.useMemo)(() => { - const result = []; - if (themeColors && themeColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), - colors: themeColors - }); - } - if (shouldDisplayDefaultColors && defaultColors && defaultColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), - colors: defaultColors - }); - } - if (customColors && customColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), - colors: customColors - }); - } - return result; - }, [customColors, themeColors, defaultColors, shouldDisplayDefaultColors]); -} -function useGradientsPerOrigin(settings) { - const customGradients = settings?.color?.gradients?.custom; - const themeGradients = settings?.color?.gradients?.theme; - const defaultGradients = settings?.color?.gradients?.default; - const shouldDisplayDefaultGradients = settings?.color?.defaultGradients; - return (0,external_wp_element_namespaceObject.useMemo)(() => { - const result = []; - if (themeGradients && themeGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), - gradients: themeGradients - }); - } - if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), - gradients: defaultGradients - }); - } - if (customGradients && customGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), - gradients: customGradients - }); - } - return result; - }, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]); -} + } + let wrapperProps = props.wrapperProps; + if (validAlignments.some(alignment => alignment.name === align)) { + wrapperProps = { + ...wrapperProps, + 'data-align': align + }; + } + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + wrapperProps: wrapperProps + }); +}, 'withDataAlign'); -// EXTERNAL MODULE: ./node_modules/classnames/index.js -var classnames = __webpack_require__(4403); -var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/utils.js +/** + * Override props assigned to save component to inject alignment class name if + * block supports it. + * + * @param {Object} props Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Block attributes. + * + * @return {Object} Filtered props applied to save element. + */ +function addAssignedAlign(props, blockType, attributes) { + const { + align + } = attributes; + const blockAlign = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'align'); + const hasWideBlockSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'alignWide', true); + + // Compute valid alignments without taking into account if + // the theme supports wide alignments or not. + // This way changing themes does not impact the block save. + const isAlignValid = getValidAlignments(blockAlign, hasWideBlockSupport).includes(align); + if (isAlignValid) { + props.className = classnames_default()(`align${align}`, props.className); + } + return props; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/align/addAttribute', addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/align/with-data-align', withDataAlign); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/align/with-toolbar-controls', withToolbarControls); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/align/addAssignedAlign', addAssignedAlign); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/lock.js /** * WordPress dependencies */ +/** + * Filters registered block settings, extending attributes to include `lock`. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function lock_addAttribute(settings) { + var _settings$attributes$; + // Allow blocks to specify their own attribute definition with default values if needed. + if ('type' in ((_settings$attributes$ = settings.attributes?.lock) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { + return settings; + } + // Gracefully handle if settings.attributes is undefined. + settings.attributes = { + ...settings.attributes, + lock: { + type: 'object' + } + }; + return settings; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/lock/addAttribute', lock_addAttribute); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/groups.js +/** + * WordPress dependencies + */ +const InspectorControlsDefault = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControls'); +const InspectorControlsAdvanced = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorAdvancedControls'); +const InspectorControlsBackground = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsBackground'); +const InspectorControlsBorder = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsBorder'); +const InspectorControlsColor = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsColor'); +const InspectorControlsFilter = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsFilter'); +const InspectorControlsDimensions = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsDimensions'); +const InspectorControlsPosition = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsPosition'); +const InspectorControlsTypography = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsTypography'); +const InspectorControlsListView = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsListView'); +const InspectorControlsStyles = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsStyles'); +const groups_groups = { + default: InspectorControlsDefault, + advanced: InspectorControlsAdvanced, + background: InspectorControlsBackground, + border: InspectorControlsBorder, + color: InspectorControlsColor, + dimensions: InspectorControlsDimensions, + filter: InspectorControlsFilter, + list: InspectorControlsListView, + position: InspectorControlsPosition, + settings: InspectorControlsDefault, + // Alias for default. + styles: InspectorControlsStyles, + typography: InspectorControlsTypography +}; +/* harmony default export */ var inspector_controls_groups = (groups_groups); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/fill.js /** - * Internal dependencies + * WordPress dependencies */ - /** - * External dependencies + * Internal dependencies */ -/** - * Removed falsy values from nested object. - * - * @param {*} object - * @return {*} Object cleaned from falsy values - */ -const utils_cleanEmptyObject = object => { - if (object === null || typeof object !== 'object' || Array.isArray(object)) { - return object; - } - const cleanedNestedObjects = Object.entries(object).map(([key, value]) => [key, utils_cleanEmptyObject(value)]).filter(([, value]) => value !== undefined); - return !cleanedNestedObjects.length ? undefined : Object.fromEntries(cleanedNestedObjects); -}; -function transformStyles(activeSupports, migrationPaths, result, source, index, results) { - // If there are no active supports return early. - if (Object.values(activeSupports !== null && activeSupports !== void 0 ? activeSupports : {}).every(isActive => !isActive)) { - return result; +function InspectorControlsFill({ + children, + group = 'default', + __experimentalGroup, + resetAllFilter +}) { + if (__experimentalGroup) { + external_wp_deprecated_default()('`__experimentalGroup` property in `InspectorControlsFill`', { + since: '6.2', + version: '6.4', + alternative: '`group`' + }); + group = __experimentalGroup; } - // If the condition verifies we are probably in the presence of a wrapping transform - // e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed. - if (results.length === 1 && result.innerBlocks.length === source.length) { - return result; + const isDisplayed = useDisplayBlockControls(); + const Fill = inspector_controls_groups[group]?.Fill; + if (!Fill) { + true ? external_wp_warning_default()(`Unknown InspectorControls group "${group}" provided.`) : 0; + return null; } - // For cases where we have a transform from one block to multiple blocks - // or multiple blocks to one block we apply the styles of the first source block - // to the result(s). - let referenceBlockAttributes = source[0]?.attributes; - // If we are in presence of transform between more than one block in the source - // that has more than one block in the result - // we apply the styles on source N to the result N, - // if source N does not exists we do nothing. - if (results.length > 1 && source.length > 1) { - if (source[index]) { - referenceBlockAttributes = source[index]?.attributes; - } else { - return result; - } + if (!isDisplayed) { + return null; } - let returnBlock = result; - Object.entries(activeSupports).forEach(([support, isActive]) => { - if (isActive) { - migrationPaths[support].forEach(path => { - const styleValue = getValueFromObjectPath(referenceBlockAttributes, path); - if (styleValue) { - returnBlock = { - ...returnBlock, - attributes: setImmutably(returnBlock.attributes, path, styleValue) - }; - } - }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { + document: document + }, (0,external_wp_element_namespaceObject.createElement)(Fill, null, fillProps => { + return (0,external_wp_element_namespaceObject.createElement)(ToolsPanelInspectorControl, { + fillProps: fillProps, + children: children, + resetAllFilter: resetAllFilter + }); + })); +} +function RegisterResetAll({ + resetAllFilter, + children +}) { + const { + registerResetAllFilter, + deregisterResetAllFilter + } = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolsPanelContext); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (resetAllFilter && registerResetAllFilter && deregisterResetAllFilter) { + registerResetAllFilter(resetAllFilter); + return () => { + deregisterResetAllFilter(resetAllFilter); + }; } - }); - return returnBlock; + }, [resetAllFilter, registerResetAllFilter, deregisterResetAllFilter]); + return children; +} +function ToolsPanelInspectorControl({ + children, + resetAllFilter, + fillProps +}) { + // `fillProps.forwardedContext` is an array of context provider entries, provided by slot, + // that should wrap the fill markup. + const { + forwardedContext = [] + } = fillProps; + + // Children passed to InspectorControlsFill will not have + // access to any React Context whose Provider is part of + // the InspectorControlsSlot tree. So we re-create the + // Provider in this subtree. + const innerMarkup = (0,external_wp_element_namespaceObject.createElement)(RegisterResetAll, { + resetAllFilter: resetAllFilter + }, children); + return forwardedContext.reduce((inner, [Provider, props]) => (0,external_wp_element_namespaceObject.createElement)(Provider, { + ...props + }, inner), innerMarkup); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/block-support-tools-panel.js + /** - * Check whether serialization of specific block support feature or set should - * be skipped. - * - * @param {string|Object} blockNameOrType Block name or block type object. - * @param {string} featureSet Name of block support feature set. - * @param {string} feature Name of the individual feature to check. - * - * @return {boolean} Whether serialization should occur. + * WordPress dependencies */ -function shouldSkipSerialization(blockNameOrType, featureSet, feature) { - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockNameOrType, featureSet); - const skipSerialization = support?.__experimentalSkipSerialization; - if (Array.isArray(skipSerialization)) { - return skipSerialization.includes(feature); - } - return skipSerialization; -} -function useStyleOverride({ - id, - css, - assets, - __unstableType -} = {}) { - const { - setStyleOverride, - deleteStyleOverride - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - const fallbackId = (0,external_wp_element_namespaceObject.useId)(); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // Unmount if there is CSS and assets are empty. - if (!css && !assets) return; - const _id = id || fallbackId; - setStyleOverride(_id, { - id, - css, - assets, - __unstableType - }); - return () => { - deleteStyleOverride(_id); - }; - }, [id, css, assets, __unstableType, fallbackId, setStyleOverride, deleteStyleOverride]); -} + + + /** - * Based on the block and its context, returns an object of all the block settings. - * This object can be passed as a prop to all the Styles UI components - * (TypographyPanel, DimensionsPanel...). - * - * @param {string} name Block name. - * @param {*} parentLayout Parent layout. - * - * @return {Object} Settings object. - */ -function useBlockSettings(name, parentLayout) { - const [backgroundImage, backgroundSize, fontFamilies, userFontSizes, themeFontSizes, defaultFontSizes, defaultFontSizesEnabled, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, writingMode, textTransform, letterSpacing, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow] = use_settings_useSettings('background.backgroundImage', 'background.backgroundSize', 'typography.fontFamilies', 'typography.fontSizes.custom', 'typography.fontSizes.theme', 'typography.fontSizes.default', 'typography.defaultFontSizes', 'typography.customFontSize', 'typography.fontStyle', 'typography.fontWeight', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.writingMode', 'typography.textTransform', 'typography.letterSpacing', 'spacing.padding', 'spacing.margin', 'spacing.blockGap', 'spacing.spacingSizes', 'spacing.units', 'dimensions.aspectRatio', 'dimensions.minHeight', 'layout', 'border.color', 'border.radius', 'border.style', 'border.width', 'color.custom', 'color.palette.custom', 'color.customDuotone', 'color.palette.theme', 'color.palette.default', 'color.defaultPalette', 'color.defaultDuotone', 'color.duotone.custom', 'color.duotone.theme', 'color.duotone.default', 'color.gradients.custom', 'color.gradients.theme', 'color.gradients.default', 'color.defaultGradients', 'color.customGradient', 'color.background', 'color.link', 'color.text', 'color.heading', 'color.button', 'shadow'); - const rawSettings = (0,external_wp_element_namespaceObject.useMemo)(() => { - return { - background: { - backgroundImage, - backgroundSize - }, - color: { - palette: { - custom: customColors, - theme: themeColors, - default: defaultColors - }, - gradients: { - custom: userGradientPalette, - theme: themeGradientPalette, - default: defaultGradientPalette - }, - duotone: { - custom: userDuotonePalette, - theme: themeDuotonePalette, - default: defaultDuotonePalette - }, - defaultGradients, - defaultPalette, - defaultDuotone, - custom: customColorsEnabled, - customGradient: areCustomGradientsEnabled, - customDuotone, - background: isBackgroundEnabled, - link: isLinkEnabled, - heading: isHeadingEnabled, - button: isButtonEnabled, - text: isTextEnabled - }, - typography: { - fontFamilies: { - custom: fontFamilies - }, - fontSizes: { - custom: userFontSizes, - theme: themeFontSizes, - default: defaultFontSizes - }, - customFontSize, - defaultFontSizes: defaultFontSizesEnabled, - fontStyle, - fontWeight, - lineHeight, - textColumns, - textDecoration, - textTransform, - letterSpacing, - writingMode - }, - spacing: { - spacingSizes: { - custom: spacingSizes - }, - padding, - margin, - blockGap, - units - }, - border: { - color: borderColor, - radius: borderRadius, - style: borderStyle, - width: borderWidth - }, - dimensions: { - aspectRatio, - minHeight - }, - layout, - parentLayout, - shadow - }; - }, [backgroundImage, backgroundSize, fontFamilies, userFontSizes, themeFontSizes, defaultFontSizes, defaultFontSizesEnabled, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, textTransform, letterSpacing, writingMode, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, parentLayout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow]); - return useSettingsForBlockElement(rawSettings, name); -} -function createBlockEditFilter(features) { - // We don't want block controls to re-render when typing inside a block. - // `memo` will prevent re-renders unless props change, so only pass the - // needed props and not the whole attributes object. - features = features.map(settings => { - return { - ...settings, - Edit: (0,external_wp_element_namespaceObject.memo)(settings.edit) - }; - }); - const withBlockEditHooks = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(OriginalBlockEdit => props => { - const context = useBlockEditContext(); - // CAUTION: code added before this line will be executed for all - // blocks, not just those that support the feature! Code added - // above this line should be carefully evaluated for its impact on - // performance. - return [...features.map((feature, i) => { - const { - Edit, - hasSupport, - attributeKeys = [], - shareWithChildBlocks - } = feature; - const shouldDisplayControls = context[mayDisplayControlsKey] || context[mayDisplayParentControlsKey] && shareWithChildBlocks; - if (!shouldDisplayControls || !hasSupport(props.name)) { - return null; - } - const neededProps = {}; - for (const key of attributeKeys) { - if (props.attributes[key]) { - neededProps[key] = props.attributes[key]; - } - } - return (0,external_React_.createElement)(Edit - // We can use the index because the array length - // is fixed per page load right now. - , { - key: i, - name: props.name, - isSelected: props.isSelected, - clientId: props.clientId, - setAttributes: props.setAttributes, - __unstableParentLayout: props.__unstableParentLayout - // This component is pure, so only pass needed - // props!!! - , - ...neededProps - }); - }), (0,external_React_.createElement)(OriginalBlockEdit, { - key: "edit", - ...props - })]; - }, 'withBlockEditHooks'); - (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/hooks', withBlockEditHooks); -} -function BlockProps({ - index, - useBlockProps, - setAllWrapperProps, - ...props -}) { - const wrapperProps = useBlockProps(props); - const setWrapperProps = next => setAllWrapperProps(prev => { - const nextAll = [...prev]; - nextAll[index] = next; - return nextAll; - }); - // Setting state after every render is fine because this component is - // pure and will only re-render when needed props change. - (0,external_wp_element_namespaceObject.useEffect)(() => { - // We could shallow compare the props, but since this component only - // changes when needed attributes change, the benefit is probably small. - setWrapperProps(wrapperProps); - return () => { - setWrapperProps(undefined); - }; - }); - return null; -} -const BlockPropsPure = (0,external_wp_element_namespaceObject.memo)(BlockProps); -function createBlockListBlockFilter(features) { - const withBlockListBlockHooks = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { - const [allWrapperProps, setAllWrapperProps] = (0,external_wp_element_namespaceObject.useState)(Array(features.length).fill(undefined)); - return [...features.map((feature, i) => { - const { - hasSupport, - attributeKeys = [], - useBlockProps - } = feature; - const neededProps = {}; - for (const key of attributeKeys) { - if (props.attributes[key]) { - neededProps[key] = props.attributes[key]; - } - } - if ( - // Skip rendering if none of the needed attributes are - // set. - !Object.keys(neededProps).length || !hasSupport(props.name)) { - return null; - } - return (0,external_React_.createElement)(BlockPropsPure - // We can use the index because the array length - // is fixed per page load right now. - , { - key: i, - index: i, - useBlockProps: useBlockProps - // This component is pure, so we must pass a stable - // function reference. - , - setAllWrapperProps: setAllWrapperProps, - name: props.name - // This component is pure, so only pass needed - // props!!! - , - ...neededProps - }); - }), (0,external_React_.createElement)(BlockListBlock, { - key: "edit", - ...props, - wrapperProps: allWrapperProps.filter(Boolean).reduce((acc, wrapperProps) => { - return { - ...acc, - ...wrapperProps, - className: classnames_default()(acc.className, wrapperProps.className), - style: { - ...acc.style, - ...wrapperProps.style - } - }; - }, props.wrapperProps || {}) - })]; - }, 'withBlockListBlockHooks'); - (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/hooks', withBlockListBlockHooks); -} -function createBlockSaveFilter(features) { - function extraPropsFromHooks(props, name, attributes) { - return features.reduce((accu, feature) => { - const { - hasSupport, - attributeKeys = [], - addSaveProps - } = feature; - const neededAttributes = {}; - for (const key of attributeKeys) { - if (attributes[key]) { - neededAttributes[key] = attributes[key]; - } - } - if ( - // Skip rendering if none of the needed attributes are - // set. - !Object.keys(neededAttributes).length || !hasSupport(name)) { - return accu; - } - return addSaveProps(accu, name, neededAttributes); - }, props); - } - (0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/editor/hooks', extraPropsFromHooks, 0); - (0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/editor/hooks', props => { - // Previously we had a filter deleting the className if it was an empty - // string. That filter is no longer running, so now we need to delete it - // here. - if (props.hasOwnProperty('className') && !props.className) { - delete props.className; - } - return props; - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/compat.js -/** - * WordPress dependencies + * Internal dependencies */ -function migrateLightBlockWrapper(settings) { +function BlockSupportToolsPanel({ + children, + group, + label +}) { const { - apiVersion = 1 - } = settings; - if (apiVersion < 2 && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'lightBlockWrapper', false)) { - settings.apiVersion = 2; - } - return settings; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/compat/migrateLightBlockWrapper', migrateLightBlockWrapper); - -;// CONCATENATED MODULE: external ["wp","components"] -var external_wp_components_namespaceObject = window["wp"]["components"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/groups.js -/** - * WordPress dependencies - */ - -const BlockControlsDefault = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControls'); -const BlockControlsBlock = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsBlock'); -const BlockControlsInline = (0,external_wp_components_namespaceObject.createSlotFill)('BlockFormatControls'); -const BlockControlsOther = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsOther'); -const BlockControlsParent = (0,external_wp_components_namespaceObject.createSlotFill)('BlockControlsParent'); -const groups = { - default: BlockControlsDefault, - block: BlockControlsBlock, - inline: BlockControlsInline, - other: BlockControlsOther, - parent: BlockControlsParent -}; -/* harmony default export */ var block_controls_groups = (groups); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/hook.js -/** - * WordPress dependencies - */ - -/** - * Internal dependencies - */ - + updateBlockAttributes + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + getBlockAttributes, + getMultiSelectedBlockClientIds, + getSelectedBlockClientId, + hasMultiSelection + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const panelId = getSelectedBlockClientId(); + const resetAll = (0,external_wp_element_namespaceObject.useCallback)((resetFilters = []) => { + const newAttributes = {}; + const clientIds = hasMultiSelection() ? getMultiSelectedBlockClientIds() : [panelId]; + clientIds.forEach(clientId => { + const { + style + } = getBlockAttributes(clientId); + let newBlockAttributes = { + style + }; + resetFilters.forEach(resetFilter => { + newBlockAttributes = { + ...newBlockAttributes, + ...resetFilter(newBlockAttributes) + }; + }); -function useBlockControlsFill(group, shareWithChildBlocks) { - const context = useBlockEditContext(); - if (context[mayDisplayControlsKey]) { - return block_controls_groups[group]?.Fill; - } - if (context[mayDisplayParentControlsKey] && shareWithChildBlocks) { - return block_controls_groups.parent.Fill; - } - return null; + // Enforce a cleaned style object. + newBlockAttributes = { + ...newBlockAttributes, + style: utils_cleanEmptyObject(newBlockAttributes.style) + }; + newAttributes[clientId] = newBlockAttributes; + }); + updateBlockAttributes(clientIds, newAttributes, true); + }, [getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + className: `${group}-block-support-panel`, + label: label, + resetAll: resetAll, + key: panelId, + panelId: panelId, + hasInnerWrapper: true, + shouldRenderPlaceholderItems: true // Required to maintain fills ordering. + , + __experimentalFirstVisibleItemClass: "first", + __experimentalLastVisibleItemClass: "last" + }, children); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/fill.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/block-support-slot-container.js /** * WordPress dependencies */ -/** - * Internal dependencies - */ - -function BlockControlsFill({ - group = 'default', - controls, - children, - __experimentalShareWithChildBlocks = false +function BlockSupportSlotContainer({ + Slot, + fillProps, + ...props }) { - const Fill = useBlockControlsFill(group, __experimentalShareWithChildBlocks); - if (!Fill) { - return null; - } - const innerMarkup = (0,external_React_.createElement)(external_React_.Fragment, null, group === 'default' && (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { - controls: controls - }), children); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { - document: document - }, (0,external_React_.createElement)(Fill, null, fillProps => { - // `fillProps.forwardedContext` is an array of context provider entries, provided by slot, - // that should wrap the fill markup. - const { - forwardedContext = [] - } = fillProps; - return forwardedContext.reduce((inner, [Provider, props]) => (0,external_React_.createElement)(Provider, { - ...props - }, inner), innerMarkup); - })); + // Add the toolspanel context provider and value to existing fill props + const toolsPanelContext = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolsPanelContext); + const computedFillProps = (0,external_wp_element_namespaceObject.useMemo)(() => { + var _fillProps$forwardedC; + return { + ...(fillProps !== null && fillProps !== void 0 ? fillProps : {}), + forwardedContext: [...((_fillProps$forwardedC = fillProps?.forwardedContext) !== null && _fillProps$forwardedC !== void 0 ? _fillProps$forwardedC : []), [external_wp_components_namespaceObject.__experimentalToolsPanelContext.Provider, { + value: toolsPanelContext + }]] + }; + }, [toolsPanelContext, fillProps]); + return (0,external_wp_element_namespaceObject.createElement)(Slot, { + ...props, + fillProps: computedFillProps, + bubblesVirtually: true + }); } -;// CONCATENATED MODULE: external ["wp","warning"] -var external_wp_warning_namespaceObject = window["wp"]["warning"]; -var external_wp_warning_default = /*#__PURE__*/__webpack_require__.n(external_wp_warning_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/slot.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/slot.js /** * WordPress dependencies @@ -18135,12120 +16016,6197 @@ var external_wp_warning_default = /*#__PURE__*/__webpack_require__.n(external_wp + /** * Internal dependencies */ -const { - ComponentsContext -} = unlock(external_wp_components_namespaceObject.privateApis); -function BlockControlsSlot({ + +function InspectorControlsSlot({ + __experimentalGroup, group = 'default', + label, + fillProps, ...props }) { - const toolbarState = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolbarContext); - const contextState = (0,external_wp_element_namespaceObject.useContext)(ComponentsContext); - const fillProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - forwardedContext: [[external_wp_components_namespaceObject.__experimentalToolbarContext.Provider, { - value: toolbarState - }], [ComponentsContext.Provider, { - value: contextState - }]] - }), [toolbarState, contextState]); - const Slot = block_controls_groups[group]?.Slot; + if (__experimentalGroup) { + external_wp_deprecated_default()('`__experimentalGroup` property in `InspectorControlsSlot`', { + since: '6.2', + version: '6.4', + alternative: '`group`' + }); + group = __experimentalGroup; + } + const Slot = inspector_controls_groups[group]?.Slot; const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(Slot?.__unstableName); + const motionContextValue = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__unstableMotionContext); + const computedFillProps = (0,external_wp_element_namespaceObject.useMemo)(() => { + var _fillProps$forwardedC; + return { + ...(fillProps !== null && fillProps !== void 0 ? fillProps : {}), + forwardedContext: [...((_fillProps$forwardedC = fillProps?.forwardedContext) !== null && _fillProps$forwardedC !== void 0 ? _fillProps$forwardedC : []), [external_wp_components_namespaceObject.__unstableMotionContext.Provider, { + value: motionContextValue + }]] + }; + }, [motionContextValue, fillProps]); if (!Slot) { - true ? external_wp_warning_default()(`Unknown BlockControls group "${group}" provided.`) : 0; + true ? external_wp_warning_default()(`Unknown InspectorControls group "${group}" provided.`) : 0; return null; } if (!fills?.length) { return null; } - const slot = (0,external_React_.createElement)(Slot, { + if (label) { + return (0,external_wp_element_namespaceObject.createElement)(BlockSupportToolsPanel, { + group: group, + label: label + }, (0,external_wp_element_namespaceObject.createElement)(BlockSupportSlotContainer, { + ...props, + fillProps: computedFillProps, + Slot: Slot + })); + } + return (0,external_wp_element_namespaceObject.createElement)(Slot, { ...props, - bubblesVirtually: true, - fillProps: fillProps + fillProps: computedFillProps, + bubblesVirtually: true }); - if (group === 'default') { - return slot; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, slot); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/index.js /** * Internal dependencies */ -const BlockControls = BlockControlsFill; -BlockControls.Slot = BlockControlsSlot; +const InspectorControls = InspectorControlsFill; +InspectorControls.Slot = InspectorControlsSlot; // This is just here for backward compatibility. -const BlockFormatControls = props => { - return (0,external_React_.createElement)(BlockControlsFill, { - group: "inline", - ...props +const InspectorAdvancedControls = props => { + return (0,external_wp_element_namespaceObject.createElement)(InspectorControlsFill, { + ...props, + group: "advanced" }); }; -BlockFormatControls.Slot = props => { - return (0,external_React_.createElement)(BlockControlsSlot, { - group: "inline", - ...props +InspectorAdvancedControls.Slot = props => { + return (0,external_wp_element_namespaceObject.createElement)(InspectorControlsSlot, { + ...props, + group: "advanced" }); }; -/* harmony default export */ var block_controls = (BlockControls); +InspectorAdvancedControls.slotName = 'InspectorAdvancedControls'; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-left.js +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md + */ +/* harmony default export */ var inspector_controls = (InspectorControls); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/anchor.js /** * WordPress dependencies */ -const justifyLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9 9v6h11V9H9zM4 20h1.5V4H4v16z" -})); -/* harmony default export */ var justify_left = (justifyLeft); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-center.js + + + + /** - * WordPress dependencies + * Internal dependencies */ -const justifyCenter = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12.5 15v5H11v-5H4V9h7V4h1.5v5h7v6h-7Z" -})); -/* harmony default export */ var justify_center = (justifyCenter); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-right.js /** - * WordPress dependencies + * Regular expression matching invalid anchor characters for replacement. + * + * @type {RegExp} */ +const ANCHOR_REGEX = /[\s#]/g; +const ANCHOR_SCHEMA = { + type: 'string', + source: 'attribute', + attribute: 'id', + selector: '*' +}; -const justifyRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M4 15h11V9H4v6zM18.5 4v16H20V4h-1.5z" -})); -/* harmony default export */ var justify_right = (justifyRight); +/** + * Filters registered block settings, extending attributes with anchor using ID + * of the first node. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function anchor_addAttribute(settings) { + var _settings$attributes$; + // Allow blocks to specify their own attribute definition with default values if needed. + if ('type' in ((_settings$attributes$ = settings.attributes?.anchor) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { + return settings; + } + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'anchor')) { + // Gracefully handle if settings.attributes is undefined. + settings.attributes = { + ...settings.attributes, + anchor: ANCHOR_SCHEMA + }; + } + return settings; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-space-between.js +/** + * Override the default edit UI to include a new block inspector control for + * assigning the anchor ID, if block supports anchor. + * + * @param {WPComponent} BlockEdit Original component. + * + * @return {WPComponent} Wrapped component. + */ +const withInspectorControl = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => { + return props => { + const hasAnchor = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(props.name, 'anchor'); + const blockEditingMode = useBlockEditingMode(); + if (hasAnchor && props.isSelected) { + const isWeb = external_wp_element_namespaceObject.Platform.OS === 'web'; + const textControl = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + className: "html-anchor-control", + label: (0,external_wp_i18n_namespaceObject.__)('HTML anchor'), + help: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), isWeb && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-jumps/') + }, (0,external_wp_i18n_namespaceObject.__)('Learn more about anchors'))), + value: props.attributes.anchor || '', + placeholder: !isWeb ? (0,external_wp_i18n_namespaceObject.__)('Add an anchor') : null, + onChange: nextValue => { + nextValue = nextValue.replace(ANCHOR_REGEX, '-'); + props.setAttributes({ + anchor: nextValue + }); + }, + autoCapitalize: "none", + autoComplete: "off" + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }), isWeb && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "advanced" + }, textControl), !isWeb && props.name === 'core/heading' && (0,external_wp_element_namespaceObject.createElement)(inspector_controls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Heading settings') + }, textControl))); + } + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }); + }; +}, 'withInspectorControl'); + +/** + * Override props assigned to save component to inject anchor ID, if block + * supports anchor. This is only applied if the block's save result is an + * element and not a markup string. + * + * @param {Object} extraProps Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Current block attributes. + * + * @return {Object} Filtered props applied to save element. + */ +function addSaveProps(extraProps, blockType, attributes) { + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'anchor')) { + extraProps.id = attributes.anchor === '' ? null : attributes.anchor; + } + return extraProps; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/anchor/attribute', anchor_addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/anchor/with-inspector-control', withInspectorControl); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/anchor/save-props', addSaveProps); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/aria-label.js /** * WordPress dependencies */ -const justifySpaceBetween = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9 15h6V9H9v6zm-5 5h1.5V4H4v16zM18.5 4v16H20V4h-1.5z" -})); -/* harmony default export */ var justify_space_between = (justifySpaceBetween); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/justify-stretch.js +const ARIA_LABEL_SCHEMA = { + type: 'string', + source: 'attribute', + attribute: 'aria-label', + selector: '*' +}; /** - * WordPress dependencies + * Filters registered block settings, extending attributes with ariaLabel using aria-label + * of the first node. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. */ +function aria_label_addAttribute(settings) { + // Allow blocks to specify their own attribute definition with default values if needed. + if (settings?.attributes?.ariaLabel?.type) { + return settings; + } + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'ariaLabel')) { + // Gracefully handle if settings.attributes is undefined. + settings.attributes = { + ...settings.attributes, + ariaLabel: ARIA_LABEL_SCHEMA + }; + } + return settings; +} -const justifyStretch = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M4 4H5.5V20H4V4ZM7 10L17 10V14L7 14V10ZM20 4H18.5V20H20V4Z" -})); -/* harmony default export */ var justify_stretch = (justifyStretch); +/** + * Override props assigned to save component to inject aria-label, if block + * supports ariaLabel. This is only applied if the block's save result is an + * element and not a markup string. + * + * @param {Object} extraProps Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Current block attributes. + * + * @return {Object} Filtered props applied to save element. + */ +function aria_label_addSaveProps(extraProps, blockType, attributes) { + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'ariaLabel')) { + extraProps['aria-label'] = attributes.ariaLabel === '' ? null : attributes.ariaLabel; + } + return extraProps; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/ariaLabel/attribute', aria_label_addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/ariaLabel/save-props', aria_label_addSaveProps); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/custom-class-name.js + +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-right.js /** * WordPress dependencies */ -const arrowRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z" -})); -/* harmony default export */ var arrow_right = (arrowRight); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-down.js + + + /** - * WordPress dependencies + * Internal dependencies */ -const arrowDown = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z" -})); -/* harmony default export */ var arrow_down = (arrowDown); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/definitions.js -// Layout definitions keyed by layout type. -// Provides a common definition of slugs, classnames, base styles, and spacing styles for each layout type. -// If making changes or additions to layout definitions, be sure to update the corresponding PHP definitions in -// `block-supports/layout.php` so that the server-side and client-side definitions match. -const LAYOUT_DEFINITIONS = { - default: { - name: 'default', - slug: 'flow', - className: 'is-layout-flow', - baseStyles: [{ - selector: ' > .alignleft', - rules: { - float: 'left', - 'margin-inline-start': '0', - 'margin-inline-end': '2em' - } - }, { - selector: ' > .alignright', - rules: { - float: 'right', - 'margin-inline-start': '2em', - 'margin-inline-end': '0' - } - }, { - selector: ' > .aligncenter', - rules: { - 'margin-left': 'auto !important', - 'margin-right': 'auto !important' - } - }], - spacingStyles: [{ - selector: ' > :first-child:first-child', - rules: { - 'margin-block-start': '0' - } - }, { - selector: ' > :last-child:last-child', - rules: { - 'margin-block-end': '0' - } - }, { - selector: ' > *', - rules: { - 'margin-block-start': null, - 'margin-block-end': '0' - } - }] - }, - constrained: { - name: 'constrained', - slug: 'constrained', - className: 'is-layout-constrained', - baseStyles: [{ - selector: ' > .alignleft', - rules: { - float: 'left', - 'margin-inline-start': '0', - 'margin-inline-end': '2em' - } - }, { - selector: ' > .alignright', - rules: { - float: 'right', - 'margin-inline-start': '2em', - 'margin-inline-end': '0' - } - }, { - selector: ' > .aligncenter', - rules: { - 'margin-left': 'auto !important', - 'margin-right': 'auto !important' - } - }, { - selector: ' > :where(:not(.alignleft):not(.alignright):not(.alignfull))', - rules: { - 'max-width': 'var(--wp--style--global--content-size)', - 'margin-left': 'auto !important', - 'margin-right': 'auto !important' - } - }, { - selector: ' > .alignwide', - rules: { - 'max-width': 'var(--wp--style--global--wide-size)' - } - }], - spacingStyles: [{ - selector: ' > :first-child:first-child', - rules: { - 'margin-block-start': '0' - } - }, { - selector: ' > :last-child:last-child', - rules: { - 'margin-block-end': '0' - } - }, { - selector: ' > *', - rules: { - 'margin-block-start': null, - 'margin-block-end': '0' - } - }] - }, - flex: { - name: 'flex', - slug: 'flex', - className: 'is-layout-flex', - displayMode: 'flex', - baseStyles: [{ - selector: '', - rules: { - 'flex-wrap': 'wrap', - 'align-items': 'center' - } - }, { - selector: ' > *', - rules: { - margin: '0' - } - }], - spacingStyles: [{ - selector: '', - rules: { - gap: null - } - }] - }, - grid: { - name: 'grid', - slug: 'grid', - className: 'is-layout-grid', - displayMode: 'grid', - baseStyles: [{ - selector: ' > *', - rules: { - margin: '0' - } - }], - spacingStyles: [{ - selector: '', - rules: { - gap: null + +/** + * Filters registered block settings, extending attributes to include `className`. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function custom_class_name_addAttribute(settings) { + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'customClassName', true)) { + // Gracefully handle if settings.attributes is undefined. + settings.attributes = { + ...settings.attributes, + className: { + type: 'string' } - }] + }; } -}; + return settings; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/utils.js /** - * WordPress dependencies + * Override the default edit UI to include a new block inspector control for + * assigning the custom class name, if block supports custom class name. + * The control is displayed within the Advanced panel in the block inspector. + * + * @param {WPComponent} BlockEdit Original component. + * + * @return {WPComponent} Wrapped component. + */ +const custom_class_name_withInspectorControl = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => { + return props => { + const blockEditingMode = useBlockEditingMode(); + const hasCustomClassName = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(props.name, 'customClassName', true); + if (hasCustomClassName && props.isSelected) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }), blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "advanced" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + autoComplete: "off", + label: (0,external_wp_i18n_namespaceObject.__)('Additional CSS class(es)'), + value: props.attributes.className || '', + onChange: nextValue => { + props.setAttributes({ + className: nextValue !== '' ? nextValue : undefined + }); + }, + help: (0,external_wp_i18n_namespaceObject.__)('Separate multiple classes with spaces.') + }))); + } + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }); + }; +}, 'withInspectorControl'); + +/** + * Override props assigned to save component to inject the className, if block + * supports customClassName. This is only applied if the block's save result is an + * element and not a markup string. + * + * @param {Object} extraProps Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Current block attributes. + * + * @return {Object} Filtered props applied to save element. */ +function custom_class_name_addSaveProps(extraProps, blockType, attributes) { + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'customClassName', true) && attributes.className) { + extraProps.className = classnames_default()(extraProps.className, attributes.className); + } + return extraProps; +} +function addTransforms(result, source, index, results) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(result.name, 'customClassName', true)) { + return result; + } + + // If the condition verifies we are probably in the presence of a wrapping transform + // e.g: nesting paragraphs in a group or columns and in that case the class should not be kept. + if (results.length === 1 && result.innerBlocks.length === source.length) { + return result; + } + + // If we are transforming one block to multiple blocks or multiple blocks to one block, + // we ignore the class during the transform. + if (results.length === 1 && source.length > 1 || results.length > 1 && source.length === 1) { + return result; + } + // If we are in presence of transform between one or more block in the source + // that have one or more blocks in the result + // we apply the class on source N to the result N, + // if source N does not exists we do nothing. + if (source[index]) { + const originClassName = source[index]?.attributes.className; + if (originClassName) { + return { + ...result, + attributes: { + ...result.attributes, + className: originClassName + } + }; + } + } + return result; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/custom-class-name/attribute', custom_class_name_addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/custom-class-name/with-inspector-control', custom_class_name_withInspectorControl); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/custom-class-name/save-props', custom_class_name_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', addTransforms); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/generated-class-name.js /** - * Internal dependencies + * WordPress dependencies */ + /** - * Utility to generate the proper CSS selector for layout styles. + * Override props assigned to save component to inject generated className if + * block supports it. This is only applied if the block's save result is an + * element and not a markup string. * - * @param {string} selectors CSS selector, also supports multiple comma-separated selectors. - * @param {string} append The string to append. + * @param {Object} extraProps Additional props applied to save element. + * @param {Object} blockType Block type. * - * @return {string} - CSS selector. + * @return {Object} Filtered props applied to save element. */ -function appendSelectors(selectors, append = '') { - // Ideally we shouldn't need the `.editor-styles-wrapper` increased specificity here - // The problem though is that we have a `.editor-styles-wrapper p { margin: reset; }` style - // it's used to reset the default margin added by wp-admin to paragraphs - // so we need this to be higher speficity otherwise, it won't be applied to paragraphs inside containers - // When the post editor is fully iframed, this extra classname could be removed. +function addGeneratedClassName(extraProps, blockType) { + // Adding the generated className. + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'className', true)) { + if (typeof extraProps.className === 'string') { + // We have some extra classes and want to add the default classname + // We use uniq to prevent duplicate classnames. - return selectors.split(',').map(subselector => `.editor-styles-wrapper ${subselector}${append ? ` ${append}` : ''}`).join(','); + extraProps.className = [...new Set([(0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(blockType.name), ...extraProps.className.split(' ')])].join(' ').trim(); + } else { + // There is no string in the className variable, + // so we just dump the default name in there. + extraProps.className = (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(blockType.name); + } + } + return extraProps; } +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/generated-class-name/save-props', addGeneratedClassName); + +;// CONCATENATED MODULE: external ["wp","dom"] +var external_wp_dom_namespaceObject = window["wp"]["dom"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-context/index.js /** - * Get generated blockGap CSS rules based on layout definitions provided in theme.json - * Falsy values in the layout definition's spacingStyles rules will be swapped out - * with the provided `blockGapValue`. - * - * @param {string} selector The CSS selector to target for the generated rules. - * @param {Object} layoutDefinitions Layout definitions object. - * @param {string} layoutType The layout type (e.g. `default` or `flex`). - * @param {string} blockGapValue The current blockGap value to be applied. - * @return {string} The generated CSS rules. + * WordPress dependencies */ -function getBlockGapCSS(selector, layoutDefinitions = LAYOUT_DEFINITIONS, layoutType, blockGapValue) { - let output = ''; - if (layoutDefinitions?.[layoutType]?.spacingStyles?.length && blockGapValue) { - layoutDefinitions[layoutType].spacingStyles.forEach(gapStyle => { - output += `${appendSelectors(selector, gapStyle.selector.trim())} { `; - output += Object.entries(gapStyle.rules).map(([cssProperty, value]) => `${cssProperty}: ${value ? value : blockGapValue}`).join('; '); - output += '; }'; - }); - } - return output; -} + + +/** @typedef {import('react').ReactNode} ReactNode */ /** - * Helper method to assign contextual info to clarify - * alignment settings. + * @typedef BlockContextProviderProps * - * Besides checking if `contentSize` and `wideSize` have a - * value, we now show this information only if their values - * are not a `css var`. This needs to change when parsing - * css variables land. + * @property {Record} value Context value to merge with current + * value. + * @property {ReactNode} children Component children. + */ + +/** @type {import('react').Context>} */ +const block_context_Context = (0,external_wp_element_namespaceObject.createContext)({}); + +/** + * Component which merges passed value with current consumed block context. * - * @see https://github.com/WordPress/gutenberg/pull/34710#issuecomment-918000752 + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-context/README.md * - * @param {Object} layout The layout object. - * @return {Object} An object with contextual info per alignment. + * @param {BlockContextProviderProps} props */ -function getAlignmentsInfo(layout) { - const { - contentSize, - wideSize, - type = 'default' - } = layout; - const alignmentInfo = {}; - const sizeRegex = /^(?!0)\d+(px|em|rem|vw|vh|%|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)?$/i; - if (sizeRegex.test(contentSize) && type === 'constrained') { - // translators: %s: container size (i.e. 600px etc) - alignmentInfo.none = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Max %s wide'), contentSize); - } - if (sizeRegex.test(wideSize)) { - // translators: %s: container size (i.e. 600px etc) - alignmentInfo.wide = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Max %s wide'), wideSize); - } - return alignmentInfo; +function BlockContextProvider({ + value, + children +}) { + const context = (0,external_wp_element_namespaceObject.useContext)(block_context_Context); + const nextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + ...context, + ...value + }), [context, value]); + return (0,external_wp_element_namespaceObject.createElement)(block_context_Context.Provider, { + value: nextValue, + children: children + }); } +/* harmony default export */ var block_context = (block_context_Context); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-all.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/edit.js /** - * WordPress dependencies + * External dependencies */ -const sidesAll = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z" -})); -/* harmony default export */ var sides_all = (sidesAll); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-horizontal.js /** * WordPress dependencies */ -const sidesHorizontal = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 - } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m4.5 7.5v9h1.5v-9z" -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m18 7.5v9h1.5v-9z" -})); -/* harmony default export */ var sides_horizontal = (sidesHorizontal); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-vertical.js + /** - * WordPress dependencies + * Internal dependencies */ -const sidesVertical = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 + +/** + * Default value used for blocks which do not define their own context needs, + * used to guarantee that a block's `context` prop will always be an object. It + * is assigned as a constant since it is always expected to be an empty object, + * and in order to avoid unnecessary React reconciliations of a changing object. + * + * @type {{}} + */ +const DEFAULT_BLOCK_CONTEXT = {}; +const Edit = props => { + const { + name + } = props; + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + if (!blockType) { + return null; } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9z" -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 19.5h9v-1.5h-9z" -})); -/* harmony default export */ var sides_vertical = (sidesVertical); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-top.js + // `edit` and `save` are functions or components describing the markup + // with which a block is displayed. If `blockType` is valid, assign + // them preferentially as the render value for the block. + const Component = blockType.edit || blockType.save; + return (0,external_wp_element_namespaceObject.createElement)(Component, { + ...props + }); +}; +const EditWithFilters = (0,external_wp_components_namespaceObject.withFilters)('editor.BlockEdit')(Edit); +const EditWithGeneratedProps = props => { + const { + attributes = {}, + name + } = props; + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + const blockContext = (0,external_wp_element_namespaceObject.useContext)(block_context); + + // Assign context values using the block type's declared context needs. + const context = (0,external_wp_element_namespaceObject.useMemo)(() => { + return blockType && blockType.usesContext ? Object.fromEntries(Object.entries(blockContext).filter(([key]) => blockType.usesContext.includes(key))) : DEFAULT_BLOCK_CONTEXT; + }, [blockType, blockContext]); + if (!blockType) { + return null; + } + if (blockType.apiVersion > 1) { + return (0,external_wp_element_namespaceObject.createElement)(EditWithFilters, { + ...props, + context: context + }); + } + + // Generate a class name for the block's editable form. + const generatedClassName = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'className', true) ? (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(name) : null; + const className = classnames_default()(generatedClassName, attributes.className, props.className); + return (0,external_wp_element_namespaceObject.createElement)(EditWithFilters, { + ...props, + context: context, + className: className + }); +}; +/* harmony default export */ var edit = (EditWithGeneratedProps); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/index.js /** * WordPress dependencies */ -const sidesTop = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 - } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m16.5 6h-9v-1.5h9z" -})); -/* harmony default export */ var sides_top = (sidesTop); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-right.js +/** + * Internal dependencies + */ + + /** - * WordPress dependencies + * The `useBlockEditContext` hook provides information about the block this hook is being used in. + * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block. + * It is useful if you want to create custom hooks that need access to the current blocks clientId + * but don't want to rely on the data getting passed in as a parameter. + * + * @return {Object} Block edit context */ -const sidesRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 - } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m18 16.5v-9h1.5v9z" -})); -/* harmony default export */ var sides_right = (sidesRight); +function BlockEdit(props) { + const { + name, + isSelected, + clientId, + attributes = {}, + __unstableLayoutClassNames + } = props; + const { + layout = null + } = attributes; + const layoutSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'layout', false) || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, '__experimentalLayout', false); + const context = { + name, + isSelected, + clientId, + layout: layoutSupport ? layout : null, + __unstableLayoutClassNames + }; + return (0,external_wp_element_namespaceObject.createElement)(Provider + // It is important to return the same object if props haven't + // changed to avoid unnecessary rerenders. + // See https://reactjs.org/docs/context.html#caveats. + , { + value: (0,external_wp_element_namespaceObject.useMemo)(() => context, Object.values(context)) + }, (0,external_wp_element_namespaceObject.createElement)(edit, { + ...props + })); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-bottom.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js /** * WordPress dependencies */ -const sidesBottom = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const moreVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 - } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m16.5 19.5h-9v-1.5h9z", - style: { - fill: '#1e1e1e' - } +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" })); -/* harmony default export */ var sides_bottom = (sidesBottom); +/* harmony default export */ var more_vertical = (moreVertical); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/warning/index.js + +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/sides-left.js /** * WordPress dependencies */ -const sidesLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z", - style: { - opacity: 0.25 - } -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m4.5 16.5v-9h1.5v9z" -})); -/* harmony default export */ var sides_left = (sidesLeft); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/utils.js -/** - * WordPress dependencies - */ -const ALL_SIDES = ['top', 'right', 'bottom', 'left']; -const DEFAULT_VALUES = { - top: undefined, - right: undefined, - bottom: undefined, - left: undefined -}; -const ICONS = { - custom: sides_all, - axial: sides_all, - horizontal: sides_horizontal, - vertical: sides_vertical, - top: sides_top, - right: sides_right, - bottom: sides_bottom, - left: sides_left -}; -const LABELS = { - default: (0,external_wp_i18n_namespaceObject.__)('Spacing control'), - top: (0,external_wp_i18n_namespaceObject.__)('Top'), - bottom: (0,external_wp_i18n_namespaceObject.__)('Bottom'), - left: (0,external_wp_i18n_namespaceObject.__)('Left'), - right: (0,external_wp_i18n_namespaceObject.__)('Right'), - mixed: (0,external_wp_i18n_namespaceObject.__)('Mixed'), - vertical: (0,external_wp_i18n_namespaceObject.__)('Vertical'), - horizontal: (0,external_wp_i18n_namespaceObject.__)('Horizontal'), - axial: (0,external_wp_i18n_namespaceObject.__)('Horizontal & vertical'), - custom: (0,external_wp_i18n_namespaceObject.__)('Custom') -}; -const VIEWS = { - axial: 'axial', - top: 'top', - right: 'right', - bottom: 'bottom', - left: 'left', - custom: 'custom' -}; +function Warning({ + className, + actions, + children, + secondaryActions +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + display: 'contents', + all: 'initial' + } + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()(className, 'block-editor-warning') + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-warning__contents" + }, (0,external_wp_element_namespaceObject.createElement)("p", { + className: "block-editor-warning__message" + }, children), (external_wp_element_namespaceObject.Children.count(actions) > 0 || secondaryActions) && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-warning__actions" + }, external_wp_element_namespaceObject.Children.count(actions) > 0 && external_wp_element_namespaceObject.Children.map(actions, (action, i) => (0,external_wp_element_namespaceObject.createElement)("span", { + key: i, + className: "block-editor-warning__action" + }, action)), secondaryActions && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + className: "block-editor-warning__secondary", + icon: more_vertical, + label: (0,external_wp_i18n_namespaceObject.__)('More options'), + popoverProps: { + position: 'bottom left', + className: 'block-editor-warning__dropdown' + }, + noIcons: true + }, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, secondaryActions.map((item, pos) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: item.onClick, + key: pos + }, item.title)))))))); +} /** - * Checks is given value is a spacing preset. - * - * @param {string} value Value to check - * - * @return {boolean} Return true if value is string in format var:preset|spacing|. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md */ -function isValueSpacingPreset(value) { - if (!value?.includes) { - return false; - } - return value === '0' || value.includes('var:preset|spacing|'); -} +/* harmony default export */ var warning = (Warning); + +// EXTERNAL MODULE: ./node_modules/diff/lib/diff/character.js +var character = __webpack_require__(1973); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/block-view.js /** - * Converts a spacing preset into a custom value. - * - * @param {string} value Value to convert - * @param {Array} spacingSizes Array of the current spacing preset objects - * - * @return {string} Mapping of the spacing preset to its equivalent custom value. + * WordPress dependencies */ -function getCustomValueFromPreset(value, spacingSizes) { - if (!isValueSpacingPreset(value)) { - return value; - } - const slug = getSpacingPresetSlug(value); - const spacingSize = spacingSizes.find(size => String(size.slug) === slug); - return spacingSize?.size; + + + +function BlockView({ + title, + rawContent, + renderedContent, + action, + actionText, + className +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: className + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-compare__content" + }, (0,external_wp_element_namespaceObject.createElement)("h2", { + className: "block-editor-block-compare__heading" + }, title), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-compare__html" + }, rawContent), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-compare__preview edit-post-visual-editor" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(renderedContent)))), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-compare__action" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "secondary", + tabIndex: "0", + onClick: action + }, actionText))); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/index.js + /** - * Converts a custom value to preset value if one can be found. - * - * Returns value as-is if no match is found. - * - * @param {string} value Value to convert - * @param {Array} spacingSizes Array of the current spacing preset objects - * - * @return {string} The preset value if it can be found. + * External dependencies */ -function getPresetValueFromCustomValue(value, spacingSizes) { - // Return value as-is if it is undefined or is already a preset, or '0'; - if (!value || isValueSpacingPreset(value) || value === '0') { - return value; - } - const spacingMatch = spacingSizes.find(size => String(size.size) === String(value)); - if (spacingMatch?.slug) { - return `var:preset|spacing|${spacingMatch.slug}`; - } - return value; -} + +// diff doesn't tree-shake correctly, so we import from the individual +// module here, to avoid including too much of the library + /** - * Converts a spacing preset into a custom value. - * - * @param {string} value Value to convert. - * - * @return {string | undefined} CSS var string for given spacing preset value. + * WordPress dependencies */ -function getSpacingPresetCssVar(value) { - if (!value) { - return; - } - const slug = value.match(/var:preset\|spacing\|(.+)/); - if (!slug) { - return value; - } - return `var(--wp--preset--spacing--${slug[1]})`; -} + + /** - * Returns the slug section of the given spacing preset string. - * - * @param {string} value Value to extract slug from. - * - * @return {string|undefined} The int value of the slug from given spacing preset. + * Internal dependencies */ -function getSpacingPresetSlug(value) { - if (!value) { - return; + +function BlockCompare({ + block, + onKeep, + onConvert, + convertor, + convertButtonText +}) { + function getDifference(originalContent, newContent) { + const difference = (0,character/* diffChars */.Kx)(originalContent, newContent); + return difference.map((item, pos) => { + const classes = classnames_default()({ + 'block-editor-block-compare__added': item.added, + 'block-editor-block-compare__removed': item.removed + }); + return (0,external_wp_element_namespaceObject.createElement)("span", { + key: pos, + className: classes + }, item.value); + }); } - if (value === '0' || value === 'default') { - return value; + function getConvertedContent(convertedBlock) { + // The convertor may return an array of items or a single item. + const newBlocks = Array.isArray(convertedBlock) ? convertedBlock : [convertedBlock]; + + // Get converted block details. + const newContent = newBlocks.map(item => (0,external_wp_blocks_namespaceObject.getSaveContent)(item.name, item.attributes, item.innerBlocks)); + return newContent.join(''); } - const slug = value.match(/var:preset\|spacing\|(.+)/); - return slug ? slug[1] : undefined; + const converted = getConvertedContent(convertor(block)); + const difference = getDifference(block.originalContent, converted); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-compare__wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(BlockView, { + title: (0,external_wp_i18n_namespaceObject.__)('Current'), + className: "block-editor-block-compare__current", + action: onKeep, + actionText: (0,external_wp_i18n_namespaceObject.__)('Convert to HTML'), + rawContent: block.originalContent, + renderedContent: block.originalContent + }), (0,external_wp_element_namespaceObject.createElement)(BlockView, { + title: (0,external_wp_i18n_namespaceObject.__)('After Conversion'), + className: "block-editor-block-compare__converted", + action: onConvert, + actionText: convertButtonText, + rawContent: difference, + renderedContent: converted + })); } +/* harmony default export */ var block_compare = (BlockCompare); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-invalid-warning.js /** - * Converts spacing preset value into a Range component value . - * - * @param {string} presetValue Value to convert to Range value. - * @param {Array} spacingSizes Array of current spacing preset value objects. - * - * @return {number} The int value for use in Range control. + * WordPress dependencies */ -function getSliderValueFromPreset(presetValue, spacingSizes) { - if (presetValue === undefined) { - return 0; - } - const slug = parseFloat(presetValue, 10) === 0 ? '0' : getSpacingPresetSlug(presetValue); - const sliderValue = spacingSizes.findIndex(spacingSize => { - return String(spacingSize.slug) === slug; - }); - // Returning NaN rather than undefined as undefined makes range control thumb sit in center - return sliderValue !== -1 ? sliderValue : NaN; -} -/** - * Gets an items with the most occurrence within an array - * https://stackoverflow.com/a/20762713 - * - * @param {Array} arr Array of items to check. - * @return {any} The item with the most occurrences. - */ -function mode(arr) { - return arr.sort((a, b) => arr.filter(v => v === a).length - arr.filter(v => v === b).length).pop(); -} -/** - * Gets the 'all' input value from values data. - * - * @param {Object} values Box spacing values - * - * @return {string} The most common value from all sides of box. - */ -function getAllRawValue(values = {}) { - return mode(Object.values(values)); -} + + /** - * Checks to determine if values are mixed. - * - * @param {Object} values Box values. - * @param {Array} sides Sides that values relate to. - * - * @return {boolean} Whether values are mixed. + * Internal dependencies */ -function isValuesMixed(values = {}, sides = ALL_SIDES) { - return Object.values(values).length >= 1 && Object.values(values).length < sides.length || new Set(Object.values(values)).size > 1; + + + +const blockToBlocks = block => (0,external_wp_blocks_namespaceObject.rawHandler)({ + HTML: block.originalContent +}); +function BlockInvalidWarning({ + clientId +}) { + const { + block, + canInsertHTMLBlock, + canInsertClassicBlock + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + canInsertBlockType, + getBlock, + getBlockRootClientId + } = select(store); + const rootClientId = getBlockRootClientId(clientId); + return { + block: getBlock(clientId), + canInsertHTMLBlock: canInsertBlockType('core/html', rootClientId), + canInsertClassicBlock: canInsertBlockType('core/freeform', rootClientId) + }; + }, [clientId]); + const { + replaceBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const [compare, setCompare] = (0,external_wp_element_namespaceObject.useState)(false); + const onCompareClose = (0,external_wp_element_namespaceObject.useCallback)(() => setCompare(false), []); + const convert = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + toClassic() { + const classicBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', { + content: block.originalContent + }); + return replaceBlock(block.clientId, classicBlock); + }, + toHTML() { + const htmlBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/html', { + content: block.originalContent + }); + return replaceBlock(block.clientId, htmlBlock); + }, + toBlocks() { + const newBlocks = blockToBlocks(block); + return replaceBlock(block.clientId, newBlocks); + }, + toRecoveredBlock() { + const recoveredBlock = (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks); + return replaceBlock(block.clientId, recoveredBlock); + } + }), [block, replaceBlock]); + const secondaryActions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ + // translators: Button to fix block content + title: (0,external_wp_i18n_namespaceObject._x)('Resolve', 'imperative verb'), + onClick: () => setCompare(true) + }, canInsertHTMLBlock && { + title: (0,external_wp_i18n_namespaceObject.__)('Convert to HTML'), + onClick: convert.toHTML + }, canInsertClassicBlock && { + title: (0,external_wp_i18n_namespaceObject.__)('Convert to Classic Block'), + onClick: convert.toClassic + }].filter(Boolean), [canInsertHTMLBlock, canInsertClassicBlock, convert]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(warning, { + actions: [(0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: "recover", + onClick: convert.toRecoveredBlock, + variant: "primary" + }, (0,external_wp_i18n_namespaceObject.__)('Attempt Block Recovery'))], + secondaryActions: secondaryActions + }, (0,external_wp_i18n_namespaceObject.__)('This block contains unexpected or invalid content.')), compare && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: + // translators: Dialog title to fix block content + (0,external_wp_i18n_namespaceObject.__)('Resolve Block'), + onRequestClose: onCompareClose, + className: "block-editor-block-compare" + }, (0,external_wp_element_namespaceObject.createElement)(block_compare, { + block: block, + onKeep: convert.toHTML, + onConvert: convert.toBlocks, + convertor: blockToBlocks, + convertButtonText: (0,external_wp_i18n_namespaceObject.__)('Convert to Blocks') + }))); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-warning.js + /** - * Checks to determine if values are defined. - * - * @param {Object} values Box values. - * - * @return {boolean} Whether values are defined. + * WordPress dependencies */ -function isValuesDefined(values) { - if (values === undefined || values === null) { - return false; - } - return Object.values(values).filter(value => !!value).length > 0; -} + /** - * Determines whether a particular axis has support. If no axis is - * specified, this function checks if either axis is supported. - * - * @param {Array} sides Supported sides. - * @param {string} axis Which axis to check. - * - * @return {boolean} Whether there is support for the specified axis or both axes. + * Internal dependencies */ -function hasAxisSupport(sides, axis) { - if (!sides || !sides.length) { - return false; - } - const hasHorizontalSupport = sides.includes('horizontal') || sides.includes('left') && sides.includes('right'); - const hasVerticalSupport = sides.includes('vertical') || sides.includes('top') && sides.includes('bottom'); - if (axis === 'horizontal') { - return hasHorizontalSupport; - } - if (axis === 'vertical') { - return hasVerticalSupport; - } - return hasHorizontalSupport || hasVerticalSupport; -} +const block_crash_warning_warning = (0,external_wp_element_namespaceObject.createElement)(warning, { + className: "block-editor-block-list__block-crash-warning" +}, (0,external_wp_i18n_namespaceObject.__)('This block has encountered an error and cannot be previewed.')); +/* harmony default export */ var block_crash_warning = (() => block_crash_warning_warning); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-boundary.js /** - * Determines which menu options should be included in the SidePicker. - * - * @param {Array} sides Supported sides. - * - * @return {Object} Menu options with each option containing label & icon. + * WordPress dependencies */ -function getSupportedMenuItems(sides) { - if (!sides || !sides.length) { - return {}; - } - const menuItems = {}; - // Determine the primary "side" menu options. - const hasHorizontalSupport = hasAxisSupport(sides, 'horizontal'); - const hasVerticalSupport = hasAxisSupport(sides, 'vertical'); - if (hasHorizontalSupport && hasVerticalSupport) { - menuItems.axial = { - label: LABELS.axial, - icon: ICONS.axial - }; - } else if (hasHorizontalSupport) { - menuItems.axial = { - label: LABELS.horizontal, - icon: ICONS.horizontal - }; - } else if (hasVerticalSupport) { - menuItems.axial = { - label: LABELS.vertical, - icon: ICONS.vertical +class BlockCrashBoundary extends external_wp_element_namespaceObject.Component { + constructor() { + super(...arguments); + this.state = { + hasError: false }; } - - // Track whether we have any individual sides so we can omit the custom - // option if required. - let numberOfIndividualSides = 0; - ALL_SIDES.forEach(side => { - if (sides.includes(side)) { - numberOfIndividualSides += 1; - menuItems[side] = { - label: LABELS[side], - icon: ICONS[side] - }; + componentDidCatch() { + this.setState({ + hasError: true + }); + } + render() { + if (this.state.hasError) { + return this.props.fallback; } - }); - - // Add custom item if there are enough sides to warrant a separated view. - if (numberOfIndividualSides > 1) { - menuItems.custom = { - label: LABELS.custom, - icon: ICONS.custom - }; + return this.props.children; } - return menuItems; } +/* harmony default export */ var block_crash_boundary = (BlockCrashBoundary); + +// EXTERNAL MODULE: ./node_modules/react-autosize-textarea/lib/index.js +var lib = __webpack_require__(773); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-html.js /** - * Checks if the supported sides are balanced for each axis. - * - Horizontal - both left and right sides are supported. - * - Vertical - both top and bottom are supported. - * - * @param {Array} sides The supported sides which may be axes as well. - * - * @return {boolean} Whether or not the supported sides are balanced. + * External dependencies */ -function hasBalancedSidesSupport(sides = []) { - const counts = { - top: 0, - right: 0, - bottom: 0, - left: 0 - }; - sides.forEach(side => counts[side] += 1); - return (counts.top + counts.bottom) % 2 === 0 && (counts.left + counts.right) % 2 === 0; -} + /** - * Determines which view the SpacingSizesControl should default to on its - * first render; Axial, Custom, or Single side. - * - * @param {Object} values Current side values. - * @param {Array} sides Supported sides. - * - * @return {string} View to display. + * WordPress dependencies */ -function getInitialView(values = {}, sides) { - const { - top, - right, - bottom, - left - } = values; - const sideValues = [top, right, bottom, left].filter(Boolean); - // Axial ( Horizontal & vertical ). - // - Has axial side support - // - Has axial side values which match - // - Has no values and the supported sides are balanced - const hasMatchingAxialValues = top === bottom && left === right && (!!top || !!left); - const hasNoValuesAndBalancedSides = !sideValues.length && hasBalancedSidesSupport(sides); - if (hasAxisSupport(sides) && (hasMatchingAxialValues || hasNoValuesAndBalancedSides)) { - return VIEWS.axial; - } - // Single side. - // - Ensure the side returned is the first side that has a value. - if (sideValues.length === 1) { - let side; - Object.entries(values).some(([key, value]) => { - side = key; - return value !== undefined; - }); - return side; - } - // Only single side supported and no value defined. - if (sides?.length === 1 && !sideValues.length) { - return sides[0]; - } - - // Default to the Custom (separated sides) view. - return VIEWS.custom; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/gap.js /** * Internal dependencies */ +function BlockHTML({ + clientId +}) { + const [html, setHtml] = (0,external_wp_element_namespaceObject.useState)(''); + const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlock(clientId), [clientId]); + const { + updateBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const onChange = () => { + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(block.name); + if (!blockType) { + return; + } + const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(blockType, html, block.attributes); -/** - * Returns a BoxControl object value from a given blockGap style value. - * The string check is for backwards compatibility before Gutenberg supported - * split gap values (row and column) and the value was a string n + unit. - * - * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}. - * @return {Object|null} A value to pass to the BoxControl component. - */ -function getGapBoxControlValueFromStyle(blockGapValue) { - if (!blockGapValue) { - return null; + // If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error + const content = html ? html : (0,external_wp_blocks_namespaceObject.getSaveContent)(blockType, attributes); + const [isValid] = html ? (0,external_wp_blocks_namespaceObject.validateBlock)({ + ...block, + attributes, + originalContent: content + }) : [true]; + updateBlock(clientId, { + attributes, + originalContent: content, + isValid + }); + + // Ensure the state is updated if we reset so it displays the default content. + if (!html) { + setHtml(content); + } + }; + (0,external_wp_element_namespaceObject.useEffect)(() => { + setHtml((0,external_wp_blocks_namespaceObject.getBlockContent)(block)); + }, [block]); + return (0,external_wp_element_namespaceObject.createElement)(lib/* default */.Z, { + className: "block-editor-block-list__block-html-textarea", + value: html, + onBlur: onChange, + onChange: event => setHtml(event.target.value) + }); +} +/* harmony default export */ var block_html = (BlockHTML); + +// EXTERNAL MODULE: external "React" +var external_React_ = __webpack_require__(9196); +var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); +;// CONCATENATED MODULE: ./node_modules/@react-spring/shared/dist/react-spring_shared.modern.mjs +var __defProp = Object.defineProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; + +// src/globals.ts +var globals_exports = {}; +__export(globals_exports, { + assign: () => react_spring_shared_modern_assign, + colors: () => colors, + createStringInterpolator: () => createStringInterpolator, + skipAnimation: () => skipAnimation, + to: () => to, + willAdvance: () => willAdvance +}); + +// ../rafz/dist/react-spring_rafz.modern.mjs +var updateQueue = makeQueue(); +var raf = (fn) => schedule(fn, updateQueue); +var writeQueue = makeQueue(); +raf.write = (fn) => schedule(fn, writeQueue); +var onStartQueue = makeQueue(); +raf.onStart = (fn) => schedule(fn, onStartQueue); +var onFrameQueue = makeQueue(); +raf.onFrame = (fn) => schedule(fn, onFrameQueue); +var onFinishQueue = makeQueue(); +raf.onFinish = (fn) => schedule(fn, onFinishQueue); +var timeouts = []; +raf.setTimeout = (handler, ms) => { + const time = raf.now() + ms; + const cancel = () => { + const i = timeouts.findIndex((t) => t.cancel == cancel); + if (~i) + timeouts.splice(i, 1); + pendingCount -= ~i ? 1 : 0; + }; + const timeout = { time, handler, cancel }; + timeouts.splice(findTimeout(time), 0, timeout); + pendingCount += 1; + start(); + return timeout; +}; +var findTimeout = (time) => ~(~timeouts.findIndex((t) => t.time > time) || ~timeouts.length); +raf.cancel = (fn) => { + onStartQueue.delete(fn); + onFrameQueue.delete(fn); + onFinishQueue.delete(fn); + updateQueue.delete(fn); + writeQueue.delete(fn); +}; +raf.sync = (fn) => { + sync = true; + raf.batchedUpdates(fn); + sync = false; +}; +raf.throttle = (fn) => { + let lastArgs; + function queuedFn() { + try { + fn(...lastArgs); + } finally { + lastArgs = null; + } } - const isValueString = typeof blockGapValue === 'string'; + function throttled(...args) { + lastArgs = args; + raf.onStart(queuedFn); + } + throttled.handler = fn; + throttled.cancel = () => { + onStartQueue.delete(queuedFn); + lastArgs = null; + }; + return throttled; +}; +var nativeRaf = typeof window != "undefined" ? window.requestAnimationFrame : ( + // eslint-disable-next-line @typescript-eslint/no-empty-function + () => { + } +); +raf.use = (impl) => nativeRaf = impl; +raf.now = typeof performance != "undefined" ? () => performance.now() : Date.now; +raf.batchedUpdates = (fn) => fn(); +raf.catch = console.error; +raf.frameLoop = "always"; +raf.advance = () => { + if (raf.frameLoop !== "demand") { + console.warn( + "Cannot call the manual advancement of rafz whilst frameLoop is not set as demand" + ); + } else { + update(); + } +}; +var ts = -1; +var pendingCount = 0; +var sync = false; +function schedule(fn, queue) { + if (sync) { + queue.delete(fn); + fn(0); + } else { + queue.add(fn); + start(); + } +} +function start() { + if (ts < 0) { + ts = 0; + if (raf.frameLoop !== "demand") { + nativeRaf(loop); + } + } +} +function stop() { + ts = -1; +} +function loop() { + if (~ts) { + nativeRaf(loop); + raf.batchedUpdates(update); + } +} +function update() { + const prevTs = ts; + ts = raf.now(); + const count = findTimeout(ts); + if (count) { + eachSafely(timeouts.splice(0, count), (t) => t.handler()); + pendingCount -= count; + } + if (!pendingCount) { + stop(); + return; + } + onStartQueue.flush(); + updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667); + onFrameQueue.flush(); + writeQueue.flush(); + onFinishQueue.flush(); +} +function makeQueue() { + let next = /* @__PURE__ */ new Set(); + let current = next; return { - top: isValueString ? blockGapValue : blockGapValue?.top, - left: isValueString ? blockGapValue : blockGapValue?.left + add(fn) { + pendingCount += current == next && !next.has(fn) ? 1 : 0; + next.add(fn); + }, + delete(fn) { + pendingCount -= current == next && next.has(fn) ? 1 : 0; + return next.delete(fn); + }, + flush(arg) { + if (current.size) { + next = /* @__PURE__ */ new Set(); + pendingCount -= current.size; + eachSafely(current, (fn) => fn(arg) && next.add(fn)); + pendingCount += next.size; + current = next; + } + } }; } +function eachSafely(values, each2) { + values.forEach((value) => { + try { + each2(value); + } catch (e) { + raf.catch(e); + } + }); +} -/** - * Returns a CSS value for the `gap` property from a given blockGap style. - * - * @param {string? | Object?} blockGapValue A block gap string or axial object value, e.g., '10px' or { top: '10px', left: '10px'}. - * @param {string?} defaultValue A default gap value. - * @return {string|null} The concatenated gap value (row and column). - */ -function getGapCSSValue(blockGapValue, defaultValue = '0') { - const blockGapBoxControlValue = getGapBoxControlValueFromStyle(blockGapValue); - if (!blockGapBoxControlValue) { - return null; +// src/helpers.ts +function noop() { +} +var defineHidden = (obj, key, value) => Object.defineProperty(obj, key, { value, writable: true, configurable: true }); +var is = { + arr: Array.isArray, + obj: (a) => !!a && a.constructor.name === "Object", + fun: (a) => typeof a === "function", + str: (a) => typeof a === "string", + num: (a) => typeof a === "number", + und: (a) => a === void 0 +}; +function isEqual(a, b) { + if (is.arr(a)) { + if (!is.arr(b) || a.length !== b.length) + return false; + for (let i = 0; i < a.length; i++) { + if (a[i] !== b[i]) + return false; + } + return true; } - const row = getSpacingPresetCssVar(blockGapBoxControlValue?.top) || defaultValue; - const column = getSpacingPresetCssVar(blockGapBoxControlValue?.left) || defaultValue; - return row === column ? row : `${row} ${column}`; + return a === b; } +var react_spring_shared_modern_each = (obj, fn) => obj.forEach(fn); +function eachProp(obj, fn, ctx) { + if (is.arr(obj)) { + for (let i = 0; i < obj.length; i++) { + fn.call(ctx, obj[i], `${i}`); + } + return; + } + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + fn.call(ctx, obj[key], key); + } + } +} +var toArray = (a) => is.und(a) ? [] : is.arr(a) ? a : [a]; +function flush(queue, iterator) { + if (queue.size) { + const items = Array.from(queue); + queue.clear(); + react_spring_shared_modern_each(items, iterator); + } +} +var flushCalls = (queue, ...args) => flush(queue, (fn) => fn(...args)); +var isSSR = () => typeof window === "undefined" || !window.navigator || /ServerSideRendering|^Deno\//.test(window.navigator.userAgent); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/icons.js - -/** - * WordPress dependencies - */ - -const alignBottom = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z" -})); -const alignCenter = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z" -})); -const alignTop = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M9 20h6V9H9v11zM4 4v1.5h16V4H4z" -})); -const alignStretch = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M4 4L20 4L20 5.5L4 5.5L4 4ZM10 7L14 7L14 17L10 17L10 7ZM20 18.5L4 18.5L4 20L20 20L20 18.5Z" -})); -const spaceBetween = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M7 4H17V8L7 8V4ZM7 16L17 16V20L7 20V16ZM20 11.25H4V12.75H20V11.25Z" -})); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/ui.js - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ +// src/globals.ts +var createStringInterpolator; +var to; +var colors = null; +var skipAnimation = false; +var willAdvance = noop; +var react_spring_shared_modern_assign = (globals) => { + if (globals.to) + to = globals.to; + if (globals.now) + raf.now = globals.now; + if (globals.colors !== void 0) + colors = globals.colors; + if (globals.skipAnimation != null) + skipAnimation = globals.skipAnimation; + if (globals.createStringInterpolator) + createStringInterpolator = globals.createStringInterpolator; + if (globals.requestAnimationFrame) + raf.use(globals.requestAnimationFrame); + if (globals.batchedUpdates) + raf.batchedUpdates = globals.batchedUpdates; + if (globals.willAdvance) + willAdvance = globals.willAdvance; + if (globals.frameLoop) + raf.frameLoop = globals.frameLoop; +}; -const BLOCK_ALIGNMENTS_CONTROLS = { - top: { - icon: alignTop, - title: (0,external_wp_i18n_namespaceObject._x)('Align top', 'Block vertical alignment setting') - }, - center: { - icon: alignCenter, - title: (0,external_wp_i18n_namespaceObject._x)('Align middle', 'Block vertical alignment setting') +// src/FrameLoop.ts +var startQueue = /* @__PURE__ */ new Set(); +var currentFrame = []; +var prevFrame = []; +var priority = 0; +var frameLoop = { + get idle() { + return !startQueue.size && !currentFrame.length; }, - bottom: { - icon: alignBottom, - title: (0,external_wp_i18n_namespaceObject._x)('Align bottom', 'Block vertical alignment setting') + /** Advance the given animation on every frame until idle. */ + start(animation) { + if (priority > animation.priority) { + startQueue.add(animation); + raf.onStart(flushStartQueue); + } else { + startSafely(animation); + raf(advance); + } }, - stretch: { - icon: alignStretch, - title: (0,external_wp_i18n_namespaceObject._x)('Stretch to fill', 'Block vertical alignment setting') + /** Advance all animations by the given time. */ + advance, + /** Call this when an animation's priority changes. */ + sort(animation) { + if (priority) { + raf.onFrame(() => frameLoop.sort(animation)); + } else { + const prevIndex = currentFrame.indexOf(animation); + if (~prevIndex) { + currentFrame.splice(prevIndex, 1); + startUnsafely(animation); + } + } }, - 'space-between': { - icon: spaceBetween, - title: (0,external_wp_i18n_namespaceObject._x)('Space between', 'Block vertical alignment setting') + /** + * Clear all animations. For testing purposes. + * + * ☠️ Never call this from within the frameloop. + */ + clear() { + currentFrame = []; + startQueue.clear(); } }; -const DEFAULT_CONTROLS = ['top', 'center', 'bottom']; -const DEFAULT_CONTROL = 'top'; -function BlockVerticalAlignmentUI({ - value, - onChange, - controls = DEFAULT_CONTROLS, - isCollapsed = true, - isToolbar -}) { - function applyOrUnset(align) { - return () => onChange(value === align ? undefined : align); +function flushStartQueue() { + startQueue.forEach(startSafely); + startQueue.clear(); + raf(advance); +} +function startSafely(animation) { + if (!currentFrame.includes(animation)) + startUnsafely(animation); +} +function startUnsafely(animation) { + currentFrame.splice( + findIndex(currentFrame, (other) => other.priority > animation.priority), + 0, + animation + ); +} +function advance(dt) { + const nextFrame = prevFrame; + for (let i = 0; i < currentFrame.length; i++) { + const animation = currentFrame[i]; + priority = animation.priority; + if (!animation.idle) { + willAdvance(animation); + animation.advance(dt); + if (!animation.idle) { + nextFrame.push(animation); + } + } } - const activeAlignment = BLOCK_ALIGNMENTS_CONTROLS[value]; - const defaultAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[DEFAULT_CONTROL]; - const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; - const extraProps = isToolbar ? { - isCollapsed - } : {}; - return (0,external_React_.createElement)(UIComponent, { - icon: activeAlignment ? activeAlignment.icon : defaultAlignmentControl.icon, - label: (0,external_wp_i18n_namespaceObject._x)('Change vertical alignment', 'Block vertical alignment setting label'), - controls: controls.map(control => { - return { - ...BLOCK_ALIGNMENTS_CONTROLS[control], - isActive: value === control, - role: isCollapsed ? 'menuitemradio' : undefined, - onClick: applyOrUnset(control) - }; - }), - ...extraProps - }); + priority = 0; + prevFrame = currentFrame; + prevFrame.length = 0; + currentFrame = nextFrame; + return currentFrame.length > 0; +} +function findIndex(arr, test) { + const index = arr.findIndex(test); + return index < 0 ? arr.length : index; } -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-vertical-alignment-toolbar/README.md - */ -/* harmony default export */ var ui = (BlockVerticalAlignmentUI); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-control/index.js - -/** - * Internal dependencies - */ +// src/clamp.ts +var clamp = (min, max, v) => Math.min(Math.max(v, min), max); -const BlockVerticalAlignmentControl = props => { - return (0,external_React_.createElement)(ui, { - ...props, - isToolbar: false - }); -}; -const BlockVerticalAlignmentToolbar = props => { - return (0,external_React_.createElement)(ui, { - ...props, - isToolbar: true - }); +// src/colors.ts +var colors2 = { + transparent: 0, + aliceblue: 4042850303, + antiquewhite: 4209760255, + aqua: 16777215, + aquamarine: 2147472639, + azure: 4043309055, + beige: 4126530815, + bisque: 4293182719, + black: 255, + blanchedalmond: 4293643775, + blue: 65535, + blueviolet: 2318131967, + brown: 2771004159, + burlywood: 3736635391, + burntsienna: 3934150143, + cadetblue: 1604231423, + chartreuse: 2147418367, + chocolate: 3530104575, + coral: 4286533887, + cornflowerblue: 1687547391, + cornsilk: 4294499583, + crimson: 3692313855, + cyan: 16777215, + darkblue: 35839, + darkcyan: 9145343, + darkgoldenrod: 3095792639, + darkgray: 2846468607, + darkgreen: 6553855, + darkgrey: 2846468607, + darkkhaki: 3182914559, + darkmagenta: 2332068863, + darkolivegreen: 1433087999, + darkorange: 4287365375, + darkorchid: 2570243327, + darkred: 2332033279, + darksalmon: 3918953215, + darkseagreen: 2411499519, + darkslateblue: 1211993087, + darkslategray: 793726975, + darkslategrey: 793726975, + darkturquoise: 13554175, + darkviolet: 2483082239, + deeppink: 4279538687, + deepskyblue: 12582911, + dimgray: 1768516095, + dimgrey: 1768516095, + dodgerblue: 512819199, + firebrick: 2988581631, + floralwhite: 4294635775, + forestgreen: 579543807, + fuchsia: 4278255615, + gainsboro: 3705462015, + ghostwhite: 4177068031, + gold: 4292280575, + goldenrod: 3668254975, + gray: 2155905279, + green: 8388863, + greenyellow: 2919182335, + grey: 2155905279, + honeydew: 4043305215, + hotpink: 4285117695, + indianred: 3445382399, + indigo: 1258324735, + ivory: 4294963455, + khaki: 4041641215, + lavender: 3873897215, + lavenderblush: 4293981695, + lawngreen: 2096890111, + lemonchiffon: 4294626815, + lightblue: 2916673279, + lightcoral: 4034953471, + lightcyan: 3774873599, + lightgoldenrodyellow: 4210742015, + lightgray: 3553874943, + lightgreen: 2431553791, + lightgrey: 3553874943, + lightpink: 4290167295, + lightsalmon: 4288707327, + lightseagreen: 548580095, + lightskyblue: 2278488831, + lightslategray: 2005441023, + lightslategrey: 2005441023, + lightsteelblue: 2965692159, + lightyellow: 4294959359, + lime: 16711935, + limegreen: 852308735, + linen: 4210091775, + magenta: 4278255615, + maroon: 2147483903, + mediumaquamarine: 1724754687, + mediumblue: 52735, + mediumorchid: 3126187007, + mediumpurple: 2473647103, + mediumseagreen: 1018393087, + mediumslateblue: 2070474495, + mediumspringgreen: 16423679, + mediumturquoise: 1221709055, + mediumvioletred: 3340076543, + midnightblue: 421097727, + mintcream: 4127193855, + mistyrose: 4293190143, + moccasin: 4293178879, + navajowhite: 4292783615, + navy: 33023, + oldlace: 4260751103, + olive: 2155872511, + olivedrab: 1804477439, + orange: 4289003775, + orangered: 4282712319, + orchid: 3664828159, + palegoldenrod: 4008225535, + palegreen: 2566625535, + paleturquoise: 2951671551, + palevioletred: 3681588223, + papayawhip: 4293907967, + peachpuff: 4292524543, + peru: 3448061951, + pink: 4290825215, + plum: 3718307327, + powderblue: 2967529215, + purple: 2147516671, + rebeccapurple: 1714657791, + red: 4278190335, + rosybrown: 3163525119, + royalblue: 1097458175, + saddlebrown: 2336560127, + salmon: 4202722047, + sandybrown: 4104413439, + seagreen: 780883967, + seashell: 4294307583, + sienna: 2689740287, + silver: 3233857791, + skyblue: 2278484991, + slateblue: 1784335871, + slategray: 1887473919, + slategrey: 1887473919, + snow: 4294638335, + springgreen: 16744447, + steelblue: 1182971135, + tan: 3535047935, + teal: 8421631, + thistle: 3636451583, + tomato: 4284696575, + turquoise: 1088475391, + violet: 4001558271, + wheat: 4125012991, + white: 4294967295, + whitesmoke: 4126537215, + yellow: 4294902015, + yellowgreen: 2597139199 }; -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-vertical-alignment-control/README.md - */ - - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/justify-content-control/ui.js - -/** - * WordPress dependencies - */ +// src/colorMatchers.ts +var NUMBER = "[-+]?\\d*\\.?\\d+"; +var PERCENTAGE = NUMBER + "%"; +function call(...parts) { + return "\\(\\s*(" + parts.join(")\\s*,\\s*(") + ")\\s*\\)"; +} +var rgb = new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER)); +var rgba = new RegExp("rgba" + call(NUMBER, NUMBER, NUMBER, NUMBER)); +var hsl = new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE)); +var hsla = new RegExp( + "hsla" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +); +var hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; +var hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; +var hex6 = /^#([0-9a-fA-F]{6})$/; +var hex8 = /^#([0-9a-fA-F]{8})$/; +// src/normalizeColor.ts +function normalizeColor(color) { + let match; + if (typeof color === "number") { + return color >>> 0 === color && color >= 0 && color <= 4294967295 ? color : null; + } + if (match = hex6.exec(color)) + return parseInt(match[1] + "ff", 16) >>> 0; + if (colors && colors[color] !== void 0) { + return colors[color]; + } + if (match = rgb.exec(color)) { + return (parse255(match[1]) << 24 | // r + parse255(match[2]) << 16 | // g + parse255(match[3]) << 8 | // b + 255) >>> // a + 0; + } + if (match = rgba.exec(color)) { + return (parse255(match[1]) << 24 | // r + parse255(match[2]) << 16 | // g + parse255(match[3]) << 8 | // b + parse1(match[4])) >>> // a + 0; + } + if (match = hex3.exec(color)) { + return parseInt( + match[1] + match[1] + // r + match[2] + match[2] + // g + match[3] + match[3] + // b + "ff", + // a + 16 + ) >>> 0; + } + if (match = hex8.exec(color)) + return parseInt(match[1], 16) >>> 0; + if (match = hex4.exec(color)) { + return parseInt( + match[1] + match[1] + // r + match[2] + match[2] + // g + match[3] + match[3] + // b + match[4] + match[4], + // a + 16 + ) >>> 0; + } + if (match = hsl.exec(color)) { + return (hslToRgb( + parse360(match[1]), + // h + parsePercentage(match[2]), + // s + parsePercentage(match[3]) + // l + ) | 255) >>> // a + 0; + } + if (match = hsla.exec(color)) { + return (hslToRgb( + parse360(match[1]), + // h + parsePercentage(match[2]), + // s + parsePercentage(match[3]) + // l + ) | parse1(match[4])) >>> // a + 0; + } + return null; +} +function hue2rgb(p, q, t) { + if (t < 0) + t += 1; + if (t > 1) + t -= 1; + if (t < 1 / 6) + return p + (q - p) * 6 * t; + if (t < 1 / 2) + return q; + if (t < 2 / 3) + return p + (q - p) * (2 / 3 - t) * 6; + return p; +} +function hslToRgb(h, s, l) { + const q = l < 0.5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + const r = hue2rgb(p, q, h + 1 / 3); + const g = hue2rgb(p, q, h); + const b = hue2rgb(p, q, h - 1 / 3); + return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8; +} +function parse255(str) { + const int = parseInt(str, 10); + if (int < 0) + return 0; + if (int > 255) + return 255; + return int; +} +function parse360(str) { + const int = parseFloat(str); + return (int % 360 + 360) % 360 / 360; +} +function parse1(str) { + const num = parseFloat(str); + if (num < 0) + return 0; + if (num > 1) + return 255; + return Math.round(num * 255); +} +function parsePercentage(str) { + const int = parseFloat(str); + if (int < 0) + return 0; + if (int > 100) + return 1; + return int / 100; +} +// src/colorToRgba.ts +function colorToRgba(input) { + let int32Color = normalizeColor(input); + if (int32Color === null) + return input; + int32Color = int32Color || 0; + const r = (int32Color & 4278190080) >>> 24; + const g = (int32Color & 16711680) >>> 16; + const b = (int32Color & 65280) >>> 8; + const a = (int32Color & 255) / 255; + return `rgba(${r}, ${g}, ${b}, ${a})`; +} -const icons = { - left: justify_left, - center: justify_center, - right: justify_right, - 'space-between': justify_space_between, - stretch: justify_stretch -}; -function JustifyContentUI({ - allowedControls = ['left', 'center', 'right', 'space-between'], - isCollapsed = true, - onChange, - value, - popoverProps, - isToolbar -}) { - // If the control is already selected we want a click - // again on the control to deselect the item, so we - // call onChange( undefined ) - const handleClick = next => { - if (next === value) { - onChange(undefined); - } else { - onChange(next); - } +// src/createInterpolator.ts +var createInterpolator = (range, output, extrapolate) => { + if (is.fun(range)) { + return range; + } + if (is.arr(range)) { + return createInterpolator({ + range, + output, + extrapolate + }); + } + if (is.str(range.output[0])) { + return createStringInterpolator(range); + } + const config = range; + const outputRange = config.output; + const inputRange = config.range || [0, 1]; + const extrapolateLeft = config.extrapolateLeft || config.extrapolate || "extend"; + const extrapolateRight = config.extrapolateRight || config.extrapolate || "extend"; + const easing = config.easing || ((t) => t); + return (input) => { + const range2 = findRange(input, inputRange); + return interpolate( + input, + inputRange[range2], + inputRange[range2 + 1], + outputRange[range2], + outputRange[range2 + 1], + easing, + extrapolateLeft, + extrapolateRight, + config.map + ); }; - const icon = value ? icons[value] : icons.left; - const allControls = [{ - name: 'left', - icon: justify_left, - title: (0,external_wp_i18n_namespaceObject.__)('Justify items left'), - isActive: 'left' === value, - onClick: () => handleClick('left') - }, { - name: 'center', - icon: justify_center, - title: (0,external_wp_i18n_namespaceObject.__)('Justify items center'), - isActive: 'center' === value, - onClick: () => handleClick('center') - }, { - name: 'right', - icon: justify_right, - title: (0,external_wp_i18n_namespaceObject.__)('Justify items right'), - isActive: 'right' === value, - onClick: () => handleClick('right') - }, { - name: 'space-between', - icon: justify_space_between, - title: (0,external_wp_i18n_namespaceObject.__)('Space between items'), - isActive: 'space-between' === value, - onClick: () => handleClick('space-between') - }, { - name: 'stretch', - icon: justify_stretch, - title: (0,external_wp_i18n_namespaceObject.__)('Stretch items'), - isActive: 'stretch' === value, - onClick: () => handleClick('stretch') - }]; - const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; - const extraProps = isToolbar ? { - isCollapsed - } : {}; - return (0,external_React_.createElement)(UIComponent, { - icon: icon, - popoverProps: popoverProps, - label: (0,external_wp_i18n_namespaceObject.__)('Change items justification'), - controls: allControls.filter(elem => allowedControls.includes(elem.name)), - ...extraProps - }); +}; +function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) { + let result = map ? map(input) : input; + if (result < inputMin) { + if (extrapolateLeft === "identity") + return result; + else if (extrapolateLeft === "clamp") + result = inputMin; + } + if (result > inputMax) { + if (extrapolateRight === "identity") + return result; + else if (extrapolateRight === "clamp") + result = inputMax; + } + if (outputMin === outputMax) + return outputMin; + if (inputMin === inputMax) + return input <= inputMin ? outputMin : outputMax; + if (inputMin === -Infinity) + result = -result; + else if (inputMax === Infinity) + result = result - inputMin; + else + result = (result - inputMin) / (inputMax - inputMin); + result = easing(result); + if (outputMin === -Infinity) + result = -result; + else if (outputMax === Infinity) + result = result + outputMin; + else + result = result * (outputMax - outputMin) + outputMin; + return result; +} +function findRange(input, inputRange) { + for (var i = 1; i < inputRange.length - 1; ++i) + if (inputRange[i] >= input) + break; + return i - 1; } -/* harmony default export */ var justify_content_control_ui = (JustifyContentUI); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/justify-content-control/index.js - -/** - * Internal dependencies - */ -const JustifyContentControl = props => { - return (0,external_React_.createElement)(justify_content_control_ui, { - ...props, - isToolbar: false - }); +// src/easings.ts +var steps = (steps2, direction = "end") => (progress2) => { + progress2 = direction === "end" ? Math.min(progress2, 0.999) : Math.max(progress2, 1e-3); + const expanded = progress2 * steps2; + const rounded = direction === "end" ? Math.floor(expanded) : Math.ceil(expanded); + return clamp(0, 1, rounded / steps2); }; -const JustifyToolbar = props => { - return (0,external_React_.createElement)(justify_content_control_ui, { - ...props, - isToolbar: true - }); +var c1 = 1.70158; +var c2 = c1 * 1.525; +var c3 = c1 + 1; +var c4 = 2 * Math.PI / 3; +var c5 = 2 * Math.PI / 4.5; +var bounceOut = (x) => { + const n1 = 7.5625; + const d1 = 2.75; + if (x < 1 / d1) { + return n1 * x * x; + } else if (x < 2 / d1) { + return n1 * (x -= 1.5 / d1) * x + 0.75; + } else if (x < 2.5 / d1) { + return n1 * (x -= 2.25 / d1) * x + 0.9375; + } else { + return n1 * (x -= 2.625 / d1) * x + 0.984375; + } }; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/justify-content-control/README.md - */ - - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flex.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - - -// Used with the default, horizontal flex orientation. -const justifyContentMap = { - left: 'flex-start', - right: 'flex-end', - center: 'center', - 'space-between': 'space-between' +var easings = { + linear: (x) => x, + easeInQuad: (x) => x * x, + easeOutQuad: (x) => 1 - (1 - x) * (1 - x), + easeInOutQuad: (x) => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2, + easeInCubic: (x) => x * x * x, + easeOutCubic: (x) => 1 - Math.pow(1 - x, 3), + easeInOutCubic: (x) => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2, + easeInQuart: (x) => x * x * x * x, + easeOutQuart: (x) => 1 - Math.pow(1 - x, 4), + easeInOutQuart: (x) => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2, + easeInQuint: (x) => x * x * x * x * x, + easeOutQuint: (x) => 1 - Math.pow(1 - x, 5), + easeInOutQuint: (x) => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2, + easeInSine: (x) => 1 - Math.cos(x * Math.PI / 2), + easeOutSine: (x) => Math.sin(x * Math.PI / 2), + easeInOutSine: (x) => -(Math.cos(Math.PI * x) - 1) / 2, + easeInExpo: (x) => x === 0 ? 0 : Math.pow(2, 10 * x - 10), + easeOutExpo: (x) => x === 1 ? 1 : 1 - Math.pow(2, -10 * x), + easeInOutExpo: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2, + easeInCirc: (x) => 1 - Math.sqrt(1 - Math.pow(x, 2)), + easeOutCirc: (x) => Math.sqrt(1 - Math.pow(x - 1, 2)), + easeInOutCirc: (x) => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2, + easeInBack: (x) => c3 * x * x * x - c1 * x * x, + easeOutBack: (x) => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2), + easeInOutBack: (x) => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2, + easeInElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4), + easeOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1, + easeInOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1, + easeInBounce: (x) => 1 - bounceOut(1 - x), + easeOutBounce: bounceOut, + easeInOutBounce: (x) => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2, + steps }; -// Used with the vertical (column) flex orientation. -const alignItemsMap = { - left: 'flex-start', - right: 'flex-end', - center: 'center', - stretch: 'stretch' -}; -const verticalAlignmentMap = { - top: 'flex-start', - center: 'center', - bottom: 'flex-end', - stretch: 'stretch', - 'space-between': 'space-between' -}; -const flexWrapOptions = ['wrap', 'nowrap']; -/* harmony default export */ var flex = ({ - name: 'flex', - label: (0,external_wp_i18n_namespaceObject.__)('Flex'), - inspectorControls: function FlexLayoutInspectorControls({ - layout = {}, - onChange, - layoutBlockSupport = {} - }) { - const { - allowOrientation = true - } = layoutBlockSupport; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(FlexLayoutJustifyContentControl, { - layout: layout, - onChange: onChange - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, allowOrientation && (0,external_React_.createElement)(OrientationControl, { - layout: layout, - onChange: onChange - }))), (0,external_React_.createElement)(FlexWrapControl, { - layout: layout, - onChange: onChange - })); - }, - toolBarControls: function FlexLayoutToolbarControls({ - layout = {}, - onChange, - layoutBlockSupport - }) { - if (layoutBlockSupport?.allowSwitching) { - return null; +// src/fluids.ts +var $get = Symbol.for("FluidValue.get"); +var $observers = Symbol.for("FluidValue.observers"); +var hasFluidValue = (arg) => Boolean(arg && arg[$get]); +var getFluidValue = (arg) => arg && arg[$get] ? arg[$get]() : arg; +var getFluidObservers = (target) => target[$observers] || null; +function callFluidObserver(observer2, event) { + if (observer2.eventObserved) { + observer2.eventObserved(event); + } else { + observer2(event); + } +} +function callFluidObservers(target, event) { + const observers = target[$observers]; + if (observers) { + observers.forEach((observer2) => { + callFluidObserver(observer2, event); + }); + } +} +var FluidValue = class { + constructor(get) { + if (!get && !(get = this.get)) { + throw Error("Unknown getter"); } - const { - allowVerticalAlignment = true - } = layoutBlockSupport; - return (0,external_React_.createElement)(block_controls, { - group: "block", - __experimentalShareWithChildBlocks: true - }, (0,external_React_.createElement)(FlexLayoutJustifyContentControl, { - layout: layout, - onChange: onChange, - isToolbar: true - }), allowVerticalAlignment && (0,external_React_.createElement)(FlexLayoutVerticalAlignmentControl, { - layout: layout, - onChange: onChange, - isToolbar: true - })); - }, - getLayoutStyle: function getLayoutStyle({ - selector, - layout, - style, - blockName, - hasBlockGapSupport, - layoutDefinitions = LAYOUT_DEFINITIONS - }) { - const { - orientation = 'horizontal' - } = layout; - - // If a block's block.json skips serialization for spacing or spacing.blockGap, - // don't apply the user-defined value to the styles. - const blockGapValue = style?.spacing?.blockGap && !shouldSkipSerialization(blockName, 'spacing', 'blockGap') ? getGapCSSValue(style?.spacing?.blockGap, '0.5em') : undefined; - const justifyContent = justifyContentMap[layout.justifyContent]; - const flexWrap = flexWrapOptions.includes(layout.flexWrap) ? layout.flexWrap : 'wrap'; - const verticalAlignment = verticalAlignmentMap[layout.verticalAlignment]; - const alignItems = alignItemsMap[layout.justifyContent] || alignItemsMap.left; - let output = ''; - const rules = []; - if (flexWrap && flexWrap !== 'wrap') { - rules.push(`flex-wrap: ${flexWrap}`); + setFluidGetter(this, get); + } +}; +$get, $observers; +var setFluidGetter = (target, get) => setHidden(target, $get, get); +function addFluidObserver(target, observer2) { + if (target[$get]) { + let observers = target[$observers]; + if (!observers) { + setHidden(target, $observers, observers = /* @__PURE__ */ new Set()); } - if (orientation === 'horizontal') { - if (verticalAlignment) { - rules.push(`align-items: ${verticalAlignment}`); - } - if (justifyContent) { - rules.push(`justify-content: ${justifyContent}`); + if (!observers.has(observer2)) { + observers.add(observer2); + if (target.observerAdded) { + target.observerAdded(observers.size, observer2); } + } + } + return observer2; +} +function removeFluidObserver(target, observer2) { + const observers = target[$observers]; + if (observers && observers.has(observer2)) { + const count = observers.size - 1; + if (count) { + observers.delete(observer2); } else { - if (verticalAlignment) { - rules.push(`justify-content: ${verticalAlignment}`); - } - rules.push('flex-direction: column'); - rules.push(`align-items: ${alignItems}`); + target[$observers] = null; } - if (rules.length) { - output = `${appendSelectors(selector)} { - ${rules.join('; ')}; - }`; + if (target.observerRemoved) { + target.observerRemoved(count, observer2); } + } +} +var setHidden = (target, key, value) => Object.defineProperty(target, key, { + value, + writable: true, + configurable: true +}); - // Output blockGap styles based on rules contained in layout definitions in theme.json. - if (hasBlockGapSupport && blockGapValue) { - output += getBlockGapCSS(selector, layoutDefinitions, 'flex', blockGapValue); +// src/regexs.ts +var numberRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; +var colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; +var unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, "i"); +var rgbaRegex = /rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi; +var cssVariableRegex = /var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/; + +// src/variableToRgba.ts +var variableToRgba = (input) => { + const [token, fallback] = parseCSSVariable(input); + if (!token || isSSR()) { + return input; + } + const value = window.getComputedStyle(document.documentElement).getPropertyValue(token); + if (value) { + return value.trim(); + } else if (fallback && fallback.startsWith("--")) { + const value2 = window.getComputedStyle(document.documentElement).getPropertyValue(fallback); + if (value2) { + return value2; + } else { + return input; } - return output; - }, - getOrientation(layout) { - const { - orientation = 'horizontal' - } = layout; - return orientation; - }, - getAlignments() { - return []; + } else if (fallback && cssVariableRegex.test(fallback)) { + return variableToRgba(fallback); + } else if (fallback) { + return fallback; } -}); -function FlexLayoutVerticalAlignmentControl({ - layout, - onChange, - isToolbar = false -}) { - const { - orientation = 'horizontal' - } = layout; - const defaultVerticalAlignment = orientation === 'horizontal' ? verticalAlignmentMap.center : verticalAlignmentMap.top; - const { - verticalAlignment = defaultVerticalAlignment - } = layout; - const onVerticalAlignmentChange = value => { - onChange({ - ...layout, - verticalAlignment: value - }); + return input; +}; +var parseCSSVariable = (current) => { + const match = cssVariableRegex.exec(current); + if (!match) + return [,]; + const [, token, fallback] = match; + return [token, fallback]; +}; + +// src/stringInterpolation.ts +var namedColorRegex; +var rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`; +var createStringInterpolator2 = (config) => { + if (!namedColorRegex) + namedColorRegex = colors ? ( + // match color names, ignore partial matches + new RegExp(`(${Object.keys(colors).join("|")})(?!\\w)`, "g") + ) : ( + // never match + /^\b$/ + ); + const output = config.output.map((value) => { + return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba); + }); + const keyframes = output.map((value) => value.match(numberRegex).map(Number)); + const outputRanges = keyframes[0].map( + (_, i) => keyframes.map((values) => { + if (!(i in values)) { + throw Error('The arity of each "output" value must be equal'); + } + return values[i]; + }) + ); + const interpolators = outputRanges.map( + (output2) => createInterpolator({ ...config, output: output2 }) + ); + return (input) => { + const missingUnit = !unitRegex.test(output[0]) && output.find((value) => unitRegex.test(value))?.replace(numberRegex, ""); + let i = 0; + return output[0].replace( + numberRegex, + () => `${interpolators[i++](input)}${missingUnit || ""}` + ).replace(rgbaRegex, rgbaRound); }; - if (isToolbar) { - return (0,external_React_.createElement)(BlockVerticalAlignmentControl, { - onChange: onVerticalAlignmentChange, - value: verticalAlignment, - controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between'] - }); +}; + +// src/deprecations.ts +var react_spring_shared_modern_prefix = "react-spring: "; +var once = (fn) => { + const func = fn; + let called = false; + if (typeof func != "function") { + throw new TypeError(`${react_spring_shared_modern_prefix}once requires a function parameter`); } - const verticalAlignmentOptions = [{ - value: 'flex-start', - label: (0,external_wp_i18n_namespaceObject.__)('Align items top') - }, { - value: 'center', - label: (0,external_wp_i18n_namespaceObject.__)('Align items center') - }, { - value: 'flex-end', - label: (0,external_wp_i18n_namespaceObject.__)('Align items bottom') - }]; - return (0,external_React_.createElement)("fieldset", { - className: "block-editor-hooks__flex-layout-vertical-alignment-control" - }, (0,external_React_.createElement)("legend", null, (0,external_wp_i18n_namespaceObject.__)('Vertical alignment')), (0,external_React_.createElement)("div", null, verticalAlignmentOptions.map((value, icon, label) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: value, - label: label, - icon: icon, - isPressed: verticalAlignment === value, - onClick: () => onVerticalAlignmentChange(value) - }); - }))); + return (...args) => { + if (!called) { + func(...args); + called = true; + } + }; +}; +var warnInterpolate = once(console.warn); +function deprecateInterpolate() { + warnInterpolate( + `${react_spring_shared_modern_prefix}The "interpolate" function is deprecated in v9 (use "to" instead)` + ); } -const POPOVER_PROPS = { - placement: 'bottom-start' +var warnDirectCall = once(console.warn); +function deprecateDirectCall() { + warnDirectCall( + `${react_spring_shared_modern_prefix}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions` + ); +} + +// src/isAnimatedString.ts +function isAnimatedString(value) { + return is.str(value) && (value[0] == "#" || /\d/.test(value) || // Do not identify a CSS variable as an AnimatedString if its SSR + !isSSR() && cssVariableRegex.test(value) || value in (colors || {})); +} + +// src/dom-events/resize/resizeElement.ts +var observer; +var resizeHandlers = /* @__PURE__ */ new WeakMap(); +var handleObservation = (entries) => entries.forEach(({ target, contentRect }) => { + return resizeHandlers.get(target)?.forEach((handler) => handler(contentRect)); +}); +function resizeElement(handler, target) { + if (!observer) { + if (typeof ResizeObserver !== "undefined") { + observer = new ResizeObserver(handleObservation); + } + } + let elementHandlers = resizeHandlers.get(target); + if (!elementHandlers) { + elementHandlers = /* @__PURE__ */ new Set(); + resizeHandlers.set(target, elementHandlers); + } + elementHandlers.add(handler); + if (observer) { + observer.observe(target); + } + return () => { + const elementHandlers2 = resizeHandlers.get(target); + if (!elementHandlers2) + return; + elementHandlers2.delete(handler); + if (!elementHandlers2.size && observer) { + observer.unobserve(target); + } + }; +} + +// src/dom-events/resize/resizeWindow.ts +var listeners = /* @__PURE__ */ new Set(); +var cleanupWindowResizeHandler; +var createResizeHandler = () => { + const handleResize = () => { + listeners.forEach( + (callback) => callback({ + width: window.innerWidth, + height: window.innerHeight + }) + ); + }; + window.addEventListener("resize", handleResize); + return () => { + window.removeEventListener("resize", handleResize); + }; }; -function FlexLayoutJustifyContentControl({ - layout, - onChange, - isToolbar = false -}) { - const { - justifyContent = 'left', - orientation = 'horizontal' - } = layout; - const onJustificationChange = value => { - onChange({ - ...layout, - justifyContent: value - }); +var resizeWindow = (callback) => { + listeners.add(callback); + if (!cleanupWindowResizeHandler) { + cleanupWindowResizeHandler = createResizeHandler(); + } + return () => { + listeners.delete(callback); + if (!listeners.size && cleanupWindowResizeHandler) { + cleanupWindowResizeHandler(); + cleanupWindowResizeHandler = void 0; + } }; - const allowedControls = ['left', 'center', 'right']; - if (orientation === 'horizontal') { - allowedControls.push('space-between'); +}; + +// src/dom-events/resize/index.ts +var react_spring_shared_modern_onResize = (callback, { container = document.documentElement } = {}) => { + if (container === document.documentElement) { + return resizeWindow(callback); } else { - allowedControls.push('stretch'); + return resizeElement(callback, container); } - if (isToolbar) { - return (0,external_React_.createElement)(JustifyContentControl, { - allowedControls: allowedControls, - value: justifyContent, - onChange: onJustificationChange, - popoverProps: POPOVER_PROPS - }); +}; + +// src/progress.ts +var progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min); + +// src/dom-events/scroll/ScrollHandler.ts +var SCROLL_KEYS = { + x: { + length: "Width", + position: "Left" + }, + y: { + length: "Height", + position: "Top" } - const justificationOptions = [{ - value: 'left', - icon: justify_left, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items left') - }, { - value: 'center', - icon: justify_center, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items center') - }, { - value: 'right', - icon: justify_right, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items right') - }]; - if (orientation === 'horizontal') { - justificationOptions.push({ - value: 'space-between', - icon: justify_space_between, - label: (0,external_wp_i18n_namespaceObject.__)('Space between items') - }); - } else { - justificationOptions.push({ - value: 'stretch', - icon: justify_stretch, - label: (0,external_wp_i18n_namespaceObject.__)('Stretch items') +}; +var ScrollHandler = class { + constructor(callback, container) { + this.createAxis = () => ({ + current: 0, + progress: 0, + scrollLength: 0 }); + this.updateAxis = (axisName) => { + const axis = this.info[axisName]; + const { length, position } = SCROLL_KEYS[axisName]; + axis.current = this.container[`scroll${position}`]; + axis.scrollLength = this.container["scroll" + length] - this.container["client" + length]; + axis.progress = progress(0, axis.scrollLength, axis.current); + }; + this.update = () => { + this.updateAxis("x"); + this.updateAxis("y"); + }; + this.sendEvent = () => { + this.callback(this.info); + }; + this.advance = () => { + this.update(); + this.sendEvent(); + }; + this.callback = callback; + this.container = container; + this.info = { + time: 0, + x: this.createAxis(), + y: this.createAxis() + }; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Justification'), - value: justifyContent, - onChange: onJustificationChange, - className: "block-editor-hooks__flex-layout-justification-controls" - }, justificationOptions.map(({ - value, - icon, - label - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { - key: value, - value: value, - icon: icon, - label: label - }); - })); -} -function FlexWrapControl({ - layout, - onChange -}) { - const { - flexWrap = 'wrap' - } = layout; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Allow to wrap to multiple lines'), - onChange: value => { - onChange({ - ...layout, - flexWrap: value ? 'wrap' : 'nowrap' - }); - }, - checked: flexWrap === 'wrap' - }); -} -function OrientationControl({ - layout, - onChange -}) { - const { - orientation = 'horizontal', - verticalAlignment, - justifyContent - } = layout; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-hooks__flex-layout-orientation-controls", - label: (0,external_wp_i18n_namespaceObject.__)('Orientation'), - value: orientation, - onChange: value => { - // Make sure the vertical alignment and justification are compatible with the new orientation. - let newVerticalAlignment = verticalAlignment; - let newJustification = justifyContent; - if (value === 'horizontal') { - if (verticalAlignment === 'space-between') { - newVerticalAlignment = 'center'; - } - if (justifyContent === 'stretch') { - newJustification = 'left'; - } - } else { - if (verticalAlignment === 'stretch') { - newVerticalAlignment = 'top'; - } - if (justifyContent === 'space-between') { - newJustification = 'left'; - } - } - return onChange({ - ...layout, - orientation: value, - verticalAlignment: newVerticalAlignment, - justifyContent: newJustification - }); +}; + +// src/dom-events/scroll/index.ts +var scrollListeners = /* @__PURE__ */ new WeakMap(); +var resizeListeners = /* @__PURE__ */ new WeakMap(); +var onScrollHandlers = /* @__PURE__ */ new WeakMap(); +var getTarget = (container) => container === document.documentElement ? window : container; +var react_spring_shared_modern_onScroll = (callback, { container = document.documentElement } = {}) => { + let containerHandlers = onScrollHandlers.get(container); + if (!containerHandlers) { + containerHandlers = /* @__PURE__ */ new Set(); + onScrollHandlers.set(container, containerHandlers); + } + const containerHandler = new ScrollHandler(callback, container); + containerHandlers.add(containerHandler); + if (!scrollListeners.has(container)) { + const listener = () => { + containerHandlers?.forEach((handler) => handler.advance()); + return true; + }; + scrollListeners.set(container, listener); + const target = getTarget(container); + window.addEventListener("resize", listener, { passive: true }); + if (container !== document.documentElement) { + resizeListeners.set(container, react_spring_shared_modern_onResize(listener, { container })); } - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { - icon: arrow_right, - value: 'horizontal', - label: (0,external_wp_i18n_namespaceObject.__)('Horizontal') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { - icon: arrow_down, - value: 'vertical', - label: (0,external_wp_i18n_namespaceObject.__)('Vertical') - })); + target.addEventListener("scroll", listener, { passive: true }); + } + const animateScroll = scrollListeners.get(container); + raf(animateScroll); + return () => { + raf.cancel(animateScroll); + const containerHandlers2 = onScrollHandlers.get(container); + if (!containerHandlers2) + return; + containerHandlers2.delete(containerHandler); + if (containerHandlers2.size) + return; + const listener = scrollListeners.get(container); + scrollListeners.delete(container); + if (listener) { + getTarget(container).removeEventListener("scroll", listener); + window.removeEventListener("resize", listener); + resizeListeners.get(container)?.(); + } + }; +}; + +// src/hooks/useConstant.ts + +function react_spring_shared_modern_useConstant(init) { + const ref = useRef(null); + if (ref.current === null) { + ref.current = init(); + } + return ref.current; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flow.js -/** - * WordPress dependencies - */ +// src/hooks/useForceUpdate.ts -/** - * Internal dependencies - */ +// src/hooks/useIsMounted.ts +// src/hooks/useIsomorphicLayoutEffect.ts +var react_spring_shared_modern_useIsomorphicLayoutEffect = isSSR() ? external_React_.useEffect : external_React_.useLayoutEffect; -/* harmony default export */ var flow = ({ - name: 'default', - label: (0,external_wp_i18n_namespaceObject.__)('Flow'), - inspectorControls: function DefaultLayoutInspectorControls() { - return null; - }, - toolBarControls: function DefaultLayoutToolbarControls() { - return null; - }, - getLayoutStyle: function getLayoutStyle({ - selector, - style, - blockName, - hasBlockGapSupport, - layoutDefinitions = LAYOUT_DEFINITIONS - }) { - const blockGapStyleValue = getGapCSSValue(style?.spacing?.blockGap); +// src/hooks/useIsMounted.ts +var useIsMounted = () => { + const isMounted = (0,external_React_.useRef)(false); + react_spring_shared_modern_useIsomorphicLayoutEffect(() => { + isMounted.current = true; + return () => { + isMounted.current = false; + }; + }, []); + return isMounted; +}; - // If a block's block.json skips serialization for spacing or - // spacing.blockGap, don't apply the user-defined value to the styles. - let blockGapValue = ''; - if (!shouldSkipSerialization(blockName, 'spacing', 'blockGap')) { - // If an object is provided only use the 'top' value for this kind of gap. - if (blockGapStyleValue?.top) { - blockGapValue = getGapCSSValue(blockGapStyleValue?.top); - } else if (typeof blockGapStyleValue === 'string') { - blockGapValue = getGapCSSValue(blockGapStyleValue); - } +// src/hooks/useForceUpdate.ts +function useForceUpdate() { + const update2 = (0,external_React_.useState)()[1]; + const isMounted = useIsMounted(); + return () => { + if (isMounted.current) { + update2(Math.random()); } - let output = ''; + }; +} - // Output blockGap styles based on rules contained in layout definitions in theme.json. - if (hasBlockGapSupport && blockGapValue) { - output += getBlockGapCSS(selector, layoutDefinitions, 'default', blockGapValue); +// src/hooks/useMemoOne.ts + +function useMemoOne(getResult, inputs) { + const [initial] = (0,external_React_.useState)( + () => ({ + inputs, + result: getResult() + }) + ); + const committed = (0,external_React_.useRef)(); + const prevCache = committed.current; + let cache = prevCache; + if (cache) { + const useCache = Boolean( + inputs && cache.inputs && areInputsEqual(inputs, cache.inputs) + ); + if (!useCache) { + cache = { + inputs, + result: getResult() + }; } - return output; - }, - getOrientation() { - return 'vertical'; - }, - getAlignments(layout, isBlockBasedTheme) { - const alignmentInfo = getAlignmentsInfo(layout); - if (layout.alignments !== undefined) { - if (!layout.alignments.includes('none')) { - layout.alignments.unshift('none'); - } - return layout.alignments.map(alignment => ({ - name: alignment, - info: alignmentInfo[alignment] - })); + } else { + cache = initial; + } + (0,external_React_.useEffect)(() => { + committed.current = cache; + if (prevCache == initial) { + initial.inputs = initial.result = void 0; } - const alignments = [{ - name: 'left' - }, { - name: 'center' - }, { - name: 'right' - }]; - - // This is for backwards compatibility with hybrid themes. - if (!isBlockBasedTheme) { - const { - contentSize, - wideSize - } = layout; - if (contentSize) { - alignments.unshift({ - name: 'full' - }); - } - if (wideSize) { - alignments.unshift({ - name: 'wide', - info: alignmentInfo.wide - }); - } + }, [cache]); + return cache.result; +} +function areInputsEqual(next, prev) { + if (next.length !== prev.length) { + return false; + } + for (let i = 0; i < next.length; i++) { + if (next[i] !== prev[i]) { + return false; } - alignments.unshift({ - name: 'none', - info: alignmentInfo.none - }); - return alignments; } -}); + return true; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js -/** - * WordPress dependencies - */ +// src/hooks/useOnce.ts +var useOnce = (effect) => (0,external_React_.useEffect)(effect, emptyDeps); +var emptyDeps = []; -/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */ +// src/hooks/usePrev.ts -/** - * Return an SVG icon. - * - * @param {IconProps} props icon is the SVG component to render - * size is a number specifiying the icon size in pixels - * Other props will be passed to wrapped SVG component - * @param {import('react').ForwardedRef} ref The forwarded ref to the SVG element. - * - * @return {JSX.Element} Icon component - */ -function Icon({ - icon, - size = 24, - ...props -}, ref) { - return (0,external_wp_element_namespaceObject.cloneElement)(icon, { - width: size, - height: size, - ...props, - ref +function usePrev(value) { + const prevRef = (0,external_React_.useRef)(); + (0,external_React_.useEffect)(() => { + prevRef.current = value; }); + return prevRef.current; } -/* harmony default export */ var build_module_icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-center.js - -/** - * WordPress dependencies - */ - -const positionCenter = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z" -})); -/* harmony default export */ var position_center = (positionCenter); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-wide.js -/** - * WordPress dependencies - */ +// src/hooks/useReducedMotion.ts -const stretchWide = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M16 5.5H8V4h8v1.5ZM16 20H8v-1.5h8V20ZM5 9h14v6H5V9Z" -})); -/* harmony default export */ var stretch_wide = (stretchWide); +var useReducedMotion = () => { + const [reducedMotion, setReducedMotion] = useState3(null); + react_spring_shared_modern_useIsomorphicLayoutEffect(() => { + const mql = window.matchMedia("(prefers-reduced-motion)"); + const handleMediaChange = (e) => { + setReducedMotion(e.matches); + react_spring_shared_modern_assign({ + skipAnimation: e.matches + }); + }; + handleMediaChange(mql); + mql.addEventListener("change", handleMediaChange); + return () => { + mql.removeEventListener("change", handleMediaChange); + }; + }, []); + return reducedMotion; +}; -;// CONCATENATED MODULE: external ["wp","styleEngine"] -var external_wp_styleEngine_namespaceObject = window["wp"]["styleEngine"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/constrained.js +;// CONCATENATED MODULE: ./node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs +// src/Animated.ts -/** - * WordPress dependencies - */ +var $node = Symbol.for("Animated:node"); +var isAnimated = (value) => !!value && value[$node] === value; +var getAnimated = (owner) => owner && owner[$node]; +var setAnimated = (owner, node) => defineHidden(owner, $node, node); +var getPayload = (owner) => owner && owner[$node] && owner[$node].getPayload(); +var Animated = class { + constructor() { + setAnimated(this, this); + } + /** Get every `AnimatedValue` used by this node. */ + getPayload() { + return this.payload || []; + } +}; +// src/AnimatedValue.ts +var AnimatedValue = class extends Animated { + constructor(_value) { + super(); + this._value = _value; + this.done = true; + this.durationProgress = 0; + if (is.num(this._value)) { + this.lastPosition = this._value; + } + } + /** @internal */ + static create(value) { + return new AnimatedValue(value); + } + getPayload() { + return [this]; + } + getValue() { + return this._value; + } + setValue(value, step) { + if (is.num(value)) { + this.lastPosition = value; + if (step) { + value = Math.round(value / step) * step; + if (this.done) { + this.lastPosition = value; + } + } + } + if (this._value === value) { + return false; + } + this._value = value; + return true; + } + reset() { + const { done } = this; + this.done = false; + if (is.num(this._value)) { + this.elapsedTime = 0; + this.durationProgress = 0; + this.lastPosition = this._value; + if (done) + this.lastVelocity = null; + this.v0 = null; + } + } +}; +// src/AnimatedString.ts +var AnimatedString = class extends AnimatedValue { + constructor(value) { + super(0); + this._string = null; + this._toString = createInterpolator({ + output: [value, value] + }); + } + /** @internal */ + static create(value) { + return new AnimatedString(value); + } + getValue() { + const value = this._string; + return value == null ? this._string = this._toString(this._value) : value; + } + setValue(value) { + if (is.str(value)) { + if (value == this._string) { + return false; + } + this._string = value; + this._value = 1; + } else if (super.setValue(value)) { + this._string = null; + } else { + return false; + } + return true; + } + reset(goal) { + if (goal) { + this._toString = createInterpolator({ + output: [this.getValue(), goal] + }); + } + this._value = 0; + super.reset(); + } +}; -/** - * Internal dependencies - */ +// src/AnimatedArray.ts +// src/AnimatedObject.ts +// src/context.ts +var TreeContext = { dependencies: null }; -/* harmony default export */ var constrained = ({ - name: 'constrained', - label: (0,external_wp_i18n_namespaceObject.__)('Constrained'), - inspectorControls: function DefaultLayoutInspectorControls({ - layout, - onChange, - layoutBlockSupport = {} - }) { - const { - wideSize, - contentSize, - justifyContent = 'center' - } = layout; - const { - allowJustification = true, - allowCustomContentAndWideSize = true - } = layoutBlockSupport; - const onJustificationChange = value => { - onChange({ - ...layout, - justifyContent: value - }); - }; - const justificationOptions = [{ - value: 'left', - icon: justify_left, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items left') - }, { - value: 'center', - icon: justify_center, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items center') - }, { - value: 'right', - icon: justify_right, - label: (0,external_wp_i18n_namespaceObject.__)('Justify items right') - }]; - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw'] - }); - return (0,external_React_.createElement)(external_React_.Fragment, null, allowCustomContentAndWideSize && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - className: "block-editor-hooks__layout-controls" - }, (0,external_React_.createElement)("div", { - className: "block-editor-hooks__layout-controls-unit" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - className: "block-editor-hooks__layout-controls-unit-input", - label: (0,external_wp_i18n_namespaceObject.__)('Content'), - labelPosition: "top", - __unstableInputWidth: "80px", - value: contentSize || wideSize || '', - onChange: nextWidth => { - nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth; - onChange({ - ...layout, - contentSize: nextWidth - }); - }, - units: units - }), (0,external_React_.createElement)(build_module_icon, { - icon: position_center - })), (0,external_React_.createElement)("div", { - className: "block-editor-hooks__layout-controls-unit" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - className: "block-editor-hooks__layout-controls-unit-input", - label: (0,external_wp_i18n_namespaceObject.__)('Wide'), - labelPosition: "top", - __unstableInputWidth: "80px", - value: wideSize || contentSize || '', - onChange: nextWidth => { - nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth; - onChange({ - ...layout, - wideSize: nextWidth - }); - }, - units: units - }), (0,external_React_.createElement)(build_module_icon, { - icon: stretch_wide - }))), (0,external_React_.createElement)("p", { - className: "block-editor-hooks__layout-controls-helptext" - }, (0,external_wp_i18n_namespaceObject.__)('Customize the width for all elements that are assigned to the center or wide columns.'))), allowJustification && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Justification'), - value: justifyContent, - onChange: onJustificationChange - }, justificationOptions.map(({ - value, - icon, - label - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { - key: value, - value: value, - icon: icon, - label: label - }); - }))); - }, - toolBarControls: function DefaultLayoutToolbarControls() { - return null; - }, - getLayoutStyle: function getLayoutStyle({ - selector, - layout = {}, - style, - blockName, - hasBlockGapSupport, - layoutDefinitions = LAYOUT_DEFINITIONS - }) { - const { - contentSize, - wideSize, - justifyContent - } = layout; - const blockGapStyleValue = getGapCSSValue(style?.spacing?.blockGap); - - // If a block's block.json skips serialization for spacing or - // spacing.blockGap, don't apply the user-defined value to the styles. - let blockGapValue = ''; - if (!shouldSkipSerialization(blockName, 'spacing', 'blockGap')) { - // If an object is provided only use the 'top' value for this kind of gap. - if (blockGapStyleValue?.top) { - blockGapValue = getGapCSSValue(blockGapStyleValue?.top); - } else if (typeof blockGapStyleValue === 'string') { - blockGapValue = getGapCSSValue(blockGapStyleValue); +// src/AnimatedObject.ts +var AnimatedObject = class extends Animated { + constructor(source) { + super(); + this.source = source; + this.setValue(source); + } + getValue(animated) { + const values = {}; + eachProp(this.source, (source, key) => { + if (isAnimated(source)) { + values[key] = source.getValue(animated); + } else if (hasFluidValue(source)) { + values[key] = getFluidValue(source); + } else if (!animated) { + values[key] = source; } + }); + return values; + } + /** Replace the raw object data */ + setValue(source) { + this.source = source; + this.payload = this._makePayload(source); + } + reset() { + if (this.payload) { + react_spring_shared_modern_each(this.payload, (node) => node.reset()); } - const marginLeft = justifyContent === 'left' ? '0 !important' : 'auto !important'; - const marginRight = justifyContent === 'right' ? '0 !important' : 'auto !important'; - let output = !!contentSize || !!wideSize ? ` - ${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} { - max-width: ${contentSize !== null && contentSize !== void 0 ? contentSize : wideSize}; - margin-left: ${marginLeft}; - margin-right: ${marginRight}; - } - ${appendSelectors(selector, '> .alignwide')} { - max-width: ${wideSize !== null && wideSize !== void 0 ? wideSize : contentSize}; - } - ${appendSelectors(selector, '> .alignfull')} { - max-width: none; - } - ` : ''; - if (justifyContent === 'left') { - output += `${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} - { margin-left: ${marginLeft}; }`; - } else if (justifyContent === 'right') { - output += `${appendSelectors(selector, '> :where(:not(.alignleft):not(.alignright):not(.alignfull))')} - { margin-right: ${marginRight}; }`; - } - - // If there is custom padding, add negative margins for alignfull blocks. - if (style?.spacing?.padding) { - // The style object might be storing a preset so we need to make sure we get a usable value. - const paddingValues = (0,external_wp_styleEngine_namespaceObject.getCSSRules)(style); - paddingValues.forEach(rule => { - if (rule.key === 'paddingRight') { - output += ` - ${appendSelectors(selector, '> .alignfull')} { - margin-right: calc(${rule.value} * -1); - } - `; - } else if (rule.key === 'paddingLeft') { - output += ` - ${appendSelectors(selector, '> .alignfull')} { - margin-left: calc(${rule.value} * -1); - } - `; - } - }); - } - - // Output blockGap styles based on rules contained in layout definitions in theme.json. - if (hasBlockGapSupport && blockGapValue) { - output += getBlockGapCSS(selector, layoutDefinitions, 'constrained', blockGapValue); - } - return output; - }, - getOrientation() { - return 'vertical'; - }, - getAlignments(layout) { - const alignmentInfo = getAlignmentsInfo(layout); - if (layout.alignments !== undefined) { - if (!layout.alignments.includes('none')) { - layout.alignments.unshift('none'); - } - return layout.alignments.map(alignment => ({ - name: alignment, - info: alignmentInfo[alignment] - })); + } + /** Create a payload set. */ + _makePayload(source) { + if (source) { + const payload = /* @__PURE__ */ new Set(); + eachProp(source, this._addToPayload, payload); + return Array.from(payload); } - const { - contentSize, - wideSize - } = layout; - const alignments = [{ - name: 'left' - }, { - name: 'center' - }, { - name: 'right' - }]; - if (contentSize) { - alignments.unshift({ - name: 'full' - }); + } + /** Add to a payload set. */ + _addToPayload(source) { + if (TreeContext.dependencies && hasFluidValue(source)) { + TreeContext.dependencies.add(source); } - if (wideSize) { - alignments.unshift({ - name: 'wide', - info: alignmentInfo.wide - }); + const payload = getPayload(source); + if (payload) { + react_spring_shared_modern_each(payload, (node) => this.add(node)); } - alignments.unshift({ - name: 'none', - info: alignmentInfo.none - }); - return alignments; } -}); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/grid.js +// src/AnimatedArray.ts +var AnimatedArray = class extends AnimatedObject { + constructor(source) { + super(source); + } + /** @internal */ + static create(source) { + return new AnimatedArray(source); + } + getValue() { + return this.source.map((node) => node.getValue()); + } + setValue(source) { + const payload = this.getPayload(); + if (source.length == payload.length) { + return payload.map((node, i) => node.setValue(source[i])).some(Boolean); + } + super.setValue(source.map(makeAnimated)); + return true; + } +}; +function makeAnimated(value) { + const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue; + return nodeType.create(value); +} -/** - * WordPress dependencies - */ +// src/getAnimatedType.ts +function getAnimatedType(value) { + const parentNode = getAnimated(value); + return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue; +} +// src/createHost.ts -/** - * Internal dependencies - */ +// src/withAnimated.tsx -const RANGE_CONTROL_MAX_VALUES = { - px: 600, - '%': 100, - vw: 100, - vh: 100, - em: 38, - rem: 38, - svw: 100, - lvw: 100, - dvw: 100, - svh: 100, - lvh: 100, - dvh: 100, - vi: 100, - svi: 100, - lvi: 100, - dvi: 100, - vb: 100, - svb: 100, - lvb: 100, - dvb: 100, - vmin: 100, - svmin: 100, - lvmin: 100, - dvmin: 100, - vmax: 100, - svmax: 100, - lvmax: 100, - dvmax: 100 -}; -/* harmony default export */ var grid = ({ - name: 'grid', - label: (0,external_wp_i18n_namespaceObject.__)('Grid'), - inspectorControls: function GridLayoutInspectorControls({ - layout = {}, - onChange - }) { - return layout?.columnCount ? (0,external_React_.createElement)(GridLayoutColumnsControl, { - layout: layout, - onChange: onChange - }) : (0,external_React_.createElement)(GridLayoutMinimumWidthControl, { - layout: layout, - onChange: onChange +var withAnimated = (Component, host) => { + const hasInstance = ( + // Function components must use "forwardRef" to avoid being + // re-rendered on every animation frame. + !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent + ); + return (0,external_React_.forwardRef)((givenProps, givenRef) => { + const instanceRef = (0,external_React_.useRef)(null); + const ref = hasInstance && // eslint-disable-next-line react-hooks/rules-of-hooks + (0,external_React_.useCallback)( + (value) => { + instanceRef.current = updateRef(givenRef, value); + }, + [givenRef] + ); + const [props, deps] = getAnimatedState(givenProps, host); + const forceUpdate = useForceUpdate(); + const callback = () => { + const instance = instanceRef.current; + if (hasInstance && !instance) { + return; + } + const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false; + if (didUpdate === false) { + forceUpdate(); + } + }; + const observer = new PropsObserver(callback, deps); + const observerRef = (0,external_React_.useRef)(); + react_spring_shared_modern_useIsomorphicLayoutEffect(() => { + observerRef.current = observer; + react_spring_shared_modern_each(deps, (dep) => addFluidObserver(dep, observer)); + return () => { + if (observerRef.current) { + react_spring_shared_modern_each( + observerRef.current.deps, + (dep) => removeFluidObserver(dep, observerRef.current) + ); + raf.cancel(observerRef.current.update); + } + }; }); - }, - toolBarControls: function DefaultLayoutToolbarControls() { - return null; - }, - getLayoutStyle: function getLayoutStyle({ - selector, - layout, - style, - blockName, - hasBlockGapSupport, - layoutDefinitions = LAYOUT_DEFINITIONS - }) { - const { - minimumColumnWidth = '12rem', - columnCount = null - } = layout; - - // If a block's block.json skips serialization for spacing or spacing.blockGap, - // don't apply the user-defined value to the styles. - const blockGapValue = style?.spacing?.blockGap && !shouldSkipSerialization(blockName, 'spacing', 'blockGap') ? getGapCSSValue(style?.spacing?.blockGap, '0.5em') : undefined; - let output = ''; - const rules = []; - if (columnCount) { - rules.push(`grid-template-columns: repeat(${columnCount}, minmax(0, 1fr))`); - } else if (minimumColumnWidth) { - rules.push(`grid-template-columns: repeat(auto-fill, minmax(min(${minimumColumnWidth}, 100%), 1fr))`); - } - if (rules.length) { - // Reason to disable: the extra line breaks added by prettier mess with the unit tests. - // eslint-disable-next-line prettier/prettier - output = `${appendSelectors(selector)} { ${rules.join('; ')}; }`; - } - - // Output blockGap styles based on rules contained in layout definitions in theme.json. - if (hasBlockGapSupport && blockGapValue) { - output += getBlockGapCSS(selector, layoutDefinitions, 'grid', blockGapValue); + (0,external_React_.useEffect)(callback, []); + useOnce(() => () => { + const observer2 = observerRef.current; + react_spring_shared_modern_each(observer2.deps, (dep) => removeFluidObserver(dep, observer2)); + }); + const usedProps = host.getComponentProps(props.getValue()); + return /* @__PURE__ */ external_React_.createElement(Component, { ...usedProps, ref }); + }); +}; +var PropsObserver = class { + constructor(update, deps) { + this.update = update; + this.deps = deps; + } + eventObserved(event) { + if (event.type == "change") { + raf.write(this.update); } - return output; - }, - getOrientation() { - return 'horizontal'; - }, - getAlignments() { - return []; } -}); +}; +function getAnimatedState(props, host) { + const dependencies = /* @__PURE__ */ new Set(); + TreeContext.dependencies = dependencies; + if (props.style) + props = { + ...props, + style: host.createAnimatedStyle(props.style) + }; + props = new AnimatedObject(props); + TreeContext.dependencies = null; + return [props, dependencies]; +} +function updateRef(ref, value) { + if (ref) { + if (is.fun(ref)) + ref(value); + else + ref.current = value; + } + return value; +} -// Enables setting minimum width of grid items. -function GridLayoutMinimumWidthControl({ - layout, - onChange -}) { - const { - minimumColumnWidth: value = '12rem' - } = layout; - const [quantity, unit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); - const handleSliderChange = next => { - onChange({ - ...layout, - minimumColumnWidth: [next, unit].join('') - }); +// src/createHost.ts +var cacheKey = Symbol.for("AnimatedComponent"); +var createHost = (components, { + applyAnimatedValues = () => false, + createAnimatedStyle = (style) => new AnimatedObject(style), + getComponentProps = (props) => props +} = {}) => { + const hostConfig = { + applyAnimatedValues, + createAnimatedStyle, + getComponentProps }; - - // Mostly copied from HeightControl. - const handleUnitChange = newUnit => { - // Attempt to smooth over differences between currentUnit and newUnit. - // This should slightly improve the experience of switching between unit types. - let newValue; - if (['em', 'rem'].includes(newUnit) && unit === 'px') { - // Convert pixel value to an approximate of the new unit, assuming a root size of 16px. - newValue = (quantity / 16).toFixed(2) + newUnit; - } else if (['em', 'rem'].includes(unit) && newUnit === 'px') { - // Convert to pixel value assuming a root size of 16px. - newValue = Math.round(quantity * 16) + newUnit; - } else if (['vh', 'vw', '%', 'svw', 'lvw', 'dvw', 'svh', 'lvh', 'dvh', 'vi', 'svi', 'lvi', 'dvi', 'vb', 'svb', 'lvb', 'dvb', 'vmin', 'svmin', 'lvmin', 'dvmin', 'vmax', 'svmax', 'lvmax', 'dvmax'].includes(newUnit) && quantity > 100) { - // When converting to `%` or viewport-relative units, cap the new value at 100. - newValue = 100 + newUnit; + const animated = (Component) => { + const displayName = getDisplayName(Component) || "Anonymous"; + if (is.str(Component)) { + Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig)); + } else { + Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig)); } - onChange({ - ...layout, - minimumColumnWidth: newValue - }); + Component.displayName = `Animated(${displayName})`; + return Component; }; - return (0,external_React_.createElement)("fieldset", null, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Minimum column width')), (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - gap: 4 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - isBlock: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - size: '__unstable-large', - onChange: newValue => { - onChange({ - ...layout, - minimumColumnWidth: newValue - }); - }, - onUnitChange: handleUnitChange, - value: value, - min: 0 - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - isBlock: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - onChange: handleSliderChange, - value: quantity, - min: 0, - max: RANGE_CONTROL_MAX_VALUES[unit] || 600, - withInputField: false - })))); -} - -// Enables setting number of grid columns -function GridLayoutColumnsControl({ - layout, - onChange -}) { - const { - columnCount = 3 - } = layout; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Columns'), - value: columnCount, - onChange: value => onChange({ - ...layout, - columnCount: value - }), - min: 1, - max: 6 + eachProp(components, (Component, key) => { + if (is.arr(components)) { + key = getDisplayName(Component); + } + animated[key] = animated(Component); }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/index.js -/** - * Internal dependencies - */ - - + return { + animated + }; +}; +var getDisplayName = (arg) => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null; +;// CONCATENATED MODULE: ./node_modules/@react-spring/core/dist/react-spring_core.modern.mjs +// src/hooks/useChain.ts -const layoutTypes = [flow, flex, constrained, grid]; -/** - * Retrieves a layout type by name. - * - * @param {string} name - The name of the layout type. - * @return {Object} Layout type. - */ -function getLayoutType(name = 'default') { - return layoutTypes.find(layoutType => layoutType.name === name); -} +// src/helpers.ts -/** - * Retrieves the available layout types. - * - * @return {Array} Layout types. - */ -function getLayoutTypes() { - return layoutTypes; +function callProp(value, ...args) { + return is.fun(value) ? value(...args) : value; } - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/layout.js - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -const defaultLayout = { - type: 'default' -}; -const Layout = (0,external_wp_element_namespaceObject.createContext)(defaultLayout); - -/** - * Allows to define the layout. - */ -const LayoutProvider = Layout.Provider; - -/** - * React hook used to retrieve the layout config. - */ -function useLayout() { - return (0,external_wp_element_namespaceObject.useContext)(Layout); -} -function LayoutStyle({ - layout = {}, - css, - ...props -}) { - const layoutType = getLayoutType(layout.type); - const [blockGapSupport] = use_settings_useSettings('spacing.blockGap'); - const hasBlockGapSupport = blockGapSupport !== null; - if (layoutType) { - if (css) { - return (0,external_React_.createElement)("style", null, css); - } - const layoutStyle = layoutType.getLayoutStyle?.({ - hasBlockGapSupport, - layout, - ...props - }); - if (layoutStyle) { - return (0,external_React_.createElement)("style", null, layoutStyle); - } - } - return null; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/use-available-alignments.js -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -const use_available_alignments_EMPTY_ARRAY = []; -const use_available_alignments_DEFAULT_CONTROLS = ['none', 'left', 'center', 'right', 'wide', 'full']; -const WIDE_CONTROLS = ['wide', 'full']; -function useAvailableAlignments(controls = use_available_alignments_DEFAULT_CONTROLS) { - // Always add the `none` option if not exists. - if (!controls.includes('none')) { - controls = ['none', ...controls]; +var matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key))); +var resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop; +var getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : void 0; +var noopTransform = (value) => value; +var getDefaultProps = (props, transform = noopTransform) => { + let keys = DEFAULT_PROPS; + if (props.default && props.default !== true) { + props = props.default; + keys = Object.keys(props); } - const isNoneOnly = controls.length === 1 && controls[0] === 'none'; - const [wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme] = (0,external_wp_data_namespaceObject.useSelect)(select => { - var _settings$alignWide; - // If `isNoneOnly` is true, we'll be returning early because there is - // nothing to filter on an empty array. We won't need the info from - // the `useSelect` but we must call it anyway because Rules of Hooks. - // So the callback returns early to avoid block editor subscription. - if (isNoneOnly) { - return [false, false, false]; + const defaults2 = {}; + for (const key of keys) { + const value = transform(props[key], key); + if (!is.und(value)) { + defaults2[key] = value; } - const settings = select(store).getSettings(); - return [(_settings$alignWide = settings.alignWide) !== null && _settings$alignWide !== void 0 ? _settings$alignWide : false, settings.supportsLayout, settings.__unstableIsBlockBasedTheme]; - }, [isNoneOnly]); - const layout = useLayout(); - if (isNoneOnly) { - return use_available_alignments_EMPTY_ARRAY; } - const layoutType = getLayoutType(layout?.type); - if (themeSupportsLayout) { - const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme); - const alignments = layoutAlignments.filter(alignment => controls.includes(alignment.name)); - // While we treat `none` as an alignment, we shouldn't return it if no - // other alignments exist. - if (alignments.length === 1 && alignments[0].name === 'none') { - return use_available_alignments_EMPTY_ARRAY; + return defaults2; +}; +var DEFAULT_PROPS = [ + "config", + "onProps", + "onStart", + "onChange", + "onPause", + "onResume", + "onRest" +]; +var RESERVED_PROPS = { + config: 1, + from: 1, + to: 1, + ref: 1, + loop: 1, + reset: 1, + pause: 1, + cancel: 1, + reverse: 1, + immediate: 1, + default: 1, + delay: 1, + onProps: 1, + onStart: 1, + onChange: 1, + onPause: 1, + onResume: 1, + onRest: 1, + onResolve: 1, + // Transition props + items: 1, + trail: 1, + sort: 1, + expires: 1, + initial: 1, + enter: 1, + update: 1, + leave: 1, + children: 1, + onDestroyed: 1, + // Internal props + keys: 1, + callId: 1, + parentId: 1 +}; +function getForwardProps(props) { + const forward = {}; + let count = 0; + eachProp(props, (value, prop) => { + if (!RESERVED_PROPS[prop]) { + forward[prop] = value; + count++; } - return alignments; + }); + if (count) { + return forward; } - - // Starting here, it's the fallback for themes not supporting the layout config. - if (layoutType.name !== 'default' && layoutType.name !== 'constrained') { - return use_available_alignments_EMPTY_ARRAY; +} +function inferTo(props) { + const to2 = getForwardProps(props); + if (to2) { + const out = { to: to2 }; + eachProp(props, (val, key) => key in to2 || (out[key] = val)); + return out; } - const alignments = controls.filter(control => { - if (layout.alignments) { - return layout.alignments.includes(control); - } - if (!wideControlsEnabled && WIDE_CONTROLS.includes(control)) { - return false; - } - return use_available_alignments_DEFAULT_CONTROLS.includes(control); - }).map(name => ({ - name - })); - - // While we treat `none` as an alignment, we shouldn't return it if no - // other alignments exist. - if (alignments.length === 1 && alignments[0].name === 'none') { - return use_available_alignments_EMPTY_ARRAY; + return { ...props }; +} +function computeGoal(value) { + value = getFluidValue(value); + return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? globals_exports.createStringInterpolator({ + range: [0, 1], + output: [value, value] + })(1) : value; +} +function hasProps(props) { + for (const _ in props) + return true; + return false; +} +function isAsyncTo(to2) { + return is.fun(to2) || is.arr(to2) && is.obj(to2[0]); +} +function detachRefs(ctrl, ref) { + ctrl.ref?.delete(ctrl); + ref?.delete(ctrl); +} +function replaceRef(ctrl, ref) { + if (ref && ctrl.ref !== ref) { + ctrl.ref?.delete(ctrl); + ref.add(ctrl); + ctrl.ref = ref; } - return alignments; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-none.js - -/** - * WordPress dependencies - */ - -const alignNone = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z" -})); -/* harmony default export */ var align_none = (alignNone); +// src/hooks/useChain.ts +function useChain(refs, timeSteps, timeFrame = 1e3) { + useIsomorphicLayoutEffect(() => { + if (timeSteps) { + let prevDelay = 0; + each(refs, (ref, i) => { + const controllers = ref.current; + if (controllers.length) { + let delay = timeFrame * timeSteps[i]; + if (isNaN(delay)) + delay = prevDelay; + else + prevDelay = delay; + each(controllers, (ctrl) => { + each(ctrl.queue, (props) => { + const memoizedDelayProp = props.delay; + props.delay = (key) => delay + callProp(memoizedDelayProp || 0, key); + }); + }); + ref.start(); + } + }); + } else { + let p = Promise.resolve(); + each(refs, (ref) => { + const controllers = ref.current; + if (controllers.length) { + const queues = controllers.map((ctrl) => { + const q = ctrl.queue; + ctrl.queue = []; + return q; + }); + p = p.then(() => { + each( + controllers, + (ctrl, i) => each(queues[i] || [], (update2) => ctrl.queue.push(update2)) + ); + return Promise.all(ref.start()); + }); + } + }); + } + }); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-left.js +// src/hooks/useSpring.ts -/** - * WordPress dependencies - */ -const positionLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z" -})); -/* harmony default export */ var position_left = (positionLeft); +// src/hooks/useSprings.ts -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-right.js -/** - * WordPress dependencies - */ -const positionRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z" -})); -/* harmony default export */ var position_right = (positionRight); +// src/SpringValue.ts -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js -/** - * WordPress dependencies - */ -const stretchFullWidth = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M5 4h14v11H5V4Zm11 16H8v-1.5h8V20Z" -})); -/* harmony default export */ var stretch_full_width = (stretchFullWidth); +// src/AnimationConfig.ts -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/constants.js -/** - * WordPress dependencies - */ +// src/constants.ts +var config = { + default: { tension: 170, friction: 26 }, + gentle: { tension: 120, friction: 14 }, + wobbly: { tension: 180, friction: 12 }, + stiff: { tension: 210, friction: 20 }, + slow: { tension: 280, friction: 60 }, + molasses: { tension: 280, friction: 120 } +}; -const constants_BLOCK_ALIGNMENTS_CONTROLS = { - none: { - icon: align_none, - title: (0,external_wp_i18n_namespaceObject._x)('None', 'Alignment option') - }, - left: { - icon: position_left, - title: (0,external_wp_i18n_namespaceObject.__)('Align left') - }, - center: { - icon: position_center, - title: (0,external_wp_i18n_namespaceObject.__)('Align center') - }, - right: { - icon: position_right, - title: (0,external_wp_i18n_namespaceObject.__)('Align right') - }, - wide: { - icon: stretch_wide, - title: (0,external_wp_i18n_namespaceObject.__)('Wide width') - }, - full: { - icon: stretch_full_width, - title: (0,external_wp_i18n_namespaceObject.__)('Full width') +// src/AnimationConfig.ts +var defaults = { + ...config.default, + mass: 1, + damping: 1, + easing: easings.linear, + clamp: false +}; +var AnimationConfig = class { + constructor() { + /** + * The initial velocity of one or more values. + * + * @default 0 + */ + this.velocity = 0; + Object.assign(this, defaults); } }; -const constants_DEFAULT_CONTROL = 'none'; - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/ui.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -function BlockAlignmentUI({ - value, - onChange, - controls, - isToolbar, - isCollapsed = true -}) { - const enabledControls = useAvailableAlignments(controls); - const hasEnabledControls = !!enabledControls.length; - if (!hasEnabledControls) { - return null; +function mergeConfig(config2, newConfig, defaultConfig) { + if (defaultConfig) { + defaultConfig = { ...defaultConfig }; + sanitizeConfig(defaultConfig, newConfig); + newConfig = { ...defaultConfig, ...newConfig }; } - function onChangeAlignment(align) { - onChange([value, 'none'].includes(align) ? undefined : align); + sanitizeConfig(config2, newConfig); + Object.assign(config2, newConfig); + for (const key in defaults) { + if (config2[key] == null) { + config2[key] = defaults[key]; + } } - const activeAlignmentControl = constants_BLOCK_ALIGNMENTS_CONTROLS[value]; - const defaultAlignmentControl = constants_BLOCK_ALIGNMENTS_CONTROLS[constants_DEFAULT_CONTROL]; - const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; - const commonProps = { - icon: activeAlignmentControl ? activeAlignmentControl.icon : defaultAlignmentControl.icon, - label: (0,external_wp_i18n_namespaceObject.__)('Align') - }; - const extraProps = isToolbar ? { - isCollapsed, - controls: enabledControls.map(({ - name: controlName - }) => { - return { - ...constants_BLOCK_ALIGNMENTS_CONTROLS[controlName], - isActive: value === controlName || !value && controlName === 'none', - role: isCollapsed ? 'menuitemradio' : undefined, - onClick: () => onChangeAlignment(controlName) - }; - }) - } : { - toggleProps: { - describedBy: (0,external_wp_i18n_namespaceObject.__)('Change alignment') - }, - children: ({ - onClose - }) => { - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - className: "block-editor-block-alignment-control__menu-group" - }, enabledControls.map(({ - name: controlName, - info - }) => { - const { - icon, - title - } = constants_BLOCK_ALIGNMENTS_CONTROLS[controlName]; - // If no value is provided, mark as selected the `none` option. - const isSelected = controlName === value || !value && controlName === 'none'; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - key: controlName, - icon: icon, - iconPosition: "left", - className: classnames_default()('components-dropdown-menu__menu-item', { - 'is-active': isSelected - }), - isSelected: isSelected, - onClick: () => { - onChangeAlignment(controlName); - onClose(); - }, - role: "menuitemradio", - info: info - }, title); - }))); + let { frequency, damping } = config2; + const { mass } = config2; + if (!is.und(frequency)) { + if (frequency < 0.01) + frequency = 0.01; + if (damping < 0) + damping = 0; + config2.tension = Math.pow(2 * Math.PI / frequency, 2) * mass; + config2.friction = 4 * Math.PI * damping * mass / frequency; + } + return config2; +} +function sanitizeConfig(config2, props) { + if (!is.und(props.decay)) { + config2.duration = void 0; + } else { + const isTensionConfig = !is.und(props.tension) || !is.und(props.friction); + if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) { + config2.duration = void 0; + config2.decay = void 0; } - }; - return (0,external_React_.createElement)(UIComponent, { - ...commonProps, - ...extraProps - }); + if (isTensionConfig) { + config2.frequency = void 0; + } + } } -/* harmony default export */ var block_alignment_control_ui = (BlockAlignmentUI); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-control/index.js - -/** - * Internal dependencies - */ -const BlockAlignmentControl = props => { - return (0,external_React_.createElement)(block_alignment_control_ui, { - ...props, - isToolbar: false - }); -}; -const BlockAlignmentToolbar = props => { - return (0,external_React_.createElement)(block_alignment_control_ui, { - ...props, - isToolbar: true - }); +// src/Animation.ts +var emptyArray = []; +var Animation = class { + constructor() { + this.changed = false; + this.values = emptyArray; + this.toValues = null; + this.fromValues = emptyArray; + this.config = new AnimationConfig(); + this.immediate = false; + } }; -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-alignment-control/README.md - */ - - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-editing-mode/index.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - - -/** - * @typedef {'disabled'|'contentOnly'|'default'} BlockEditingMode - */ +// src/scheduleProps.ts -/** - * Allows a block to restrict the user interface that is displayed for editing - * that block and its inner blocks. - * - * @example - * ```js - * function MyBlock( { attributes, setAttributes } ) { - * useBlockEditingMode( 'disabled' ); - * return
; - * } - * ``` - * - * `mode` can be one of three options: - * - * - `'disabled'`: Prevents editing the block entirely, i.e. it cannot be - * selected. - * - `'contentOnly'`: Hides all non-content UI, e.g. auxiliary controls in the - * toolbar, the block movers, block settings. - * - `'default'`: Allows editing the block as normal. - * - * The mode is inherited by all of the block's inner blocks, unless they have - * their own mode. - * - * If called outside of a block context, the mode is applied to all blocks. - * - * @param {?BlockEditingMode} mode The editing mode to apply. If undefined, the - * current editing mode is not changed. - * - * @return {BlockEditingMode} The current editing mode. - */ -function useBlockEditingMode(mode) { - const context = useBlockEditContext(); - const { - clientId = '' - } = context; - const { - setBlockEditingMode, - unsetBlockEditingMode - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const globalBlockEditingMode = (0,external_wp_data_namespaceObject.useSelect)(select => - // Avoid adding the subscription if not needed! - clientId ? null : select(store).getBlockEditingMode(), [clientId]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (mode) { - setBlockEditingMode(clientId, mode); +function scheduleProps(callId, { key, props, defaultProps, state, actions }) { + return new Promise((resolve, reject) => { + let delay; + let timeout; + let cancel = matchProp(props.cancel ?? defaultProps?.cancel, key); + if (cancel) { + onStart(); + } else { + if (!is.und(props.pause)) { + state.paused = matchProp(props.pause, key); + } + let pause = defaultProps?.pause; + if (pause !== true) { + pause = state.paused || matchProp(pause, key); + } + delay = callProp(props.delay || 0, key); + if (pause) { + state.resumeQueue.add(onResume); + actions.pause(); + } else { + actions.resume(); + onResume(); + } } - return () => { - if (mode) { - unsetBlockEditingMode(clientId); + function onPause() { + state.resumeQueue.add(onResume); + state.timeouts.delete(timeout); + timeout.cancel(); + delay = timeout.time - raf.now(); + } + function onResume() { + if (delay > 0 && !globals_exports.skipAnimation) { + state.delayed = true; + timeout = raf.setTimeout(onStart, delay); + state.pauseQueue.add(onPause); + state.timeouts.add(timeout); + } else { + onStart(); } - }; - }, [clientId, mode, setBlockEditingMode, unsetBlockEditingMode]); - return clientId ? context[blockEditingModeKey] : globalBlockEditingMode; + } + function onStart() { + if (state.delayed) { + state.delayed = false; + } + state.pauseQueue.delete(onPause); + state.timeouts.delete(timeout); + if (callId <= (state.cancelId || 0)) { + cancel = true; + } + try { + actions.start({ ...props, callId, cancel }, resolve); + } catch (err) { + reject(err); + } + } + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/align.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * An array which includes all possible valid alignments, - * used to validate if an alignment is valid or not. - * - * @constant - * @type {string[]} - */ -const ALL_ALIGNMENTS = ['left', 'center', 'right', 'wide', 'full']; +// src/runAsync.ts -/** - * An array which includes all wide alignments. - * In order for this alignments to be valid they need to be supported by the block, - * and by the theme. - * - * @constant - * @type {string[]} - */ -const WIDE_ALIGNMENTS = ['wide', 'full']; -/** - * Returns the valid alignments. - * Takes into consideration the aligns supported by a block, if the block supports wide controls or not and if theme supports wide controls or not. - * Exported just for testing purposes, not exported outside the module. - * - * @param {?boolean|string[]} blockAlign Aligns supported by the block. - * @param {?boolean} hasWideBlockSupport True if block supports wide alignments. And False otherwise. - * @param {?boolean} hasWideEnabled True if theme supports wide alignments. And False otherwise. - * - * @return {string[]} Valid alignments. - */ -function getValidAlignments(blockAlign, hasWideBlockSupport = true, hasWideEnabled = true) { - let validAlignments; - if (Array.isArray(blockAlign)) { - validAlignments = ALL_ALIGNMENTS.filter(value => blockAlign.includes(value)); - } else if (blockAlign === true) { - // `true` includes all alignments... - validAlignments = [...ALL_ALIGNMENTS]; - } else { - validAlignments = []; - } - if (!hasWideEnabled || blockAlign === true && !hasWideBlockSupport) { - return validAlignments.filter(alignment => !WIDE_ALIGNMENTS.includes(alignment)); - } - return validAlignments; -} +// src/AnimationResult.ts +var getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some((result) => result.cancelled) ? getCancelledResult(target.get()) : results.every((result) => result.noop) ? getNoopResult(target.get()) : getFinishedResult( + target.get(), + results.every((result) => result.finished) +); +var getNoopResult = (value) => ({ + value, + noop: true, + finished: true, + cancelled: false +}); +var getFinishedResult = (value, finished, cancelled = false) => ({ + value, + finished, + cancelled +}); +var getCancelledResult = (value) => ({ + value, + cancelled: true, + finished: false +}); -/** - * Filters registered block settings, extending attributes to include `align`. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function addAttribute(settings) { - var _settings$attributes$; - // Allow blocks to specify their own attribute definition with default values if needed. - if ('type' in ((_settings$attributes$ = settings.attributes?.align) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { - return settings; +// src/runAsync.ts +function runAsync(to2, props, state, target) { + const { callId, parentId, onRest } = props; + const { asyncTo: prevTo, promise: prevPromise } = state; + if (!parentId && to2 === prevTo && !props.reset) { + return prevPromise; } - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'align')) { - // Gracefully handle if settings.attributes is undefined. - settings.attributes = { - ...settings.attributes, - align: { - type: 'string', - // Allow for '' since it is used by the `updateAlignment` function - // in toolbar controls for special cases with defined default values. - enum: [...ALL_ALIGNMENTS, ''] + return state.promise = (async () => { + state.asyncId = callId; + state.asyncTo = to2; + const defaultProps = getDefaultProps( + props, + (value, key) => ( + // The `onRest` prop is only called when the `runAsync` promise is resolved. + key === "onRest" ? void 0 : value + ) + ); + let preventBail; + let bail; + const bailPromise = new Promise( + (resolve, reject) => (preventBail = resolve, bail = reject) + ); + const bailIfEnded = (bailSignal) => { + const bailResult = ( + // The `cancel` prop or `stop` method was used. + callId <= (state.cancelId || 0) && getCancelledResult(target) || // The async `to` prop was replaced. + callId !== state.asyncId && getFinishedResult(target, false) + ); + if (bailResult) { + bailSignal.result = bailResult; + bail(bailSignal); + throw bailSignal; } }; - } - return settings; -} -function BlockEditAlignmentToolbarControlsPure({ - name: blockName, - align, - setAttributes -}) { - // Compute the block valid alignments by taking into account, - // if the theme supports wide alignments or not and the layout's - // available alignments. We do that for conditionally rendering - // Slot. - const blockAllowedAlignments = getValidAlignments((0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'align'), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'alignWide', true)); - const validAlignments = useAvailableAlignments(blockAllowedAlignments).map(({ - name - }) => name); - const blockEditingMode = useBlockEditingMode(); - if (!validAlignments.length || blockEditingMode !== 'default') { - return null; - } - const updateAlignment = nextAlign => { - if (!nextAlign) { - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); - const blockDefaultAlign = blockType?.attributes?.align?.default; - if (blockDefaultAlign) { - nextAlign = ''; + const animate = (arg1, arg2) => { + const bailSignal = new BailSignal(); + const skipAnimationSignal = new SkipAnimationSignal(); + return (async () => { + if (globals_exports.skipAnimation) { + stopAsync(state); + skipAnimationSignal.result = getFinishedResult(target, false); + bail(skipAnimationSignal); + throw skipAnimationSignal; + } + bailIfEnded(bailSignal); + const props2 = is.obj(arg1) ? { ...arg1 } : { ...arg2, to: arg1 }; + props2.parentId = callId; + eachProp(defaultProps, (value, key) => { + if (is.und(props2[key])) { + props2[key] = value; + } + }); + const result2 = await target.start(props2); + bailIfEnded(bailSignal); + if (state.paused) { + await new Promise((resume) => { + state.resumeQueue.add(resume); + }); + } + return result2; + })(); + }; + let result; + if (globals_exports.skipAnimation) { + stopAsync(state); + return getFinishedResult(target, false); + } + try { + let animating; + if (is.arr(to2)) { + animating = (async (queue) => { + for (const props2 of queue) { + await animate(props2); + } + })(to2); + } else { + animating = Promise.resolve(to2(animate, target.stop.bind(target))); + } + await Promise.all([animating.then(preventBail), bailPromise]); + result = getFinishedResult(target.get(), true, false); + } catch (err) { + if (err instanceof BailSignal) { + result = err.result; + } else if (err instanceof SkipAnimationSignal) { + result = err.result; + } else { + throw err; + } + } finally { + if (callId == state.asyncId) { + state.asyncId = parentId; + state.asyncTo = parentId ? prevTo : void 0; + state.promise = parentId ? prevPromise : void 0; } } - setAttributes({ - align: nextAlign - }); - }; - return (0,external_React_.createElement)(block_controls, { - group: "block", - __experimentalShareWithChildBlocks: true - }, (0,external_React_.createElement)(BlockAlignmentControl, { - value: align, - onChange: updateAlignment, - controls: validAlignments - })); + if (is.fun(onRest)) { + raf.batchedUpdates(() => { + onRest(result, target, target.item); + }); + } + return result; + })(); } -/* harmony default export */ var align = ({ - shareWithChildBlocks: true, - edit: BlockEditAlignmentToolbarControlsPure, - useBlockProps, - addSaveProps: addAssignedAlign, - attributeKeys: ['align'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'align', false); - } -}); -function useBlockProps({ - name, - align -}) { - const blockAllowedAlignments = getValidAlignments((0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'align'), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'alignWide', true)); - const validAlignments = useAvailableAlignments(blockAllowedAlignments); - if (validAlignments.some(alignment => alignment.name === align)) { - return { - 'data-align': align - }; - } - return {}; +function stopAsync(state, cancelId) { + flush(state.timeouts, (t) => t.cancel()); + state.pauseQueue.clear(); + state.resumeQueue.clear(); + state.asyncId = state.asyncTo = state.promise = void 0; + if (cancelId) + state.cancelId = cancelId; } - -/** - * Override props assigned to save component to inject alignment class name if - * block supports it. - * - * @param {Object} props Additional props applied to save element. - * @param {Object} blockType Block type. - * @param {Object} attributes Block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function addAssignedAlign(props, blockType, attributes) { - const { - align - } = attributes; - const blockAlign = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'align'); - const hasWideBlockSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'alignWide', true); - - // Compute valid alignments without taking into account if - // the theme supports wide alignments or not. - // This way changing themes does not impact the block save. - const isAlignValid = getValidAlignments(blockAlign, hasWideBlockSupport).includes(align); - if (isAlignValid) { - props.className = classnames_default()(`align${align}`, props.className); +var BailSignal = class extends Error { + constructor() { + super( + "An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise." + ); } - return props; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/align/addAttribute', addAttribute); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/lock.js -/** - * WordPress dependencies - */ - - -/** - * Filters registered block settings, extending attributes to include `lock`. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function lock_addAttribute(settings) { - var _settings$attributes$; - // Allow blocks to specify their own attribute definition with default values if needed. - if ('type' in ((_settings$attributes$ = settings.attributes?.lock) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { - return settings; +}; +var SkipAnimationSignal = class extends Error { + constructor() { + super("SkipAnimationSignal"); } - // Gracefully handle if settings.attributes is undefined. - settings.attributes = { - ...settings.attributes, - lock: { - type: 'object' - } - }; - return settings; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/lock/addAttribute', lock_addAttribute); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/groups.js -/** - * WordPress dependencies - */ - -const InspectorControlsDefault = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControls'); -const InspectorControlsAdvanced = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorAdvancedControls'); -const InspectorControlsBackground = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsBackground'); -const InspectorControlsBorder = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsBorder'); -const InspectorControlsColor = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsColor'); -const InspectorControlsFilter = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsFilter'); -const InspectorControlsDimensions = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsDimensions'); -const InspectorControlsPosition = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsPosition'); -const InspectorControlsTypography = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsTypography'); -const InspectorControlsListView = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsListView'); -const InspectorControlsStyles = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsStyles'); -const InspectorControlsEffects = (0,external_wp_components_namespaceObject.createSlotFill)('InspectorControlsEffects'); -const groups_groups = { - default: InspectorControlsDefault, - advanced: InspectorControlsAdvanced, - background: InspectorControlsBackground, - border: InspectorControlsBorder, - color: InspectorControlsColor, - dimensions: InspectorControlsDimensions, - effects: InspectorControlsEffects, - filter: InspectorControlsFilter, - list: InspectorControlsListView, - position: InspectorControlsPosition, - settings: InspectorControlsDefault, - // Alias for default. - styles: InspectorControlsStyles, - typography: InspectorControlsTypography }; -/* harmony default export */ var inspector_controls_groups = (groups_groups); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/fill.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ +// src/FrameValue.ts -function InspectorControlsFill({ - children, - group = 'default', - __experimentalGroup, - resetAllFilter -}) { - if (__experimentalGroup) { - external_wp_deprecated_default()('`__experimentalGroup` property in `InspectorControlsFill`', { - since: '6.2', - version: '6.4', - alternative: '`group`' - }); - group = __experimentalGroup; - } - const context = useBlockEditContext(); - const Fill = inspector_controls_groups[group]?.Fill; - if (!Fill) { - true ? external_wp_warning_default()(`Unknown InspectorControls group "${group}" provided.`) : 0; - return null; +var isFrameValue = (value) => value instanceof FrameValue; +var nextId = 1; +var FrameValue = class extends FluidValue { + constructor() { + super(...arguments); + this.id = nextId++; + this._priority = 0; } - if (!context[mayDisplayControlsKey]) { - return null; + get priority() { + return this._priority; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { - document: document - }, (0,external_React_.createElement)(Fill, null, fillProps => { - return (0,external_React_.createElement)(ToolsPanelInspectorControl, { - fillProps: fillProps, - children: children, - resetAllFilter: resetAllFilter - }); - })); -} -function RegisterResetAll({ - resetAllFilter, - children -}) { - const { - registerResetAllFilter, - deregisterResetAllFilter - } = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolsPanelContext); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (resetAllFilter && registerResetAllFilter && deregisterResetAllFilter) { - registerResetAllFilter(resetAllFilter); - return () => { - deregisterResetAllFilter(resetAllFilter); - }; + set priority(priority) { + if (this._priority != priority) { + this._priority = priority; + this._onPriorityChange(priority); } - }, [resetAllFilter, registerResetAllFilter, deregisterResetAllFilter]); - return children; -} -function ToolsPanelInspectorControl({ - children, - resetAllFilter, - fillProps -}) { - // `fillProps.forwardedContext` is an array of context provider entries, provided by slot, - // that should wrap the fill markup. - const { - forwardedContext = [] - } = fillProps; - - // Children passed to InspectorControlsFill will not have - // access to any React Context whose Provider is part of - // the InspectorControlsSlot tree. So we re-create the - // Provider in this subtree. - const innerMarkup = (0,external_React_.createElement)(RegisterResetAll, { - resetAllFilter: resetAllFilter - }, children); - return forwardedContext.reduce((inner, [Provider, props]) => (0,external_React_.createElement)(Provider, { - ...props - }, inner), innerMarkup); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/block-support-tools-panel.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - -function BlockSupportToolsPanel({ - children, - group, - label -}) { - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - getBlockAttributes, - getMultiSelectedBlockClientIds, - getSelectedBlockClientId, - hasMultiSelection - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const panelId = getSelectedBlockClientId(); - const resetAll = (0,external_wp_element_namespaceObject.useCallback)((resetFilters = []) => { - const newAttributes = {}; - const clientIds = hasMultiSelection() ? getMultiSelectedBlockClientIds() : [panelId]; - clientIds.forEach(clientId => { - const { - style - } = getBlockAttributes(clientId); - let newBlockAttributes = { - style - }; - resetFilters.forEach(resetFilter => { - newBlockAttributes = { - ...newBlockAttributes, - ...resetFilter(newBlockAttributes) - }; - }); - - // Enforce a cleaned style object. - newBlockAttributes = { - ...newBlockAttributes, - style: utils_cleanEmptyObject(newBlockAttributes.style) - }; - newAttributes[clientId] = newBlockAttributes; - }); - updateBlockAttributes(clientIds, newAttributes, true); - }, [getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes]); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - className: `${group}-block-support-panel`, - label: label, - resetAll: resetAll, - key: panelId, - panelId: panelId, - hasInnerWrapper: true, - shouldRenderPlaceholderItems: true // Required to maintain fills ordering. - , - __experimentalFirstVisibleItemClass: "first", - __experimentalLastVisibleItemClass: "last", - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/block-support-slot-container.js - -/** - * WordPress dependencies - */ - - -function BlockSupportSlotContainer({ - Slot, - fillProps, - ...props -}) { - // Add the toolspanel context provider and value to existing fill props - const toolsPanelContext = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__experimentalToolsPanelContext); - const computedFillProps = (0,external_wp_element_namespaceObject.useMemo)(() => { - var _fillProps$forwardedC; - return { - ...(fillProps !== null && fillProps !== void 0 ? fillProps : {}), - forwardedContext: [...((_fillProps$forwardedC = fillProps?.forwardedContext) !== null && _fillProps$forwardedC !== void 0 ? _fillProps$forwardedC : []), [external_wp_components_namespaceObject.__experimentalToolsPanelContext.Provider, { - value: toolsPanelContext - }]] - }; - }, [toolsPanelContext, fillProps]); - return (0,external_React_.createElement)(Slot, { - ...props, - fillProps: computedFillProps, - bubblesVirtually: true - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/slot.js - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - - -function InspectorControlsSlot({ - __experimentalGroup, - group = 'default', - label, - fillProps, - ...props -}) { - if (__experimentalGroup) { - external_wp_deprecated_default()('`__experimentalGroup` property in `InspectorControlsSlot`', { - since: '6.2', - version: '6.4', - alternative: '`group`' - }); - group = __experimentalGroup; - } - const Slot = inspector_controls_groups[group]?.Slot; - const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(Slot?.__unstableName); - const motionContextValue = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.__unstableMotionContext); - const computedFillProps = (0,external_wp_element_namespaceObject.useMemo)(() => { - var _fillProps$forwardedC; - return { - ...(fillProps !== null && fillProps !== void 0 ? fillProps : {}), - forwardedContext: [...((_fillProps$forwardedC = fillProps?.forwardedContext) !== null && _fillProps$forwardedC !== void 0 ? _fillProps$forwardedC : []), [external_wp_components_namespaceObject.__unstableMotionContext.Provider, { - value: motionContextValue - }]] - }; - }, [motionContextValue, fillProps]); - if (!Slot) { - true ? external_wp_warning_default()(`Unknown InspectorControls group "${group}" provided.`) : 0; - return null; } - if (!fills?.length) { - return null; + /** Get the current value */ + get() { + const node = getAnimated(this); + return node && node.getValue(); } - if (label) { - return (0,external_React_.createElement)(BlockSupportToolsPanel, { - group: group, - label: label - }, (0,external_React_.createElement)(BlockSupportSlotContainer, { - ...props, - fillProps: computedFillProps, - Slot: Slot - })); + /** Create a spring that maps our value to another value */ + to(...args) { + return globals_exports.to(this, args); } - return (0,external_React_.createElement)(Slot, { - ...props, - fillProps: computedFillProps, - bubblesVirtually: true - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/index.js - -/** - * Internal dependencies - */ - - -const InspectorControls = InspectorControlsFill; -InspectorControls.Slot = InspectorControlsSlot; - -// This is just here for backward compatibility. -const InspectorAdvancedControls = props => { - return (0,external_React_.createElement)(InspectorControlsFill, { - ...props, - group: "advanced" - }); -}; -InspectorAdvancedControls.Slot = props => { - return (0,external_React_.createElement)(InspectorControlsSlot, { - ...props, - group: "advanced" - }); -}; -InspectorAdvancedControls.slotName = 'InspectorAdvancedControls'; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md - */ -/* harmony default export */ var inspector_controls = (InspectorControls); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/anchor.js - -/** - * WordPress dependencies - */ - - - - - - -/** - * Internal dependencies - */ - - - -/** - * Regular expression matching invalid anchor characters for replacement. - * - * @type {RegExp} - */ -const ANCHOR_REGEX = /[\s#]/g; -const ANCHOR_SCHEMA = { - type: 'string', - source: 'attribute', - attribute: 'id', - selector: '*' -}; - -/** - * Filters registered block settings, extending attributes with anchor using ID - * of the first node. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function anchor_addAttribute(settings) { - var _settings$attributes$; - // Allow blocks to specify their own attribute definition with default values if needed. - if ('type' in ((_settings$attributes$ = settings.attributes?.anchor) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { - return settings; + /** @deprecated Use the `to` method instead. */ + interpolate(...args) { + deprecateInterpolate(); + return globals_exports.to(this, args); } - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'anchor')) { - // Gracefully handle if settings.attributes is undefined. - settings.attributes = { - ...settings.attributes, - anchor: ANCHOR_SCHEMA - }; + toJSON() { + return this.get(); } - return settings; -} -function BlockEditAnchorControlPure({ - name: blockName, - anchor, - setAttributes -}) { - const blockEditingMode = useBlockEditingMode(); - const isWeb = external_wp_element_namespaceObject.Platform.OS === 'web'; - const textControl = (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - __next40pxDefaultSize: true, - className: "html-anchor-control", - label: (0,external_wp_i18n_namespaceObject.__)('HTML anchor'), - help: (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), isWeb && (0,external_React_.createElement)(external_wp_components_namespaceObject.ExternalLink, { - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-jumps/') - }, (0,external_wp_i18n_namespaceObject.__)('Learn more about anchors'))), - value: anchor || '', - placeholder: !isWeb ? (0,external_wp_i18n_namespaceObject.__)('Add an anchor') : null, - onChange: nextValue => { - nextValue = nextValue.replace(ANCHOR_REGEX, '-'); - setAttributes({ - anchor: nextValue - }); - }, - autoCapitalize: "none", - autoComplete: "off" - }); - return (0,external_React_.createElement)(external_React_.Fragment, null, isWeb && blockEditingMode === 'default' && (0,external_React_.createElement)(inspector_controls, { - group: "advanced" - }, textControl), !isWeb && blockName === 'core/heading' && (0,external_React_.createElement)(inspector_controls, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - title: (0,external_wp_i18n_namespaceObject.__)('Heading settings') - }, textControl))); -} -/* harmony default export */ var hooks_anchor = ({ - addSaveProps, - edit: BlockEditAnchorControlPure, - attributeKeys: ['anchor'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'anchor'); + observerAdded(count) { + if (count == 1) + this._attach(); } -}); - -/** - * Override props assigned to save component to inject anchor ID, if block - * supports anchor. This is only applied if the block's save result is an - * element and not a markup string. - * - * @param {Object} extraProps Additional props applied to save element. - * @param {Object} blockType Block type. - * @param {Object} attributes Current block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function addSaveProps(extraProps, blockType, attributes) { - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'anchor')) { - extraProps.id = attributes.anchor === '' ? null : attributes.anchor; + observerRemoved(count) { + if (count == 0) + this._detach(); } - return extraProps; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/anchor/attribute', anchor_addAttribute); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/aria-label.js -/** - * WordPress dependencies - */ - - -const ARIA_LABEL_SCHEMA = { - type: 'string', - source: 'attribute', - attribute: 'aria-label', - selector: '*' -}; - -/** - * Filters registered block settings, extending attributes with ariaLabel using aria-label - * of the first node. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function aria_label_addAttribute(settings) { - // Allow blocks to specify their own attribute definition with default values if needed. - if (settings?.attributes?.ariaLabel?.type) { - return settings; + /** Called when the first child is added. */ + _attach() { } - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'ariaLabel')) { - // Gracefully handle if settings.attributes is undefined. - settings.attributes = { - ...settings.attributes, - ariaLabel: ARIA_LABEL_SCHEMA - }; + /** Called when the last child is removed. */ + _detach() { } - return settings; -} - -/** - * Override props assigned to save component to inject aria-label, if block - * supports ariaLabel. This is only applied if the block's save result is an - * element and not a markup string. - * - * @param {Object} extraProps Additional props applied to save element. - * @param {Object} blockType Block type. - * @param {Object} attributes Current block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function aria_label_addSaveProps(extraProps, blockType, attributes) { - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'ariaLabel')) { - extraProps['aria-label'] = attributes.ariaLabel === '' ? null : attributes.ariaLabel; + /** Tell our children about our new value */ + _onChange(value, idle = false) { + callFluidObservers(this, { + type: "change", + parent: this, + value, + idle + }); } - return extraProps; -} -/* harmony default export */ var aria_label = ({ - addSaveProps: aria_label_addSaveProps, - attributeKeys: ['ariaLabel'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'ariaLabel'); + /** Tell our children about our new priority */ + _onPriorityChange(priority) { + if (!this.idle) { + frameLoop.sort(this); + } + callFluidObservers(this, { + type: "priority", + parent: this, + priority + }); } -}); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/ariaLabel/attribute', aria_label_addAttribute); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/custom-class-name.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - +}; +// src/SpringPhase.ts +var $P = Symbol.for("SpringPhase"); +var HAS_ANIMATED = 1; +var IS_ANIMATING = 2; +var IS_PAUSED = 4; +var hasAnimated = (target) => (target[$P] & HAS_ANIMATED) > 0; +var isAnimating = (target) => (target[$P] & IS_ANIMATING) > 0; +var isPaused = (target) => (target[$P] & IS_PAUSED) > 0; +var setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING; +var setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED; -/** - * Filters registered block settings, extending attributes to include `className`. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function custom_class_name_addAttribute(settings) { - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'customClassName', true)) { - // Gracefully handle if settings.attributes is undefined. - settings.attributes = { - ...settings.attributes, - className: { - type: 'string' - } +// src/SpringValue.ts +var SpringValue = class extends FrameValue { + constructor(arg1, arg2) { + super(); + /** The animation state */ + this.animation = new Animation(); + /** Some props have customizable default values */ + this.defaultProps = {}; + /** The state for `runAsync` calls */ + this._state = { + paused: false, + delayed: false, + pauseQueue: /* @__PURE__ */ new Set(), + resumeQueue: /* @__PURE__ */ new Set(), + timeouts: /* @__PURE__ */ new Set() }; + /** The promise resolvers of pending `start` calls */ + this._pendingCalls = /* @__PURE__ */ new Set(); + /** The counter for tracking `scheduleProps` calls */ + this._lastCallId = 0; + /** The last `scheduleProps` call that changed the `to` prop */ + this._lastToId = 0; + this._memoizedDuration = 0; + if (!is.und(arg1) || !is.und(arg2)) { + const props = is.obj(arg1) ? { ...arg1 } : { ...arg2, from: arg1 }; + if (is.und(props.default)) { + props.default = true; + } + this.start(props); + } } - return settings; -} -function CustomClassNameControlsPure({ - className, - setAttributes -}) { - const blockEditingMode = useBlockEditingMode(); - if (blockEditingMode !== 'default') { - return null; + /** Equals true when not advancing on each frame. */ + get idle() { + return !(isAnimating(this) || this._state.asyncTo) || isPaused(this); } - return (0,external_React_.createElement)(inspector_controls, { - group: "advanced" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - __next40pxDefaultSize: true, - autoComplete: "off", - label: (0,external_wp_i18n_namespaceObject.__)('Additional CSS class(es)'), - value: className || '', - onChange: nextValue => { - setAttributes({ - className: nextValue !== '' ? nextValue : undefined - }); - }, - help: (0,external_wp_i18n_namespaceObject.__)('Separate multiple classes with spaces.') - })); -} -/* harmony default export */ var custom_class_name = ({ - edit: CustomClassNameControlsPure, - addSaveProps: custom_class_name_addSaveProps, - attributeKeys: ['className'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'customClassName', true); + get goal() { + return getFluidValue(this.animation.to); } -}); - -/** - * Override props assigned to save component to inject the className, if block - * supports customClassName. This is only applied if the block's save result is an - * element and not a markup string. - * - * @param {Object} extraProps Additional props applied to save element. - * @param {Object} blockType Block type. - * @param {Object} attributes Current block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function custom_class_name_addSaveProps(extraProps, blockType, attributes) { - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'customClassName', true) && attributes.className) { - extraProps.className = classnames_default()(extraProps.className, attributes.className); + get velocity() { + const node = getAnimated(this); + return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map((node2) => node2.lastVelocity || 0); } - return extraProps; -} -function addTransforms(result, source, index, results) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(result.name, 'customClassName', true)) { - return result; + /** + * When true, this value has been animated at least once. + */ + get hasAnimated() { + return hasAnimated(this); } - - // If the condition verifies we are probably in the presence of a wrapping transform - // e.g: nesting paragraphs in a group or columns and in that case the class should not be kept. - if (results.length === 1 && result.innerBlocks.length === source.length) { - return result; + /** + * When true, this value has an unfinished animation, + * which is either active or paused. + */ + get isAnimating() { + return isAnimating(this); } - - // If we are transforming one block to multiple blocks or multiple blocks to one block, - // we ignore the class during the transform. - if (results.length === 1 && source.length > 1 || results.length > 1 && source.length === 1) { - return result; + /** + * When true, all current and future animations are paused. + */ + get isPaused() { + return isPaused(this); } - - // If we are in presence of transform between one or more block in the source - // that have one or more blocks in the result - // we apply the class on source N to the result N, - // if source N does not exists we do nothing. - if (source[index]) { - const originClassName = source[index]?.attributes.className; - if (originClassName) { - return { - ...result, - attributes: { - ...result.attributes, - className: originClassName - } - }; - } + /** + * + * + */ + get isDelayed() { + return this._state.delayed; } - return result; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/custom-class-name/attribute', custom_class_name_addAttribute); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', addTransforms); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/generated-class-name.js -/** - * WordPress dependencies - */ - - - -/** - * Override props assigned to save component to inject generated className if - * block supports it. This is only applied if the block's save result is an - * element and not a markup string. - * - * @param {Object} extraProps Additional props applied to save element. - * @param {Object} blockType Block type. - * - * @return {Object} Filtered props applied to save element. - */ -function addGeneratedClassName(extraProps, blockType) { - // Adding the generated className. - if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'className', true)) { - if (typeof extraProps.className === 'string') { - // We have some extra classes and want to add the default classname - // We use uniq to prevent duplicate classnames. - - extraProps.className = [...new Set([(0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(blockType.name), ...extraProps.className.split(' ')])].join(' ').trim(); - } else { - // There is no string in the className variable, - // so we just dump the default name in there. - extraProps.className = (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(blockType.name); + /** Advance the current animation by a number of milliseconds */ + advance(dt) { + let idle = true; + let changed = false; + const anim = this.animation; + let { toValues } = anim; + const { config: config2 } = anim; + const payload = getPayload(anim.to); + if (!payload && hasFluidValue(anim.to)) { + toValues = toArray(getFluidValue(anim.to)); } - } - return extraProps; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/generated-class-name/save-props', addGeneratedClassName); - -;// CONCATENATED MODULE: external ["wp","blob"] -var external_wp_blob_namespaceObject = window["wp"]["blob"]; -;// CONCATENATED MODULE: external ["wp","dom"] -var external_wp_dom_namespaceObject = window["wp"]["dom"]; -;// CONCATENATED MODULE: external ["wp","notices"] -var external_wp_notices_namespaceObject = window["wp"]["notices"]; -;// CONCATENATED MODULE: external ["wp","url"] -var external_wp_url_namespaceObject = window["wp"]["url"]; -;// CONCATENATED MODULE: external ["wp","keycodes"] -var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js - -/** - * WordPress dependencies - */ - -const media = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7 6.5 4 2.5-4 2.5z" -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - clipRule: "evenodd", - d: "m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z" -})); -/* harmony default export */ var library_media = (media); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js - -/** - * WordPress dependencies - */ - -const upload = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z" -})); -/* harmony default export */ var library_upload = (upload); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js - -/** - * WordPress dependencies - */ - -const postFeaturedImage = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z" -})); -/* harmony default export */ var post_featured_image = (postFeaturedImage); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/index.js -/** - * WordPress dependencies - */ - - -/** - * This is a placeholder for the media upload component necessary to make it possible to provide - * an integration with the core blocks that handle media files. By default it renders nothing but - * it provides a way to have it overridden with the `editor.MediaUpload` filter. - * - * @return {Component} The component to be rendered. - */ -const MediaUpload = () => null; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md - */ -/* harmony default export */ var media_upload = ((0,external_wp_components_namespaceObject.withFilters)('editor.MediaUpload')(MediaUpload)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/check.js -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - -function MediaUploadCheck({ - fallback = null, - children -}) { - const hasUploadPermissions = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings - } = select(store); - return !!getSettings().mediaUpload; - }, []); - return hasUploadPermissions ? children : fallback; -} - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md - */ -/* harmony default export */ var check = (MediaUploadCheck); - -;// CONCATENATED MODULE: external ["wp","isShallowEqual"] -var external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"]; -var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject); -;// CONCATENATED MODULE: external ["wp","preferences"] -var external_wp_preferences_namespaceObject = window["wp"]["preferences"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js - -/** - * WordPress dependencies - */ - -const keyboardReturn = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "-2 -2 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z" -})); -/* harmony default export */ var keyboard_return = (keyboardReturn); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js - -/** - * WordPress dependencies - */ - -const chevronLeftSmall = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z" -})); -/* harmony default export */ var chevron_left_small = (chevronLeftSmall); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js - -/** - * WordPress dependencies - */ - -const chevronRightSmall = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z" -})); -/* harmony default export */ var chevron_right_small = (chevronRightSmall); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings-drawer.js - -/** - * WordPress dependencies - */ - - - - - -function LinkSettingsDrawer({ - children, - settingsOpen, - setSettingsOpen -}) { - const prefersReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); - const MaybeAnimatePresence = prefersReducedMotion ? external_wp_element_namespaceObject.Fragment : external_wp_components_namespaceObject.__unstableAnimatePresence; - const MaybeMotionDiv = prefersReducedMotion ? 'div' : external_wp_components_namespaceObject.__unstableMotion.div; - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkSettingsDrawer); - const settingsDrawerId = `link-control-settings-drawer-${id}`; - return (0,external_React_.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-link-control__drawer-toggle", - "aria-expanded": settingsOpen, - onClick: () => setSettingsOpen(!settingsOpen), - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left_small : chevron_right_small, - "aria-controls": settingsDrawerId - }, (0,external_wp_i18n_namespaceObject._x)('Advanced', 'Additional link settings')), (0,external_React_.createElement)(MaybeAnimatePresence, null, settingsOpen && (0,external_React_.createElement)(MaybeMotionDiv, { - className: "block-editor-link-control__drawer", - hidden: !settingsOpen, - id: settingsDrawerId, - initial: "collapsed", - animate: "open", - exit: "collapsed", - variants: { - open: { - opacity: 1, - height: 'auto' - }, - collapsed: { - opacity: 0, - height: 0 + anim.values.forEach((node2, i) => { + if (node2.done) + return; + const to2 = ( + // Animated strings always go from 0 to 1. + node2.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i] + ); + let finished = anim.immediate; + let position = to2; + if (!finished) { + position = node2.lastPosition; + if (config2.tension <= 0) { + node2.done = true; + return; + } + let elapsed = node2.elapsedTime += dt; + const from = anim.fromValues[i]; + const v0 = node2.v0 != null ? node2.v0 : node2.v0 = is.arr(config2.velocity) ? config2.velocity[i] : config2.velocity; + let velocity; + const precision = config2.precision || (from == to2 ? 5e-3 : Math.min(1, Math.abs(to2 - from) * 1e-3)); + if (!is.und(config2.duration)) { + let p = 1; + if (config2.duration > 0) { + if (this._memoizedDuration !== config2.duration) { + this._memoizedDuration = config2.duration; + if (node2.durationProgress > 0) { + node2.elapsedTime = config2.duration * node2.durationProgress; + elapsed = node2.elapsedTime += dt; + } + } + p = (config2.progress || 0) + elapsed / this._memoizedDuration; + p = p > 1 ? 1 : p < 0 ? 0 : p; + node2.durationProgress = p; + } + position = from + config2.easing(p) * (to2 - from); + velocity = (position - node2.lastPosition) / dt; + finished = p == 1; + } else if (config2.decay) { + const decay = config2.decay === true ? 0.998 : config2.decay; + const e = Math.exp(-(1 - decay) * elapsed); + position = from + v0 / (1 - decay) * (1 - e); + finished = Math.abs(node2.lastPosition - position) <= precision; + velocity = v0 * e; + } else { + velocity = node2.lastVelocity == null ? v0 : node2.lastVelocity; + const restVelocity = config2.restVelocity || precision / 10; + const bounceFactor = config2.clamp ? 0 : config2.bounce; + const canBounce = !is.und(bounceFactor); + const isGrowing = from == to2 ? node2.v0 > 0 : from < to2; + let isMoving; + let isBouncing = false; + const step = 1; + const numSteps = Math.ceil(dt / step); + for (let n = 0; n < numSteps; ++n) { + isMoving = Math.abs(velocity) > restVelocity; + if (!isMoving) { + finished = Math.abs(to2 - position) <= precision; + if (finished) { + break; + } + } + if (canBounce) { + isBouncing = position == to2 || position > to2 == isGrowing; + if (isBouncing) { + velocity = -velocity * bounceFactor; + position = to2; + } + } + const springForce = -config2.tension * 1e-6 * (position - to2); + const dampingForce = -config2.friction * 1e-3 * velocity; + const acceleration = (springForce + dampingForce) / config2.mass; + velocity = velocity + acceleration * step; + position = position + velocity * step; + } + } + node2.lastVelocity = velocity; + if (Number.isNaN(position)) { + console.warn(`Got NaN while animating:`, this); + finished = true; + } } - }, - transition: { - duration: 0.1 - } - }, (0,external_React_.createElement)("div", { - className: "block-editor-link-control__drawer-inner" - }, children)))); -} -/* harmony default export */ var settings_drawer = (LinkSettingsDrawer); - -// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js -var lib = __webpack_require__(5425); -var lib_default = /*#__PURE__*/__webpack_require__.n(lib); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/index.js - -/** - * External dependencies - */ - - - -/** - * WordPress dependencies - */ - - - - - - - - - -/** - * Internal dependencies - */ - - -/** - * Whether the argument is a function. - * - * @param {*} maybeFunc The argument to check. - * @return {boolean} True if the argument is a function, false otherwise. - */ -function isFunction(maybeFunc) { - return typeof maybeFunc === 'function'; -} -class URLInput extends external_wp_element_namespaceObject.Component { - constructor(props) { - super(props); - this.onChange = this.onChange.bind(this); - this.onFocus = this.onFocus.bind(this); - this.onKeyDown = this.onKeyDown.bind(this); - this.selectLink = this.selectLink.bind(this); - this.handleOnClick = this.handleOnClick.bind(this); - this.bindSuggestionNode = this.bindSuggestionNode.bind(this); - this.autocompleteRef = props.autocompleteRef || (0,external_wp_element_namespaceObject.createRef)(); - this.inputRef = (0,external_wp_element_namespaceObject.createRef)(); - this.updateSuggestions = (0,external_wp_compose_namespaceObject.debounce)(this.updateSuggestions.bind(this), 200); - this.suggestionNodes = []; - this.suggestionsRequest = null; - this.state = { - suggestions: [], - showSuggestions: false, - suggestionsValue: null, - selectedSuggestion: null, - suggestionsListboxId: '', - suggestionOptionIdPrefix: '' - }; - } - componentDidUpdate(prevProps) { - const { - showSuggestions, - selectedSuggestion - } = this.state; - const { - value, - __experimentalShowInitialSuggestions = false - } = this.props; - - // Only have to worry about scrolling selected suggestion into view - // when already expanded. - if (showSuggestions && selectedSuggestion !== null && this.suggestionNodes[selectedSuggestion] && !this.scrollingIntoView) { - this.scrollingIntoView = true; - lib_default()(this.suggestionNodes[selectedSuggestion], this.autocompleteRef.current, { - onlyScrollIfNeeded: true - }); - this.props.setTimeout(() => { - this.scrollingIntoView = false; - }, 100); - } - - // Update suggestions when the value changes. - if (prevProps.value !== value && !this.props.disableSuggestions) { - if (value?.length) { - // If the new value is not empty we need to update with suggestions for it. - this.updateSuggestions(value); - } else if (__experimentalShowInitialSuggestions) { - // If the new value is empty and we can show initial suggestions, then show initial suggestions. - this.updateSuggestions(); + if (payload && !payload[i].done) { + finished = false; } + if (finished) { + node2.done = true; + } else { + idle = false; + } + if (node2.setValue(position, config2.round)) { + changed = true; + } + }); + const node = getAnimated(this); + const currVal = node.getValue(); + if (idle) { + const finalVal = getFluidValue(anim.to); + if ((currVal !== finalVal || changed) && !config2.decay) { + node.setValue(finalVal); + this._onChange(finalVal); + } else if (changed && config2.decay) { + this._onChange(currVal); + } + this._stop(); + } else if (changed) { + this._onChange(currVal); } } - componentDidMount() { - if (this.shouldShowInitialSuggestions()) { - this.updateSuggestions(); - } - } - componentWillUnmount() { - this.suggestionsRequest?.cancel?.(); - this.suggestionsRequest = null; + /** Set the current value, while stopping the current animation */ + set(value) { + raf.batchedUpdates(() => { + this._stop(); + this._focus(value); + this._set(value); + }); + return this; } - bindSuggestionNode(index) { - return ref => { - this.suggestionNodes[index] = ref; - }; + /** + * Freeze the active animation in time, as well as any updates merged + * before `resume` is called. + */ + pause() { + this._update({ pause: true }); } - shouldShowInitialSuggestions() { - const { - __experimentalShowInitialSuggestions = false, - value - } = this.props; - return __experimentalShowInitialSuggestions && !(value && value.length); + /** Resume the animation if paused. */ + resume() { + this._update({ pause: false }); } - updateSuggestions(value = '') { - const { - __experimentalFetchLinkSuggestions: fetchLinkSuggestions, - __experimentalHandleURLSuggestions: handleURLSuggestions - } = this.props; - if (!fetchLinkSuggestions) { - return; + /** Skip to the end of the current animation. */ + finish() { + if (isAnimating(this)) { + const { to: to2, config: config2 } = this.animation; + raf.batchedUpdates(() => { + this._onStart(); + if (!config2.decay) { + this._set(to2, false); + } + this._stop(); + }); } - - // Initial suggestions may only show if there is no value - // (note: this includes whitespace). - const isInitialSuggestions = !value?.length; - - // Trim only now we've determined whether or not it originally had a "length" - // (even if that value was all whitespace). - value = value.trim(); - - // Allow a suggestions request if: - // - there are at least 2 characters in the search input (except manual searches where - // search input length is not required to trigger a fetch) - // - this is a direct entry (eg: a URL) - if (!isInitialSuggestions && (value.length < 2 || !handleURLSuggestions && (0,external_wp_url_namespaceObject.isURL)(value))) { - this.suggestionsRequest?.cancel?.(); - this.suggestionsRequest = null; - this.setState({ - suggestions: [], - showSuggestions: false, - suggestionsValue: value, - selectedSuggestion: null, - loading: false - }); - return; + return this; + } + /** Push props into the pending queue. */ + update(props) { + const queue = this.queue || (this.queue = []); + queue.push(props); + return this; + } + start(to2, arg2) { + let queue; + if (!is.und(to2)) { + queue = [is.obj(to2) ? to2 : { ...arg2, to: to2 }]; + } else { + queue = this.queue || []; + this.queue = []; } - this.setState({ - selectedSuggestion: null, - loading: true - }); - const request = fetchLinkSuggestions(value, { - isInitialSuggestions - }); - request.then(suggestions => { - // A fetch Promise doesn't have an abort option. It's mimicked by - // comparing the request reference in on the instance, which is - // reset or deleted on subsequent requests or unmounting. - if (this.suggestionsRequest !== request) { - return; - } - this.setState({ - suggestions, - suggestionsValue: value, - loading: false, - showSuggestions: !!suggestions.length - }); - if (!!suggestions.length) { - this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of results. */ - (0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', suggestions.length), suggestions.length), 'assertive'); - } else { - this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.__)('No results.'), 'assertive'); - } - }).catch(() => { - if (this.suggestionsRequest !== request) { - return; - } - this.setState({ - loading: false - }); - }).finally(() => { - // If this is the current promise then reset the reference - // to allow for checking if a new request is made. - if (this.suggestionsRequest === request) { - this.suggestionsRequest = null; - } - }); - - // Note that this assignment is handled *before* the async search request - // as a Promise always resolves on the next tick of the event loop. - this.suggestionsRequest = request; + return Promise.all( + queue.map((props) => { + const up = this._update(props); + return up; + }) + ).then((results) => getCombinedResult(this, results)); } - onChange(event) { - this.props.onChange(event.target.value); + /** + * Stop the current animation, and cancel any delayed updates. + * + * Pass `true` to call `onRest` with `cancelled: true`. + */ + stop(cancel) { + const { to: to2 } = this.animation; + this._focus(this.get()); + stopAsync(this._state, cancel && this._lastCallId); + raf.batchedUpdates(() => this._stop(to2, cancel)); + return this; } - onFocus() { - const { - suggestions - } = this.state; - const { - disableSuggestions, - value - } = this.props; - - // When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value - // Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons) - // or there is already a request in progress. - if (value && !disableSuggestions && !(suggestions && suggestions.length) && this.suggestionsRequest === null) { - // Ensure the suggestions are updated with the current input value. - this.updateSuggestions(value); + /** Restart the animation. */ + reset() { + this._update({ reset: true }); + } + /** @internal */ + eventObserved(event) { + if (event.type == "change") { + this._start(); + } else if (event.type == "priority") { + this.priority = event.priority + 1; } } - onKeyDown(event) { - this.props.onKeyDown?.(event); - const { - showSuggestions, - selectedSuggestion, - suggestions, - loading - } = this.state; - - // If the suggestions are not shown or loading, we shouldn't handle the arrow keys - // We shouldn't preventDefault to allow block arrow keys navigation. - if (!showSuggestions || !suggestions.length || loading) { - // In the Windows version of Firefox the up and down arrows don't move the caret - // within an input field like they do for Mac Firefox/Chrome/Safari. This causes - // a form of focus trapping that is disruptive to the user experience. This disruption - // only happens if the caret is not in the first or last position in the text input. - // See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747 - switch (event.keyCode) { - // When UP is pressed, if the caret is at the start of the text, move it to the 0 - // position. - case external_wp_keycodes_namespaceObject.UP: - { - if (0 !== event.target.selectionStart) { - event.preventDefault(); - - // Set the input caret to position 0. - event.target.setSelectionRange(0, 0); - } - break; - } - // When DOWN is pressed, if the caret is not at the end of the text, move it to the - // last position. - case external_wp_keycodes_namespaceObject.DOWN: - { - if (this.props.value.length !== event.target.selectionStart) { - event.preventDefault(); - - // Set the input caret to the last position. - event.target.setSelectionRange(this.props.value.length, this.props.value.length); - } - break; - } - - // Submitting while loading should trigger onSubmit. - case external_wp_keycodes_namespaceObject.ENTER: - { - if (this.props.onSubmit) { - event.preventDefault(); - this.props.onSubmit(null, event); - } - break; - } + /** + * Parse the `to` and `from` range from the given `props` object. + * + * This also ensures the initial value is available to animated components + * during the render phase. + */ + _prepareNode(props) { + const key = this.key || ""; + let { to: to2, from } = props; + to2 = is.obj(to2) ? to2[key] : to2; + if (to2 == null || isAsyncTo(to2)) { + to2 = void 0; + } + from = is.obj(from) ? from[key] : from; + if (from == null) { + from = void 0; + } + const range = { to: to2, from }; + if (!hasAnimated(this)) { + if (props.reverse) + [to2, from] = [from, to2]; + from = getFluidValue(from); + if (!is.und(from)) { + this._set(from); + } else if (!getAnimated(this)) { + this._set(to2); } - return; } - const suggestion = this.state.suggestions[this.state.selectedSuggestion]; - switch (event.keyCode) { - case external_wp_keycodes_namespaceObject.UP: - { - event.preventDefault(); - const previousIndex = !selectedSuggestion ? suggestions.length - 1 : selectedSuggestion - 1; - this.setState({ - selectedSuggestion: previousIndex - }); - break; - } - case external_wp_keycodes_namespaceObject.DOWN: - { - event.preventDefault(); - const nextIndex = selectedSuggestion === null || selectedSuggestion === suggestions.length - 1 ? 0 : selectedSuggestion + 1; - this.setState({ - selectedSuggestion: nextIndex - }); - break; - } - case external_wp_keycodes_namespaceObject.TAB: - { - if (this.state.selectedSuggestion !== null) { - this.selectLink(suggestion); - // Announce a link has been selected when tabbing away from the input field. - this.props.speak((0,external_wp_i18n_namespaceObject.__)('Link selected.')); + return range; + } + /** Every update is processed by this method before merging. */ + _update({ ...props }, isLoop) { + const { key, defaultProps } = this; + if (props.default) + Object.assign( + defaultProps, + getDefaultProps( + props, + (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value + ) + ); + mergeActiveFn(this, props, "onProps"); + sendEvent(this, "onProps", props, this); + const range = this._prepareNode(props); + if (Object.isFrozen(this)) { + throw Error( + "Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?" + ); + } + const state = this._state; + return scheduleProps(++this._lastCallId, { + key, + props, + defaultProps, + state, + actions: { + pause: () => { + if (!isPaused(this)) { + setPausedBit(this, true); + flushCalls(state.pauseQueue); + sendEvent( + this, + "onPause", + getFinishedResult(this, checkFinished(this, this.animation.to)), + this + ); } - break; - } - case external_wp_keycodes_namespaceObject.ENTER: - { - event.preventDefault(); - if (this.state.selectedSuggestion !== null) { - this.selectLink(suggestion); - if (this.props.onSubmit) { - this.props.onSubmit(suggestion, event); + }, + resume: () => { + if (isPaused(this)) { + setPausedBit(this, false); + if (isAnimating(this)) { + this._resume(); } - } else if (this.props.onSubmit) { - this.props.onSubmit(null, event); + flushCalls(state.resumeQueue); + sendEvent( + this, + "onResume", + getFinishedResult(this, checkFinished(this, this.animation.to)), + this + ); } - break; + }, + start: this._merge.bind(this, range) + } + }).then((result) => { + if (props.loop && result.finished && !(isLoop && result.noop)) { + const nextProps = createLoopUpdate(props); + if (nextProps) { + return this._update(nextProps, true); } - } - } - selectLink(suggestion) { - this.props.onChange(suggestion.url, suggestion); - this.setState({ - selectedSuggestion: null, - showSuggestions: false + } + return result; }); } - handleOnClick(suggestion) { - this.selectLink(suggestion); - // Move focus to the input field when a link suggestion is clicked. - this.inputRef.current.focus(); - } - static getDerivedStateFromProps({ - value, - instanceId, - disableSuggestions, - __experimentalShowInitialSuggestions = false - }, { - showSuggestions - }) { - let shouldShowSuggestions = showSuggestions; - const hasValue = value && value.length; - if (!__experimentalShowInitialSuggestions && !hasValue) { - shouldShowSuggestions = false; + /** Merge props into the current animation */ + _merge(range, props, resolve) { + if (props.cancel) { + this.stop(true); + return resolve(getCancelledResult(this)); } - if (disableSuggestions === true) { - shouldShowSuggestions = false; + const hasToProp = !is.und(range.to); + const hasFromProp = !is.und(range.from); + if (hasToProp || hasFromProp) { + if (props.callId > this._lastToId) { + this._lastToId = props.callId; + } else { + return resolve(getCancelledResult(this)); + } } - return { - showSuggestions: shouldShowSuggestions, - suggestionsListboxId: `block-editor-url-input-suggestions-${instanceId}`, - suggestionOptionIdPrefix: `block-editor-url-input-suggestion-${instanceId}` - }; - } - render() { - return (0,external_React_.createElement)(external_React_.Fragment, null, this.renderControl(), this.renderSuggestions()); - } - renderControl() { - const { - /** Start opting into the new margin-free styles that will become the default in a future version. */ - __nextHasNoMarginBottom = false, - label = null, - className, - isFullWidth, - instanceId, - placeholder = (0,external_wp_i18n_namespaceObject.__)('Paste URL or type to search'), - __experimentalRenderControl: renderControl, - value = '', - hideLabelFromVision = false - } = this.props; - const { - loading, - showSuggestions, - selectedSuggestion, - suggestionsListboxId, - suggestionOptionIdPrefix - } = this.state; - const inputId = `url-input-control-${instanceId}`; - const controlProps = { - id: inputId, - // Passes attribute to label for the for attribute - label, - className: classnames_default()('block-editor-url-input', className, { - 'is-full-width': isFullWidth - }), - hideLabelFromVision - }; - const inputProps = { - id: inputId, - value, - required: true, - className: 'block-editor-url-input__input', - type: 'text', - onChange: this.onChange, - onFocus: this.onFocus, - placeholder, - onKeyDown: this.onKeyDown, - role: 'combobox', - 'aria-label': label ? undefined : (0,external_wp_i18n_namespaceObject.__)('URL'), - // Ensure input always has an accessible label - 'aria-expanded': showSuggestions, - 'aria-autocomplete': 'list', - 'aria-owns': suggestionsListboxId, - 'aria-activedescendant': selectedSuggestion !== null ? `${suggestionOptionIdPrefix}-${selectedSuggestion}` : undefined, - ref: this.inputRef - }; - if (renderControl) { - return renderControl(controlProps, inputProps, loading); + const { key, defaultProps, animation: anim } = this; + const { to: prevTo, from: prevFrom } = anim; + let { to: to2 = prevTo, from = prevFrom } = range; + if (hasFromProp && !hasToProp && (!props.default || is.und(to2))) { + to2 = from; } - if (!__nextHasNoMarginBottom) { - external_wp_deprecated_default()('Bottom margin styles for wp.blockEditor.URLInput', { - since: '6.2', - version: '6.5', - hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version' - }); + if (props.reverse) + [to2, from] = [from, to2]; + const hasFromChanged = !isEqual(from, prevFrom); + if (hasFromChanged) { + anim.from = from; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl, { - __nextHasNoMarginBottom: __nextHasNoMarginBottom, - ...controlProps - }, (0,external_React_.createElement)("input", { - ...inputProps - }), loading && (0,external_React_.createElement)(external_wp_components_namespaceObject.Spinner, null)); - } - renderSuggestions() { - const { - className, - __experimentalRenderSuggestions: renderSuggestions - } = this.props; - const { - showSuggestions, - suggestions, - suggestionsValue, - selectedSuggestion, - suggestionsListboxId, - suggestionOptionIdPrefix, - loading - } = this.state; - if (!showSuggestions || suggestions.length === 0) { - return null; + from = getFluidValue(from); + const hasToChanged = !isEqual(to2, prevTo); + if (hasToChanged) { + this._focus(to2); } - const suggestionsListProps = { - id: suggestionsListboxId, - ref: this.autocompleteRef, - role: 'listbox' - }; - const buildSuggestionItemProps = (suggestion, index) => { - return { - role: 'option', - tabIndex: '-1', - id: `${suggestionOptionIdPrefix}-${index}`, - ref: this.bindSuggestionNode(index), - 'aria-selected': index === selectedSuggestion ? true : undefined - }; - }; - if (isFunction(renderSuggestions)) { - return renderSuggestions({ - suggestions, - selectedSuggestion, - suggestionsListProps, - buildSuggestionItemProps, - isLoading: loading, - handleSuggestionClick: this.handleOnClick, - isInitialSuggestions: !suggestionsValue?.length, - currentInputValue: suggestionsValue - }); + const hasAsyncTo = isAsyncTo(props.to); + const { config: config2 } = anim; + const { decay, velocity } = config2; + if (hasToProp || hasFromProp) { + config2.velocity = 0; + } + if (props.config && !hasAsyncTo) { + mergeConfig( + config2, + callProp(props.config, key), + // Avoid calling the same "config" prop twice. + props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0 + ); + } + let node = getAnimated(this); + if (!node || is.und(to2)) { + return resolve(getFinishedResult(this, true)); + } + const reset = ( + // When `reset` is undefined, the `from` prop implies `reset: true`, + // except for declarative updates. When `reset` is defined, there + // must exist a value to animate from. + is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key) + ); + const value = reset ? from : this.get(); + const goal = computeGoal(to2); + const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal); + const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key)); + if (hasToChanged) { + const nodeType = getAnimatedType(to2); + if (nodeType !== node.constructor) { + if (immediate) { + node = this._set(goal); + } else + throw Error( + `Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the "to" prop suggests` + ); + } + } + const goalType = node.constructor; + let started = hasFluidValue(to2); + let finished = false; + if (!started) { + const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged; + if (hasToChanged || hasValueChanged) { + finished = isEqual(computeGoal(value), goal); + started = !finished; + } + if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config2.decay, decay) || !isEqual(config2.velocity, velocity)) { + started = true; + } + } + if (finished && isAnimating(this)) { + if (anim.changed && !reset) { + started = true; + } else if (!started) { + this._stop(prevTo); + } + } + if (!hasAsyncTo) { + if (started || hasFluidValue(prevTo)) { + anim.values = node.getPayload(); + anim.toValues = hasFluidValue(to2) ? null : goalType == AnimatedString ? [1] : toArray(goal); + } + if (anim.immediate != immediate) { + anim.immediate = immediate; + if (!immediate && !reset) { + this._set(prevTo); + } + } + if (started) { + const { onRest } = anim; + react_spring_shared_modern_each(ACTIVE_EVENTS, (type) => mergeActiveFn(this, props, type)); + const result = getFinishedResult(this, checkFinished(this, prevTo)); + flushCalls(this._pendingCalls, result); + this._pendingCalls.add(resolve); + if (anim.changed) + raf.batchedUpdates(() => { + anim.changed = !reset; + onRest?.(result, this); + if (reset) { + callProp(defaultProps.onRest, result); + } else { + anim.onStart?.(result, this); + } + }); + } + } + if (reset) { + this._set(value); + } + if (hasAsyncTo) { + resolve(runAsync(props.to, props, this._state, this)); + } else if (started) { + this._start(); + } else if (isAnimating(this) && !hasToChanged) { + this._pendingCalls.add(resolve); + } else { + resolve(getNoopResult(value)); } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - placement: "bottom", - focusOnMount: false - }, (0,external_React_.createElement)("div", { - ...suggestionsListProps, - className: classnames_default()('block-editor-url-input__suggestions', `${className}__suggestions`) - }, suggestions.map((suggestion, index) => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...buildSuggestionItemProps(suggestion, index), - key: suggestion.id, - className: classnames_default()('block-editor-url-input__suggestion', { - 'is-selected': index === selectedSuggestion - }), - onClick: () => this.handleOnClick(suggestion) - }, suggestion.title)))); - } -} - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md - */ -/* harmony default export */ var url_input = ((0,external_wp_compose_namespaceObject.compose)(external_wp_compose_namespaceObject.withSafeTimeout, external_wp_components_namespaceObject.withSpokenMessages, external_wp_compose_namespaceObject.withInstanceId, (0,external_wp_data_namespaceObject.withSelect)((select, props) => { - // If a link suggestions handler is already provided then - // bail. - if (isFunction(props.__experimentalFetchLinkSuggestions)) { - return; - } - const { - getSettings - } = select(store); - return { - __experimentalFetchLinkSuggestions: getSettings().__experimentalFetchLinkSuggestions - }; -}))(URLInput)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js - -/** - * WordPress dependencies - */ - -const plus = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" -})); -/* harmony default export */ var library_plus = (plus); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-create-button.js - -/** - * WordPress dependencies - */ - - - - -const LinkControlSearchCreate = ({ - searchTerm, - onClick, - itemProps, - buttonText -}) => { - if (!searchTerm) { - return null; } - let text; - if (buttonText) { - text = typeof buttonText === 'function' ? buttonText(searchTerm) : buttonText; - } else { - text = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: search term. */ - (0,external_wp_i18n_namespaceObject.__)('Create: %s'), searchTerm), { - mark: (0,external_React_.createElement)("mark", null) - }); + /** Update the `animation.to` value, which might be a `FluidValue` */ + _focus(value) { + const anim = this.animation; + if (value !== anim.to) { + if (getFluidObservers(this)) { + this._detach(); + } + anim.to = value; + if (getFluidObservers(this)) { + this._attach(); + } + } } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - ...itemProps, - iconPosition: "left", - icon: library_plus, - className: "block-editor-link-control__search-item", - onClick: onClick - }, text); -}; -/* harmony default export */ var search_create_button = (LinkControlSearchCreate); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js - -/** - * WordPress dependencies - */ - -const postList = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18 5.5H6a.5.5 0 0 0-.5.5v12a.5.5 0 0 0 .5.5h12a.5.5 0 0 0 .5-.5V6a.5.5 0 0 0-.5-.5ZM6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Zm1 5h1.5v1.5H7V9Zm1.5 4.5H7V15h1.5v-1.5ZM10 9h7v1.5h-7V9Zm7 4.5h-7V15h7v-1.5Z" -})); -/* harmony default export */ var post_list = (postList); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js - -/** - * WordPress dependencies - */ - -const page = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z" -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z" -})); -/* harmony default export */ var library_page = (page); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js - -/** - * WordPress dependencies - */ - -const tag = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M4.75 4a.75.75 0 0 0-.75.75v7.826c0 .2.08.39.22.53l6.72 6.716a2.313 2.313 0 0 0 3.276-.001l5.61-5.611-.531-.53.532.528a2.315 2.315 0 0 0 0-3.264L13.104 4.22a.75.75 0 0 0-.53-.22H4.75ZM19 12.576a.815.815 0 0 1-.236.574l-5.61 5.611a.814.814 0 0 1-1.153 0L5.5 12.264V5.5h6.763l6.5 6.502a.816.816 0 0 1 .237.574ZM8.75 9.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" -})); -/* harmony default export */ var library_tag = (tag); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js - -/** - * WordPress dependencies - */ - -const category = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z", - fillRule: "evenodd", - clipRule: "evenodd" -})); -/* harmony default export */ var library_category = (category); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js - -/** - * WordPress dependencies - */ - -const file = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z" -})); -/* harmony default export */ var library_file = (file); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/globe.js - -/** - * WordPress dependencies - */ - -const globe = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 3.3c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8s-4-8.8-8.8-8.8zm6.5 5.5h-2.6C15.4 7.3 14.8 6 14 5c2 .6 3.6 2 4.5 3.8zm.7 3.2c0 .6-.1 1.2-.2 1.8h-2.9c.1-.6.1-1.2.1-1.8s-.1-1.2-.1-1.8H19c.2.6.2 1.2.2 1.8zM12 18.7c-1-.7-1.8-1.9-2.3-3.5h4.6c-.5 1.6-1.3 2.9-2.3 3.5zm-2.6-4.9c-.1-.6-.1-1.1-.1-1.8 0-.6.1-1.2.1-1.8h5.2c.1.6.1 1.1.1 1.8s-.1 1.2-.1 1.8H9.4zM4.8 12c0-.6.1-1.2.2-1.8h2.9c-.1.6-.1 1.2-.1 1.8 0 .6.1 1.2.1 1.8H5c-.2-.6-.2-1.2-.2-1.8zM12 5.3c1 .7 1.8 1.9 2.3 3.5H9.7c.5-1.6 1.3-2.9 2.3-3.5zM10 5c-.8 1-1.4 2.3-1.8 3.8H5.5C6.4 7 8 5.6 10 5zM5.5 15.3h2.6c.4 1.5 1 2.8 1.8 3.7-1.8-.6-3.5-2-4.4-3.7zM14 19c.8-1 1.4-2.2 1.8-3.7h2.6C17.6 17 16 18.4 14 19z" -})); -/* harmony default export */ var library_globe = (globe); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/home.js - -/** - * WordPress dependencies - */ - -const home = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z" -})); -/* harmony default export */ var library_home = (home); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js - -/** - * WordPress dependencies - */ - -const verse = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z" -})); -/* harmony default export */ var library_verse = (verse); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-item.js - -/** - * WordPress dependencies - */ - - - - - - -const ICONS_MAP = { - post: post_list, - page: library_page, - post_tag: library_tag, - category: library_category, - attachment: library_file -}; -function SearchItemIcon({ - isURL, - suggestion -}) { - let icon = null; - if (isURL) { - icon = library_globe; - } else if (suggestion.type in ICONS_MAP) { - icon = ICONS_MAP[suggestion.type]; - if (suggestion.type === 'page') { - if (suggestion.isFrontPage) { - icon = library_home; + _attach() { + let priority = 0; + const { to: to2 } = this.animation; + if (hasFluidValue(to2)) { + addFluidObserver(to2, this); + if (isFrameValue(to2)) { + priority = to2.priority + 1; } - if (suggestion.isBlogHome) { - icon = library_verse; + } + this.priority = priority; + } + _detach() { + const { to: to2 } = this.animation; + if (hasFluidValue(to2)) { + removeFluidObserver(to2, this); + } + } + /** + * Update the current value from outside the frameloop, + * and return the `Animated` node. + */ + _set(arg, idle = true) { + const value = getFluidValue(arg); + if (!is.und(value)) { + const oldNode = getAnimated(this); + if (!oldNode || !isEqual(value, oldNode.getValue())) { + const nodeType = getAnimatedType(value); + if (!oldNode || oldNode.constructor != nodeType) { + setAnimated(this, nodeType.create(value)); + } else { + oldNode.setValue(value); + } + if (oldNode) { + raf.batchedUpdates(() => { + this._onChange(value, idle); + }); + } } } + return getAnimated(this); } - if (icon) { - return (0,external_React_.createElement)(build_module_icon, { - className: "block-editor-link-control__search-item-icon", - icon: icon + _onStart() { + const anim = this.animation; + if (!anim.changed) { + anim.changed = true; + sendEvent( + this, + "onStart", + getFinishedResult(this, checkFinished(this, anim.to)), + this + ); + } + } + _onChange(value, idle) { + if (!idle) { + this._onStart(); + callProp(this.animation.onChange, value, this); + } + callProp(this.defaultProps.onChange, value, this); + super._onChange(value, idle); + } + // This method resets the animation state (even if already animating) to + // ensure the latest from/to range is used, and it also ensures this spring + // is added to the frameloop. + _start() { + const anim = this.animation; + getAnimated(this).reset(getFluidValue(anim.to)); + if (!anim.immediate) { + anim.fromValues = anim.values.map((node) => node.lastPosition); + } + if (!isAnimating(this)) { + setActiveBit(this, true); + if (!isPaused(this)) { + this._resume(); + } + } + } + _resume() { + if (globals_exports.skipAnimation) { + this.finish(); + } else { + frameLoop.start(this); + } + } + /** + * Exit the frameloop and notify `onRest` listeners. + * + * Always wrap `_stop` calls with `batchedUpdates`. + */ + _stop(goal, cancel) { + if (isAnimating(this)) { + setActiveBit(this, false); + const anim = this.animation; + react_spring_shared_modern_each(anim.values, (node) => { + node.done = true; + }); + if (anim.toValues) { + anim.onChange = anim.onPause = anim.onResume = void 0; + } + callFluidObservers(this, { + type: "idle", + parent: this + }); + const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal ?? anim.to)); + flushCalls(this._pendingCalls, result); + if (anim.changed) { + anim.changed = false; + sendEvent(this, "onRest", result, this); + } + } + } +}; +function checkFinished(target, to2) { + const goal = computeGoal(to2); + const value = computeGoal(target.get()); + return isEqual(value, goal); +} +function createLoopUpdate(props, loop = props.loop, to2 = props.to) { + const loopRet = callProp(loop); + if (loopRet) { + const overrides = loopRet !== true && inferTo(loopRet); + const reverse = (overrides || props).reverse; + const reset = !overrides || overrides.reset; + return createUpdate({ + ...props, + loop, + // Avoid updating default props when looping. + default: false, + // Never loop the `pause` prop. + pause: void 0, + // For the "reverse" prop to loop as expected, the "to" prop + // must be undefined. The "reverse" prop is ignored when the + // "to" prop is an array or function. + to: !reverse || isAsyncTo(to2) ? to2 : void 0, + // Ignore the "from" prop except on reset. + from: reset ? props.from : void 0, + reset, + // The "loop" prop can return a "useSpring" props object to + // override any of the original props. + ...overrides }); } - return null; } - -/** - * Adds a leading slash to a url if it doesn't already have one. - * @param {string} url the url to add a leading slash to. - * @return {string} the url with a leading slash. - */ -function addLeadingSlash(url) { - const trimmedURL = url?.trim(); - if (!trimmedURL?.length) return url; - return url?.replace(/^\/?/, '/'); +function createUpdate(props) { + const { to: to2, from } = props = inferTo(props); + const keys = /* @__PURE__ */ new Set(); + if (is.obj(to2)) + findDefined(to2, keys); + if (is.obj(from)) + findDefined(from, keys); + props.keys = keys.size ? Array.from(keys) : null; + return props; } -function removeTrailingSlash(url) { - const trimmedURL = url?.trim(); - if (!trimmedURL?.length) return url; - return url?.replace(/\/$/, ''); +function declareUpdate(props) { + const update2 = createUpdate(props); + if (is.und(update2.default)) { + update2.default = getDefaultProps(update2); + } + return update2; } -const partialRight = (fn, ...partialArgs) => (...args) => fn(...args, ...partialArgs); -const defaultTo = d => v => { - return v === null || v === undefined || v !== v ? d : v; -}; - -/** - * Prepares a URL for display in the UI. - * - decodes the URL. - * - filters it (removes protocol, www, etc.). - * - truncates it if necessary. - * - adds a leading slash. - * @param {string} url the url. - * @return {string} the processed url to display. - */ -function getURLForDisplay(url) { - if (!url) return url; - return (0,external_wp_compose_namespaceObject.pipe)(external_wp_url_namespaceObject.safeDecodeURI, external_wp_url_namespaceObject.getPath, defaultTo(''), partialRight(external_wp_url_namespaceObject.filterURLForDisplay, 24), removeTrailingSlash, addLeadingSlash)(url); +function findDefined(values, keys) { + eachProp(values, (value, key) => value != null && keys.add(key)); } -const LinkControlSearchItem = ({ - itemProps, - suggestion, - searchTerm, - onClick, - isURL = false, - shouldShowType = false -}) => { - const info = isURL ? (0,external_wp_i18n_namespaceObject.__)('Press ENTER to add this link') : getURLForDisplay(suggestion.url); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - ...itemProps, - info: info, - iconPosition: "left", - icon: (0,external_React_.createElement)(SearchItemIcon, { - suggestion: suggestion, - isURL: isURL - }), - onClick: onClick, - shortcut: shouldShowType && getVisualTypeName(suggestion), - className: "block-editor-link-control__search-item" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.TextHighlight - // The component expects a plain text string. - , { - text: (0,external_wp_dom_namespaceObject.__unstableStripHTML)(suggestion.title), - highlight: searchTerm - })); -}; -function getVisualTypeName(suggestion) { - if (suggestion.isFrontPage) { - return 'front page'; - } - if (suggestion.isBlogHome) { - return 'blog home'; - } - - // Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label. - return suggestion.type === 'post_tag' ? 'tag' : suggestion.type; +var ACTIVE_EVENTS = [ + "onStart", + "onRest", + "onChange", + "onPause", + "onResume" +]; +function mergeActiveFn(target, props, type) { + target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : void 0; +} +function sendEvent(target, type, ...args) { + target.animation[type]?.(...args); + target.defaultProps[type]?.(...args); } -/* harmony default export */ var search_item = (LinkControlSearchItem); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/constants.js -/** - * WordPress dependencies - */ - - -// Used as a unique identifier for the "Create" option within search results. -// Used to help distinguish the "Create" suggestion within the search results in -// order to handle it as a unique case. -const CREATE_TYPE = '__CREATE__'; -const TEL_TYPE = 'tel'; -const URL_TYPE = 'link'; -const MAILTO_TYPE = 'mailto'; -const INTERNAL_TYPE = 'internal'; -const LINK_ENTRY_TYPES = [URL_TYPE, MAILTO_TYPE, TEL_TYPE, INTERNAL_TYPE]; -const DEFAULT_LINK_SETTINGS = [{ - id: 'opensInNewTab', - title: (0,external_wp_i18n_namespaceObject.__)('Open in new tab') -}]; - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-results.js - -/** - * WordPress dependencies - */ - +// src/Controller.ts -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -function LinkControlSearchResults({ - instanceId, - withCreateSuggestion, - currentInputValue, - handleSuggestionClick, - suggestionsListProps, - buildSuggestionItemProps, - suggestions, - selectedSuggestion, - isLoading, - isInitialSuggestions, - createSuggestionButtonText, - suggestionsQuery -}) { - const resultsListClasses = classnames_default()('block-editor-link-control__search-results', { - 'is-loading': isLoading - }); - const isSingleDirectEntryResult = suggestions.length === 1 && LINK_ENTRY_TYPES.includes(suggestions[0].type); - const shouldShowCreateSuggestion = withCreateSuggestion && !isSingleDirectEntryResult && !isInitialSuggestions; - // If the query has a specified type, then we can skip showing them in the result. See #24839. - const shouldShowSuggestionsTypes = !suggestionsQuery?.type; - - // According to guidelines aria-label should be added if the label - // itself is not visible. - // See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role - const searchResultsLabelId = `block-editor-link-control-search-results-label-${instanceId}`; - const labelText = isInitialSuggestions ? (0,external_wp_i18n_namespaceObject.__)('Suggestions') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: search term. */ - (0,external_wp_i18n_namespaceObject.__)('Search results for "%s"'), currentInputValue); - const searchResultsLabel = (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: searchResultsLabelId - }, labelText); - return (0,external_React_.createElement)("div", { - className: "block-editor-link-control__search-results-wrapper" - }, searchResultsLabel, (0,external_React_.createElement)("div", { - ...suggestionsListProps, - className: resultsListClasses, - "aria-labelledby": searchResultsLabelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, suggestions.map((suggestion, index) => { - if (shouldShowCreateSuggestion && CREATE_TYPE === suggestion.type) { - return (0,external_React_.createElement)(search_create_button, { - searchTerm: currentInputValue, - buttonText: createSuggestionButtonText, - onClick: () => handleSuggestionClick(suggestion) - // Intentionally only using `type` here as - // the constant is enough to uniquely - // identify the single "CREATE" suggestion. - , - key: suggestion.type, - itemProps: buildSuggestionItemProps(suggestion, index), - isSelected: index === selectedSuggestion - }); +var BATCHED_EVENTS = ["onStart", "onChange", "onRest"]; +var nextId2 = 1; +var Controller = class { + constructor(props, flush3) { + this.id = nextId2++; + /** The animated values */ + this.springs = {}; + /** The queue of props passed to the `update` method. */ + this.queue = []; + /** The counter for tracking `scheduleProps` calls */ + this._lastAsyncId = 0; + /** The values currently being animated */ + this._active = /* @__PURE__ */ new Set(); + /** The values that changed recently */ + this._changed = /* @__PURE__ */ new Set(); + /** Equals false when `onStart` listeners can be called */ + this._started = false; + /** State used by the `runAsync` function */ + this._state = { + paused: false, + pauseQueue: /* @__PURE__ */ new Set(), + resumeQueue: /* @__PURE__ */ new Set(), + timeouts: /* @__PURE__ */ new Set() + }; + /** The event queues that are flushed once per frame maximum */ + this._events = { + onStart: /* @__PURE__ */ new Map(), + onChange: /* @__PURE__ */ new Map(), + onRest: /* @__PURE__ */ new Map() + }; + this._onFrame = this._onFrame.bind(this); + if (flush3) { + this._flush = flush3; } - - // If we're not handling "Create" suggestions above then - // we don't want them in the main results so exit early. - if (CREATE_TYPE === suggestion.type) { - return null; + if (props) { + this.start({ default: true, ...props }); } - return (0,external_React_.createElement)(search_item, { - key: `${suggestion.id}-${suggestion.type}`, - itemProps: buildSuggestionItemProps(suggestion, index), - suggestion: suggestion, - index: index, - onClick: () => { - handleSuggestionClick(suggestion); - }, - isSelected: index === selectedSuggestion, - isURL: LINK_ENTRY_TYPES.includes(suggestion.type), - searchTerm: currentInputValue, - shouldShowType: shouldShowSuggestionsTypes, - isFrontPage: suggestion?.isFrontPage, - isBlogHome: suggestion?.isBlogHome + } + /** + * Equals `true` when no spring values are in the frameloop, and + * no async animation is currently active. + */ + get idle() { + return !this._state.asyncTo && Object.values(this.springs).every((spring) => { + return spring.idle && !spring.isDelayed && !spring.isPaused; }); - })))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/is-url-like.js -/** - * WordPress dependencies - */ - - -/** - * Determines whether a given value could be a URL. Note this does not - * guarantee the value is a URL only that it looks like it might be one. For - * example, just because a string has `www.` in it doesn't make it a URL, - * but it does make it highly likely that it will be so in the context of - * creating a link it makes sense to treat it like one. - * - * @param {string} val the candidate for being URL-like (or not). - * - * @return {boolean} whether or not the value is potentially a URL. - */ -function isURLLike(val) { - const hasSpaces = val.includes(' '); - if (hasSpaces) { - return false; } - const protocol = (0,external_wp_url_namespaceObject.getProtocol)(val); - const protocolIsValid = (0,external_wp_url_namespaceObject.isValidProtocol)(protocol); - const mayBeTLD = hasPossibleTLD(val); - const isWWW = val?.startsWith('www.'); - const isInternal = val?.startsWith('#') && (0,external_wp_url_namespaceObject.isValidFragment)(val); - return protocolIsValid || isWWW || isInternal || mayBeTLD; -} - -/** - * Checks if a given URL has a valid Top-Level Domain (TLD). - * - * @param {string} url - The URL to check. - * @param {number} maxLength - The maximum length of the TLD. - * @return {boolean} Returns true if the URL has a valid TLD, false otherwise. - */ -function hasPossibleTLD(url, maxLength = 6) { - // Clean the URL by removing anything after the first occurrence of "?" or "#". - const cleanedURL = url.split(/[?#]/)[0]; - - // Regular expression explanation: - // - (?<=\S) : Positive lookbehind assertion to ensure there is at least one non-whitespace character before the TLD - // - \. : Matches a literal dot (.) - // - [a-zA-Z_]{2,maxLength} : Matches 2 to maxLength letters or underscores, representing the TLD - // - (?:\/|$) : Non-capturing group that matches either a forward slash (/) or the end of the string - const regex = new RegExp(`(?<=\\S)\\.(?:[a-zA-Z_]{2,${maxLength}})(?:\\/|$)`); - return regex.test(cleanedURL); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-search-handler.js -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - -const handleNoop = () => Promise.resolve([]); -const handleDirectEntry = val => { - let type = URL_TYPE; - const protocol = (0,external_wp_url_namespaceObject.getProtocol)(val) || ''; - if (protocol.includes('mailto')) { - type = MAILTO_TYPE; + get item() { + return this._item; } - if (protocol.includes('tel')) { - type = TEL_TYPE; + set item(item) { + this._item = item; } - if (val?.startsWith('#')) { - type = INTERNAL_TYPE; + /** Get the current values of our springs */ + get() { + const values = {}; + this.each((spring, key) => values[key] = spring.get()); + return values; } - return Promise.resolve([{ - id: val, - title: val, - url: type === 'URL' ? (0,external_wp_url_namespaceObject.prependHTTP)(val) : val, - type - }]); -}; -const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions, withCreateSuggestion, pageOnFront, pageForPosts) => { - const { - isInitialSuggestions - } = suggestionsQuery; - const results = await fetchSearchSuggestions(val, suggestionsQuery); - - // Identify front page and update type to match. - results.map(result => { - if (Number(result.id) === pageOnFront) { - result.isFrontPage = true; - return result; - } else if (Number(result.id) === pageForPosts) { - result.isBlogHome = true; - return result; + /** Set the current values without animating. */ + set(values) { + for (const key in values) { + const value = values[key]; + if (!is.und(value)) { + this.springs[key].set(value); + } } - return result; - }); - - // If displaying initial suggestions just return plain results. - if (isInitialSuggestions) { - return results; } - - // Here we append a faux suggestion to represent a "CREATE" option. This - // is detected in the rendering of the search results and handled as a - // special case. This is currently necessary because the suggestions - // dropdown will only appear if there are valid suggestions and - // therefore unless the create option is a suggestion it will not - // display in scenarios where there are no results returned from the - // API. In addition promoting CREATE to a first class suggestion affords - // the a11y benefits afforded by `URLInput` to all suggestions (eg: - // keyboard handling, ARIA roles...etc). - // - // Note also that the value of the `title` and `url` properties must correspond - // to the text value of the ``. This is because `title` is used - // when creating the suggestion. Similarly `url` is used when using keyboard to select - // the suggestion (the
`onSubmit` handler falls-back to `url`). - return isURLLike(val) || !withCreateSuggestion ? results : results.concat({ - // the `id` prop is intentionally ommitted here because it - // is never exposed as part of the component's public API. - // see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316. - title: val, - // Must match the existing ``s text value. - url: val, - // Must match the existing ``s text value. - type: CREATE_TYPE - }); -}; -function useSearchHandler(suggestionsQuery, allowDirectEntry, withCreateSuggestion) { - const { - fetchSearchSuggestions, - pageOnFront, - pageForPosts - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings - } = select(store); - return { - pageOnFront: getSettings().pageOnFront, - pageForPosts: getSettings().pageForPosts, - fetchSearchSuggestions: getSettings().__experimentalFetchLinkSuggestions - }; - }, []); - const directEntryHandler = allowDirectEntry ? handleDirectEntry : handleNoop; - return (0,external_wp_element_namespaceObject.useCallback)((val, { - isInitialSuggestions - }) => { - return isURLLike(val) ? directEntryHandler(val, { - isInitialSuggestions - }) : handleEntitySearch(val, { - ...suggestionsQuery, - isInitialSuggestions - }, fetchSearchSuggestions, withCreateSuggestion, pageOnFront, pageForPosts); - }, [directEntryHandler, fetchSearchSuggestions, pageOnFront, pageForPosts, suggestionsQuery, withCreateSuggestion]); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-input.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - -// Must be a function as otherwise URLInput will default -// to the fetchLinkSuggestions passed in block editor settings -// which will cause an unintended http request. -const noopSearchHandler = () => Promise.resolve([]); -const noop = () => {}; -const LinkControlSearchInput = (0,external_wp_element_namespaceObject.forwardRef)(({ - value, - children, - currentLink = {}, - className = null, - placeholder = null, - withCreateSuggestion = false, - onCreateSuggestion = noop, - onChange = noop, - onSelect = noop, - showSuggestions = true, - renderSuggestions = props => (0,external_React_.createElement)(LinkControlSearchResults, { - ...props - }), - fetchSuggestions = null, - allowDirectEntry = true, - showInitialSuggestions = false, - suggestionsQuery = {}, - withURLSuggestion = true, - createSuggestionButtonText, - hideLabelFromVision = false -}, ref) => { - const genericSearchHandler = useSearchHandler(suggestionsQuery, allowDirectEntry, withCreateSuggestion, withURLSuggestion); - const searchHandler = showSuggestions ? fetchSuggestions || genericSearchHandler : noopSearchHandler; - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkControlSearchInput); - const [focusedSuggestion, setFocusedSuggestion] = (0,external_wp_element_namespaceObject.useState)(); - + /** Push an update onto the queue of each value. */ + update(props) { + if (props) { + this.queue.push(createUpdate(props)); + } + return this; + } /** - * Handles the user moving between different suggestions. Does not handle - * choosing an individual item. + * Start the queued animations for every spring, and resolve the returned + * promise once all queued animations have finished or been cancelled. * - * @param {string} selection the url of the selected suggestion. - * @param {Object} suggestion the suggestion object. + * When you pass a queue (instead of nothing), that queue is used instead of + * the queued animations added with the `update` method, which are left alone. */ - const onInputChange = (selection, suggestion) => { - onChange(selection); - setFocusedSuggestion(suggestion); - }; - const handleRenderSuggestions = props => renderSuggestions({ - ...props, - instanceId, - withCreateSuggestion, - createSuggestionButtonText, - suggestionsQuery, - handleSuggestionClick: suggestion => { - if (props.handleSuggestionClick) { - props.handleSuggestionClick(suggestion); - } - onSuggestionSelected(suggestion); + start(props) { + let { queue } = this; + if (props) { + queue = toArray(props).map(createUpdate); + } else { + this.queue = []; } - }); - const onSuggestionSelected = async selectedSuggestion => { - let suggestion = selectedSuggestion; - if (CREATE_TYPE === selectedSuggestion.type) { - // Create a new page and call onSelect with the output from the onCreateSuggestion callback. - try { - suggestion = await onCreateSuggestion(selectedSuggestion.title); - if (suggestion?.url) { - onSelect(suggestion); - } - } catch (e) {} - return; + if (this._flush) { + return this._flush(this, queue); } - if (allowDirectEntry || suggestion && Object.keys(suggestion).length >= 1) { - const { - id, - url, - ...restLinkProps - } = currentLink !== null && currentLink !== void 0 ? currentLink : {}; - onSelect( - // Some direct entries don't have types or IDs, and we still need to clear the previous ones. - { - ...restLinkProps, - ...suggestion - }, suggestion); + prepareKeys(this, queue); + return flushUpdateQueue(this, queue); + } + /** @internal */ + stop(arg, keys) { + if (arg !== !!arg) { + keys = arg; } - }; - return (0,external_React_.createElement)("div", { - className: "block-editor-link-control__search-input-container" - }, (0,external_React_.createElement)(url_input, { - disableSuggestions: currentLink?.url === value, - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Link'), - hideLabelFromVision: hideLabelFromVision, - className: className, - value: value, - onChange: onInputChange, - placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : (0,external_wp_i18n_namespaceObject.__)('Search or type url'), - __experimentalRenderSuggestions: showSuggestions ? handleRenderSuggestions : null, - __experimentalFetchLinkSuggestions: searchHandler, - __experimentalHandleURLSuggestions: true, - __experimentalShowInitialSuggestions: showInitialSuggestions, - onSubmit: (suggestion, event) => { - const hasSuggestion = suggestion || focusedSuggestion; - - // If there is no suggestion and the value (ie: any manually entered URL) is empty - // then don't allow submission otherwise we get empty links. - if (!hasSuggestion && !value?.trim()?.length) { - event.preventDefault(); - } else { - onSuggestionSelected(hasSuggestion || { - url: value - }); + if (keys) { + const springs = this.springs; + react_spring_shared_modern_each(toArray(keys), (key) => springs[key].stop(!!arg)); + } else { + stopAsync(this._state, this._lastAsyncId); + this.each((spring) => spring.stop(!!arg)); + } + return this; + } + /** Freeze the active animation in time */ + pause(keys) { + if (is.und(keys)) { + this.start({ pause: true }); + } else { + const springs = this.springs; + react_spring_shared_modern_each(toArray(keys), (key) => springs[key].pause()); + } + return this; + } + /** Resume the animation if paused. */ + resume(keys) { + if (is.und(keys)) { + this.start({ pause: false }); + } else { + const springs = this.springs; + react_spring_shared_modern_each(toArray(keys), (key) => springs[key].resume()); + } + return this; + } + /** Call a function once per spring value */ + each(iterator) { + eachProp(this.springs, iterator); + } + /** @internal Called at the end of every animation frame */ + _onFrame() { + const { onStart, onChange, onRest } = this._events; + const active = this._active.size > 0; + const changed = this._changed.size > 0; + if (active && !this._started || changed && !this._started) { + this._started = true; + flush(onStart, ([onStart2, result]) => { + result.value = this.get(); + onStart2(result, this, this._item); + }); + } + const idle = !active && this._started; + const values = changed || idle && onRest.size ? this.get() : null; + if (changed && onChange.size) { + flush(onChange, ([onChange2, result]) => { + result.value = values; + onChange2(result, this, this._item); + }); + } + if (idle) { + this._started = false; + flush(onRest, ([onRest2, result]) => { + result.value = values; + onRest2(result, this, this._item); + }); + } + } + /** @internal */ + eventObserved(event) { + if (event.type == "change") { + this._changed.add(event.parent); + if (!event.idle) { + this._active.add(event.parent); } - }, - ref: ref - }), children); -}); -/* harmony default export */ var search_input = (LinkControlSearchInput); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/info.js - -/** - * WordPress dependencies - */ - -const info = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z" -})); -/* harmony default export */ var library_info = (info); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js - -/** - * WordPress dependencies - */ - -const pencil = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z" -})); -/* harmony default export */ var library_pencil = (pencil); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js -/** - * Internal dependencies - */ - - -/* harmony default export */ var edit = (library_pencil); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js - -/** - * WordPress dependencies - */ - -const linkOff = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z" -})); -/* harmony default export */ var link_off = (linkOff); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/copy.js - -/** - * WordPress dependencies - */ - -const copy_copy = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5 4.5h11a.5.5 0 0 1 .5.5v11a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5ZM3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm17 3v10.75c0 .69-.56 1.25-1.25 1.25H6v1.5h12.75a2.75 2.75 0 0 0 2.75-2.75V8H20Z" -})); -/* harmony default export */ var library_copy = (copy_copy); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/viewer-slot.js -/** - * WordPress dependencies - */ - -const { - Slot: ViewerSlot, - Fill: ViewerFill -} = (0,external_wp_components_namespaceObject.createSlotFill)('BlockEditorLinkControlViewer'); - -/* harmony default export */ var viewer_slot = ((/* unused pure expression or super */ null && (ViewerSlot))); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-rich-url-data.js -/** - * Internal dependencies - */ - - -/** - * WordPress dependencies - */ - - -function use_rich_url_data_reducer(state, action) { - switch (action.type) { - case 'RESOLVED': - return { - ...state, - isFetching: false, - richData: action.richData - }; - case 'ERROR': - return { - ...state, - isFetching: false, - richData: null - }; - case 'LOADING': - return { - ...state, - isFetching: true - }; - default: - throw new Error(`Unexpected action type ${action.type}`); - } -} -function useRemoteUrlData(url) { - const [state, dispatch] = (0,external_wp_element_namespaceObject.useReducer)(use_rich_url_data_reducer, { - richData: null, - isFetching: false - }); - const { - fetchRichUrlData - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings - } = select(store); - return { - fetchRichUrlData: getSettings().__experimentalFetchRichUrlData - }; - }, []); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // Only make the request if we have an actual URL - // and the fetching util is available. In some editors - // there may not be such a util. - if (url?.length && fetchRichUrlData && typeof AbortController !== 'undefined') { - dispatch({ - type: 'LOADING' - }); - const controller = new window.AbortController(); - const signal = controller.signal; - fetchRichUrlData(url, { - signal - }).then(urlData => { - dispatch({ - type: 'RESOLVED', - richData: urlData - }); - }).catch(() => { - // Avoid setting state on unmounted component - if (!signal.aborted) { - dispatch({ - type: 'ERROR' - }); - } - }); - // Cleanup: when the URL changes the abort the current request. - return () => { - controller.abort(); - }; - } - }, [url]); - return state; -} -/* harmony default export */ var use_rich_url_data = (useRemoteUrlData); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/link-preview.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - - - - -/** - * Internal dependencies - */ - - -function LinkPreview({ - value, - onEditClick, - hasRichPreviews = false, - hasUnlinkControl = false, - onRemove, - additionalControls -}) { - // Avoid fetching if rich previews are not desired. - const showRichPreviews = hasRichPreviews ? value?.url : null; - const { - richData, - isFetching - } = use_rich_url_data(showRichPreviews); - - // Rich data may be an empty object so test for that. - const hasRichData = richData && Object.keys(richData).length; - const displayURL = value && (0,external_wp_url_namespaceObject.filterURLForDisplay)((0,external_wp_url_namespaceObject.safeDecodeURI)(value.url), 24) || ''; - - // url can be undefined if the href attribute is unset - const isEmptyURL = !value?.url?.length; - const displayTitle = !isEmptyURL && (0,external_wp_dom_namespaceObject.__unstableStripHTML)(richData?.title || value?.title || displayURL); - let icon; - if (richData?.icon) { - icon = (0,external_React_.createElement)("img", { - src: richData?.icon, - alt: "" - }); - } else if (isEmptyURL) { - icon = (0,external_React_.createElement)(build_module_icon, { - icon: library_info, - size: 32 - }); - } else { - icon = (0,external_React_.createElement)(build_module_icon, { - icon: library_globe - }); - } - const { - createNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(value.url, () => { - createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), { - isDismissible: true, - type: 'snackbar' - }); - }); - return (0,external_React_.createElement)("div", { - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Currently selected'), - className: classnames_default()('block-editor-link-control__search-item', { - 'is-current': true, - 'is-rich': hasRichData, - 'is-fetching': !!isFetching, - 'is-preview': true, - 'is-error': isEmptyURL, - 'is-url-title': displayTitle === displayURL - }) - }, (0,external_React_.createElement)("div", { - className: "block-editor-link-control__search-item-top" - }, (0,external_React_.createElement)("span", { - className: "block-editor-link-control__search-item-header" - }, (0,external_React_.createElement)("span", { - className: classnames_default()('block-editor-link-control__search-item-icon', { - 'is-image': richData?.icon - }) - }, icon), (0,external_React_.createElement)("span", { - className: "block-editor-link-control__search-item-details" - }, !isEmptyURL ? (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: value.url - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ExternalLink, { - className: "block-editor-link-control__search-item-title", - href: value.url - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - numberOfLines: 1 - }, displayTitle))), value?.url && displayTitle !== displayURL && (0,external_React_.createElement)("span", { - className: "block-editor-link-control__search-item-info" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - numberOfLines: 1 - }, displayURL))) : (0,external_React_.createElement)("span", { - className: "block-editor-link-control__search-item-error-notice" - }, (0,external_wp_i18n_namespaceObject.__)('Link is empty')))), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: edit, - label: (0,external_wp_i18n_namespaceObject.__)('Edit'), - className: "block-editor-link-control__search-item-action", - onClick: onEditClick, - size: "compact" - }), hasUnlinkControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: link_off, - label: (0,external_wp_i18n_namespaceObject.__)('Unlink'), - className: "block-editor-link-control__search-item-action block-editor-link-control__unlink", - onClick: onRemove, - size: "compact" - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: library_copy, - label: (0,external_wp_i18n_namespaceObject.__)('Copy URL'), - className: "block-editor-link-control__search-item-action block-editor-link-control__copy", - ref: ref, - disabled: isEmptyURL, - size: "compact" - }), (0,external_React_.createElement)(ViewerSlot, { - fillProps: value - })), additionalControls && additionalControls()); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings.js - -/** - * WordPress dependencies - */ - - -const settings_noop = () => {}; -const LinkControlSettings = ({ - value, - onChange = settings_noop, - settings -}) => { - if (!settings || !settings.length) { - return null; - } - const handleSettingChange = setting => newValue => { - onChange({ - ...value, - [setting.id]: newValue - }); - }; - const theSettings = settings.map(setting => (0,external_React_.createElement)(external_wp_components_namespaceObject.CheckboxControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-link-control__setting", - key: setting.id, - label: setting.title, - onChange: handleSettingChange(setting), - checked: value ? !!value[setting.id] : false, - help: setting?.help - })); - return (0,external_React_.createElement)("fieldset", { - className: "block-editor-link-control__settings" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Currently selected link settings')), theSettings); -}; -/* harmony default export */ var link_control_settings = (LinkControlSettings); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-create-page.js -/** - * WordPress dependencies - */ - - -function useCreatePage(handleCreatePage) { - const cancelableCreateSuggestion = (0,external_wp_element_namespaceObject.useRef)(); - const [isCreatingPage, setIsCreatingPage] = (0,external_wp_element_namespaceObject.useState)(false); - const [errorMessage, setErrorMessage] = (0,external_wp_element_namespaceObject.useState)(null); - const createPage = async function (suggestionTitle) { - setIsCreatingPage(true); - setErrorMessage(null); - try { - // Make cancellable in order that we can avoid setting State - // if the component unmounts during the call to `createSuggestion` - cancelableCreateSuggestion.current = makeCancelable( - // Using Promise.resolve to allow createSuggestion to return a - // non-Promise based value. - Promise.resolve(handleCreatePage(suggestionTitle))); - return await cancelableCreateSuggestion.current.promise; - } catch (error) { - if (error && error.isCanceled) { - return; // bail if canceled to avoid setting state - } - - setErrorMessage(error.message || (0,external_wp_i18n_namespaceObject.__)('An unknown error occurred during creation. Please try again.')); - throw error; - } finally { - setIsCreatingPage(false); - } - }; - - /** - * Handles cancelling any pending Promises that have been made cancelable. - */ - (0,external_wp_element_namespaceObject.useEffect)(() => { - return () => { - // componentDidUnmount - if (cancelableCreateSuggestion.current) { - cancelableCreateSuggestion.current.cancel(); - } - }; - }, []); - return { - createPage, - isCreatingPage, - errorMessage - }; -} - -/** - * Creates a wrapper around a promise which allows it to be programmatically - * cancelled. - * See: https://reactjs.org/blog/2015/12/16/ismounted-antipattern.html - * - * @param {Promise} promise the Promise to make cancelable - */ -const makeCancelable = promise => { - let hasCanceled_ = false; - const wrappedPromise = new Promise((resolve, reject) => { - promise.then(val => hasCanceled_ ? reject({ - isCanceled: true - }) : resolve(val), error => hasCanceled_ ? reject({ - isCanceled: true - }) : reject(error)); - }); - return { - promise: wrappedPromise, - cancel() { - hasCanceled_ = true; - } - }; -}; - -// EXTERNAL MODULE: ./node_modules/fast-deep-equal/index.js -var fast_deep_equal = __webpack_require__(2303); -var fast_deep_equal_default = /*#__PURE__*/__webpack_require__.n(fast_deep_equal); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-internal-value.js -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - -function useInternalValue(value) { - const [internalValue, setInternalValue] = (0,external_wp_element_namespaceObject.useState)(value || {}); - const [previousValue, setPreviousValue] = (0,external_wp_element_namespaceObject.useState)(value); - - // If the value prop changes, update the internal state. - // See: - // - https://github.com/WordPress/gutenberg/pull/51387#issuecomment-1722927384. - // - https://react.dev/reference/react/useState#storing-information-from-previous-renders. - if (!fast_deep_equal_default()(value, previousValue)) { - setPreviousValue(value); - setInternalValue(value); - } - const setInternalURLInputValue = nextValue => { - setInternalValue({ - ...internalValue, - url: nextValue - }); - }; - const setInternalTextInputValue = nextValue => { - setInternalValue({ - ...internalValue, - title: nextValue - }); - }; - const createSetInternalSettingValueHandler = settingsKeys => nextValue => { - // Only apply settings values which are defined in the settings prop. - const settingsUpdates = Object.keys(nextValue).reduce((acc, key) => { - if (settingsKeys.includes(key)) { - acc[key] = nextValue[key]; - } - return acc; - }, {}); - setInternalValue({ - ...internalValue, - ...settingsUpdates - }); - }; - return [internalValue, setInternalValue, setInternalURLInputValue, setInternalTextInputValue, createSetInternalSettingValueHandler]; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - - - - - -/** - * Internal dependencies - */ - - - - - - - - - -/** - * Default properties associated with a link control value. - * - * @typedef WPLinkControlDefaultValue - * - * @property {string} url Link URL. - * @property {string=} title Link title. - * @property {boolean=} opensInNewTab Whether link should open in a new browser - * tab. This value is only assigned if not - * providing a custom `settings` prop. - */ - -/* eslint-disable jsdoc/valid-types */ -/** - * Custom settings values associated with a link. - * - * @typedef {{[setting:string]:any}} WPLinkControlSettingsValue - */ -/* eslint-enable */ - -/** - * Custom settings values associated with a link. - * - * @typedef WPLinkControlSetting - * - * @property {string} id Identifier to use as property for setting value. - * @property {string} title Human-readable label to show in user interface. - */ - -/** - * Properties associated with a link control value, composed as a union of the - * default properties and any custom settings values. - * - * @typedef {WPLinkControlDefaultValue&WPLinkControlSettingsValue} WPLinkControlValue - */ - -/** @typedef {(nextValue:WPLinkControlValue)=>void} WPLinkControlOnChangeProp */ - -/** - * Properties associated with a search suggestion used within the LinkControl. - * - * @typedef WPLinkControlSuggestion - * - * @property {string} id Identifier to use to uniquely identify the suggestion. - * @property {string} type Identifies the type of the suggestion (eg: `post`, - * `page`, `url`...etc) - * @property {string} title Human-readable label to show in user interface. - * @property {string} url A URL for the suggestion. - */ - -/** @typedef {(title:string)=>WPLinkControlSuggestion} WPLinkControlCreateSuggestionProp */ - -/** - * @typedef WPLinkControlProps - * - * @property {(WPLinkControlSetting[])=} settings An array of settings objects. Each object will used to - * render a `ToggleControl` for that setting. - * @property {boolean=} forceIsEditingLink If passed as either `true` or `false`, controls the - * internal editing state of the component to respective - * show or not show the URL input field. - * @property {WPLinkControlValue=} value Current link value. - * @property {WPLinkControlOnChangeProp=} onChange Value change handler, called with the updated value if - * the user selects a new link or updates settings. - * @property {boolean=} noDirectEntry Whether to allow turning a URL-like search query directly into a link. - * @property {boolean=} showSuggestions Whether to present suggestions when typing the URL. - * @property {boolean=} showInitialSuggestions Whether to present initial suggestions immediately. - * @property {boolean=} withCreateSuggestion Whether to allow creation of link value from suggestion. - * @property {Object=} suggestionsQuery Query parameters to pass along to wp.blockEditor.__experimentalFetchLinkSuggestions. - * @property {boolean=} noURLSuggestion Whether to add a fallback suggestion which treats the search query as a URL. - * @property {boolean=} hasTextControl Whether to add a text field to the UI to update the value.title. - * @property {string|Function|undefined} createSuggestionButtonText The text to use in the button that calls createSuggestion. - * @property {Function} renderControlBottom Optional controls to be rendered at the bottom of the component. - */ - -const link_control_noop = () => {}; -const PREFERENCE_SCOPE = 'core/block-editor'; -const PREFERENCE_KEY = 'linkControlSettingsDrawer'; - -/** - * Renders a link control. A link control is a controlled input which maintains - * a value associated with a link (HTML anchor element) and relevant settings - * for how that link is expected to behave. - * - * @param {WPLinkControlProps} props Component props. - */ -function LinkControl({ - searchInputPlaceholder, - value, - settings = DEFAULT_LINK_SETTINGS, - onChange = link_control_noop, - onRemove, - onCancel, - noDirectEntry = false, - showSuggestions = true, - showInitialSuggestions, - forceIsEditingLink, - createSuggestion, - withCreateSuggestion, - inputValue: propInputValue = '', - suggestionsQuery = {}, - noURLSuggestion = false, - createSuggestionButtonText, - hasRichPreviews = false, - hasTextControl = false, - renderControlBottom = null -}) { - if (withCreateSuggestion === undefined && createSuggestion) { - withCreateSuggestion = true; - } - const [settingsOpen, setSettingsOpen] = (0,external_wp_element_namespaceObject.useState)(false); - const { - advancedSettingsPreference - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - var _prefsStore$get; - const prefsStore = select(external_wp_preferences_namespaceObject.store); - return { - advancedSettingsPreference: (_prefsStore$get = prefsStore.get(PREFERENCE_SCOPE, PREFERENCE_KEY)) !== null && _prefsStore$get !== void 0 ? _prefsStore$get : false - }; - }, []); - const { - set: setPreference - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); - - /** - * Sets the open/closed state of the Advanced Settings Drawer, - * optionlly persisting the state to the user's preferences. - * - * Note that Block Editor components can be consumed by non-WordPress - * environments which may not have preferences setup. - * Therefore a local state is also used as a fallback. - * - * @param {boolean} prefVal the open/closed state of the Advanced Settings Drawer. - */ - const setSettingsOpenWithPreference = prefVal => { - if (setPreference) { - setPreference(PREFERENCE_SCOPE, PREFERENCE_KEY, prefVal); - } - setSettingsOpen(prefVal); - }; - - // Block Editor components can be consumed by non-WordPress environments - // which may not have these preferences setup. - // Therefore a local state is used as a fallback. - const isSettingsOpen = advancedSettingsPreference || settingsOpen; - const isMounting = (0,external_wp_element_namespaceObject.useRef)(true); - const wrapperNode = (0,external_wp_element_namespaceObject.useRef)(); - const textInputRef = (0,external_wp_element_namespaceObject.useRef)(); - const isEndingEditWithFocus = (0,external_wp_element_namespaceObject.useRef)(false); - const settingsKeys = settings.map(({ - id - }) => id); - const [internalControlValue, setInternalControlValue, setInternalURLInputValue, setInternalTextInputValue, createSetInternalSettingValueHandler] = useInternalValue(value); - const valueHasChanges = value && !(0,external_wp_isShallowEqual_namespaceObject.isShallowEqualObjects)(internalControlValue, value); - const [isEditingLink, setIsEditingLink] = (0,external_wp_element_namespaceObject.useState)(forceIsEditingLink !== undefined ? forceIsEditingLink : !value || !value.url); - const { - createPage, - isCreatingPage, - errorMessage - } = useCreatePage(createSuggestion); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (forceIsEditingLink === undefined) { - return; - } - setIsEditingLink(forceIsEditingLink); - }, [forceIsEditingLink]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // We don't auto focus into the Link UI on mount - // because otherwise using the keyboard to select text - // *within* the link format is not possible. - if (isMounting.current) { - isMounting.current = false; - return; - } - - // Scenario - when: - // - switching between editable and non editable LinkControl - // - clicking on a link - // ...then move focus to the *first* element to avoid focus loss - // and to ensure focus is *within* the Link UI. - const nextFocusTarget = external_wp_dom_namespaceObject.focus.focusable.find(wrapperNode.current)[0] || wrapperNode.current; - nextFocusTarget.focus(); - isEndingEditWithFocus.current = false; - }, [isEditingLink, isCreatingPage]); - const hasLinkValue = value?.url?.trim()?.length > 0; - - /** - * Cancels editing state and marks that focus may need to be restored after - * the next render, if focus was within the wrapper when editing finished. - */ - const stopEditing = () => { - isEndingEditWithFocus.current = !!wrapperNode.current?.contains(wrapperNode.current.ownerDocument.activeElement); - setIsEditingLink(false); - }; - const handleSelectSuggestion = updatedValue => { - // Suggestions may contains "settings" values (e.g. `opensInNewTab`) - // which should not overide any existing settings values set by the - // user. This filters out any settings values from the suggestion. - const nonSettingsChanges = Object.keys(updatedValue).reduce((acc, key) => { - if (!settingsKeys.includes(key)) { - acc[key] = updatedValue[key]; - } - return acc; - }, {}); - onChange({ - ...internalControlValue, - ...nonSettingsChanges, - // As title is not a setting, it must be manually applied - // in such a way as to preserve the users changes over - // any "title" value provided by the "suggestion". - title: internalControlValue?.title || updatedValue?.title - }); - stopEditing(); - }; - const handleSubmit = () => { - if (valueHasChanges) { - // Submit the original value with new stored values applied - // on top. URL is a special case as it may also be a prop. - onChange({ - ...value, - ...internalControlValue, - url: currentUrlInputValue - }); - } - stopEditing(); - }; - const handleSubmitWithEnter = event => { - const { - keyCode - } = event; - if (keyCode === external_wp_keycodes_namespaceObject.ENTER && !currentInputIsEmpty // Disallow submitting empty values. - ) { - event.preventDefault(); - handleSubmit(); - } - }; - const resetInternalValues = () => { - setInternalControlValue(value); - }; - const handleCancel = event => { - event.preventDefault(); - event.stopPropagation(); - - // Ensure that any unsubmitted input changes are reset. - resetInternalValues(); - if (hasLinkValue) { - // If there is a link then exist editing mode and show preview. - stopEditing(); - } else { - // If there is no link value, then remove the link entirely. - onRemove?.(); - } - onCancel?.(); - }; - const currentUrlInputValue = propInputValue || internalControlValue?.url || ''; - const currentInputIsEmpty = !currentUrlInputValue?.trim()?.length; - const shownUnlinkControl = onRemove && value && !isEditingLink && !isCreatingPage; - const showActions = isEditingLink && hasLinkValue; - - // Only show text control once a URL value has been committed - // and it isn't just empty whitespace. - // See https://github.com/WordPress/gutenberg/pull/33849/#issuecomment-932194927. - const showTextControl = hasLinkValue && hasTextControl; - const isEditing = (isEditingLink || !value) && !isCreatingPage; - const isDisabled = !valueHasChanges || currentInputIsEmpty; - const showSettings = !!settings?.length && isEditingLink && hasLinkValue; - return (0,external_React_.createElement)("div", { - tabIndex: -1, - ref: wrapperNode, - className: "block-editor-link-control" - }, isCreatingPage && (0,external_React_.createElement)("div", { - className: "block-editor-link-control__loading" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Spinner, null), " ", (0,external_wp_i18n_namespaceObject.__)('Creating'), "\u2026"), isEditing && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - className: classnames_default()({ - 'block-editor-link-control__search-input-wrapper': true, - 'has-text-control': showTextControl, - 'has-actions': showActions - }) - }, showTextControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - ref: textInputRef, - className: "block-editor-link-control__field block-editor-link-control__text-content", - label: (0,external_wp_i18n_namespaceObject.__)('Text'), - value: internalControlValue?.title, - onChange: setInternalTextInputValue, - onKeyDown: handleSubmitWithEnter, - size: "__unstable-large" - }), (0,external_React_.createElement)(search_input, { - currentLink: value, - className: "block-editor-link-control__field block-editor-link-control__search-input", - placeholder: searchInputPlaceholder, - value: currentUrlInputValue, - withCreateSuggestion: withCreateSuggestion, - onCreateSuggestion: createPage, - onChange: setInternalURLInputValue, - onSelect: handleSelectSuggestion, - showInitialSuggestions: showInitialSuggestions, - allowDirectEntry: !noDirectEntry, - showSuggestions: showSuggestions, - suggestionsQuery: suggestionsQuery, - withURLSuggestion: !noURLSuggestion, - createSuggestionButtonText: createSuggestionButtonText, - hideLabelFromVision: !showTextControl - }), !showActions && (0,external_React_.createElement)("div", { - className: "block-editor-link-control__search-enter" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - onClick: isDisabled ? link_control_noop : handleSubmit, - label: (0,external_wp_i18n_namespaceObject.__)('Submit'), - icon: keyboard_return, - className: "block-editor-link-control__search-submit", - "aria-disabled": isDisabled - }))), errorMessage && (0,external_React_.createElement)(external_wp_components_namespaceObject.Notice, { - className: "block-editor-link-control__search-error", - status: "error", - isDismissible: false - }, errorMessage)), value && !isEditingLink && !isCreatingPage && (0,external_React_.createElement)(LinkPreview, { - key: value?.url // force remount when URL changes to avoid race conditions for rich previews - , - value: value, - onEditClick: () => setIsEditingLink(true), - hasRichPreviews: hasRichPreviews, - hasUnlinkControl: shownUnlinkControl, - additionalControls: () => { - // Expose the "Opens in new tab" settings in the preview - // as it is the most common setting to change. - if (settings?.find(setting => setting.id === 'opensInNewTab')) { - return (0,external_React_.createElement)(link_control_settings, { - value: internalControlValue, - settings: settings?.filter(({ - id - }) => id === 'opensInNewTab'), - onChange: onChange - }); - } - }, - onRemove: () => { - onRemove(); - setIsEditingLink(true); - } - }), showSettings && (0,external_React_.createElement)("div", { - className: "block-editor-link-control__tools" - }, !currentInputIsEmpty && (0,external_React_.createElement)(settings_drawer, { - settingsOpen: isSettingsOpen, - setSettingsOpen: setSettingsOpenWithPreference - }, (0,external_React_.createElement)(link_control_settings, { - value: internalControlValue, - settings: settings, - onChange: createSetInternalSettingValueHandler(settingsKeys) - }))), showActions && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "right", - className: "block-editor-link-control__search-actions" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: handleCancel - }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "primary", - onClick: isDisabled ? link_control_noop : handleSubmit, - className: "block-editor-link-control__search-submit", - "aria-disabled": isDisabled - }, (0,external_wp_i18n_namespaceObject.__)('Save'))), renderControlBottom && renderControlBottom()); -} -LinkControl.ViewerFill = ViewerFill; -LinkControl.DEFAULT_LINK_SETTINGS = DEFAULT_LINK_SETTINGS; -/* harmony default export */ var link_control = (LinkControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-replace-flow/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - - - - - - -/** - * Internal dependencies - */ - - - - -const media_replace_flow_noop = () => {}; -let uniqueId = 0; -const MediaReplaceFlow = ({ - mediaURL, - mediaId, - mediaIds, - allowedTypes, - accept, - onError, - onSelect, - onSelectURL, - onToggleFeaturedImage, - useFeaturedImage, - onFilesUpload = media_replace_flow_noop, - name = (0,external_wp_i18n_namespaceObject.__)('Replace'), - createNotice, - removeNotice, - children, - multiple = false, - addToGallery, - handleUpload = true, - popoverProps -}) => { - const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { - return select(store).getSettings().mediaUpload; - }, []); - const canUpload = !!mediaUpload; - const editMediaButtonRef = (0,external_wp_element_namespaceObject.useRef)(); - const errorNoticeID = `block-editor/media-replace-flow/error-notice/${++uniqueId}`; - const onUploadError = message => { - const safeMessage = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(message); - if (onError) { - onError(safeMessage); - return; - } - // We need to set a timeout for showing the notice - // so that VoiceOver and possibly other screen readers - // can announce the error afer the toolbar button - // regains focus once the upload dialog closes. - // Otherwise VO simply skips over the notice and announces - // the focused element and the open menu. - setTimeout(() => { - createNotice('error', safeMessage, { - speak: true, - id: errorNoticeID, - isDismissible: true - }); - }, 1000); - }; - const selectMedia = (media, closeMenu) => { - if (useFeaturedImage && onToggleFeaturedImage) { - onToggleFeaturedImage(); - } - closeMenu(); - // Calling `onSelect` after the state update since it might unmount the component. - onSelect(media); - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('The media file has been replaced')); - removeNotice(errorNoticeID); - }; - const uploadFiles = (event, closeMenu) => { - const files = event.target.files; - if (!handleUpload) { - closeMenu(); - return onSelect(files); - } - onFilesUpload(files); - mediaUpload({ - allowedTypes, - filesList: files, - onFileChange: ([media]) => { - selectMedia(media, closeMenu); - }, - onError: onUploadError - }); - }; - const openOnArrowDown = event => { - if (event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { - event.preventDefault(); - event.target.click(); - } - }; - const onlyAllowsImages = () => { - if (!allowedTypes || allowedTypes.length === 0) { - return false; - } - return allowedTypes.every(allowedType => allowedType === 'image' || allowedType.startsWith('image/')); - }; - const gallery = multiple && onlyAllowsImages(); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: popoverProps, - contentClassName: "block-editor-media-replace-flow__options", - renderToggle: ({ - isOpen, - onToggle - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - ref: editMediaButtonRef, - "aria-expanded": isOpen, - "aria-haspopup": "true", - onClick: onToggle, - onKeyDown: openOnArrowDown - }, name), - renderContent: ({ - onClose - }) => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.NavigableMenu, { - className: "block-editor-media-replace-flow__media-upload-menu" - }, (0,external_React_.createElement)(check, null, (0,external_React_.createElement)(media_upload, { - gallery: gallery, - addToGallery: addToGallery, - multiple: multiple, - value: multiple ? mediaIds : mediaId, - onSelect: media => selectMedia(media, onClose), - allowedTypes: allowedTypes, - render: ({ - open - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - icon: library_media, - onClick: open - }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library')) - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.FormFileUpload, { - onChange: event => { - uploadFiles(event, onClose); - }, - accept: accept, - multiple: !!multiple, - render: ({ - openFileDialog - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - icon: library_upload, - onClick: () => { - openFileDialog(); - } - }, (0,external_wp_i18n_namespaceObject.__)('Upload')); - } - })), onToggleFeaturedImage && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - icon: post_featured_image, - onClick: onToggleFeaturedImage, - isPressed: useFeaturedImage - }, (0,external_wp_i18n_namespaceObject.__)('Use featured image')), children), onSelectURL && - // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions - (0,external_React_.createElement)("form", { - className: classnames_default()('block-editor-media-flow__url-input', { - 'has-siblings': canUpload || onToggleFeaturedImage - }) - }, (0,external_React_.createElement)("span", { - className: "block-editor-media-replace-flow__image-url-label" - }, (0,external_wp_i18n_namespaceObject.__)('Current media URL:')), (0,external_React_.createElement)(link_control, { - value: { - url: mediaURL - }, - settings: [], - showSuggestions: false, - onChange: ({ - url - }) => { - onSelectURL(url); - editMediaButtonRef.current.focus(); - } - }))) - }); -}; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-replace-flow/README.md - */ -/* harmony default export */ var media_replace_flow = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withDispatch)(dispatch => { - const { - createNotice, - removeNotice - } = dispatch(external_wp_notices_namespaceObject.store); - return { - createNotice, - removeNotice - }; -}), (0,external_wp_components_namespaceObject.withFilters)('editor.MediaReplaceFlow')])(MediaReplaceFlow)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/background.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - - - - - -/** - * Internal dependencies - */ - - - - - -const BACKGROUND_SUPPORT_KEY = 'background'; -const IMAGE_BACKGROUND_TYPE = 'image'; - -/** - * Checks if there is a current value in the background image block support - * attributes. - * - * @param {Object} style Style attribute. - * @return {boolean} Whether or not the block has a background image value set. - */ -function hasBackgroundImageValue(style) { - const hasValue = !!style?.background?.backgroundImage?.id || !!style?.background?.backgroundImage?.url; - return hasValue; -} - -/** - * Checks if there is a current value in the background size block support - * attributes. - * - * @param {Object} style Style attribute. - * @return {boolean} Whether or not the block has a background size value set. - */ -function hasBackgroundSizeValue(style) { - return style?.background?.backgroundSize !== undefined; -} - -/** - * Determine whether there is block support for background. - * - * @param {string} blockName Block name. - * @param {string} feature Background image feature to check for. - * - * @return {boolean} Whether there is support. - */ -function hasBackgroundSupport(blockName, feature = 'any') { - if (external_wp_element_namespaceObject.Platform.OS !== 'web') { - return false; - } - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, BACKGROUND_SUPPORT_KEY); - if (support === true) { - return true; - } - if (feature === 'any') { - return !!support?.backgroundImage || !!support?.backgroundSize || !!support?.backgroundRepeat; - } - return !!support?.[feature]; -} - -/** - * Resets the background image block support attributes. This can be used when disabling - * the background image controls for a block via a `ToolsPanel`. - * - * @param {Object} style Style attribute. - * @param {Function} setAttributes Function to set block's attributes. - */ -function resetBackgroundImage(style = {}, setAttributes) { - setAttributes({ - style: utils_cleanEmptyObject({ - ...style, - background: { - ...style?.background, - backgroundImage: undefined - } - }) - }); -} - -/** - * Resets the background size block support attributes. This can be used when disabling - * the background size controls for a block via a `ToolsPanel`. - * - * @param {Object} style Style attribute. - * @param {Function} setAttributes Function to set block's attributes. - */ -function resetBackgroundSize(style = {}, setAttributes) { - setAttributes({ - style: utils_cleanEmptyObject({ - ...style, - background: { - ...style?.background, - backgroundRepeat: undefined, - backgroundSize: undefined - } - }) - }); -} - -/** - * Generates a CSS class name if an background image is set. - * - * @param {Object} style A block's style attribute. - * - * @return {string} CSS class name. - */ -function getBackgroundImageClasses(style) { - return hasBackgroundImageValue(style) ? 'has-background' : ''; -} -function InspectorImagePreview({ - label, - filename, - url: imgUrl -}) { - const imgLabel = label || (0,external_wp_url_namespaceObject.getFilename)(imgUrl); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { - as: "span" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start", - as: "span" - }, (0,external_React_.createElement)("span", { - className: classnames_default()('block-editor-hooks__background__inspector-image-indicator-wrapper', { - 'has-image': imgUrl - }), - "aria-hidden": true - }, imgUrl && (0,external_React_.createElement)("span", { - className: "block-editor-hooks__background__inspector-image-indicator", - style: { - backgroundImage: `url(${imgUrl})` - } - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - as: "span" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - numberOfLines: 1, - className: "block-editor-hooks__background__inspector-media-replace-title" - }, imgLabel), (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "span" - }, filename ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: file name */ - (0,external_wp_i18n_namespaceObject.__)('Selected image: %s'), filename) : (0,external_wp_i18n_namespaceObject.__)('No image selected'))))); -} -function BackgroundImagePanelItem({ - clientId, - isShownByDefault, - setAttributes -}) { - const { - style, - mediaUpload - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockAttributes, - getSettings - } = select(store); - return { - style: getBlockAttributes(clientId)?.style, - mediaUpload: getSettings().mediaUpload - }; - }, [clientId]); - const { - id, - title, - url - } = style?.background?.backgroundImage || {}; - const replaceContainerRef = (0,external_wp_element_namespaceObject.useRef)(); - const { - createErrorNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - const onUploadError = message => { - createErrorNotice(message, { - type: 'snackbar' - }); - }; - const onSelectMedia = media => { - if (!media || !media.url) { - const newStyle = { - ...style, - background: { - ...style?.background, - backgroundImage: undefined - } - }; - const newAttributes = { - style: utils_cleanEmptyObject(newStyle) - }; - setAttributes(newAttributes); - return; - } - if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) { - return; - } - - // For media selections originated from a file upload. - if (media.media_type && media.media_type !== IMAGE_BACKGROUND_TYPE || !media.media_type && media.type && media.type !== IMAGE_BACKGROUND_TYPE) { - onUploadError((0,external_wp_i18n_namespaceObject.__)('Only images can be used as a background image.')); - return; - } - const newStyle = { - ...style, - background: { - ...style?.background, - backgroundImage: { - url: media.url, - id: media.id, - source: 'file', - title: media.title || undefined - } - } - }; - const newAttributes = { - style: utils_cleanEmptyObject(newStyle) - }; - setAttributes(newAttributes); - }; - const onFilesDrop = filesList => { - mediaUpload({ - allowedTypes: ['image'], - filesList, - onFileChange([image]) { - if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) { - return; - } - onSelectMedia(image); - }, - onError: onUploadError - }); - }; - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - style: { - ...previousValue.style, - background: undefined - } - }; - }, []); - const hasValue = hasBackgroundImageValue(style); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - hasValue: () => hasValue, - label: (0,external_wp_i18n_namespaceObject.__)('Background image'), - onDeselect: () => resetBackgroundImage(style, setAttributes), - isShownByDefault: isShownByDefault, - resetAllFilter: resetAllFilter, - panelId: clientId - }, (0,external_React_.createElement)("div", { - className: "block-editor-hooks__background__inspector-media-replace-container", - ref: replaceContainerRef - }, (0,external_React_.createElement)(media_replace_flow, { - mediaId: id, - mediaURL: url, - allowedTypes: [IMAGE_BACKGROUND_TYPE], - accept: "image/*", - onSelect: onSelectMedia, - name: (0,external_React_.createElement)(InspectorImagePreview, { - label: (0,external_wp_i18n_namespaceObject.__)('Background image'), - filename: title, - url: url - }), - variant: "secondary" - }, hasValue && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - const [toggleButton] = external_wp_dom_namespaceObject.focus.tabbable.find(replaceContainerRef.current); - // Focus the toggle button and close the dropdown menu. - // This ensures similar behaviour as to selecting an image, where the dropdown is - // closed and focus is redirected to the dropdown toggle button. - toggleButton?.focus(); - toggleButton?.click(); - resetBackgroundImage(style, setAttributes); - } - }, (0,external_wp_i18n_namespaceObject.__)('Reset '))), (0,external_React_.createElement)(external_wp_components_namespaceObject.DropZone, { - onFilesDrop: onFilesDrop, - label: (0,external_wp_i18n_namespaceObject.__)('Drop to upload') - }))); -} -function backgroundSizeHelpText(value) { - if (value === 'cover' || value === undefined) { - return (0,external_wp_i18n_namespaceObject.__)('Stretch image to cover the block.'); - } - if (value === 'contain') { - return (0,external_wp_i18n_namespaceObject.__)('Resize image to fit without cropping.'); - } - return (0,external_wp_i18n_namespaceObject.__)('Set a fixed width.'); -} -function BackgroundSizePanelItem({ - clientId, - isShownByDefault, - setAttributes -}) { - const style = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockAttributes(clientId)?.style, [clientId]); - const sizeValue = style?.background?.backgroundSize; - const repeatValue = style?.background?.backgroundRepeat; - - // An `undefined` value is treated as `cover` by the toggle group control. - // An empty string is treated as `auto` by the toggle group control. This - // allows a user to select "Size" and then enter a custom value, with an - // empty value being treated as `auto`. - const currentValueForToggle = sizeValue !== undefined && sizeValue !== 'cover' && sizeValue !== 'contain' || sizeValue === '' ? 'auto' : sizeValue || 'cover'; - - // If the current value is `cover` and the repeat value is `undefined`, then - // the toggle should be unchecked as the default state. Otherwise, the toggle - // should reflect the current repeat value. - const repeatCheckedValue = repeatValue === 'no-repeat' || currentValueForToggle === 'cover' && repeatValue === undefined ? false : true; - const hasValue = hasBackgroundSizeValue(style); - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - style: { - ...previousValue.style, - background: { - ...previousValue.style?.background, - backgroundRepeat: undefined, - backgroundSize: undefined - } - } - }; - }, []); - const updateBackgroundSize = next => { - // When switching to 'contain' toggle the repeat off. - let nextRepeat = repeatValue; - if (next === 'contain') { - nextRepeat = 'no-repeat'; - } - if ((currentValueForToggle === 'cover' || currentValueForToggle === 'contain') && next === 'auto') { - nextRepeat = undefined; - } - setAttributes({ - style: utils_cleanEmptyObject({ - ...style, - background: { - ...style?.background, - backgroundRepeat: nextRepeat, - backgroundSize: next - } - }) - }); - }; - const toggleIsRepeated = () => { - setAttributes({ - style: utils_cleanEmptyObject({ - ...style, - background: { - ...style?.background, - backgroundRepeat: repeatCheckedValue === true ? 'no-repeat' : undefined - } - }) - }); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - as: external_wp_components_namespaceObject.__experimentalToolsPanelItem, - spacing: 2, - className: "single-column", - hasValue: () => hasValue, - label: (0,external_wp_i18n_namespaceObject.__)('Size'), - onDeselect: () => resetBackgroundSize(style, setAttributes), - isShownByDefault: isShownByDefault, - resetAllFilter: resetAllFilter, - panelId: clientId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - __nextHasNoMarginBottom: true, - size: '__unstable-large', - label: (0,external_wp_i18n_namespaceObject.__)('Size'), - value: currentValueForToggle, - onChange: updateBackgroundSize, - isBlock: true, - help: backgroundSizeHelpText(sizeValue) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'cover', - value: 'cover', - label: (0,external_wp_i18n_namespaceObject.__)('Cover') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'contain', - value: 'contain', - label: (0,external_wp_i18n_namespaceObject.__)('Contain') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'fixed', - value: 'auto', - label: (0,external_wp_i18n_namespaceObject.__)('Fixed') - })), sizeValue !== undefined && sizeValue !== 'cover' && sizeValue !== 'contain' ? (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - size: '__unstable-large', - onChange: updateBackgroundSize, - value: sizeValue - }) : null, currentValueForToggle !== 'cover' && (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Repeat image'), - checked: repeatCheckedValue, - onChange: toggleIsRepeated - })); -} -function BackgroundImagePanel(props) { - const [backgroundImage, backgroundSize] = use_settings_useSettings('background.backgroundImage', 'background.backgroundSize'); - if (!backgroundImage || !hasBackgroundSupport(props.name, 'backgroundImage')) { - return null; - } - const showBackgroundSize = !!(backgroundSize && hasBackgroundSupport(props.name, 'backgroundSize')); - const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [BACKGROUND_SUPPORT_KEY, '__experimentalDefaultControls']); - return (0,external_React_.createElement)(inspector_controls, { - group: "background" - }, (0,external_React_.createElement)(BackgroundImagePanelItem, { - isShownByDefault: defaultControls?.backgroundImage, - ...props - }), showBackgroundSize && (0,external_React_.createElement)(BackgroundSizePanelItem, { - isShownByDefault: defaultControls?.backgroundSize, - ...props - })); -} - -;// CONCATENATED MODULE: ./node_modules/colord/index.mjs -var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})}; - -;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs -/* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));ud?(u+.05)/(d+.05):(d+.05)/(u+.05),void 0===(a=2)&&(a=0),void 0===i&&(i=Math.pow(10,a)),Math.floor(i*n)/i+0},o.prototype.isReadable=function(o,t){return void 0===o&&(o="#FFF"),void 0===t&&(t={}),this.contrast(o)>=(e=void 0===(i=(r=t).size)?"normal":i,"AAA"===(a=void 0===(n=r.level)?"AA":n)&&"normal"===e?7:"AA"===a&&"large"===e?3:4.5);var r,n,a,i,e}} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/utils.js -/** - * External dependencies - */ - - - - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - -k([names, a11y]); - -/** - * Provided an array of color objects as set by the theme or by the editor defaults, - * and the values of the defined color or custom color returns a color object describing the color. - * - * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. - * @param {?string} definedColor A string containing the color slug. - * @param {?string} customColor A string containing the customColor value. - * - * @return {?Object} If definedColor is passed and the name is found in colors, - * the color object exactly as set by the theme or editor defaults is returned. - * Otherwise, an object that just sets the color is defined. - */ -const getColorObjectByAttributeValues = (colors, definedColor, customColor) => { - if (definedColor) { - const colorObj = colors?.find(color => color.slug === definedColor); - if (colorObj) { - return colorObj; - } - } - return { - color: customColor - }; -}; - -/** - * Provided an array of color objects as set by the theme or by the editor defaults, and a color value returns the color object matching that value or undefined. - * - * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. - * @param {?string} colorValue A string containing the color value. - * - * @return {?Object} Color object included in the colors array whose color property equals colorValue. - * Returns undefined if no color object matches this requirement. - */ -const getColorObjectByColorValue = (colors, colorValue) => { - return colors?.find(color => color.color === colorValue); -}; - -/** - * Returns a class based on the context a color is being used and its slug. - * - * @param {string} colorContextName Context/place where color is being used e.g: background, text etc... - * @param {string} colorSlug Slug of the color. - * - * @return {?string} String with the class corresponding to the color in the provided context. - * Returns undefined if either colorContextName or colorSlug are not provided. - */ -function getColorClassName(colorContextName, colorSlug) { - if (!colorContextName || !colorSlug) { - return undefined; - } - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - return `has-${kebabCase(colorSlug)}-${colorContextName}`; -} - -/** - * Given an array of color objects and a color value returns the color value of the most readable color in the array. - * - * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. - * @param {?string} colorValue A string containing the color value. - * - * @return {string} String with the color value of the most readable color. - */ -function getMostReadableColor(colors, colorValue) { - const colordColor = w(colorValue); - const getColorContrast = ({ - color - }) => colordColor.contrast(color); - const maxContrast = Math.max(...colors.map(getColorContrast)); - return colors.find(color => getColorContrast(color) === maxContrast).color; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** - * Retrieves color and gradient related settings. - * - * The arrays for colors and gradients are made up of color palettes from each - * origin i.e. "Core", "Theme", and "User". - * - * @return {Object} Color and gradient related settings. - */ -function useMultipleOriginColorsAndGradients() { - const [enableCustomColors, customColors, themeColors, defaultColors, shouldDisplayDefaultColors, enableCustomGradients, customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients] = use_settings_useSettings('color.custom', 'color.palette.custom', 'color.palette.theme', 'color.palette.default', 'color.defaultPalette', 'color.customGradient', 'color.gradients.custom', 'color.gradients.theme', 'color.gradients.default', 'color.defaultGradients'); - const colorGradientSettings = { - disableCustomColors: !enableCustomColors, - disableCustomGradients: !enableCustomGradients - }; - colorGradientSettings.colors = (0,external_wp_element_namespaceObject.useMemo)(() => { - const result = []; - if (themeColors && themeColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), - colors: themeColors - }); - } - if (shouldDisplayDefaultColors && defaultColors && defaultColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), - colors: defaultColors - }); - } - if (customColors && customColors.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette comes from the theme.'), - colors: customColors - }); - } - return result; - }, [customColors, themeColors, defaultColors, shouldDisplayDefaultColors]); - colorGradientSettings.gradients = (0,external_wp_element_namespaceObject.useMemo)(() => { - const result = []; - if (themeGradients && themeGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), - gradients: themeGradients - }); - } - if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), - gradients: defaultGradients - }); - } - if (customGradients && customGradients.length) { - result.push({ - name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), - gradients: customGradients - }); - } - return result; - }, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]); - colorGradientSettings.hasColorsOrGradients = !!colorGradientSettings.colors.length || !!colorGradientSettings.gradients.length; - return colorGradientSettings; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/utils.js -/** - * WordPress dependencies - */ - - -/** - * Gets the (non-undefined) item with the highest occurrence within an array - * Based in part on: https://stackoverflow.com/a/20762713 - * - * Undefined values are always sorted to the end by `sort`, so this function - * returns the first element, to always prioritize real values over undefined - * values. - * - * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description - * - * @param {Array} inputArray Array of items to check. - * @return {any} The item with the most occurrences. - */ -function utils_mode(inputArray) { - const arr = [...inputArray]; - return arr.sort((a, b) => inputArray.filter(v => v === b).length - inputArray.filter(v => v === a).length).shift(); -} - -/** - * Returns the most common CSS unit from the current CSS unit selections. - * - * - If a single flat border radius is set, its unit will be used - * - If individual corner selections, the most common of those will be used - * - Failing any unit selections a default of 'px' is returned. - * - * @param {Object} selectedUnits Unit selections for flat radius & each corner. - * @return {string} Most common CSS unit from current selections. Default: `px`. - */ -function getAllUnit(selectedUnits = {}) { - const { - flat, - ...cornerUnits - } = selectedUnits; - return flat || utils_mode(Object.values(cornerUnits).filter(Boolean)) || 'px'; -} - -/** - * Gets the 'all' input value and unit from values data. - * - * @param {Object|string} values Radius values. - * @return {string} A value + unit for the 'all' input. - */ -function getAllValue(values = {}) { - /** - * Border radius support was originally a single pixel value. - * - * To maintain backwards compatibility treat this case as the all value. - */ - if (typeof values === 'string') { - return values; - } - const parsedQuantitiesAndUnits = Object.values(values).map(value => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value)); - const allValues = parsedQuantitiesAndUnits.map(value => { - var _value$; - return (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : ''; - }); - const allUnits = parsedQuantitiesAndUnits.map(value => value[1]); - const value = allValues.every(v => v === allValues[0]) ? allValues[0] : ''; - const unit = utils_mode(allUnits); - const allValue = value === 0 || value ? `${value}${unit}` : undefined; - return allValue; -} - -/** - * Checks to determine if values are mixed. - * - * @param {Object} values Radius values. - * @return {boolean} Whether values are mixed. - */ -function hasMixedValues(values = {}) { - const allValue = getAllValue(values); - const isMixed = typeof values === 'string' ? false : isNaN(parseFloat(allValue)); - return isMixed; -} - -/** - * Checks to determine if values are defined. - * - * @param {Object} values Radius values. - * @return {boolean} Whether values are mixed. - */ -function hasDefinedValues(values) { - if (!values) { - return false; - } - - // A string value represents a shorthand value. - if (typeof values === 'string') { - return true; - } - - // An object represents longhand border radius values, if any are set - // flag values as being defined. - const filteredValues = Object.values(values).filter(value => { - return !!value || value === 0; - }); - return !!filteredValues.length; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/all-input-control.js - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - -function AllInputControl({ - onChange, - selectedUnits, - setSelectedUnits, - values, - ...props -}) { - let allValue = getAllValue(values); - if (allValue === undefined) { - // If we don't have any value set the unit to any current selection - // or the most common unit from the individual radii values. - allValue = getAllUnit(selectedUnits); - } - const hasValues = hasDefinedValues(values); - const isMixed = hasValues && hasMixedValues(values); - const allPlaceholder = isMixed ? (0,external_wp_i18n_namespaceObject.__)('Mixed') : null; - - // Filter out CSS-unit-only values to prevent invalid styles. - const handleOnChange = next => { - const isNumeric = !isNaN(parseFloat(next)); - const nextValue = isNumeric ? next : undefined; - onChange(nextValue); - }; - - // Store current unit selection for use as fallback for individual - // radii controls. - const handleOnUnitChange = unit => { - setSelectedUnits({ - topLeft: unit, - topRight: unit, - bottomLeft: unit, - bottomRight: unit - }); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - ...props, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Border radius'), - disableUnits: isMixed, - isOnly: true, - value: allValue, - onChange: handleOnChange, - onUnitChange: handleOnUnitChange, - placeholder: allPlaceholder, - size: '__unstable-large' - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/input-controls.js - -/** - * WordPress dependencies - */ - - -const CORNERS = { - topLeft: (0,external_wp_i18n_namespaceObject.__)('Top left'), - topRight: (0,external_wp_i18n_namespaceObject.__)('Top right'), - bottomLeft: (0,external_wp_i18n_namespaceObject.__)('Bottom left'), - bottomRight: (0,external_wp_i18n_namespaceObject.__)('Bottom right') -}; -function BoxInputControls({ - onChange, - selectedUnits, - setSelectedUnits, - values: valuesProp, - ...props -}) { - const createHandleOnChange = corner => next => { - if (!onChange) { - return; - } - - // Filter out CSS-unit-only values to prevent invalid styles. - const isNumeric = !isNaN(parseFloat(next)); - const nextValue = isNumeric ? next : undefined; - onChange({ - ...values, - [corner]: nextValue - }); - }; - const createHandleOnUnitChange = side => next => { - const newUnits = { - ...selectedUnits - }; - newUnits[side] = next; - setSelectedUnits(newUnits); - }; - - // For shorthand style & backwards compatibility, handle flat string value. - const values = typeof valuesProp !== 'string' ? valuesProp : { - topLeft: valuesProp, - topRight: valuesProp, - bottomLeft: valuesProp, - bottomRight: valuesProp - }; - - // Controls are wrapped in tooltips as visible labels aren't desired here. - // Tooltip rendering also requires the UnitControl to be wrapped. See: - // https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026 - return (0,external_React_.createElement)("div", { - className: "components-border-radius-control__input-controls-wrapper" - }, Object.entries(CORNERS).map(([corner, label]) => { - const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values[corner]); - const computedUnit = values[corner] ? parsedUnit : selectedUnits[corner] || selectedUnits.flat; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: label, - placement: "top", - key: corner - }, (0,external_React_.createElement)("div", { - className: "components-border-radius-control__tooltip-wrapper" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - ...props, - "aria-label": label, - value: [parsedQuantity, computedUnit].join(''), - onChange: createHandleOnChange(corner), - onUnitChange: createHandleOnUnitChange(corner), - size: '__unstable-large' - }))); - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js - -/** - * WordPress dependencies - */ - -const link_link = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z" -})); -/* harmony default export */ var library_link = (link_link); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/linked-button.js - -/** - * WordPress dependencies - */ - - - -function LinkedButton({ - isLinked, - ...props -}) { - const label = isLinked ? (0,external_wp_i18n_namespaceObject.__)('Unlink radii') : (0,external_wp_i18n_namespaceObject.__)('Link radii'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: label - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...props, - className: "component-border-radius-control__linked-button", - size: "small", - icon: isLinked ? library_link : link_off, - iconSize: 24, - "aria-label": label - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/index.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - -const border_radius_control_DEFAULT_VALUES = { - topLeft: undefined, - topRight: undefined, - bottomLeft: undefined, - bottomRight: undefined -}; -const MIN_BORDER_RADIUS_VALUE = 0; -const MAX_BORDER_RADIUS_VALUES = { - px: 100, - em: 20, - rem: 20 -}; - -/** - * Control to display border radius options. - * - * @param {Object} props Component props. - * @param {Function} props.onChange Callback to handle onChange. - * @param {Object} props.values Border radius values. - * - * @return {Element} Custom border radius control. - */ -function BorderRadiusControl({ - onChange, - values -}) { - const [isLinked, setIsLinked] = (0,external_wp_element_namespaceObject.useState)(!hasDefinedValues(values) || !hasMixedValues(values)); - - // Tracking selected units via internal state allows filtering of CSS unit - // only values from being saved while maintaining preexisting unit selection - // behaviour. Filtering CSS unit only values prevents invalid style values. - const [selectedUnits, setSelectedUnits] = (0,external_wp_element_namespaceObject.useState)({ - flat: typeof values === 'string' ? (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values)[1] : undefined, - topLeft: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.topLeft)[1], - topRight: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.topRight)[1], - bottomLeft: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomLeft)[1], - bottomRight: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomRight)[1] - }); - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['px', 'em', 'rem'] - }); - const unit = getAllUnit(selectedUnits); - const unitConfig = units && units.find(item => item.value === unit); - const step = unitConfig?.step || 1; - const [allValue] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(getAllValue(values)); - const toggleLinked = () => setIsLinked(!isLinked); - const handleSliderChange = next => { - onChange(next !== undefined ? `${next}${unit}` : undefined); - }; - return (0,external_React_.createElement)("fieldset", { - className: "components-border-radius-control" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Radius')), (0,external_React_.createElement)("div", { - className: "components-border-radius-control__wrapper" - }, isLinked ? (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(AllInputControl, { - className: "components-border-radius-control__unit-control", - values: values, - min: MIN_BORDER_RADIUS_VALUE, - onChange: onChange, - selectedUnits: selectedUnits, - setSelectedUnits: setSelectedUnits, - units: units - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Border radius'), - hideLabelFromVision: true, - className: "components-border-radius-control__range-control", - value: allValue !== null && allValue !== void 0 ? allValue : '', - min: MIN_BORDER_RADIUS_VALUE, - max: MAX_BORDER_RADIUS_VALUES[unit], - initialPosition: 0, - withInputField: false, - onChange: handleSliderChange, - step: step, - __nextHasNoMarginBottom: true - })) : (0,external_React_.createElement)(BoxInputControls, { - min: MIN_BORDER_RADIUS_VALUE, - onChange: onChange, - selectedUnits: selectedUnits, - setSelectedUnits: setSelectedUnits, - values: values || border_radius_control_DEFAULT_VALUES, - units: units - }), (0,external_React_.createElement)(LinkedButton, { - onClick: toggleLinked, - isLinked: isLinked - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/border-panel.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - -function useHasBorderPanel(settings) { - const controls = [useHasBorderColorControl(settings), useHasBorderRadiusControl(settings), useHasBorderStyleControl(settings), useHasBorderWidthControl(settings)]; - return controls.some(Boolean); -} -function useHasBorderColorControl(settings) { - return settings?.border?.color; -} -function useHasBorderRadiusControl(settings) { - return settings?.border?.radius; -} -function useHasBorderStyleControl(settings) { - return settings?.border?.style; -} -function useHasBorderWidthControl(settings) { - return settings?.border?.width; -} -function BorderToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject.__)('Border'), - resetAll: resetAll, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); -} -const border_panel_DEFAULT_CONTROLS = { - radius: true, - color: true, - width: true -}; -function BorderPanel({ - as: Wrapper = BorderToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = border_panel_DEFAULT_CONTROLS -}) { - const colors = useColorsPerOrigin(settings); - const decodeValue = (0,external_wp_element_namespaceObject.useCallback)(rawValue => getValueFromVariable({ - settings - }, '', rawValue), [settings]); - const encodeColorValue = colorValue => { - const allColors = colors.flatMap(({ - colors: originColors - }) => originColors); - const colorObject = allColors.find(({ - color - }) => color === colorValue); - return colorObject ? 'var:preset|color|' + colorObject.slug : colorValue; - }; - const border = (0,external_wp_element_namespaceObject.useMemo)(() => { - if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(inheritedValue?.border)) { - const borderValue = { - ...inheritedValue?.border - }; - ['top', 'right', 'bottom', 'left'].forEach(side => { - borderValue[side] = { - ...borderValue[side], - color: decodeValue(borderValue[side]?.color) - }; - }); - return borderValue; - } - return { - ...inheritedValue?.border, - color: inheritedValue?.border?.color ? decodeValue(inheritedValue?.border?.color) : undefined - }; - }, [inheritedValue?.border, decodeValue]); - const setBorder = newBorder => onChange({ - ...value, - border: newBorder - }); - const showBorderColor = useHasBorderColorControl(settings); - const showBorderStyle = useHasBorderStyleControl(settings); - const showBorderWidth = useHasBorderWidthControl(settings); - - // Border radius. - const showBorderRadius = useHasBorderRadiusControl(settings); - const borderRadiusValues = decodeValue(border?.radius); - const setBorderRadius = newBorderRadius => setBorder({ - ...border, - radius: newBorderRadius - }); - const hasBorderRadius = () => { - const borderValues = value?.border?.radius; - if (typeof borderValues === 'object') { - return Object.entries(borderValues).some(Boolean); - } - return !!borderValues; - }; - const resetBorder = () => { - if (hasBorderRadius()) { - return setBorder({ - radius: value?.border?.radius - }); - } - setBorder(undefined); - }; - const onBorderChange = newBorder => { - // Ensure we have a visible border style when a border width or - // color is being selected. - const updatedBorder = { - ...newBorder - }; - if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(updatedBorder)) { - ['top', 'right', 'bottom', 'left'].forEach(side => { - if (updatedBorder[side]) { - updatedBorder[side] = { - ...updatedBorder[side], - color: encodeColorValue(updatedBorder[side]?.color) - }; - } - }); - } else if (updatedBorder) { - updatedBorder.color = encodeColorValue(updatedBorder.color); - } - - // As radius is maintained separately to color, style, and width - // maintain its value. Undefined values here will be cleaned when - // global styles are saved. - setBorder({ - radius: border?.radius, - ...updatedBorder - }); - }; - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - border: undefined - }; - }, []); - const showBorderByDefault = defaultControls?.color || defaultControls?.width; - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, (showBorderWidth || showBorderColor) && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: () => (0,external_wp_components_namespaceObject.__experimentalIsDefinedBorder)(value?.border), - label: (0,external_wp_i18n_namespaceObject.__)('Border'), - onDeselect: () => resetBorder(), - isShownByDefault: showBorderByDefault, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalBorderBoxControl, { - colors: colors, - enableAlpha: true, - enableStyle: showBorderStyle, - onChange: onBorderChange, - popoverOffset: 40, - popoverPlacement: "left-start", - value: border, - __experimentalIsRenderedInSidebar: true, - size: '__unstable-large' - })), showBorderRadius && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasBorderRadius, - label: (0,external_wp_i18n_namespaceObject.__)('Radius'), - onDeselect: () => setBorderRadius(undefined), - isShownByDefault: defaultControls.radius, - panelId: panelId - }, (0,external_React_.createElement)(BorderRadiusControl, { - values: borderRadiusValues, - onChange: newValue => { - setBorderRadius(newValue || undefined); - } - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/border.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - - -/** - * Internal dependencies - */ - - - - - - -const BORDER_SUPPORT_KEY = '__experimentalBorder'; -const getColorByProperty = (colors, property, value) => { - let matchedColor; - colors.some(origin => origin.colors.some(color => { - if (color[property] === value) { - matchedColor = color; - return true; - } - return false; - })); - return matchedColor; -}; -const getMultiOriginColor = ({ - colors, - namedColor, - customColor -}) => { - // Search each origin (default, theme, or user) for matching color by name. - if (namedColor) { - const colorObject = getColorByProperty(colors, 'slug', namedColor); - if (colorObject) { - return colorObject; - } - } - - // Skip if no custom color or matching named color. - if (!customColor) { - return { - color: undefined - }; - } - - // Attempt to find color via custom color value or build new object. - const colorObject = getColorByProperty(colors, 'color', customColor); - return colorObject ? colorObject : { - color: customColor - }; -}; -function getColorSlugFromVariable(value) { - const namedColor = /var:preset\|color\|(.+)/.exec(value); - if (namedColor && namedColor[1]) { - return namedColor[1]; - } - return null; -} -function styleToAttributes(style) { - if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(style?.border)) { - return { - style, - borderColor: undefined - }; - } - const borderColorValue = style?.border?.color; - const borderColorSlug = borderColorValue?.startsWith('var:preset|color|') ? borderColorValue.substring('var:preset|color|'.length) : undefined; - const updatedStyle = { - ...style - }; - updatedStyle.border = { - ...updatedStyle.border, - color: borderColorSlug ? undefined : borderColorValue - }; - return { - style: utils_cleanEmptyObject(updatedStyle), - borderColor: borderColorSlug - }; -} -function attributesToStyle(attributes) { - if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(attributes.style?.border)) { - return attributes.style; - } - return { - ...attributes.style, - border: { - ...attributes.style?.border, - color: attributes.borderColor ? 'var:preset|color|' + attributes.borderColor : attributes.style?.border?.color - } - }; -} -function BordersInspectorControl({ - children, - resetAllFilter -}) { - const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { - const existingStyle = attributesToStyle(attributes); - const updatedStyle = resetAllFilter(existingStyle); - return { - ...attributes, - ...styleToAttributes(updatedStyle) - }; - }, [resetAllFilter]); - return (0,external_React_.createElement)(inspector_controls, { - group: "border", - resetAllFilter: attributesResetAllFilter - }, children); -} -function border_BorderPanel({ - clientId, - name, - setAttributes, - settings -}) { - const isEnabled = useHasBorderPanel(settings); - function selector(select) { - const { - style, - borderColor - } = select(store).getBlockAttributes(clientId) || {}; - return { - style, - borderColor - }; - } - const { - style, - borderColor - } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId]); - const value = (0,external_wp_element_namespaceObject.useMemo)(() => { - return attributesToStyle({ - style, - borderColor - }); - }, [style, borderColor]); - const onChange = newStyle => { - setAttributes(styleToAttributes(newStyle)); - }; - if (!isEnabled) { - return null; - } - const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']); - return (0,external_React_.createElement)(BorderPanel, { - as: BordersInspectorControl, - panelId: clientId, - settings: settings, - value: value, - onChange: onChange, - defaultControls: defaultControls - }); -} - -/** - * Determine whether there is block support for border properties. - * - * @param {string} blockName Block name. - * @param {string} feature Border feature to check support for. - * - * @return {boolean} Whether there is support. - */ -function hasBorderSupport(blockName, feature = 'any') { - if (external_wp_element_namespaceObject.Platform.OS !== 'web') { - return false; - } - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, BORDER_SUPPORT_KEY); - if (support === true) { - return true; - } - if (feature === 'any') { - return !!(support?.color || support?.radius || support?.width || support?.style); - } - return !!support?.[feature]; -} - -/** - * Returns a new style object where the specified border attribute has been - * removed. - * - * @param {Object} style Styles from block attributes. - * @param {string} attribute The border style attribute to clear. - * - * @return {Object} Style object with the specified attribute removed. - */ -function removeBorderAttribute(style, attribute) { - return cleanEmptyObject({ - ...style, - border: { - ...style?.border, - [attribute]: undefined - } - }); -} - -/** - * Filters registered block settings, extending attributes to include - * `borderColor` if needed. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Updated block settings. - */ -function addAttributes(settings) { - if (!hasBorderSupport(settings, 'color')) { - return settings; - } - - // Allow blocks to specify default value if needed. - if (settings.attributes.borderColor) { - return settings; - } - - // Add new borderColor attribute to block settings. - return { - ...settings, - attributes: { - ...settings.attributes, - borderColor: { - type: 'string' - } - } - }; -} - -/** - * Override props assigned to save component to inject border color. - * - * @param {Object} props Additional props applied to save element. - * @param {Object|string} blockNameOrType Block type definition. - * @param {Object} attributes Block's attributes. - * - * @return {Object} Filtered props to apply to save element. - */ -function border_addSaveProps(props, blockNameOrType, attributes) { - if (!hasBorderSupport(blockNameOrType, 'color') || shouldSkipSerialization(blockNameOrType, BORDER_SUPPORT_KEY, 'color')) { - return props; - } - const borderClasses = getBorderClasses(attributes); - const newClassName = classnames_default()(props.className, borderClasses); - - // If we are clearing the last of the previous classes in `className` - // set it to `undefined` to avoid rendering empty DOM attributes. - props.className = newClassName ? newClassName : undefined; - return props; -} - -/** - * Generates a CSS class name consisting of all the applicable border color - * classes given the current block attributes. - * - * @param {Object} attributes Block's attributes. - * - * @return {string} CSS class name. - */ -function getBorderClasses(attributes) { - const { - borderColor, - style - } = attributes; - const borderColorClass = getColorClassName('border-color', borderColor); - return classnames_default()({ - 'has-border-color': borderColor || style?.border?.color, - [borderColorClass]: !!borderColorClass - }); -} -function border_useBlockProps({ - name, - borderColor, - style -}) { - const { - colors - } = useMultipleOriginColorsAndGradients(); - if (!hasBorderSupport(name, 'color') || shouldSkipSerialization(name, BORDER_SUPPORT_KEY, 'color')) { - return {}; - } - const { - color: borderColorValue - } = getMultiOriginColor({ - colors, - namedColor: borderColor - }); - const { - color: borderTopColor - } = getMultiOriginColor({ - colors, - namedColor: getColorSlugFromVariable(style?.border?.top?.color) - }); - const { - color: borderRightColor - } = getMultiOriginColor({ - colors, - namedColor: getColorSlugFromVariable(style?.border?.right?.color) - }); - const { - color: borderBottomColor - } = getMultiOriginColor({ - colors, - namedColor: getColorSlugFromVariable(style?.border?.bottom?.color) - }); - const { - color: borderLeftColor - } = getMultiOriginColor({ - colors, - namedColor: getColorSlugFromVariable(style?.border?.left?.color) - }); - const extraStyles = { - borderTopColor: borderTopColor || borderColorValue, - borderRightColor: borderRightColor || borderColorValue, - borderBottomColor: borderBottomColor || borderColorValue, - borderLeftColor: borderLeftColor || borderColorValue - }; - return border_addSaveProps({ - style: utils_cleanEmptyObject(extraStyles) || {} - }, name, { - borderColor, - style - }); -} -/* harmony default export */ var border = ({ - useBlockProps: border_useBlockProps, - addSaveProps: border_addSaveProps, - attributeKeys: ['borderColor', 'style'], - hasSupport(name) { - return hasBorderSupport(name, 'color'); - } -}); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/border/addAttributes', addAttributes); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/use-gradient.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - - -function __experimentalGetGradientClass(gradientSlug) { - if (!gradientSlug) { - return undefined; - } - return `has-${gradientSlug}-gradient-background`; -} - -/** - * Retrieves the gradient value per slug. - * - * @param {Array} gradients Gradient Palette - * @param {string} slug Gradient slug - * - * @return {string} Gradient value. - */ -function getGradientValueBySlug(gradients, slug) { - const gradient = gradients?.find(g => g.slug === slug); - return gradient && gradient.gradient; -} -function __experimentalGetGradientObjectByGradientValue(gradients, value) { - const gradient = gradients?.find(g => g.gradient === value); - return gradient; -} - -/** - * Retrieves the gradient slug per slug. - * - * @param {Array} gradients Gradient Palette - * @param {string} value Gradient value - * @return {string} Gradient slug. - */ -function getGradientSlugByValue(gradients, value) { - const gradient = __experimentalGetGradientObjectByGradientValue(gradients, value); - return gradient && gradient.slug; -} -function __experimentalUseGradient({ - gradientAttribute = 'gradient', - customGradientAttribute = 'customGradient' -} = {}) { - const { - clientId - } = useBlockEditContext(); - const [userGradientPalette, themeGradientPalette, defaultGradientPalette] = use_settings_useSettings('color.gradients.custom', 'color.gradients.theme', 'color.gradients.default'); - const allGradients = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userGradientPalette || []), ...(themeGradientPalette || []), ...(defaultGradientPalette || [])], [userGradientPalette, themeGradientPalette, defaultGradientPalette]); - const { - gradient, - customGradient - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockAttributes - } = select(store); - const attributes = getBlockAttributes(clientId) || {}; - return { - customGradient: attributes[customGradientAttribute], - gradient: attributes[gradientAttribute] - }; - }, [clientId, gradientAttribute, customGradientAttribute]); - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const setGradient = (0,external_wp_element_namespaceObject.useCallback)(newGradientValue => { - const slug = getGradientSlugByValue(allGradients, newGradientValue); - if (slug) { - updateBlockAttributes(clientId, { - [gradientAttribute]: slug, - [customGradientAttribute]: undefined - }); - return; - } - updateBlockAttributes(clientId, { - [gradientAttribute]: undefined, - [customGradientAttribute]: newGradientValue - }); - }, [allGradients, clientId, updateBlockAttributes]); - const gradientClass = __experimentalGetGradientClass(gradient); - let gradientValue; - if (gradient) { - gradientValue = getGradientValueBySlug(allGradients, gradient); - } else { - gradientValue = customGradient; - } - return { - gradientClass, - gradientValue, - setGradient - }; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/control.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -const colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients']; -const TAB_IDS = { - color: 'color', - gradient: 'gradient' -}; -function ColorGradientControlInner({ - colors, - gradients, - disableCustomColors, - disableCustomGradients, - __experimentalIsRenderedInSidebar, - className, - label, - onColorChange, - onGradientChange, - colorValue, - gradientValue, - clearable, - showTitle = true, - enableAlpha, - headingLevel -}) { - const canChooseAColor = onColorChange && (colors && colors.length > 0 || !disableCustomColors); - const canChooseAGradient = onGradientChange && (gradients && gradients.length > 0 || !disableCustomGradients); - if (!canChooseAColor && !canChooseAGradient) { - return null; - } - const tabPanels = { - [TAB_IDS.color]: (0,external_React_.createElement)(external_wp_components_namespaceObject.ColorPalette, { - value: colorValue, - onChange: canChooseAGradient ? newColor => { - onColorChange(newColor); - onGradientChange(); - } : onColorChange, - colors, - disableCustomColors, - __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar, - clearable: clearable, - enableAlpha: enableAlpha, - headingLevel: headingLevel - }), - [TAB_IDS.gradient]: (0,external_React_.createElement)(external_wp_components_namespaceObject.GradientPicker, { - __nextHasNoMargin: true, - value: gradientValue, - onChange: canChooseAColor ? newGradient => { - onGradientChange(newGradient); - onColorChange(); - } : onGradientChange, - gradients, - disableCustomGradients, - __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar, - clearable: clearable, - headingLevel: headingLevel - }) - }; - const renderPanelType = type => (0,external_React_.createElement)("div", { - className: "block-editor-color-gradient-control__panel" - }, tabPanels[type]); - - // Unlocking `Tabs` too early causes the `unlock` method to receive an empty - // object, due to circular dependencies. - // See https://github.com/WordPress/gutenberg/issues/52692 - const { - Tabs - } = unlock(external_wp_components_namespaceObject.privateApis); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl, { - __nextHasNoMarginBottom: true, - className: classnames_default()('block-editor-color-gradient-control', className) - }, (0,external_React_.createElement)("fieldset", { - className: "block-editor-color-gradient-control__fieldset" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 1 - }, showTitle && (0,external_React_.createElement)("legend", null, (0,external_React_.createElement)("div", { - className: "block-editor-color-gradient-control__color-indicator" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && (0,external_React_.createElement)("div", null, (0,external_React_.createElement)(Tabs, { - initialTabId: gradientValue ? TAB_IDS.gradient : !!canChooseAColor && TAB_IDS.color - }, (0,external_React_.createElement)(Tabs.TabList, null, (0,external_React_.createElement)(Tabs.Tab, { - tabId: TAB_IDS.color - }, (0,external_wp_i18n_namespaceObject.__)('Solid')), (0,external_React_.createElement)(Tabs.Tab, { - tabId: TAB_IDS.gradient - }, (0,external_wp_i18n_namespaceObject.__)('Gradient'))), (0,external_React_.createElement)(Tabs.TabPanel, { - tabId: TAB_IDS.color, - className: 'block-editor-color-gradient-control__panel', - focusable: false - }, tabPanels.color), (0,external_React_.createElement)(Tabs.TabPanel, { - tabId: TAB_IDS.gradient, - className: 'block-editor-color-gradient-control__panel', - focusable: false - }, tabPanels.gradient))), !canChooseAGradient && renderPanelType(TAB_IDS.color), !canChooseAColor && renderPanelType(TAB_IDS.gradient)))); -} -function ColorGradientControlSelect(props) { - const [colors, gradients, customColors, customGradients] = use_settings_useSettings('color.palette', 'color.gradients', 'color.custom', 'color.customGradient'); - return (0,external_React_.createElement)(ColorGradientControlInner, { - colors: colors, - gradients: gradients, - disableCustomColors: !customColors, - disableCustomGradients: !customGradients, - ...props - }); -} -function ColorGradientControl(props) { - if (colorsAndGradientKeys.every(key => props.hasOwnProperty(key))) { - return (0,external_React_.createElement)(ColorGradientControlInner, { - ...props - }); - } - return (0,external_React_.createElement)(ColorGradientControlSelect, { - ...props - }); -} -/* harmony default export */ var control = (ColorGradientControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/color-panel.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - -function useHasColorPanel(settings) { - const hasTextPanel = useHasTextPanel(settings); - const hasBackgroundPanel = useHasBackgroundPanel(settings); - const hasLinkPanel = useHasLinkPanel(settings); - const hasHeadingPanel = useHasHeadingPanel(settings); - const hasButtonPanel = useHasButtonPanel(settings); - const hasCaptionPanel = useHasCaptionPanel(settings); - return hasTextPanel || hasBackgroundPanel || hasLinkPanel || hasHeadingPanel || hasButtonPanel || hasCaptionPanel; -} -function useHasTextPanel(settings) { - const colors = useColorsPerOrigin(settings); - return settings?.color?.text && (colors?.length > 0 || settings?.color?.custom); -} -function useHasLinkPanel(settings) { - const colors = useColorsPerOrigin(settings); - return settings?.color?.link && (colors?.length > 0 || settings?.color?.custom); -} -function useHasCaptionPanel(settings) { - const colors = useColorsPerOrigin(settings); - return settings?.color?.caption && (colors?.length > 0 || settings?.color?.custom); -} -function useHasHeadingPanel(settings) { - const colors = useColorsPerOrigin(settings); - const gradients = useGradientsPerOrigin(settings); - return settings?.color?.heading && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); -} -function useHasButtonPanel(settings) { - const colors = useColorsPerOrigin(settings); - const gradients = useGradientsPerOrigin(settings); - return settings?.color?.button && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); -} -function useHasBackgroundPanel(settings) { - const colors = useColorsPerOrigin(settings); - const gradients = useGradientsPerOrigin(settings); - return settings?.color?.background && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); -} -function ColorToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject.__)('Color'), - resetAll: resetAll, - panelId: panelId, - hasInnerWrapper: true, - className: "color-block-support-panel", - __experimentalFirstVisibleItemClass: "first", - __experimentalLastVisibleItemClass: "last", - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, (0,external_React_.createElement)("div", { - className: "color-block-support-panel__inner-wrapper" - }, children)); -} -const color_panel_DEFAULT_CONTROLS = { - text: true, - background: true, - link: true, - heading: true, - button: true, - caption: true -}; -const popoverProps = { - placement: 'left-start', - offset: 36, - shift: true -}; -const LabeledColorIndicators = ({ - indicators, - label -}) => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalZStack, { - isLayered: false, - offset: -8 -}, indicators.map((indicator, index) => (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - key: index, - expanded: false -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.ColorIndicator, { - colorValue: indicator -})))), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - className: "block-editor-panel-color-gradient-settings__color-name", - title: label -}, label)); -function ColorPanelTab({ - isGradient, - inheritedValue, - userValue, - setValue, - colorGradientControlSettings -}) { - return (0,external_React_.createElement)(control, { - ...colorGradientControlSettings, - showTitle: false, - enableAlpha: true, - __experimentalIsRenderedInSidebar: true, - colorValue: isGradient ? undefined : inheritedValue, - gradientValue: isGradient ? inheritedValue : undefined, - onColorChange: isGradient ? undefined : setValue, - onGradientChange: isGradient ? setValue : undefined, - clearable: inheritedValue === userValue, - headingLevel: 3 - }); -} -function ColorPanelDropdown({ - label, - hasValue, - resetValue, - isShownByDefault, - indicators, - tabs, - colorGradientControlSettings, - panelId -}) { - const currentTab = tabs.find(tab => tab.userValue !== undefined); - // Unlocking `Tabs` too early causes the `unlock` method to receive an empty - // object, due to circular dependencies. - // See https://github.com/WordPress/gutenberg/issues/52692 - const { - Tabs - } = unlock(external_wp_components_namespaceObject.privateApis); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "block-editor-tools-panel-color-gradient-settings__item", - hasValue: hasValue, - label: label, - onDeselect: resetValue, - isShownByDefault: isShownByDefault, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: popoverProps, - className: "block-editor-tools-panel-color-gradient-settings__dropdown", - renderToggle: ({ - onToggle, - isOpen - }) => { - const toggleProps = { - onClick: onToggle, - className: classnames_default()('block-editor-panel-color-gradient-settings__dropdown', { - 'is-open': isOpen - }), - 'aria-expanded': isOpen, - 'aria-label': (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s is the type of color property, e.g., "background" */ - (0,external_wp_i18n_namespaceObject.__)('Color %s styles'), label) - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...toggleProps - }, (0,external_React_.createElement)(LabeledColorIndicators, { - indicators: indicators, - label: label - })); - }, - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { - paddingSize: "none" - }, (0,external_React_.createElement)("div", { - className: "block-editor-panel-color-gradient-settings__dropdown-content" - }, tabs.length === 1 && (0,external_React_.createElement)(ColorPanelTab, { - ...tabs[0], - colorGradientControlSettings: colorGradientControlSettings - }), tabs.length > 1 && (0,external_React_.createElement)(Tabs, { - initialTabId: currentTab?.key - }, (0,external_React_.createElement)(Tabs.TabList, null, tabs.map(tab => (0,external_React_.createElement)(Tabs.Tab, { - key: tab.key, - tabId: tab.key - }, tab.label))), tabs.map(tab => { - return (0,external_React_.createElement)(Tabs.TabPanel, { - key: tab.key, - tabId: tab.key, - focusable: false - }, (0,external_React_.createElement)(ColorPanelTab, { - ...tab, - colorGradientControlSettings: colorGradientControlSettings - })); - })))) - })); -} -function ColorPanel({ - as: Wrapper = ColorToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = color_panel_DEFAULT_CONTROLS, - children -}) { - const colors = useColorsPerOrigin(settings); - const gradients = useGradientsPerOrigin(settings); - const areCustomSolidsEnabled = settings?.color?.custom; - const areCustomGradientsEnabled = settings?.color?.customGradient; - const hasSolidColors = colors.length > 0 || areCustomSolidsEnabled; - const hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled; - const decodeValue = rawValue => getValueFromVariable({ - settings - }, '', rawValue); - const encodeColorValue = colorValue => { - const allColors = colors.flatMap(({ - colors: originColors - }) => originColors); - const colorObject = allColors.find(({ - color - }) => color === colorValue); - return colorObject ? 'var:preset|color|' + colorObject.slug : colorValue; - }; - const encodeGradientValue = gradientValue => { - const allGradients = gradients.flatMap(({ - gradients: originGradients - }) => originGradients); - const gradientObject = allGradients.find(({ - gradient - }) => gradient === gradientValue); - return gradientObject ? 'var:preset|gradient|' + gradientObject.slug : gradientValue; - }; - - // BackgroundColor - const showBackgroundPanel = useHasBackgroundPanel(settings); - const backgroundColor = decodeValue(inheritedValue?.color?.background); - const userBackgroundColor = decodeValue(value?.color?.background); - const gradient = decodeValue(inheritedValue?.color?.gradient); - const userGradient = decodeValue(value?.color?.gradient); - const hasBackground = () => !!userBackgroundColor || !!userGradient; - const setBackgroundColor = newColor => { - const newValue = setImmutably(value, ['color', 'background'], encodeColorValue(newColor)); - newValue.color.gradient = undefined; - onChange(newValue); - }; - const setGradient = newGradient => { - const newValue = setImmutably(value, ['color', 'gradient'], encodeGradientValue(newGradient)); - newValue.color.background = undefined; - onChange(newValue); - }; - const resetBackground = () => { - const newValue = setImmutably(value, ['color', 'background'], undefined); - newValue.color.gradient = undefined; - onChange(newValue); - }; - - // Links - const showLinkPanel = useHasLinkPanel(settings); - const linkColor = decodeValue(inheritedValue?.elements?.link?.color?.text); - const userLinkColor = decodeValue(value?.elements?.link?.color?.text); - const setLinkColor = newColor => { - onChange(setImmutably(value, ['elements', 'link', 'color', 'text'], encodeColorValue(newColor))); - }; - const hoverLinkColor = decodeValue(inheritedValue?.elements?.link?.[':hover']?.color?.text); - const userHoverLinkColor = decodeValue(value?.elements?.link?.[':hover']?.color?.text); - const setHoverLinkColor = newColor => { - onChange(setImmutably(value, ['elements', 'link', ':hover', 'color', 'text'], encodeColorValue(newColor))); - }; - const hasLink = () => !!userLinkColor || !!userHoverLinkColor; - const resetLink = () => { - let newValue = setImmutably(value, ['elements', 'link', ':hover', 'color', 'text'], undefined); - newValue = setImmutably(newValue, ['elements', 'link', 'color', 'text'], undefined); - onChange(newValue); - }; - - // Text Color - const showTextPanel = useHasTextPanel(settings); - const textColor = decodeValue(inheritedValue?.color?.text); - const userTextColor = decodeValue(value?.color?.text); - const hasTextColor = () => !!userTextColor; - const setTextColor = newColor => { - let changedObject = setImmutably(value, ['color', 'text'], encodeColorValue(newColor)); - if (textColor === linkColor) { - changedObject = setImmutably(changedObject, ['elements', 'link', 'color', 'text'], encodeColorValue(newColor)); - } - onChange(changedObject); - }; - const resetTextColor = () => setTextColor(undefined); - - // Elements - const elements = [{ - name: 'caption', - label: (0,external_wp_i18n_namespaceObject.__)('Captions'), - showPanel: useHasCaptionPanel(settings) - }, { - name: 'button', - label: (0,external_wp_i18n_namespaceObject.__)('Button'), - showPanel: useHasButtonPanel(settings) - }, { - name: 'heading', - label: (0,external_wp_i18n_namespaceObject.__)('Heading'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h1', - label: (0,external_wp_i18n_namespaceObject.__)('H1'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h2', - label: (0,external_wp_i18n_namespaceObject.__)('H2'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h3', - label: (0,external_wp_i18n_namespaceObject.__)('H3'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h4', - label: (0,external_wp_i18n_namespaceObject.__)('H4'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h5', - label: (0,external_wp_i18n_namespaceObject.__)('H5'), - showPanel: useHasHeadingPanel(settings) - }, { - name: 'h6', - label: (0,external_wp_i18n_namespaceObject.__)('H6'), - showPanel: useHasHeadingPanel(settings) - }]; - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - color: undefined, - elements: { - ...previousValue?.elements, - link: { - ...previousValue?.elements?.link, - color: undefined, - ':hover': { - color: undefined - } - }, - ...elements.reduce((acc, element) => { - return { - ...acc, - [element.name]: { - ...previousValue?.elements?.[element.name], - color: undefined - } - }; - }, {}) - } - }; - }, []); - const items = [showTextPanel && { - key: 'text', - label: (0,external_wp_i18n_namespaceObject.__)('Text'), - hasValue: hasTextColor, - resetValue: resetTextColor, - isShownByDefault: defaultControls.text, - indicators: [textColor], - tabs: [{ - key: 'text', - label: (0,external_wp_i18n_namespaceObject.__)('Text'), - inheritedValue: textColor, - setValue: setTextColor, - userValue: userTextColor - }] - }, showBackgroundPanel && { - key: 'background', - label: (0,external_wp_i18n_namespaceObject.__)('Background'), - hasValue: hasBackground, - resetValue: resetBackground, - isShownByDefault: defaultControls.background, - indicators: [gradient !== null && gradient !== void 0 ? gradient : backgroundColor], - tabs: [hasSolidColors && { - key: 'background', - label: (0,external_wp_i18n_namespaceObject.__)('Solid'), - inheritedValue: backgroundColor, - setValue: setBackgroundColor, - userValue: userBackgroundColor - }, hasGradientColors && { - key: 'gradient', - label: (0,external_wp_i18n_namespaceObject.__)('Gradient'), - inheritedValue: gradient, - setValue: setGradient, - userValue: userGradient, - isGradient: true - }].filter(Boolean) - }, showLinkPanel && { - key: 'link', - label: (0,external_wp_i18n_namespaceObject.__)('Link'), - hasValue: hasLink, - resetValue: resetLink, - isShownByDefault: defaultControls.link, - indicators: [linkColor, hoverLinkColor], - tabs: [{ - key: 'link', - label: (0,external_wp_i18n_namespaceObject.__)('Default'), - inheritedValue: linkColor, - setValue: setLinkColor, - userValue: userLinkColor - }, { - key: 'hover', - label: (0,external_wp_i18n_namespaceObject.__)('Hover'), - inheritedValue: hoverLinkColor, - setValue: setHoverLinkColor, - userValue: userHoverLinkColor - }] - }].filter(Boolean); - elements.forEach(({ - name, - label, - showPanel - }) => { - if (!showPanel) return; - const elementBackgroundColor = decodeValue(inheritedValue?.elements?.[name]?.color?.background); - const elementGradient = decodeValue(inheritedValue?.elements?.[name]?.color?.gradient); - const elementTextColor = decodeValue(inheritedValue?.elements?.[name]?.color?.text); - const elementBackgroundUserColor = decodeValue(value?.elements?.[name]?.color?.background); - const elementGradientUserColor = decodeValue(value?.elements?.[name]?.color?.gradient); - const elementTextUserColor = decodeValue(value?.elements?.[name]?.color?.text); - const hasElement = () => !!(elementTextUserColor || elementBackgroundUserColor || elementGradientUserColor); - const resetElement = () => { - const newValue = setImmutably(value, ['elements', name, 'color', 'background'], undefined); - newValue.elements[name].color.gradient = undefined; - newValue.elements[name].color.text = undefined; - onChange(newValue); - }; - const setElementTextColor = newTextColor => { - onChange(setImmutably(value, ['elements', name, 'color', 'text'], encodeColorValue(newTextColor))); - }; - const setElementBackgroundColor = newBackgroundColor => { - const newValue = setImmutably(value, ['elements', name, 'color', 'background'], encodeColorValue(newBackgroundColor)); - newValue.elements[name].color.gradient = undefined; - onChange(newValue); - }; - const setElementGradient = newGradient => { - const newValue = setImmutably(value, ['elements', name, 'color', 'gradient'], encodeGradientValue(newGradient)); - newValue.elements[name].color.background = undefined; - onChange(newValue); - }; - const supportsTextColor = true; - // Background color is not supported for `caption` - // as there isn't yet a way to set padding for the element. - const supportsBackground = name !== 'caption'; - items.push({ - key: name, - label, - hasValue: hasElement, - resetValue: resetElement, - isShownByDefault: defaultControls[name], - indicators: supportsTextColor && supportsBackground ? [elementTextColor, elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor] : [supportsTextColor ? elementTextColor : elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor], - tabs: [hasSolidColors && supportsTextColor && { - key: 'text', - label: (0,external_wp_i18n_namespaceObject.__)('Text'), - inheritedValue: elementTextColor, - setValue: setElementTextColor, - userValue: elementTextUserColor - }, hasSolidColors && supportsBackground && { - key: 'background', - label: (0,external_wp_i18n_namespaceObject.__)('Background'), - inheritedValue: elementBackgroundColor, - setValue: setElementBackgroundColor, - userValue: elementBackgroundUserColor - }, hasGradientColors && supportsBackground && { - key: 'gradient', - label: (0,external_wp_i18n_namespaceObject.__)('Gradient'), - inheritedValue: elementGradient, - setValue: setElementGradient, - userValue: elementGradientUserColor, - isGradient: true - }].filter(Boolean) - }); - }); - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, items.map(item => (0,external_React_.createElement)(ColorPanelDropdown, { - key: item.key, - ...item, - colorGradientControlSettings: { - colors, - disableCustomColors: !areCustomSolidsEnabled, - gradients, - disableCustomGradients: !areCustomGradientsEnabled - }, - panelId: panelId - })), children); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/contrast-checker/index.js - -/** - * External dependencies - */ - - - - -/** - * WordPress dependencies - */ - - - -k([names, a11y]); -function ContrastChecker({ - backgroundColor, - fallbackBackgroundColor, - fallbackTextColor, - fallbackLinkColor, - fontSize, - // Font size value in pixels. - isLargeText, - textColor, - linkColor, - enableAlphaChecker = false -}) { - const currentBackgroundColor = backgroundColor || fallbackBackgroundColor; - - // Must have a background color. - if (!currentBackgroundColor) { - return null; - } - const currentTextColor = textColor || fallbackTextColor; - const currentLinkColor = linkColor || fallbackLinkColor; - - // Must have at least one text color. - if (!currentTextColor && !currentLinkColor) { - return null; - } - const textColors = [{ - color: currentTextColor, - description: (0,external_wp_i18n_namespaceObject.__)('text color') - }, { - color: currentLinkColor, - description: (0,external_wp_i18n_namespaceObject.__)('link color') - }]; - const colordBackgroundColor = w(currentBackgroundColor); - const backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1; - const backgroundColorBrightness = colordBackgroundColor.brightness(); - const isReadableOptions = { - level: 'AA', - size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small' - }; - let message = ''; - let speakMessage = ''; - for (const item of textColors) { - // If there is no color, go no further. - if (!item.color) { - continue; - } - const colordTextColor = w(item.color); - const isColordTextReadable = colordTextColor.isReadable(colordBackgroundColor, isReadableOptions); - const textHasTransparency = colordTextColor.alpha() < 1; - - // If the contrast is not readable. - if (!isColordTextReadable) { - // Don't show the message if the background or text is transparent. - if (backgroundColorHasTransparency || textHasTransparency) { - continue; - } - message = backgroundColorBrightness < colordTextColor.brightness() ? (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s is a type of text color, e.g., "text color" or "link color". - (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'), item.description) : (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s is a type of text color, e.g., "text color" or "link color". - (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'), item.description); - speakMessage = (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read.'); - // Break from the loop when we have a contrast warning. - // These messages take priority over the transparency warning. - break; - } - - // If there is no contrast warning and the text is transparent, - // show the transparent warning if alpha check is enabled. - if (textHasTransparency && enableAlphaChecker) { - message = (0,external_wp_i18n_namespaceObject.__)('Transparent text may be hard for people to read.'); - speakMessage = (0,external_wp_i18n_namespaceObject.__)('Transparent text may be hard for people to read.'); - } - } - if (!message) { - return null; - } - - // Note: The `Notice` component can speak messages via its `spokenMessage` - // prop, but the contrast checker requires granular control over when the - // announcements are made. Notably, the message will be re-announced if a - // new color combination is selected and the contrast is still insufficient. - (0,external_wp_a11y_namespaceObject.speak)(speakMessage); - return (0,external_React_.createElement)("div", { - className: "block-editor-contrast-checker" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Notice, { - spokenMessage: null, - status: "warning", - isDismissible: false - }, message)); -} - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/contrast-checker/README.md - */ -/* harmony default export */ var contrast_checker = (ContrastChecker); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/block-refs-provider.js - -/** - * WordPress dependencies - */ - -const BlockRefs = (0,external_wp_element_namespaceObject.createContext)({ - refs: new Map(), - callbacks: new Map() -}); -function BlockRefsProvider({ - children -}) { - const value = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - refs: new Map(), - callbacks: new Map() - }), []); - return (0,external_React_.createElement)(BlockRefs.Provider, { - value: value - }, children); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-refs.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** @typedef {import('@wordpress/element').RefCallback} RefCallback */ -/** @typedef {import('@wordpress/element').RefObject} RefObject */ - -/** - * Provides a ref to the BlockRefs context. - * - * @param {string} clientId The client ID of the element ref. - * - * @return {RefCallback} Ref callback. - */ -function useBlockRefProvider(clientId) { - const { - refs, - callbacks - } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); - const ref = (0,external_wp_element_namespaceObject.useRef)(); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - refs.set(ref, clientId); - return () => { - refs.delete(ref); - }; - }, [clientId]); - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - // Update the ref in the provider. - ref.current = element; - // Call any update functions. - callbacks.forEach((id, setElement) => { - if (clientId === id) { - setElement(element); - } - }); - }, [clientId]); -} - -/** - * Gets a ref pointing to the current block element. Continues to return a - * stable ref even if the block client ID changes. - * - * @param {string} clientId The client ID to get a ref for. - * - * @return {RefObject} A ref containing the element. - */ -function useBlockRef(clientId) { - const { - refs - } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); - const freshClientId = (0,external_wp_element_namespaceObject.useRef)(); - freshClientId.current = clientId; - // Always return an object, even if no ref exists for a given client ID, so - // that `current` works at a later point. - return (0,external_wp_element_namespaceObject.useMemo)(() => ({ - get current() { - let element = null; - - // Multiple refs may be created for a single block. Find the - // first that has an element set. - for (const [ref, id] of refs.entries()) { - if (id === freshClientId.current && ref.current) { - element = ref.current; - } - } - return element; - } - }), []); -} - -/** - * Return the element for a given client ID. Updates whenever the element - * changes, becomes available, or disappears. - * - * @param {string} clientId The client ID to an element for. - * - * @return {Element|null} The block's wrapper element. - */ -function useBlockElement(clientId) { - const { - callbacks - } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); - const ref = useBlockRef(clientId); - const [element, setElement] = (0,external_wp_element_namespaceObject.useState)(null); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!clientId) { - return; - } - callbacks.set(setElement, clientId); - return () => { - callbacks.delete(setElement); - }; - }, [clientId]); - return ref.current || element; -} - - - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/contrast-checker.js - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -function getComputedStyle(node) { - return node.ownerDocument.defaultView.getComputedStyle(node); -} -function BlockColorContrastChecker({ - clientId -}) { - const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)(); - const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)(); - const [detectedLinkColor, setDetectedLinkColor] = (0,external_wp_element_namespaceObject.useState)(); - const ref = useBlockRef(clientId); - - // There are so many things that can change the color of a block - // So we perform this check on every render. - // eslint-disable-next-line react-hooks/exhaustive-deps - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!ref.current) { - return; - } - setDetectedColor(getComputedStyle(ref.current).color); - const firstLinkElement = ref.current?.querySelector('a'); - if (firstLinkElement && !!firstLinkElement.innerText) { - setDetectedLinkColor(getComputedStyle(firstLinkElement).color); - } - let backgroundColorNode = ref.current; - let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; - while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) { - backgroundColorNode = backgroundColorNode.parentNode; - backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; - } - setDetectedBackgroundColor(backgroundColor); - }); - return (0,external_React_.createElement)(contrast_checker, { - backgroundColor: detectedBackgroundColor, - textColor: detectedColor, - enableAlphaChecker: true, - linkColor: detectedLinkColor - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/color.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - - - - - - - - -const COLOR_SUPPORT_KEY = 'color'; -const hasColorSupport = blockNameOrType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockNameOrType, COLOR_SUPPORT_KEY); - return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false); -}; -const hasLinkColorSupport = blockType => { - if (external_wp_element_namespaceObject.Platform.OS !== 'web') { - return false; - } - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); - return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link; -}; -const hasGradientSupport = blockNameOrType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockNameOrType, COLOR_SUPPORT_KEY); - return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients; -}; -const hasBackgroundColorSupport = blockType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); - return colorSupport && colorSupport.background !== false; -}; -const hasTextColorSupport = blockType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); - return colorSupport && colorSupport.text !== false; -}; - -/** - * Filters registered block settings, extending attributes to include - * `backgroundColor` and `textColor` attribute. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function color_addAttributes(settings) { - if (!hasColorSupport(settings)) { - return settings; - } - - // Allow blocks to specify their own attribute definition with default values if needed. - if (!settings.attributes.backgroundColor) { - Object.assign(settings.attributes, { - backgroundColor: { - type: 'string' - } - }); - } - if (!settings.attributes.textColor) { - Object.assign(settings.attributes, { - textColor: { - type: 'string' - } - }); - } - if (hasGradientSupport(settings) && !settings.attributes.gradient) { - Object.assign(settings.attributes, { - gradient: { - type: 'string' - } - }); - } - return settings; -} - -/** - * Override props assigned to save component to inject colors classnames. - * - * @param {Object} props Additional props applied to save element. - * @param {Object|string} blockNameOrType Block type. - * @param {Object} attributes Block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function color_addSaveProps(props, blockNameOrType, attributes) { - if (!hasColorSupport(blockNameOrType) || shouldSkipSerialization(blockNameOrType, COLOR_SUPPORT_KEY)) { - return props; - } - const hasGradient = hasGradientSupport(blockNameOrType); - - // I'd have preferred to avoid the "style" attribute usage here - const { - backgroundColor, - textColor, - gradient, - style - } = attributes; - const shouldSerialize = feature => !shouldSkipSerialization(blockNameOrType, COLOR_SUPPORT_KEY, feature); - - // Primary color classes must come before the `has-text-color`, - // `has-background` and `has-link-color` classes to maintain backwards - // compatibility and avoid block invalidations. - const textClass = shouldSerialize('text') ? getColorClassName('color', textColor) : undefined; - const gradientClass = shouldSerialize('gradients') ? __experimentalGetGradientClass(gradient) : undefined; - const backgroundClass = shouldSerialize('background') ? getColorClassName('background-color', backgroundColor) : undefined; - const serializeHasBackground = shouldSerialize('background') || shouldSerialize('gradients'); - const hasBackground = backgroundColor || style?.color?.background || hasGradient && (gradient || style?.color?.gradient); - const newClassName = classnames_default()(props.className, textClass, gradientClass, { - // Don't apply the background class if there's a custom gradient. - [backgroundClass]: (!hasGradient || !style?.color?.gradient) && !!backgroundClass, - 'has-text-color': shouldSerialize('text') && (textColor || style?.color?.text), - 'has-background': serializeHasBackground && hasBackground, - 'has-link-color': shouldSerialize('link') && style?.elements?.link?.color - }); - props.className = newClassName ? newClassName : undefined; - return props; -} -function color_styleToAttributes(style) { - const textColorValue = style?.color?.text; - const textColorSlug = textColorValue?.startsWith('var:preset|color|') ? textColorValue.substring('var:preset|color|'.length) : undefined; - const backgroundColorValue = style?.color?.background; - const backgroundColorSlug = backgroundColorValue?.startsWith('var:preset|color|') ? backgroundColorValue.substring('var:preset|color|'.length) : undefined; - const gradientValue = style?.color?.gradient; - const gradientSlug = gradientValue?.startsWith('var:preset|gradient|') ? gradientValue.substring('var:preset|gradient|'.length) : undefined; - const updatedStyle = { - ...style - }; - updatedStyle.color = { - ...updatedStyle.color, - text: textColorSlug ? undefined : textColorValue, - background: backgroundColorSlug ? undefined : backgroundColorValue, - gradient: gradientSlug ? undefined : gradientValue - }; - return { - style: utils_cleanEmptyObject(updatedStyle), - textColor: textColorSlug, - backgroundColor: backgroundColorSlug, - gradient: gradientSlug - }; -} -function color_attributesToStyle(attributes) { - return { - ...attributes.style, - color: { - ...attributes.style?.color, - text: attributes.textColor ? 'var:preset|color|' + attributes.textColor : attributes.style?.color?.text, - background: attributes.backgroundColor ? 'var:preset|color|' + attributes.backgroundColor : attributes.style?.color?.background, - gradient: attributes.gradient ? 'var:preset|gradient|' + attributes.gradient : attributes.style?.color?.gradient - } - }; -} -function ColorInspectorControl({ - children, - resetAllFilter -}) { - const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { - const existingStyle = color_attributesToStyle(attributes); - const updatedStyle = resetAllFilter(existingStyle); - return { - ...attributes, - ...color_styleToAttributes(updatedStyle) - }; - }, [resetAllFilter]); - return (0,external_React_.createElement)(inspector_controls, { - group: "color", - resetAllFilter: attributesResetAllFilter - }, children); -} -function ColorEdit({ - clientId, - name, - setAttributes, - settings -}) { - const isEnabled = useHasColorPanel(settings); - function selector(select) { - const { - style, - textColor, - backgroundColor, - gradient - } = select(store).getBlockAttributes(clientId) || {}; - return { - style, - textColor, - backgroundColor, - gradient - }; - } - const { - style, - textColor, - backgroundColor, - gradient - } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId]); - const value = (0,external_wp_element_namespaceObject.useMemo)(() => { - return color_attributesToStyle({ - style, - textColor, - backgroundColor, - gradient - }); - }, [style, textColor, backgroundColor, gradient]); - const onChange = newStyle => { - setAttributes(color_styleToAttributes(newStyle)); - }; - if (!isEnabled) { - return null; - } - const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']); - const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) && - // Contrast checking is enabled by default. - // Deactivating it requires `enableContrastChecker` to have - // an explicit value of `false`. - false !== (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']); - return (0,external_React_.createElement)(ColorPanel, { - as: ColorInspectorControl, - panelId: clientId, - settings: settings, - value: value, - onChange: onChange, - defaultControls: defaultControls, - enableContrastChecker: false !== (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']) - }, enableContrastChecking && (0,external_React_.createElement)(BlockColorContrastChecker, { - clientId: clientId - })); -} -function color_useBlockProps({ - name, - backgroundColor, - textColor, - gradient, - style -}) { - const [userPalette, themePalette, defaultPalette] = use_settings_useSettings('color.palette.custom', 'color.palette.theme', 'color.palette.default'); - const colors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); - if (!hasColorSupport(name) || shouldSkipSerialization(name, COLOR_SUPPORT_KEY)) { - return {}; - } - const extraStyles = {}; - if (textColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'text')) { - extraStyles.color = getColorObjectByAttributeValues(colors, textColor)?.color; - } - if (backgroundColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'background')) { - extraStyles.backgroundColor = getColorObjectByAttributeValues(colors, backgroundColor)?.color; - } - const saveProps = color_addSaveProps({ - style: extraStyles - }, name, { - textColor, - backgroundColor, - gradient, - style - }); - const hasBackgroundValue = backgroundColor || style?.color?.background || gradient || style?.color?.gradient; - return { - ...saveProps, - className: classnames_default()(saveProps.className, - // Add background image classes in the editor, if not already handled by background color values. - !hasBackgroundValue && getBackgroundImageClasses(style)) - }; -} -/* harmony default export */ var color = ({ - useBlockProps: color_useBlockProps, - addSaveProps: color_addSaveProps, - attributeKeys: ['backgroundColor', 'textColor', 'gradient', 'style'], - hasSupport: hasColorSupport -}); -const MIGRATION_PATHS = { - linkColor: [['style', 'elements', 'link', 'color', 'text']], - textColor: [['textColor'], ['style', 'color', 'text']], - backgroundColor: [['backgroundColor'], ['style', 'color', 'background']], - gradient: [['gradient'], ['style', 'color', 'gradient']] -}; -function color_addTransforms(result, source, index, results) { - const destinationBlockType = result.name; - const activeSupports = { - linkColor: hasLinkColorSupport(destinationBlockType), - textColor: hasTextColorSupport(destinationBlockType), - backgroundColor: hasBackgroundColorSupport(destinationBlockType), - gradient: hasGradientSupport(destinationBlockType) - }; - return transformStyles(activeSupports, MIGRATION_PATHS, result, source, index, results); -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/color/addAttribute', color_addAttributes); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', color_addTransforms); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-family/index.js - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - -function FontFamilyControl({ - value = '', - onChange, - fontFamilies, - ...props -}) { - const [blockLevelFontFamilies] = use_settings_useSettings('typography.fontFamilies'); - if (!fontFamilies) { - fontFamilies = blockLevelFontFamilies; - } - if (!fontFamilies || fontFamilies.length === 0) { - return null; - } - const options = [{ - value: '', - label: (0,external_wp_i18n_namespaceObject.__)('Default') - }, ...fontFamilies.map(({ - fontFamily, - name - }) => { - return { - value: fontFamily, - label: name || fontFamily - }; - })]; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.SelectControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Font'), - options: options, - value: value, - onChange: onChange, - labelPosition: "top", - ...props - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-appearance-control/index.js - -/** - * WordPress dependencies - */ - - - -const FONT_STYLES = [{ - name: (0,external_wp_i18n_namespaceObject._x)('Regular', 'font style'), - value: 'normal' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Italic', 'font style'), - value: 'italic' -}]; -const FONT_WEIGHTS = [{ - name: (0,external_wp_i18n_namespaceObject._x)('Thin', 'font weight'), - value: '100' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Extra Light', 'font weight'), - value: '200' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Light', 'font weight'), - value: '300' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Regular', 'font weight'), - value: '400' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Medium', 'font weight'), - value: '500' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Semi Bold', 'font weight'), - value: '600' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Bold', 'font weight'), - value: '700' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Extra Bold', 'font weight'), - value: '800' -}, { - name: (0,external_wp_i18n_namespaceObject._x)('Black', 'font weight'), - value: '900' -}]; - -/** - * Adjusts font appearance field label in case either font styles or weights - * are disabled. - * - * @param {boolean} hasFontStyles Whether font styles are enabled and present. - * @param {boolean} hasFontWeights Whether font weights are enabled and present. - * @return {string} A label representing what font appearance is being edited. - */ -const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => { - if (!hasFontStyles) { - return (0,external_wp_i18n_namespaceObject.__)('Font weight'); - } - if (!hasFontWeights) { - return (0,external_wp_i18n_namespaceObject.__)('Font style'); - } - return (0,external_wp_i18n_namespaceObject.__)('Appearance'); -}; - -/** - * Control to display unified font style and weight options. - * - * @param {Object} props Component props. - * - * @return {Element} Font appearance control. - */ -function FontAppearanceControl(props) { - const { - onChange, - hasFontStyles = true, - hasFontWeights = true, - value: { - fontStyle, - fontWeight - }, - ...otherProps - } = props; - const hasStylesOrWeights = hasFontStyles || hasFontWeights; - const label = getFontAppearanceLabel(hasFontStyles, hasFontWeights); - const defaultOption = { - key: 'default', - name: (0,external_wp_i18n_namespaceObject.__)('Default'), - style: { - fontStyle: undefined, - fontWeight: undefined - } - }; - - // Combines both font style and weight options into a single dropdown. - const combineOptions = () => { - const combinedOptions = [defaultOption]; - FONT_STYLES.forEach(({ - name: styleName, - value: styleValue - }) => { - FONT_WEIGHTS.forEach(({ - name: weightName, - value: weightValue - }) => { - const optionName = styleValue === 'normal' ? weightName : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Font weight name. 2: Font style name. */ - (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), weightName, styleName); - combinedOptions.push({ - key: `${styleValue}-${weightValue}`, - name: optionName, - style: { - fontStyle: styleValue, - fontWeight: weightValue - } - }); - }); - }); - return combinedOptions; - }; - - // Generates select options for font styles only. - const styleOptions = () => { - const combinedOptions = [defaultOption]; - FONT_STYLES.forEach(({ - name, - value - }) => { - combinedOptions.push({ - key: value, - name, - style: { - fontStyle: value, - fontWeight: undefined - } - }); - }); - return combinedOptions; - }; - - // Generates select options for font weights only. - const weightOptions = () => { - const combinedOptions = [defaultOption]; - FONT_WEIGHTS.forEach(({ - name, - value - }) => { - combinedOptions.push({ - key: value, - name, - style: { - fontStyle: undefined, - fontWeight: value - } - }); - }); - return combinedOptions; - }; - - // Map font styles and weights to select options. - const selectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (hasFontStyles && hasFontWeights) { - return combineOptions(); - } - return hasFontStyles ? styleOptions() : weightOptions(); - }, [props.options]); - - // Find current selection by comparing font style & weight against options, - // and fall back to the Default option if there is no matching option. - const currentSelection = selectOptions.find(option => option.style.fontStyle === fontStyle && option.style.fontWeight === fontWeight) || selectOptions[0]; - - // Adjusts screen reader description based on styles or weights. - const getDescribedBy = () => { - if (!currentSelection) { - return (0,external_wp_i18n_namespaceObject.__)('No selected font appearance'); - } - if (!hasFontStyles) { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Currently selected font weight. - (0,external_wp_i18n_namespaceObject.__)('Currently selected font weight: %s'), currentSelection.name); - } - if (!hasFontWeights) { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Currently selected font style. - (0,external_wp_i18n_namespaceObject.__)('Currently selected font style: %s'), currentSelection.name); - } - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Currently selected font appearance. - (0,external_wp_i18n_namespaceObject.__)('Currently selected font appearance: %s'), currentSelection.name); - }; - return hasStylesOrWeights && (0,external_React_.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { - ...otherProps, - className: "components-font-appearance-control", - label: label, - describedBy: getDescribedBy(), - options: selectOptions, - value: currentSelection, - onChange: ({ - selectedItem - }) => onChange(selectedItem.style), - __nextUnconstrainedWidth: true - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/utils.js -const BASE_DEFAULT_VALUE = 1.5; -const STEP = 0.01; -/** - * A spin factor of 10 allows the spin controls to increment/decrement by 0.1. - * e.g. A line-height value of 1.55 will increment to 1.65. - */ -const SPIN_FACTOR = 10; -/** - * There are varying value types within LineHeightControl: - * - * {undefined} Initial value. No changes from the user. - * {string} Input value. Value consumed/outputted by the input. Empty would be ''. - * {number} Block attribute type. Input value needs to be converted for attribute setting. - * - * Note: If the value is undefined, the input requires it to be an empty string ('') - * in order to be considered "controlled" by props (rather than internal state). - */ -const RESET_VALUE = ''; - -/** - * Determines if the lineHeight attribute has been properly defined. - * - * @param {any} lineHeight The value to check. - * - * @return {boolean} Whether the lineHeight attribute is valid. - */ -function isLineHeightDefined(lineHeight) { - return lineHeight !== undefined && lineHeight !== RESET_VALUE; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/index.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - -const line_height_control_LineHeightControl = ({ - value: lineHeight, - onChange, - /** Start opting into the new margin-free styles that will become the default in a future version. */ - __nextHasNoMarginBottom = false, - __unstableInputWidth = '60px', - ...otherProps -}) => { - const isDefined = isLineHeightDefined(lineHeight); - const adjustNextValue = (nextValue, wasTypedOrPasted) => { - // Set the next value without modification if lineHeight has been defined. - if (isDefined) return nextValue; - - /** - * The following logic handles the initial spin up/down action - * (from an undefined value state) so that the next values are better suited for - * line-height rendering. For example, the first spin up should immediately - * go to 1.6, rather than the normally expected 0.1. - * - * Spin up/down actions can be triggered by keydowns of the up/down arrow keys, - * dragging the input or by clicking the spin buttons. - */ - const spin = STEP * SPIN_FACTOR; - switch (`${nextValue}`) { - case `${spin}`: - // Increment by spin value. - return BASE_DEFAULT_VALUE + spin; - case '0': - { - // This means the user explicitly input '0', rather than using the - // spin down action from an undefined value state. - if (wasTypedOrPasted) return nextValue; - // Decrement by spin value. - return BASE_DEFAULT_VALUE - spin; - } - case '': - return BASE_DEFAULT_VALUE; - default: - return nextValue; - } - }; - const stateReducer = (state, action) => { - // Be careful when changing this — cross-browser behavior of the - // `inputType` field in `input` events are inconsistent. - // For example, Firefox emits an input event with inputType="insertReplacementText" - // on spin button clicks, while other browsers do not even emit an input event. - const wasTypedOrPasted = ['insertText', 'insertFromPaste'].includes(action.payload.event.nativeEvent?.inputType); - const value = adjustNextValue(state.value, wasTypedOrPasted); - return { - ...state, - value - }; - }; - const value = isDefined ? lineHeight : RESET_VALUE; - if (!__nextHasNoMarginBottom) { - external_wp_deprecated_default()('Bottom margin styles for wp.blockEditor.LineHeightControl', { - since: '6.0', - version: '6.4', - hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version' - }); - } - const deprecatedStyles = __nextHasNoMarginBottom ? undefined : { - marginBottom: 24 - }; - const handleOnChange = (nextValue, { - event - }) => { - if (nextValue === '') { - onChange(); - return; - } - if (event.type === 'click') { - onChange(adjustNextValue(`${nextValue}`, false)); + } else if (event.type == "idle") { + this._active.delete(event.parent); + } else return; - } - onChange(`${nextValue}`); - }; - return (0,external_React_.createElement)("div", { - className: "block-editor-line-height-control", - style: deprecatedStyles - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { - ...otherProps, - __unstableInputWidth: __unstableInputWidth, - __unstableStateReducer: stateReducer, - onChange: handleOnChange, - label: (0,external_wp_i18n_namespaceObject.__)('Line height'), - placeholder: BASE_DEFAULT_VALUE, - step: STEP, - spinFactor: SPIN_FACTOR, - value: value, - min: 0, - spinControls: "custom" - })); + raf.onFrame(this._onFrame); + } }; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/line-height-control/README.md - */ -/* harmony default export */ var line_height_control = (line_height_control_LineHeightControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/letter-spacing-control/index.js - -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** - * Control for letter-spacing. - * - * @param {Object} props Component props. - * @param {string} props.value Currently selected letter-spacing. - * @param {Function} props.onChange Handles change in letter-spacing selection. - * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value. - * - * @return {Element} Letter-spacing control. - */ -function LetterSpacingControl({ - value, - onChange, - __unstableInputWidth = '60px', - ...otherProps -}) { - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['px', 'em', 'rem'], - defaultValues: { - px: 2, - em: 0.2, - rem: 0.2 - } - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - ...otherProps, - label: (0,external_wp_i18n_namespaceObject.__)('Letter spacing'), - value: value, - __unstableInputWidth: __unstableInputWidth, - units: units, - onChange: onChange - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/reset.js - -/** - * WordPress dependencies - */ - -const reset_reset = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M7 11.5h10V13H7z" -})); -/* harmony default export */ var library_reset = (reset_reset); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-uppercase.js - -/** - * WordPress dependencies - */ - -const formatUppercase = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M6.1 6.8L2.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H6.1zm-.8 6.8L7 8.9l1.7 4.7H5.3zm15.1-.7c-.4-.5-.9-.8-1.6-1 .4-.2.7-.5.8-.9.2-.4.3-.9.3-1.4 0-.9-.3-1.6-.8-2-.6-.5-1.3-.7-2.4-.7h-3.5V18h4.2c1.1 0 2-.3 2.6-.8.6-.6 1-1.4 1-2.4-.1-.8-.3-1.4-.6-1.9zm-5.7-4.7h1.8c.6 0 1.1.1 1.4.4.3.2.5.7.5 1.3 0 .6-.2 1.1-.5 1.3-.3.2-.8.4-1.4.4h-1.8V8.2zm4 8c-.4.3-.9.5-1.5.5h-2.6v-3.8h2.6c1.4 0 2 .6 2 1.9.1.6-.1 1-.5 1.4z" -})); -/* harmony default export */ var format_uppercase = (formatUppercase); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-lowercase.js - -/** - * WordPress dependencies - */ - -const formatLowercase = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M11 16.8c-.1-.1-.2-.3-.3-.5v-2.6c0-.9-.1-1.7-.3-2.2-.2-.5-.5-.9-.9-1.2-.4-.2-.9-.3-1.6-.3-.5 0-1 .1-1.5.2s-.9.3-1.2.6l.2 1.2c.4-.3.7-.4 1.1-.5.3-.1.7-.2 1-.2.6 0 1 .1 1.3.4.3.2.4.7.4 1.4-1.2 0-2.3.2-3.3.7s-1.4 1.1-1.4 2.1c0 .7.2 1.2.7 1.6.4.4 1 .6 1.8.6.9 0 1.7-.4 2.4-1.2.1.3.2.5.4.7.1.2.3.3.6.4.3.1.6.1 1.1.1h.1l.2-1.2h-.1c-.4.1-.6 0-.7-.1zM9.2 16c-.2.3-.5.6-.9.8-.3.1-.7.2-1.1.2-.4 0-.7-.1-.9-.3-.2-.2-.3-.5-.3-.9 0-.6.2-1 .7-1.3.5-.3 1.3-.4 2.5-.5v2zm10.6-3.9c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2s-.2 1.4-.6 2z" -})); -/* harmony default export */ var format_lowercase = (formatLowercase); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-capitalize.js - -/** - * WordPress dependencies - */ - -const formatCapitalize = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M7.1 6.8L3.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H7.1zm-.8 6.8L8 8.9l1.7 4.7H6.3zm14.5-1.5c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2 .1.8-.2 1.4-.6 2z" -})); -/* harmony default export */ var format_capitalize = (formatCapitalize); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/text-transform-control/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -const TEXT_TRANSFORMS = [{ - name: (0,external_wp_i18n_namespaceObject.__)('None'), - value: 'none', - icon: library_reset -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Uppercase'), - value: 'uppercase', - icon: format_uppercase -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Lowercase'), - value: 'lowercase', - icon: format_lowercase -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Capitalize'), - value: 'capitalize', - icon: format_capitalize -}]; - -/** - * Control to facilitate text transform selections. - * - * @param {Object} props Component props. - * @param {string} props.className Class name to add to the control. - * @param {string} props.value Currently selected text transform. - * @param {Function} props.onChange Handles change in text transform selection. - * - * @return {Element} Text transform control. - */ -function TextTransformControl({ - className, - value, - onChange -}) { - return (0,external_React_.createElement)("fieldset", { - className: classnames_default()('block-editor-text-transform-control', className) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Letter case')), (0,external_React_.createElement)("div", { - className: "block-editor-text-transform-control__buttons" - }, TEXT_TRANSFORMS.map(textTransform => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: textTransform.value, - icon: textTransform.icon, - label: textTransform.name, - isPressed: textTransform.value === value, - onClick: () => { - onChange(textTransform.value === value ? undefined : textTransform.value); - } - }); - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-underline.js - -/** - * WordPress dependencies - */ - -const formatUnderline = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M7 18v1h10v-1H7zm5-2c1.5 0 2.6-.4 3.4-1.2.8-.8 1.1-2 1.1-3.5V5H15v5.8c0 1.2-.2 2.1-.6 2.8-.4.7-1.2 1-2.4 1s-2-.3-2.4-1c-.4-.7-.6-1.6-.6-2.8V5H7.5v6.2c0 1.5.4 2.7 1.1 3.5.8.9 1.9 1.3 3.4 1.3z" -})); -/* harmony default export */ var format_underline = (formatUnderline); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-strikethrough.js - -/** - * WordPress dependencies - */ - -const formatStrikethrough = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z" -})); -/* harmony default export */ var format_strikethrough = (formatStrikethrough); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/text-decoration-control/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -const TEXT_DECORATIONS = [{ - name: (0,external_wp_i18n_namespaceObject.__)('None'), - value: 'none', - icon: library_reset -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Underline'), - value: 'underline', - icon: format_underline -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Strikethrough'), - value: 'line-through', - icon: format_strikethrough -}]; - -/** - * Control to facilitate text decoration selections. - * - * @param {Object} props Component props. - * @param {string} props.value Currently selected text decoration. - * @param {Function} props.onChange Handles change in text decoration selection. - * @param {string} [props.className] Additional class name to apply. - * - * @return {Element} Text decoration control. - */ -function TextDecorationControl({ - value, - onChange, - className -}) { - return (0,external_React_.createElement)("fieldset", { - className: classnames_default()('block-editor-text-decoration-control', className) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Decoration')), (0,external_React_.createElement)("div", { - className: "block-editor-text-decoration-control__buttons" - }, TEXT_DECORATIONS.map(textDecoration => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: textDecoration.value, - icon: textDecoration.icon, - label: textDecoration.name, - isPressed: textDecoration.value === value, - onClick: () => { - onChange(textDecoration.value === value ? undefined : textDecoration.value); - } - }); - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/text-horizontal.js - -/** - * WordPress dependencies - */ - -const textHorizontal = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M8.2 14.4h3.9L13 17h1.7L11 6.5H9.3L5.6 17h1.7l.9-2.6zm2-5.5 1.4 4H8.8l1.4-4zm7.4 7.5-1.3.8.8 1.4H5.5V20h14.3l-2.2-3.6z" -})); -/* harmony default export */ var text_horizontal = (textHorizontal); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/text-vertical.js - -/** - * WordPress dependencies - */ - -const textVertical = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M7 5.6v1.7l2.6.9v3.9L7 13v1.7L17.5 11V9.3L7 5.6zm4.2 6V8.8l4 1.4-4 1.4zm-5.7 5.6V5.5H4v14.3l3.6-2.2-.8-1.3-1.3.9z" -})); -/* harmony default export */ var text_vertical = (textVertical); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-mode-control/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - -const WRITING_MODES = [{ - name: (0,external_wp_i18n_namespaceObject.__)('Horizontal'), - value: 'horizontal-tb', - icon: text_horizontal -}, { - name: (0,external_wp_i18n_namespaceObject.__)('Vertical'), - value: (0,external_wp_i18n_namespaceObject.isRTL)() ? 'vertical-lr' : 'vertical-rl', - icon: text_vertical -}]; - -/** - * Control to facilitate writing mode selections. - * - * @param {Object} props Component props. - * @param {string} props.className Class name to add to the control. - * @param {string} props.value Currently selected writing mode. - * @param {Function} props.onChange Handles change in the writing mode selection. - * - * @return {Element} Writing Mode control. - */ -function WritingModeControl({ - className, - value, - onChange -}) { - return (0,external_React_.createElement)("fieldset", { - className: classnames_default()('block-editor-writing-mode-control', className) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Orientation')), (0,external_React_.createElement)("div", { - className: "block-editor-writing-mode-control__buttons" - }, WRITING_MODES.map(writingMode => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: writingMode.value, - icon: writingMode.icon, - label: writingMode.name, - isPressed: writingMode.value === value, - onClick: () => { - onChange(writingMode.value === value ? undefined : writingMode.value); +function flushUpdateQueue(ctrl, queue) { + return Promise.all(queue.map((props) => flushUpdate(ctrl, props))).then( + (results) => getCombinedResult(ctrl, results) + ); +} +async function flushUpdate(ctrl, props, isLoop) { + const { keys, to: to2, from, loop, onRest, onResolve } = props; + const defaults2 = is.obj(props.default) && props.default; + if (loop) { + props.loop = false; + } + if (to2 === false) + props.to = null; + if (from === false) + props.from = null; + const asyncTo = is.arr(to2) || is.fun(to2) ? to2 : void 0; + if (asyncTo) { + props.to = void 0; + props.onRest = void 0; + if (defaults2) { + defaults2.onRest = void 0; + } + } else { + react_spring_shared_modern_each(BATCHED_EVENTS, (key) => { + const handler = props[key]; + if (is.fun(handler)) { + const queue = ctrl["_events"][key]; + props[key] = ({ finished, cancelled }) => { + const result2 = queue.get(handler); + if (result2) { + if (!finished) + result2.finished = false; + if (cancelled) + result2.cancelled = true; + } else { + queue.set(handler, { + value: null, + finished: finished || false, + cancelled: cancelled || false + }); + } + }; + if (defaults2) { + defaults2[key] = props[key]; + } } }); - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/typography-panel.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - - - - - - -const MIN_TEXT_COLUMNS = 1; -const MAX_TEXT_COLUMNS = 6; -function useHasTypographyPanel(settings) { - const hasFontFamily = useHasFontFamilyControl(settings); - const hasLineHeight = useHasLineHeightControl(settings); - const hasFontAppearance = useHasAppearanceControl(settings); - const hasLetterSpacing = useHasLetterSpacingControl(settings); - const hasTextTransform = useHasTextTransformControl(settings); - const hasTextDecoration = useHasTextDecorationControl(settings); - const hasWritingMode = useHasWritingModeControl(settings); - const hasTextColumns = useHasTextColumnsControl(settings); - const hasFontSize = useHasFontSizeControl(settings); - return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasWritingMode || hasTextColumns; -} -function useHasFontSizeControl(settings) { - return settings?.typography?.defaultFontSizes !== false && settings?.typography?.fontSizes?.default?.length || settings?.typography?.fontSizes?.theme?.length || settings?.typography?.fontSizes?.custom?.length || settings?.typography?.customFontSize; -} -function useHasFontFamilyControl(settings) { - return hasMergedOrigins(settings?.typography?.fontFamilies); -} -function useHasLineHeightControl(settings) { - return settings?.typography?.lineHeight; -} -function useHasAppearanceControl(settings) { - return settings?.typography?.fontStyle || settings?.typography?.fontWeight; -} -function useAppearanceControlLabel(settings) { - if (!settings?.typography?.fontStyle) { - return (0,external_wp_i18n_namespaceObject.__)('Font weight'); } - if (!settings?.typography?.fontWeight) { - return (0,external_wp_i18n_namespaceObject.__)('Font style'); + const state = ctrl["_state"]; + if (props.pause === !state.paused) { + state.paused = props.pause; + flushCalls(props.pause ? state.pauseQueue : state.resumeQueue); + } else if (state.paused) { + props.pause = true; } - return (0,external_wp_i18n_namespaceObject.__)('Appearance'); + const promises = (keys || Object.keys(ctrl.springs)).map( + (key) => ctrl.springs[key].start(props) + ); + const cancel = props.cancel === true || getDefaultProp(props, "cancel") === true; + if (asyncTo || cancel && state.asyncId) { + promises.push( + scheduleProps(++ctrl["_lastAsyncId"], { + props, + state, + actions: { + pause: noop, + resume: noop, + start(props2, resolve) { + if (cancel) { + stopAsync(state, ctrl["_lastAsyncId"]); + resolve(getCancelledResult(ctrl)); + } else { + props2.onRest = onRest; + resolve( + runAsync( + asyncTo, + props2, + state, + ctrl + ) + ); + } + } + } + }) + ); + } + if (state.paused) { + await new Promise((resume) => { + state.resumeQueue.add(resume); + }); + } + const result = getCombinedResult(ctrl, await Promise.all(promises)); + if (loop && result.finished && !(isLoop && result.noop)) { + const nextProps = createLoopUpdate(props, loop, to2); + if (nextProps) { + prepareKeys(ctrl, [nextProps]); + return flushUpdate(ctrl, nextProps, true); + } + } + if (onResolve) { + raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item)); + } + return result; } -function useHasLetterSpacingControl(settings) { - return settings?.typography?.letterSpacing; +function getSprings(ctrl, props) { + const springs = { ...ctrl.springs }; + if (props) { + react_spring_shared_modern_each(toArray(props), (props2) => { + if (is.und(props2.keys)) { + props2 = createUpdate(props2); + } + if (!is.obj(props2.to)) { + props2 = { ...props2, to: void 0 }; + } + prepareSprings(springs, props2, (key) => { + return createSpring(key); + }); + }); + } + setSprings(ctrl, springs); + return springs; } -function useHasTextTransformControl(settings) { - return settings?.typography?.textTransform; +function setSprings(ctrl, springs) { + eachProp(springs, (spring, key) => { + if (!ctrl.springs[key]) { + ctrl.springs[key] = spring; + addFluidObserver(spring, ctrl); + } + }); } -function useHasTextDecorationControl(settings) { - return settings?.typography?.textDecoration; +function createSpring(key, observer) { + const spring = new SpringValue(); + spring.key = key; + if (observer) { + addFluidObserver(spring, observer); + } + return spring; } -function useHasWritingModeControl(settings) { - return settings?.typography?.writingMode; +function prepareSprings(springs, props, create) { + if (props.keys) { + react_spring_shared_modern_each(props.keys, (key) => { + const spring = springs[key] || (springs[key] = create(key)); + spring["_prepareNode"](props); + }); + } } -function useHasTextColumnsControl(settings) { - return settings?.typography?.textColumns; +function prepareKeys(ctrl, queue) { + react_spring_shared_modern_each(queue, (props) => { + prepareSprings(ctrl.springs, props, (key) => { + return createSpring(key, ctrl); + }); + }); } -/** - * TODO: The reversing and filtering of default font sizes is a hack so the - * dropdown UI matches what is generated in the global styles CSS stylesheet. - * - * This is a temporary solution until #57733 is resolved. At which point, - * the mergedFontSizes would just need to be the concatenated array of all - * presets or a custom dropdown with sections for each. - * - * @see {@link https://github.com/WordPress/gutenberg/issues/57733} - * - * @param {Object} settings The global styles settings. - * - * @return {Array} The merged font sizes. - */ -function getMergedFontSizes(settings) { - // The font size presets are merged in reverse order so that the duplicates - // that may defined later in the array have higher priority to match the CSS. - const mergedFontSizesAll = uniqByProperty([settings?.typography?.fontSizes?.custom, settings?.typography?.fontSizes?.theme, settings?.typography?.fontSizes?.default].flatMap(presets => { - var _presets$toReversed; - return (_presets$toReversed = presets?.toReversed()) !== null && _presets$toReversed !== void 0 ? _presets$toReversed : []; - }), 'slug').reverse(); +// src/SpringContext.tsx - // Default presets exist in the global styles CSS no matter the setting, so - // filtering them out in the UI has to be done after merging. - const mergedFontSizes = settings?.typography?.defaultFontSizes === false ? mergedFontSizesAll.filter(({ - slug - }) => !['small', 'medium', 'large', 'x-large'].includes(slug)) : mergedFontSizesAll; - return mergedFontSizes; -} -function TypographyToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject.__)('Typography'), - resetAll: resetAll, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); -} -const typography_panel_DEFAULT_CONTROLS = { - fontFamily: true, - fontSize: true, - fontAppearance: true, - lineHeight: true, - letterSpacing: true, - textTransform: true, - textDecoration: true, - writingMode: true, - textColumns: true -}; -function TypographyPanel({ - as: Wrapper = TypographyToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = typography_panel_DEFAULT_CONTROLS -}) { - const decodeValue = rawValue => getValueFromVariable({ - settings - }, '', rawValue); - // Font Family - const hasFontFamilyEnabled = useHasFontFamilyControl(settings); - const fontFamilies = settings?.typography?.fontFamilies; - const mergedFontFamilies = fontFamilies ? mergeOrigins(fontFamilies) : []; - const fontFamily = decodeValue(inheritedValue?.typography?.fontFamily); - const setFontFamily = newValue => { - const slug = mergedFontFamilies?.find(({ - fontFamily: f - }) => f === newValue)?.slug; - onChange(setImmutably(value, ['typography', 'fontFamily'], slug ? `var:preset|font-family|${slug}` : newValue || undefined)); - }; - const hasFontFamily = () => !!value?.typography?.fontFamily; - const resetFontFamily = () => setFontFamily(undefined); - // Font Size - const hasFontSizeEnabled = useHasFontSizeControl(settings); - const disableCustomFontSizes = !settings?.typography?.customFontSize; - const mergedFontSizes = getMergedFontSizes(settings); - const fontSize = decodeValue(inheritedValue?.typography?.fontSize); - const setFontSize = (newValue, metadata) => { - const actualValue = !!metadata?.slug ? `var:preset|font-size|${metadata?.slug}` : newValue; - onChange(setImmutably(value, ['typography', 'fontSize'], actualValue || undefined)); - }; - const hasFontSize = () => !!value?.typography?.fontSize; - const resetFontSize = () => setFontSize(undefined); +var SpringContext = ({ + children, + ...props +}) => { + const inherited = (0,external_React_.useContext)(ctx); + const pause = props.pause || !!inherited.pause, immediate = props.immediate || !!inherited.immediate; + props = useMemoOne(() => ({ pause, immediate }), [pause, immediate]); + const { Provider } = ctx; + return /* @__PURE__ */ external_React_.createElement(Provider, { value: props }, children); +}; +var ctx = makeContext(SpringContext, {}); +SpringContext.Provider = ctx.Provider; +SpringContext.Consumer = ctx.Consumer; +function makeContext(target, init) { + Object.assign(target, external_React_.createContext(init)); + target.Provider._context = target; + target.Consumer._context = target; + return target; +} - // Appearance - const hasAppearanceControl = useHasAppearanceControl(settings); - const appearanceControlLabel = useAppearanceControlLabel(settings); - const hasFontStyles = settings?.typography?.fontStyle; - const hasFontWeights = settings?.typography?.fontWeight; - const fontStyle = decodeValue(inheritedValue?.typography?.fontStyle); - const fontWeight = decodeValue(inheritedValue?.typography?.fontWeight); - const setFontAppearance = ({ - fontStyle: newFontStyle, - fontWeight: newFontWeight - }) => { - onChange({ - ...value, - typography: { - ...value?.typography, - fontStyle: newFontStyle || undefined, - fontWeight: newFontWeight || undefined +// src/SpringRef.ts + +var SpringRef = () => { + const current = []; + const SpringRef2 = function(props) { + deprecateDirectCall(); + const results = []; + react_spring_shared_modern_each(current, (ctrl, i) => { + if (is.und(props)) { + results.push(ctrl.start()); + } else { + const update2 = _getProps(props, ctrl, i); + if (update2) { + results.push(ctrl.start(update2)); + } } }); + return results; }; - const hasFontAppearance = () => !!value?.typography?.fontStyle || !!value?.typography?.fontWeight; - const resetFontAppearance = () => { - setFontAppearance({}); - }; - - // Line Height - const hasLineHeightEnabled = useHasLineHeightControl(settings); - const lineHeight = decodeValue(inheritedValue?.typography?.lineHeight); - const setLineHeight = newValue => { - onChange(setImmutably(value, ['typography', 'lineHeight'], newValue || undefined)); - }; - const hasLineHeight = () => value?.typography?.lineHeight !== undefined; - const resetLineHeight = () => setLineHeight(undefined); - - // Letter Spacing - const hasLetterSpacingControl = useHasLetterSpacingControl(settings); - const letterSpacing = decodeValue(inheritedValue?.typography?.letterSpacing); - const setLetterSpacing = newValue => { - onChange(setImmutably(value, ['typography', 'letterSpacing'], newValue || undefined)); + SpringRef2.current = current; + SpringRef2.add = function(ctrl) { + if (!current.includes(ctrl)) { + current.push(ctrl); + } }; - const hasLetterSpacing = () => !!value?.typography?.letterSpacing; - const resetLetterSpacing = () => setLetterSpacing(undefined); - - // Text Columns - const hasTextColumnsControl = useHasTextColumnsControl(settings); - const textColumns = decodeValue(inheritedValue?.typography?.textColumns); - const setTextColumns = newValue => { - onChange(setImmutably(value, ['typography', 'textColumns'], newValue || undefined)); + SpringRef2.delete = function(ctrl) { + const i = current.indexOf(ctrl); + if (~i) + current.splice(i, 1); }; - const hasTextColumns = () => !!value?.typography?.textColumns; - const resetTextColumns = () => setTextColumns(undefined); - - // Text Transform - const hasTextTransformControl = useHasTextTransformControl(settings); - const textTransform = decodeValue(inheritedValue?.typography?.textTransform); - const setTextTransform = newValue => { - onChange(setImmutably(value, ['typography', 'textTransform'], newValue || undefined)); + SpringRef2.pause = function() { + react_spring_shared_modern_each(current, (ctrl) => ctrl.pause(...arguments)); + return this; }; - const hasTextTransform = () => !!value?.typography?.textTransform; - const resetTextTransform = () => setTextTransform(undefined); - - // Text Decoration - const hasTextDecorationControl = useHasTextDecorationControl(settings); - const textDecoration = decodeValue(inheritedValue?.typography?.textDecoration); - const setTextDecoration = newValue => { - onChange(setImmutably(value, ['typography', 'textDecoration'], newValue || undefined)); + SpringRef2.resume = function() { + react_spring_shared_modern_each(current, (ctrl) => ctrl.resume(...arguments)); + return this; }; - const hasTextDecoration = () => !!value?.typography?.textDecoration; - const resetTextDecoration = () => setTextDecoration(undefined); - - // Text Orientation - const hasWritingModeControl = useHasWritingModeControl(settings); - const writingMode = decodeValue(inheritedValue?.typography?.writingMode); - const setWritingMode = newValue => { - onChange(setImmutably(value, ['typography', 'writingMode'], newValue || undefined)); + SpringRef2.set = function(values) { + react_spring_shared_modern_each(current, (ctrl, i) => { + const update2 = is.fun(values) ? values(i, ctrl) : values; + if (update2) { + ctrl.set(update2); + } + }); }; - const hasWritingMode = () => !!value?.typography?.writingMode; - const resetWritingMode = () => setWritingMode(undefined); - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - typography: {} - }; - }, []); - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, hasFontFamilyEnabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - label: (0,external_wp_i18n_namespaceObject.__)('Font family'), - hasValue: hasFontFamily, - onDeselect: resetFontFamily, - isShownByDefault: defaultControls.fontFamily, - panelId: panelId - }, (0,external_React_.createElement)(FontFamilyControl, { - fontFamilies: mergedFontFamilies, - value: fontFamily, - onChange: setFontFamily, - size: "__unstable-large", - __nextHasNoMarginBottom: true - })), hasFontSizeEnabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - label: (0,external_wp_i18n_namespaceObject.__)('Font size'), - hasValue: hasFontSize, - onDeselect: resetFontSize, - isShownByDefault: defaultControls.fontSize, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FontSizePicker, { - value: fontSize, - onChange: setFontSize, - fontSizes: mergedFontSizes, - disableCustomFontSizes: disableCustomFontSizes, - withReset: false, - withSlider: true, - size: "__unstable-large", - __nextHasNoMarginBottom: true - })), hasAppearanceControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: appearanceControlLabel, - hasValue: hasFontAppearance, - onDeselect: resetFontAppearance, - isShownByDefault: defaultControls.fontAppearance, - panelId: panelId - }, (0,external_React_.createElement)(FontAppearanceControl, { - value: { - fontStyle, - fontWeight - }, - onChange: setFontAppearance, - hasFontStyles: hasFontStyles, - hasFontWeights: hasFontWeights, - size: "__unstable-large", - __nextHasNoMarginBottom: true - })), hasLineHeightEnabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Line height'), - hasValue: hasLineHeight, - onDeselect: resetLineHeight, - isShownByDefault: defaultControls.lineHeight, - panelId: panelId - }, (0,external_React_.createElement)(line_height_control, { - __nextHasNoMarginBottom: true, - __unstableInputWidth: "auto", - value: lineHeight, - onChange: setLineHeight, - size: "__unstable-large" - })), hasLetterSpacingControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Letter spacing'), - hasValue: hasLetterSpacing, - onDeselect: resetLetterSpacing, - isShownByDefault: defaultControls.letterSpacing, - panelId: panelId - }, (0,external_React_.createElement)(LetterSpacingControl, { - value: letterSpacing, - onChange: setLetterSpacing, - size: "__unstable-large", - __unstableInputWidth: "auto" - })), hasTextColumnsControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Text columns'), - hasValue: hasTextColumns, - onDeselect: resetTextColumns, - isShownByDefault: defaultControls.textColumns, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Text columns'), - max: MAX_TEXT_COLUMNS, - min: MIN_TEXT_COLUMNS, - onChange: setTextColumns, - size: "__unstable-large", - spinControls: "custom", - value: textColumns, - initialPosition: 1 - })), hasTextDecorationControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Text decoration'), - hasValue: hasTextDecoration, - onDeselect: resetTextDecoration, - isShownByDefault: defaultControls.textDecoration, - panelId: panelId - }, (0,external_React_.createElement)(TextDecorationControl, { - value: textDecoration, - onChange: setTextDecoration, - size: "__unstable-large", - __unstableInputWidth: "auto" - })), hasWritingModeControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Text orientation'), - hasValue: hasWritingMode, - onDeselect: resetWritingMode, - isShownByDefault: defaultControls.writingMode, - panelId: panelId - }, (0,external_React_.createElement)(WritingModeControl, { - value: writingMode, - onChange: setWritingMode, - size: "__unstable-large", - __nextHasNoMarginBottom: true - })), hasTextTransformControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - label: (0,external_wp_i18n_namespaceObject.__)('Letter case'), - hasValue: hasTextTransform, - onDeselect: resetTextTransform, - isShownByDefault: defaultControls.textTransform, - panelId: panelId - }, (0,external_React_.createElement)(TextTransformControl, { - value: textTransform, - onChange: setTextTransform, - showNone: true, - isBlock: true, - size: "__unstable-large", - __nextHasNoMarginBottom: true - }))); -} + SpringRef2.start = function(props) { + const results = []; + react_spring_shared_modern_each(current, (ctrl, i) => { + if (is.und(props)) { + results.push(ctrl.start()); + } else { + const update2 = this._getProps(props, ctrl, i); + if (update2) { + results.push(ctrl.start(update2)); + } + } + }); + return results; + }; + SpringRef2.stop = function() { + react_spring_shared_modern_each(current, (ctrl) => ctrl.stop(...arguments)); + return this; + }; + SpringRef2.update = function(props) { + react_spring_shared_modern_each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i))); + return this; + }; + const _getProps = function(arg, ctrl, index) { + return is.fun(arg) ? arg(index, ctrl) : arg; + }; + SpringRef2._getProps = _getProps; + return SpringRef2; +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/line-height.js +// src/hooks/useSprings.ts +function useSprings(length, props, deps) { + const propsFn = is.fun(props) && props; + if (propsFn && !deps) + deps = []; + const ref = (0,external_React_.useMemo)( + () => propsFn || arguments.length == 3 ? SpringRef() : void 0, + [] + ); + const layoutId = (0,external_React_.useRef)(0); + const forceUpdate = useForceUpdate(); + const state = (0,external_React_.useMemo)( + () => ({ + ctrls: [], + queue: [], + flush(ctrl, updates2) { + const springs2 = getSprings(ctrl, updates2); + const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs2).some((key) => !ctrl.springs[key]); + return canFlushSync ? flushUpdateQueue(ctrl, updates2) : new Promise((resolve) => { + setSprings(ctrl, springs2); + state.queue.push(() => { + resolve(flushUpdateQueue(ctrl, updates2)); + }); + forceUpdate(); + }); + } + }), + [] + ); + const ctrls = (0,external_React_.useRef)([...state.ctrls]); + const updates = []; + const prevLength = usePrev(length) || 0; + (0,external_React_.useMemo)(() => { + react_spring_shared_modern_each(ctrls.current.slice(length, prevLength), (ctrl) => { + detachRefs(ctrl, ref); + ctrl.stop(true); + }); + ctrls.current.length = length; + declareUpdates(prevLength, length); + }, [length]); + (0,external_React_.useMemo)(() => { + declareUpdates(0, Math.min(prevLength, length)); + }, deps); + function declareUpdates(startIndex, endIndex) { + for (let i = startIndex; i < endIndex; i++) { + const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush)); + const update2 = propsFn ? propsFn(i, ctrl) : props[i]; + if (update2) { + updates[i] = declareUpdate(update2); + } + } + } + const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i])); + const context = (0,external_React_.useContext)(SpringContext); + const prevContext = usePrev(context); + const hasContext = context !== prevContext && hasProps(context); + react_spring_shared_modern_useIsomorphicLayoutEffect(() => { + layoutId.current++; + state.ctrls = ctrls.current; + const { queue } = state; + if (queue.length) { + state.queue = []; + react_spring_shared_modern_each(queue, (cb) => cb()); + } + react_spring_shared_modern_each(ctrls.current, (ctrl, i) => { + ref?.add(ctrl); + if (hasContext) { + ctrl.start({ default: context }); + } + const update2 = updates[i]; + if (update2) { + replaceRef(ctrl, update2.ref); + if (ctrl.ref) { + ctrl.queue.push(update2); + } else { + ctrl.start(update2); + } + } + }); + }); + useOnce(() => () => { + react_spring_shared_modern_each(state.ctrls, (ctrl) => ctrl.stop(true)); + }); + const values = springs.map((x) => ({ ...x })); + return ref ? [values, ref] : values; +} -/** - * WordPress dependencies - */ +// src/hooks/useSpring.ts +function useSpring(props, deps) { + const isFn = is.fun(props); + const [[values], ref] = useSprings( + 1, + isFn ? props : [props], + isFn ? deps || [] : deps + ); + return isFn || arguments.length == 2 ? [values, ref] : values; +} +// src/hooks/useSpringRef.ts -/** - * Internal dependencies - */ +var initSpringRef = () => SpringRef(); +var useSpringRef = () => useState(initSpringRef)[0]; +// src/hooks/useSpringValue.ts +var useSpringValue = (initial, props) => { + const springValue = useConstant(() => new SpringValue(initial, props)); + useOnce2(() => () => { + springValue.stop(); + }); + return springValue; +}; -const LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight'; +// src/hooks/useTrail.ts -/** - * Inspector control panel containing the line height related configuration - * - * @param {Object} props - * - * @return {Element} Line height edit element. - */ -function LineHeightEdit(props) { - const { - attributes: { - style +function useTrail(length, propsArg, deps) { + const propsFn = is10.fun(propsArg) && propsArg; + if (propsFn && !deps) + deps = []; + let reverse = true; + let passedRef = void 0; + const result = useSprings( + length, + (i, ctrl) => { + const props = propsFn ? propsFn(i, ctrl) : propsArg; + passedRef = props.ref; + reverse = reverse && props.reverse; + return props; }, - setAttributes - } = props; - const onChange = newLineHeightValue => { - const newStyle = { - ...style, - typography: { - ...style?.typography, - lineHeight: newLineHeightValue + // Ensure the props function is called when no deps exist. + // This works around the 3 argument rule. + deps || [{}] + ); + useIsomorphicLayoutEffect3(() => { + each6(result[1].current, (ctrl, i) => { + const parent = result[1].current[i + (reverse ? 1 : -1)]; + replaceRef(ctrl, passedRef); + if (ctrl.ref) { + if (parent) { + ctrl.update({ to: parent.springs }); + } + return; + } + if (parent) { + ctrl.start({ to: parent.springs }); + } else { + ctrl.start(); } - }; - setAttributes({ - style: cleanEmptyObject(newStyle) }); - }; - return createElement(LineHeightControl, { - __unstableInputWidth: "100%", - __nextHasNoMarginBottom: true, - value: style?.typography?.lineHeight, - onChange: onChange, - size: "__unstable-large" - }); -} - -/** - * Custom hook that checks if line-height settings have been disabled. - * - * @param {string} name The name of the block. - * @return {boolean} Whether setting is disabled. - */ -function useIsLineHeightDisabled({ - name: blockName -} = {}) { - const [isEnabled] = useSettings('typography.lineHeight'); - return !isEnabled || !hasBlockSupport(blockName, LINE_HEIGHT_SUPPORT_KEY); + }, deps); + if (propsFn || arguments.length == 3) { + const ref = passedRef ?? result[1]; + ref["_getProps"] = (propsArg2, ctrl, i) => { + const props = is10.fun(propsArg2) ? propsArg2(i, ctrl) : propsArg2; + if (props) { + const parent = ref.current[i + (props.reverse ? 1 : -1)]; + if (parent) + props.to = parent.springs; + return props; + } + }; + return result; + } + return result[0]; } -;// CONCATENATED MODULE: external ["wp","tokenList"] -var external_wp_tokenList_namespaceObject = window["wp"]["tokenList"]; -var external_wp_tokenList_default = /*#__PURE__*/__webpack_require__.n(external_wp_tokenList_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/font-family.js -/** - * WordPress dependencies - */ +// src/hooks/useTransition.tsx +function useTransition(data, props, deps) { + const propsFn = is11.fun(props) && props; + const { + reset, + sort, + trail = 0, + expires = true, + exitBeforeEnter = false, + onDestroyed, + ref: propsRef, + config: propsConfig + } = propsFn ? propsFn() : props; + const ref = useMemo2( + () => propsFn || arguments.length == 3 ? SpringRef() : void 0, + [] + ); + const items = toArray4(data); + const transitions = []; + const usedTransitions = useRef2(null); + const prevTransitions = reset ? null : usedTransitions.current; + useIsomorphicLayoutEffect4(() => { + usedTransitions.current = transitions; + }); + useOnce3(() => { + each7(transitions, (t) => { + ref?.add(t.ctrl); + t.ctrl.ref = ref; + }); + return () => { + each7(usedTransitions.current, (t) => { + if (t.expired) { + clearTimeout(t.expirationId); + } + detachRefs(t.ctrl, ref); + t.ctrl.stop(true); + }); + }; + }); + const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions); + const expired = reset && usedTransitions.current || []; + useIsomorphicLayoutEffect4( + () => each7(expired, ({ ctrl, item, key }) => { + detachRefs(ctrl, ref); + callProp(onDestroyed, item, key); + }) + ); + const reused = []; + if (prevTransitions) + each7(prevTransitions, (t, i) => { + if (t.expired) { + clearTimeout(t.expirationId); + expired.push(t); + } else { + i = reused[i] = keys.indexOf(t.key); + if (~i) + transitions[i] = t; + } + }); + each7(items, (item, i) => { + if (!transitions[i]) { + transitions[i] = { + key: keys[i], + item, + phase: "mount" /* MOUNT */, + ctrl: new Controller() + }; + transitions[i].ctrl.item = item; + } + }); + if (reused.length) { + let i = -1; + const { leave } = propsFn ? propsFn() : props; + each7(reused, (keyIndex, prevIndex) => { + const t = prevTransitions[prevIndex]; + if (~keyIndex) { + i = transitions.indexOf(t); + transitions[i] = { ...t, item: items[keyIndex] }; + } else if (leave) { + transitions.splice(++i, 0, t); + } + }); + } + if (is11.fun(sort)) { + transitions.sort((a, b) => sort(a.item, b.item)); + } + let delay = -trail; + const forceUpdate = useForceUpdate2(); + const defaultProps = getDefaultProps(props); + const changes = /* @__PURE__ */ new Map(); + const exitingTransitions = useRef2(/* @__PURE__ */ new Map()); + const forceChange = useRef2(false); + each7(transitions, (t, i) => { + const key = t.key; + const prevPhase = t.phase; + const p = propsFn ? propsFn() : props; + let to2; + let phase; + const propsDelay = callProp(p.delay || 0, key); + if (prevPhase == "mount" /* MOUNT */) { + to2 = p.enter; + phase = "enter" /* ENTER */; + } else { + const isLeave = keys.indexOf(key) < 0; + if (prevPhase != "leave" /* LEAVE */) { + if (isLeave) { + to2 = p.leave; + phase = "leave" /* LEAVE */; + } else if (to2 = p.update) { + phase = "update" /* UPDATE */; + } else + return; + } else if (!isLeave) { + to2 = p.enter; + phase = "enter" /* ENTER */; + } else + return; + } + to2 = callProp(to2, t.item, i); + to2 = is11.obj(to2) ? inferTo(to2) : { to: to2 }; + if (!to2.config) { + const config2 = propsConfig || defaultProps.config; + to2.config = callProp(config2, t.item, i, phase); + } + delay += trail; + const payload = { + ...defaultProps, + // we need to add our props.delay value you here. + delay: propsDelay + delay, + ref: propsRef, + immediate: p.immediate, + // This prevents implied resets. + reset: false, + // Merge any phase-specific props. + ...to2 + }; + if (phase == "enter" /* ENTER */ && is11.und(payload.from)) { + const p2 = propsFn ? propsFn() : props; + const from = is11.und(p2.initial) || prevTransitions ? p2.from : p2.initial; + payload.from = callProp(from, t.item, i); + } + const { onResolve } = payload; + payload.onResolve = (result) => { + callProp(onResolve, result); + const transitions2 = usedTransitions.current; + const t2 = transitions2.find((t3) => t3.key === key); + if (!t2) + return; + if (result.cancelled && t2.phase != "update" /* UPDATE */) { + return; + } + if (t2.ctrl.idle) { + const idle = transitions2.every((t3) => t3.ctrl.idle); + if (t2.phase == "leave" /* LEAVE */) { + const expiry = callProp(expires, t2.item); + if (expiry !== false) { + const expiryMs = expiry === true ? 0 : expiry; + t2.expired = true; + if (!idle && expiryMs > 0) { + if (expiryMs <= 2147483647) + t2.expirationId = setTimeout(forceUpdate, expiryMs); + return; + } + } + } + if (idle && transitions2.some((t3) => t3.expired)) { + exitingTransitions.current.delete(t2); + if (exitBeforeEnter) { + forceChange.current = true; + } + forceUpdate(); + } + } + }; + const springs = getSprings(t.ctrl, payload); + if (phase === "leave" /* LEAVE */ && exitBeforeEnter) { + exitingTransitions.current.set(t, { phase, springs, payload }); + } else { + changes.set(t, { phase, springs, payload }); + } + }); + const context = useContext3(SpringContext); + const prevContext = usePrev2(context); + const hasContext = context !== prevContext && hasProps(context); + useIsomorphicLayoutEffect4(() => { + if (hasContext) { + each7(transitions, (t) => { + t.ctrl.start({ default: context }); + }); + } + }, [context]); + each7(changes, (_, t) => { + if (exitingTransitions.current.size) { + const ind = transitions.findIndex((state) => state.key === t.key); + transitions.splice(ind, 1); + } + }); + useIsomorphicLayoutEffect4( + () => { + each7( + exitingTransitions.current.size ? exitingTransitions.current : changes, + ({ phase, payload }, t) => { + const { ctrl } = t; + t.phase = phase; + ref?.add(ctrl); + if (hasContext && phase == "enter" /* ENTER */) { + ctrl.start({ default: context }); + } + if (payload) { + replaceRef(ctrl, payload.ref); + if ((ctrl.ref || ref) && !forceChange.current) { + ctrl.update(payload); + } else { + ctrl.start(payload); + if (forceChange.current) { + forceChange.current = false; + } + } + } + } + ); + }, + reset ? void 0 : deps + ); + const renderTransitions = (render) => /* @__PURE__ */ React2.createElement(React2.Fragment, null, transitions.map((t, i) => { + const { springs } = changes.get(t) || t.ctrl; + const elem = render({ ...springs }, t.item, t, i); + return elem && elem.type ? /* @__PURE__ */ React2.createElement( + elem.type, + { + ...elem.props, + key: is11.str(t.key) || is11.num(t.key) ? t.key : t.ctrl.id, + ref: elem.ref + } + ) : elem; + })); + return ref ? [renderTransitions, ref] : renderTransitions; +} +var nextKey = 1; +function getKeys(items, { key, keys = key }, prevTransitions) { + if (keys === null) { + const reused = /* @__PURE__ */ new Set(); + return items.map((item) => { + const t = prevTransitions && prevTransitions.find( + (t2) => t2.item === item && t2.phase !== "leave" /* LEAVE */ && !reused.has(t2) + ); + if (t) { + reused.add(t); + return t.key; + } + return nextKey++; + }); + } + return is11.und(keys) ? items : is11.fun(keys) ? items.map(keys) : toArray4(keys); +} +// src/hooks/useScroll.ts -/** - * Internal dependencies - */ +var useScroll = ({ + container, + ...springOptions +} = {}) => { + const [scrollValues, api] = useSpring( + () => ({ + scrollX: 0, + scrollY: 0, + scrollXProgress: 0, + scrollYProgress: 0, + ...springOptions + }), + [] + ); + useIsomorphicLayoutEffect5(() => { + const cleanupScroll = onScroll( + ({ x, y }) => { + api.start({ + scrollX: x.current, + scrollXProgress: x.progress, + scrollY: y.current, + scrollYProgress: y.progress + }); + }, + { container: container?.current || void 0 } + ); + return () => { + each8(Object.values(scrollValues), (value) => value.stop()); + cleanupScroll(); + }; + }, []); + return scrollValues; +}; +// src/hooks/useResize.ts +var useResize = ({ + container, + ...springOptions +}) => { + const [sizeValues, api] = useSpring( + () => ({ + width: 0, + height: 0, + ...springOptions + }), + [] + ); + useIsomorphicLayoutEffect6(() => { + const cleanupScroll = onResize( + ({ width, height }) => { + api.start({ + width, + height, + immediate: sizeValues.width.get() === 0 || sizeValues.height.get() === 0 + }); + }, + { container: container?.current || void 0 } + ); + return () => { + each9(Object.values(sizeValues), (value) => value.stop()); + cleanupScroll(); + }; + }, []); + return sizeValues; +}; -const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily'; +// src/hooks/useInView.ts -/** - * Filters registered block settings, extending attributes to include - * the `fontFamily` attribute. - * - * @param {Object} settings Original block settings - * @return {Object} Filtered block settings - */ -function font_family_addAttributes(settings) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_FAMILY_SUPPORT_KEY)) { - return settings; - } - // Allow blocks to specify a default value if needed. - if (!settings.attributes.fontFamily) { - Object.assign(settings.attributes, { - fontFamily: { - type: 'string' +var defaultThresholdOptions = { + any: 0, + all: 1 +}; +function useInView(props, args) { + const [isInView, setIsInView] = useState2(false); + const ref = useRef3(); + const propsFn = is12.fun(props) && props; + const springsProps = propsFn ? propsFn() : {}; + const { to: to2 = {}, from = {}, ...restSpringProps } = springsProps; + const intersectionArguments = propsFn ? args : props; + const [springs, api] = useSpring(() => ({ from, ...restSpringProps }), []); + useIsomorphicLayoutEffect7(() => { + const element = ref.current; + const { + root, + once, + amount = "any", + ...restArgs + } = intersectionArguments ?? {}; + if (!element || once && isInView || typeof IntersectionObserver === "undefined") + return; + const activeIntersections = /* @__PURE__ */ new WeakMap(); + const onEnter = () => { + if (to2) { + api.start(to2); } + setIsInView(true); + const cleanup = () => { + if (from) { + api.start(from); + } + setIsInView(false); + }; + return once ? void 0 : cleanup; + }; + const handleIntersection = (entries) => { + entries.forEach((entry) => { + const onLeave = activeIntersections.get(entry.target); + if (entry.isIntersecting === Boolean(onLeave)) { + return; + } + if (entry.isIntersecting) { + const newOnLeave = onEnter(); + if (is12.fun(newOnLeave)) { + activeIntersections.set(entry.target, newOnLeave); + } else { + observer.unobserve(entry.target); + } + } else if (onLeave) { + onLeave(); + activeIntersections.delete(entry.target); + } + }); + }; + const observer = new IntersectionObserver(handleIntersection, { + root: root && root.current || void 0, + threshold: typeof amount === "number" || Array.isArray(amount) ? amount : defaultThresholdOptions[amount], + ...restArgs }); + observer.observe(element); + return () => observer.unobserve(element); + }, [intersectionArguments]); + if (propsFn) { + return [ref, springs]; } - return settings; + return [ref, isInView]; } -/** - * Override props assigned to save component to inject font family. - * - * @param {Object} props Additional props applied to save element - * @param {Object} blockType Block type - * @param {Object} attributes Block attributes - * @return {Object} Filtered props applied to save element - */ -function font_family_addSaveProps(props, blockType, attributes) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, FONT_FAMILY_SUPPORT_KEY)) { - return props; - } - if (shouldSkipSerialization(blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontFamily')) { - return props; - } - if (!attributes?.fontFamily) { - return props; - } - - // Use TokenList to dedupe classes. - const classes = new (external_wp_tokenList_default())(props.className); - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - classes.add(`has-${kebabCase(attributes?.fontFamily)}-font-family`); - const newClassName = classes.value; - props.className = newClassName ? newClassName : undefined; - return props; +// src/components/Spring.tsx +function Spring({ children, ...props }) { + return children(useSpring(props)); } -function font_family_useBlockProps({ - name, - fontFamily + +// src/components/Trail.tsx + +function Trail({ + items, + children, + ...props }) { - return font_family_addSaveProps({}, name, { - fontFamily + const trails = useTrail(items.length, props); + return items.map((item, index) => { + const result = children(item, index); + return is13.fun(result) ? result(trails[index]) : result; }); } -/* harmony default export */ var font_family = ({ - useBlockProps: font_family_useBlockProps, - addSaveProps: font_family_addSaveProps, - attributeKeys: ['fontFamily'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, FONT_FAMILY_SUPPORT_KEY); - } -}); -/** - * Resets the font family block support attribute. This can be used when - * disabling the font family support controls for a block via a progressive - * discovery panel. - * - * @param {Object} props Block props. - * @param {Object} props.setAttributes Function to set block's attributes. - */ -function resetFontFamily({ - setAttributes +// src/components/Transition.tsx +function Transition({ + items, + children, + ...props }) { - setAttributes({ - fontFamily: undefined - }); + return useTransition(items, props)(children); } -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/fontFamily/addAttribute', font_family_addAttributes); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/utils.js -/** - * WordPress dependencies - */ +// src/interpolate.ts -/** - * Internal dependencies - */ +// src/Interpolation.ts -/** - * Returns the font size object based on an array of named font sizes and the namedFontSize and customFontSize values. - * If namedFontSize is undefined or not found in fontSizes an object with just the size value based on customFontSize is returned. - * - * @param {Array} fontSizes Array of font size objects containing at least the "name" and "size" values as properties. - * @param {?string} fontSizeAttribute Content of the font size attribute (slug). - * @param {?number} customFontSizeAttribute Contents of the custom font size attribute (value). - * - * @return {?Object} If fontSizeAttribute is set and an equal slug is found in fontSizes it returns the font size object for that slug. - * Otherwise, an object with just the size value based on customFontSize is returned. - */ -const utils_getFontSize = (fontSizes, fontSizeAttribute, customFontSizeAttribute) => { - if (fontSizeAttribute) { - const fontSizeObject = fontSizes?.find(({ - slug - }) => slug === fontSizeAttribute); - if (fontSizeObject) { - return fontSizeObject; - } - } - return { - size: customFontSizeAttribute - }; -}; -/** - * Returns the corresponding font size object for a given value. - * - * @param {Array} fontSizes Array of font size objects. - * @param {number} value Font size value. - * - * @return {Object} Font size object. - */ -function utils_getFontSizeObjectByValue(fontSizes, value) { - const fontSizeObject = fontSizes?.find(({ - size - }) => size === value); - if (fontSizeObject) { - return fontSizeObject; +var Interpolation = class extends FrameValue { + constructor(source, args) { + super(); + this.source = source; + /** Equals false when in the frameloop */ + this.idle = true; + /** The inputs which are currently animating */ + this._active = /* @__PURE__ */ new Set(); + this.calc = createInterpolator(...args); + const value = this._get(); + const nodeType = getAnimatedType(value); + setAnimated(this, nodeType.create(value)); } - return { - size: value - }; -} - -/** - * Returns a class based on fontSizeName. - * - * @param {string} fontSizeSlug Slug of the fontSize. - * - * @return {string | undefined} String with the class corresponding to the fontSize passed. - * The class is generated by appending 'has-' followed by fontSizeSlug in kebabCase and ending with '-font-size'. - */ -function getFontSizeClass(fontSizeSlug) { - if (!fontSizeSlug) { - return; + advance(_dt) { + const value = this._get(); + const oldValue = this.get(); + if (!isEqual(value, oldValue)) { + getAnimated(this).setValue(value); + this._onChange(value, this.idle); + } + if (!this.idle && checkIdle(this._active)) { + becomeIdle(this); + } } - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - return `has-${kebabCase(fontSizeSlug)}-font-size`; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/font-size.js - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - - - - - -const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize'; - -/** - * Filters registered block settings, extending attributes to include - * `fontSize` and `fontWeight` attributes. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function font_size_addAttributes(settings) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_SIZE_SUPPORT_KEY)) { - return settings; + _get() { + const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source)); + return this.calc(...inputs); } - - // Allow blocks to specify a default value if needed. - if (!settings.attributes.fontSize) { - Object.assign(settings.attributes, { - fontSize: { - type: 'string' + _start() { + if (this.idle && !checkIdle(this._active)) { + this.idle = false; + react_spring_shared_modern_each(getPayload(this), (node) => { + node.done = false; + }); + if (globals_exports.skipAnimation) { + raf.batchedUpdates(() => this.advance()); + becomeIdle(this); + } else { + frameLoop.start(this); } - }); - } - return settings; -} - -/** - * Override props assigned to save component to inject font size. - * - * @param {Object} props Additional props applied to save element. - * @param {Object} blockNameOrType Block type. - * @param {Object} attributes Block attributes. - * - * @return {Object} Filtered props applied to save element. - */ -function font_size_addSaveProps(props, blockNameOrType, attributes) { - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockNameOrType, FONT_SIZE_SUPPORT_KEY)) { - return props; - } - if (shouldSkipSerialization(blockNameOrType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize')) { - return props; + } } - - // Use TokenList to dedupe classes. - const classes = new (external_wp_tokenList_default())(props.className); - classes.add(getFontSizeClass(attributes.fontSize)); - const newClassName = classes.value; - props.className = newClassName ? newClassName : undefined; - return props; -} - -/** - * Inspector control panel containing the font size related configuration - * - * @param {Object} props - * - * @return {Element} Font size edit element. - */ -function FontSizeEdit(props) { - const { - attributes: { - fontSize, - style - }, - setAttributes - } = props; - const [fontSizes] = useSettings('typography.fontSizes'); - const onChange = value => { - const fontSizeSlug = getFontSizeObjectByValue(fontSizes, value).slug; - setAttributes({ - style: cleanEmptyObject({ - ...style, - typography: { - ...style?.typography, - fontSize: fontSizeSlug ? undefined : value + // Observe our sources only when we're observed. + _attach() { + let priority = 1; + react_spring_shared_modern_each(toArray(this.source), (source) => { + if (hasFluidValue(source)) { + addFluidObserver(source, this); + } + if (isFrameValue(source)) { + if (!source.idle) { + this._active.add(source); } - }), - fontSize: fontSizeSlug + priority = Math.max(priority, source.priority + 1); + } }); - }; - const fontSizeObject = getFontSize(fontSizes, fontSize, style?.typography?.fontSize); - const fontSizeValue = fontSizeObject?.size || style?.typography?.fontSize || fontSize; - return createElement(FontSizePicker, { - onChange: onChange, - value: fontSizeValue, - withReset: false, - withSlider: true, - size: "__unstable-large", - __nextHasNoMarginBottom: true - }); -} - -/** - * Custom hook that checks if font-size settings have been disabled. - * - * @param {string} name The name of the block. - * @return {boolean} Whether setting is disabled. - */ -function useIsFontSizeDisabled({ - name: blockName -} = {}) { - const [fontSizes] = useSettings('typography.fontSizes'); - const hasFontSizes = !!fontSizes?.length; - return !hasBlockSupport(blockName, FONT_SIZE_SUPPORT_KEY) || !hasFontSizes; -} -function font_size_useBlockProps({ - name, - fontSize, - style -}) { - const [fontSizes] = use_settings_useSettings('typography.fontSizes'); - - // Only add inline styles if the block supports font sizes, - // doesn't skip serialization of font sizes, - // doesn't already have an inline font size, - // and does have a class to extract the font size from. - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, FONT_SIZE_SUPPORT_KEY) || shouldSkipSerialization(name, TYPOGRAPHY_SUPPORT_KEY, 'fontSize') || !fontSize) { - return; + this.priority = priority; + this._start(); } - let props = {}; - if (!style?.typography?.fontSize) { - props = { - style: { - fontSize: utils_getFontSize(fontSizes, fontSize, style?.typography?.fontSize).size + // Stop observing our sources once we have no observers. + _detach() { + react_spring_shared_modern_each(toArray(this.source), (source) => { + if (hasFluidValue(source)) { + removeFluidObserver(source, this); } - }; + }); + this._active.clear(); + becomeIdle(this); } - - // TODO: This sucks! We should be using useSetting( 'typography.fluid' ) - // or even useSelect( blockEditorStore ). We can't do either here - // because getEditWrapperProps is a plain JavaScript function called by - // BlockListBlock and not a React component rendered within - // BlockListContext.Provider. If we set fontSize using editor. - // BlockListBlock instead of using getEditWrapperProps then the value is - // clobbered when the core/style/addEditProps filter runs. - - // TODO: We can do the thing above now. - const fluidTypographySettings = getFluidTypographyOptionsFromSettings((0,external_wp_data_namespaceObject.select)(store).getSettings().__experimentalFeatures); - if (fontSize) { - props = { - style: { - fontSize: getTypographyFontSizeValue({ - size: fontSize - }, fluidTypographySettings) + /** @internal */ + eventObserved(event) { + if (event.type == "change") { + if (event.idle) { + this.advance(); + } else { + this._active.add(event.parent); + this._start(); } - }; - } - return font_size_addSaveProps(props, name, { - fontSize - }); -} -/* harmony default export */ var font_size = ({ - useBlockProps: font_size_useBlockProps, - addSaveProps: font_size_addSaveProps, - attributeKeys: ['fontSize', 'style'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, FONT_SIZE_SUPPORT_KEY); + } else if (event.type == "idle") { + this._active.delete(event.parent); + } else if (event.type == "priority") { + this.priority = toArray(this.source).reduce( + (highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), + 0 + ); + } } -}); -const font_size_MIGRATION_PATHS = { - fontSize: [['fontSize'], ['style', 'typography', 'fontSize']] }; -function font_size_addTransforms(result, source, index, results) { - const destinationBlockType = result.name; - const activeSupports = { - fontSize: (0,external_wp_blocks_namespaceObject.hasBlockSupport)(destinationBlockType, FONT_SIZE_SUPPORT_KEY) - }; - return transformStyles(activeSupports, font_size_MIGRATION_PATHS, result, source, index, results); -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/font/addAttribute', font_size_addAttributes); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/font-size/addTransforms', font_size_addTransforms); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/typography.js - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - - - - -function omit(object, keys) { - return Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key))); -} -const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing'; -const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform'; -const TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration'; -const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns'; -const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle'; -const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight'; -const WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode'; -const TYPOGRAPHY_SUPPORT_KEY = 'typography'; -const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_COLUMNS_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, WRITING_MODE_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY]; -function typography_styleToAttributes(style) { - const updatedStyle = { - ...omit(style, ['fontFamily']) - }; - const fontSizeValue = style?.typography?.fontSize; - const fontFamilyValue = style?.typography?.fontFamily; - const fontSizeSlug = fontSizeValue?.startsWith('var:preset|font-size|') ? fontSizeValue.substring('var:preset|font-size|'.length) : undefined; - const fontFamilySlug = fontFamilyValue?.startsWith('var:preset|font-family|') ? fontFamilyValue.substring('var:preset|font-family|'.length) : undefined; - updatedStyle.typography = { - ...omit(updatedStyle.typography, ['fontFamily']), - fontSize: fontSizeSlug ? undefined : fontSizeValue - }; - return { - style: utils_cleanEmptyObject(updatedStyle), - fontFamily: fontFamilySlug, - fontSize: fontSizeSlug - }; -} -function typography_attributesToStyle(attributes) { - return { - ...attributes.style, - typography: { - ...attributes.style?.typography, - fontFamily: attributes.fontFamily ? 'var:preset|font-family|' + attributes.fontFamily : undefined, - fontSize: attributes.fontSize ? 'var:preset|font-size|' + attributes.fontSize : attributes.style?.typography?.fontSize - } - }; +function isIdle(source) { + return source.idle !== false; } -function TypographyInspectorControl({ - children, - resetAllFilter -}) { - const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { - const existingStyle = typography_attributesToStyle(attributes); - const updatedStyle = resetAllFilter(existingStyle); - return { - ...attributes, - ...typography_styleToAttributes(updatedStyle) - }; - }, [resetAllFilter]); - return (0,external_React_.createElement)(inspector_controls, { - group: "typography", - resetAllFilter: attributesResetAllFilter - }, children); +function checkIdle(active) { + return !active.size || Array.from(active).every(isIdle); } -function typography_TypographyPanel({ - clientId, - name, - setAttributes, - settings -}) { - function selector(select) { - const { - style, - fontFamily, - fontSize - } = select(store).getBlockAttributes(clientId) || {}; - return { - style, - fontFamily, - fontSize - }; - } - const { - style, - fontFamily, - fontSize - } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId]); - const isEnabled = useHasTypographyPanel(settings); - const value = (0,external_wp_element_namespaceObject.useMemo)(() => typography_attributesToStyle({ - style, - fontFamily, - fontSize - }), [style, fontSize, fontFamily]); - const onChange = newStyle => { - setAttributes(typography_styleToAttributes(newStyle)); - }; - if (!isEnabled) { - return null; +function becomeIdle(self) { + if (!self.idle) { + self.idle = true; + react_spring_shared_modern_each(getPayload(self), (node) => { + node.done = true; + }); + callFluidObservers(self, { + type: "idle", + parent: self + }); } - const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [TYPOGRAPHY_SUPPORT_KEY, '__experimentalDefaultControls']); - return (0,external_React_.createElement)(TypographyPanel, { - as: TypographyInspectorControl, - panelId: clientId, - settings: settings, - value: value, - onChange: onChange, - defaultControls: defaultControls - }); } -const hasTypographySupport = blockName => { - return TYPOGRAPHY_SUPPORT_KEYS.some(key => hasBlockSupport(blockName, key)); -}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js - -/** - * WordPress dependencies - */ - -const settings_settings = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m19 7.5h-7.628c-.3089-.87389-1.1423-1.5-2.122-1.5-.97966 0-1.81309.62611-2.12197 1.5h-2.12803v1.5h2.12803c.30888.87389 1.14231 1.5 2.12197 1.5.9797 0 1.8131-.62611 2.122-1.5h7.628z" -}), (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m19 15h-2.128c-.3089-.8739-1.1423-1.5-2.122-1.5s-1.8131.6261-2.122 1.5h-7.628v1.5h7.628c.3089.8739 1.1423 1.5 2.122 1.5s1.8131-.6261 2.122-1.5h2.128z" -})); -/* harmony default export */ var library_settings = (settings_settings); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +// src/interpolate.ts +var react_spring_core_modern_to = (source, ...args) => new Interpolation(source, args); +var react_spring_core_modern_interpolate = (source, ...args) => (deprecateInterpolate2(), new Interpolation(source, args)); -/** - * WordPress dependencies - */ +// src/globals.ts +globals_exports.assign({ + createStringInterpolator: createStringInterpolator2, + to: (source, args) => new Interpolation(source, args) +}); +var react_spring_core_modern_update = frameLoop.advance; +// src/index.ts +;// CONCATENATED MODULE: external "ReactDOM" +var external_ReactDOM_namespaceObject = window["ReactDOM"]; +;// CONCATENATED MODULE: ./node_modules/@react-spring/web/dist/react-spring_web.modern.mjs +// src/index.ts -/** - * Internal dependencies - */ -const CUSTOM_VALUE_SETTINGS = { - px: { - max: 300, - steps: 1 - }, - '%': { - max: 100, - steps: 1 - }, - vw: { - max: 100, - steps: 1 - }, - vh: { - max: 100, - steps: 1 - }, - em: { - max: 10, - steps: 0.1 - }, - rm: { - max: 10, - steps: 0.1 - }, - svw: { - max: 100, - steps: 1 - }, - lvw: { - max: 100, - steps: 1 - }, - dvw: { - max: 100, - steps: 1 - }, - svh: { - max: 100, - steps: 1 - }, - lvh: { - max: 100, - steps: 1 - }, - dvh: { - max: 100, - steps: 1 - }, - vi: { - max: 100, - steps: 1 - }, - svi: { - max: 100, - steps: 1 - }, - lvi: { - max: 100, - steps: 1 - }, - dvi: { - max: 100, - steps: 1 - }, - vb: { - max: 100, - steps: 1 - }, - svb: { - max: 100, - steps: 1 - }, - lvb: { - max: 100, - steps: 1 - }, - dvb: { - max: 100, - steps: 1 - }, - vmin: { - max: 100, - steps: 1 - }, - svmin: { - max: 100, - steps: 1 - }, - lvmin: { - max: 100, - steps: 1 - }, - dvmin: { - max: 100, - steps: 1 - }, - vmax: { - max: 100, - steps: 1 - }, - svmax: { - max: 100, - steps: 1 - }, - lvmax: { - max: 100, - steps: 1 - }, - dvmax: { - max: 100, - steps: 1 +// src/applyAnimatedValues.ts +var isCustomPropRE = /^--/; +function dangerousStyleValue(name, value) { + if (value == null || typeof value === "boolean" || value === "") + return ""; + if (typeof value === "number" && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) + return value + "px"; + return ("" + value).trim(); +} +var attributeCache = {}; +function applyAnimatedValues(instance, props) { + if (!instance.nodeType || !instance.setAttribute) { + return false; } -}; -function SpacingInputControl({ - icon, - isMixed = false, - minimumCustomValue, - onChange, - onMouseOut, - onMouseOver, - showSideInLabel = true, - side, - spacingSizes, - type, - value -}) { - var _CUSTOM_VALUE_SETTING, _CUSTOM_VALUE_SETTING2; - // Treat value as a preset value if the passed in value matches the value of one of the spacingSizes. - value = getPresetValueFromCustomValue(value, spacingSizes); - let selectListSizes = spacingSizes; - const showRangeControl = spacingSizes.length <= 8; - const disableCustomSpacingSizes = (0,external_wp_data_namespaceObject.useSelect)(select => { - const editorSettings = select(store).getSettings(); - return editorSettings?.disableCustomSpacingSizes; - }); - const [showCustomValueControl, setShowCustomValueControl] = (0,external_wp_element_namespaceObject.useState)(!disableCustomSpacingSizes && value !== undefined && !isValueSpacingPreset(value)); - const previousValue = (0,external_wp_compose_namespaceObject.usePrevious)(value); - if (!!value && previousValue !== value && !isValueSpacingPreset(value) && showCustomValueControl !== true) { - setShowCustomValueControl(true); + const isFilterElement = instance.nodeName === "filter" || instance.parentNode && instance.parentNode.nodeName === "filter"; + const { style, children, scrollTop, scrollLeft, viewBox, ...attributes } = props; + const values = Object.values(attributes); + const names = Object.keys(attributes).map( + (name) => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace( + /([A-Z])/g, + // Attributes are written in dash case + (n) => "-" + n.toLowerCase() + )) + ); + if (children !== void 0) { + instance.textContent = children; } - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['px', 'em', 'rem'] + for (const name in style) { + if (style.hasOwnProperty(name)) { + const value = dangerousStyleValue(name, style[name]); + if (isCustomPropRE.test(name)) { + instance.style.setProperty(name, value); + } else { + instance.style[name] = value; + } + } + } + names.forEach((name, i) => { + instance.setAttribute(name, values[i]); }); - let currentValue = null; - const showCustomValueInSelectList = !showRangeControl && !showCustomValueControl && value !== undefined && (!isValueSpacingPreset(value) || isValueSpacingPreset(value) && isMixed); - if (showCustomValueInSelectList) { - selectListSizes = [...spacingSizes, { - name: !isMixed ? - // translators: A custom measurement, eg. a number followed by a unit like 12px. - (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Custom (%s)'), value) : (0,external_wp_i18n_namespaceObject.__)('Mixed'), - slug: 'custom', - size: value - }]; - currentValue = selectListSizes.length - 1; - } else if (!isMixed) { - currentValue = !showCustomValueControl ? getSliderValueFromPreset(value, spacingSizes) : getCustomValueFromPreset(value, spacingSizes); + if (scrollTop !== void 0) { + instance.scrollTop = scrollTop; } - const selectedUnit = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue), [currentValue])[1] || units[0]?.value; - const setInitialValue = () => { - if (value === undefined) { - onChange('0'); + if (scrollLeft !== void 0) { + instance.scrollLeft = scrollLeft; + } + if (viewBox !== void 0) { + instance.setAttribute("viewBox", viewBox); + } +} +var isUnitlessNumber = { + animationIterationCount: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + columns: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridRow: true, + gridRowEnd: true, + gridRowSpan: true, + gridRowStart: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnSpan: true, + gridColumnStart: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + // SVG-related properties + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeDasharray: true, + strokeDashoffset: true, + strokeMiterlimit: true, + strokeOpacity: true, + strokeWidth: true +}; +var prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1); +var prefixes = ["Webkit", "Ms", "Moz", "O"]; +isUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => { + prefixes.forEach((prefix) => acc[prefixKey(prefix, prop)] = acc[prop]); + return acc; +}, isUnitlessNumber); + +// src/AnimatedStyle.ts + + +var domTransforms = /^(matrix|translate|scale|rotate|skew)/; +var pxTransforms = /^(translate)/; +var degTransforms = /^(rotate|skew)/; +var addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value; +var isValueIdentity = (value, id) => is.arr(value) ? value.every((v) => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id; +var AnimatedStyle = class extends AnimatedObject { + constructor({ x, y, z, ...style }) { + const inputs = []; + const transforms = []; + if (x || y || z) { + inputs.push([x || 0, y || 0, z || 0]); + transforms.push((xyz) => [ + `translate3d(${xyz.map((v) => addUnit(v, "px")).join(",")})`, + // prettier-ignore + isValueIdentity(xyz, 0) + ]); } - }; - const customTooltipContent = newValue => value === undefined ? undefined : spacingSizes[newValue]?.name; - const customRangeValue = parseFloat(currentValue, 10); - const getNewCustomValue = newSize => { - const isNumeric = !isNaN(parseFloat(newSize)); - const nextValue = isNumeric ? newSize : undefined; - return nextValue; - }; - const getNewPresetValue = (newSize, controlType) => { - const size = parseInt(newSize, 10); - if (controlType === 'selectList') { - if (size === 0) { - return undefined; - } - if (size === 1) { - return '0'; + eachProp(style, (value, key) => { + if (key === "transform") { + inputs.push([value || ""]); + transforms.push((transform) => [transform, transform === ""]); + } else if (domTransforms.test(key)) { + delete style[key]; + if (is.und(value)) + return; + const unit = pxTransforms.test(key) ? "px" : degTransforms.test(key) ? "deg" : ""; + inputs.push(toArray(value)); + transforms.push( + key === "rotate3d" ? ([x2, y2, z2, deg]) => [ + `rotate3d(${x2},${y2},${z2},${addUnit(deg, unit)})`, + isValueIdentity(deg, 0) + ] : (input) => [ + `${key}(${input.map((v) => addUnit(v, unit)).join(",")})`, + isValueIdentity(input, key.startsWith("scale") ? 1 : 0) + ] + ); } - } else if (size === 0) { - return '0'; + }); + if (inputs.length) { + style.transform = new FluidTransform(inputs, transforms); } - return `var:preset|spacing|${spacingSizes[newSize]?.slug}`; - }; - const handleCustomValueSliderChange = next => { - onChange([next, selectedUnit].join('')); - }; - const allPlaceholder = isMixed ? (0,external_wp_i18n_namespaceObject.__)('Mixed') : null; - const options = selectListSizes.map((size, index) => ({ - key: index, - name: size.name - })); - const marks = spacingSizes.map((_newValue, index) => ({ - value: index, - label: undefined - })); - const sideLabel = ALL_SIDES.includes(side) && showSideInLabel ? LABELS[side] : ''; - const typeLabel = showSideInLabel ? type?.toLowerCase() : type; - const ariaLabel = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc) - (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), sideLabel, typeLabel).trim(); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - className: "spacing-sizes-control__wrapper" - }, icon && (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - className: "spacing-sizes-control__icon", - icon: icon, - size: 24 - }), showCustomValueControl && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - onMouseOver: onMouseOver, - onMouseOut: onMouseOut, - onFocus: onMouseOver, - onBlur: onMouseOut, - onChange: newSize => onChange(getNewCustomValue(newSize)), - value: currentValue, - units: units, - min: minimumCustomValue, - placeholder: allPlaceholder, - disableUnits: isMixed, - label: ariaLabel, - hideLabelFromVision: true, - className: "spacing-sizes-control__custom-value-input", - size: '__unstable-large' - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - onMouseOver: onMouseOver, - onMouseOut: onMouseOut, - onFocus: onMouseOver, - onBlur: onMouseOut, - value: customRangeValue, - min: 0, - max: (_CUSTOM_VALUE_SETTING = CUSTOM_VALUE_SETTINGS[selectedUnit]?.max) !== null && _CUSTOM_VALUE_SETTING !== void 0 ? _CUSTOM_VALUE_SETTING : 10, - step: (_CUSTOM_VALUE_SETTING2 = CUSTOM_VALUE_SETTINGS[selectedUnit]?.steps) !== null && _CUSTOM_VALUE_SETTING2 !== void 0 ? _CUSTOM_VALUE_SETTING2 : 0.1, - withInputField: false, - onChange: handleCustomValueSliderChange, - className: "spacing-sizes-control__custom-value-range", - __nextHasNoMarginBottom: true - })), showRangeControl && !showCustomValueControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - onMouseOver: onMouseOver, - onMouseOut: onMouseOut, - className: "spacing-sizes-control__range-control", - value: currentValue, - onChange: newSize => onChange(getNewPresetValue(newSize)), - onMouseDown: event => { - // If mouse down is near start of range set initial value to 0, which - // prevents the user have to drag right then left to get 0 setting. - if (event?.nativeEvent?.offsetX < 35) { - setInitialValue(); - } - }, - withInputField: false, - "aria-valuenow": currentValue, - "aria-valuetext": spacingSizes[currentValue]?.name, - renderTooltipContent: customTooltipContent, - min: 0, - max: spacingSizes.length - 1, - marks: marks, - label: ariaLabel, - hideLabelFromVision: true, - __nextHasNoMarginBottom: true, - onFocus: onMouseOver, - onBlur: onMouseOut - }), !showRangeControl && !showCustomValueControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { - className: "spacing-sizes-control__custom-select-control", - value: options.find(option => option.key === currentValue) || '' // passing undefined here causes a downshift controlled/uncontrolled warning - , + super(style); + } +}; +var FluidTransform = class extends FluidValue { + constructor(inputs, transforms) { + super(); + this.inputs = inputs; + this.transforms = transforms; + this._value = null; + } + get() { + return this._value || (this._value = this._get()); + } + _get() { + let transform = ""; + let identity = true; + react_spring_shared_modern_each(this.inputs, (input, i) => { + const arg1 = getFluidValue(input[0]); + const [t, id] = this.transforms[i]( + is.arr(arg1) ? arg1 : input.map(getFluidValue) + ); + transform += " " + t; + identity = identity && id; + }); + return identity ? "none" : transform; + } + // Start observing our inputs once we have an observer. + observerAdded(count) { + if (count == 1) + react_spring_shared_modern_each( + this.inputs, + (input) => react_spring_shared_modern_each( + input, + (value) => hasFluidValue(value) && addFluidObserver(value, this) + ) + ); + } + // Stop observing our inputs once we have no observers. + observerRemoved(count) { + if (count == 0) + react_spring_shared_modern_each( + this.inputs, + (input) => react_spring_shared_modern_each( + input, + (value) => hasFluidValue(value) && removeFluidObserver(value, this) + ) + ); + } + eventObserved(event) { + if (event.type == "change") { + this._value = null; + } + callFluidObservers(this, event); + } +}; - onChange: selection => { - onChange(getNewPresetValue(selection.selectedItem.key, 'selectList')); - }, - options: options, - label: ariaLabel, - hideLabelFromVision: true, - __nextUnconstrainedWidth: true, - size: '__unstable-large', - onMouseOver: onMouseOver, - onMouseOut: onMouseOut, - onFocus: onMouseOver, - onBlur: onMouseOut - }), !disableCustomSpacingSizes && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - label: showCustomValueControl ? (0,external_wp_i18n_namespaceObject.__)('Use size preset') : (0,external_wp_i18n_namespaceObject.__)('Set custom size'), - icon: library_settings, - onClick: () => { - setShowCustomValueControl(!showCustomValueControl); - }, - isPressed: showCustomValueControl, - size: "small", - className: "spacing-sizes-control__custom-toggle", - iconSize: 24 - })); -} +// src/primitives.ts +var primitives = [ + "a", + "abbr", + "address", + "area", + "article", + "aside", + "audio", + "b", + "base", + "bdi", + "bdo", + "big", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "cite", + "code", + "col", + "colgroup", + "data", + "datalist", + "dd", + "del", + "details", + "dfn", + "dialog", + "div", + "dl", + "dt", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "ins", + "kbd", + "keygen", + "label", + "legend", + "li", + "link", + "main", + "map", + "mark", + "menu", + "menuitem", + "meta", + "meter", + "nav", + "noscript", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "picture", + "pre", + "progress", + "q", + "rp", + "rt", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "small", + "source", + "span", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "track", + "u", + "ul", + "var", + "video", + "wbr", + // SVG + "circle", + "clipPath", + "defs", + "ellipse", + "foreignObject", + "g", + "image", + "line", + "linearGradient", + "mask", + "path", + "pattern", + "polygon", + "polyline", + "radialGradient", + "rect", + "stop", + "svg", + "text", + "tspan" +]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/axial.js +// src/index.ts + +globals_exports.assign({ + batchedUpdates: external_ReactDOM_namespaceObject.unstable_batchedUpdates, + createStringInterpolator: createStringInterpolator2, + colors: colors2 +}); +var host = createHost(primitives, { + applyAnimatedValues, + createAnimatedStyle: (style) => new AnimatedStyle(style), + // eslint-disable-next-line @typescript-eslint/no-unused-vars + getComponentProps: ({ scrollTop, scrollLeft, ...props }) => props +}); +var animated = host.animated; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-moving-animation/index.js /** - * Internal dependencies + * External dependencies */ -const groupedSides = ['vertical', 'horizontal']; -function AxialInputControls({ - minimumCustomValue, - onChange, - onMouseOut, - onMouseOver, - sides, - spacingSizes, - type, - values -}) { - const createHandleOnChange = side => next => { - if (!onChange) { - return; - } +/** + * WordPress dependencies + */ - // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. - const nextValues = { - ...Object.keys(values).reduce((acc, key) => { - acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); - return acc; - }, {}) - }; - if (side === 'vertical') { - nextValues.top = next; - nextValues.bottom = next; - } - if (side === 'horizontal') { - nextValues.left = next; - nextValues.right = next; - } - onChange(nextValues); - }; - // Filter sides if custom configuration provided, maintaining default order. - const filteredSides = sides?.length ? groupedSides.filter(side => hasAxisSupport(sides, side)) : groupedSides; - return (0,external_React_.createElement)(external_React_.Fragment, null, filteredSides.map(side => { - const axisValue = side === 'vertical' ? values.top : values.left; - return (0,external_React_.createElement)(SpacingInputControl, { - key: `spacing-sizes-control-${side}`, - icon: ICONS[side], - label: LABELS[side], - minimumCustomValue: minimumCustomValue, - onChange: createHandleOnChange(side), - onMouseOut: onMouseOut, - onMouseOver: onMouseOver, - side: side, - spacingSizes: spacingSizes, - type: type, - value: axisValue, - withInputField: false - }); - })); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/separated.js /** - * Internal dependencies + * Simple reducer used to increment a counter. + * + * @param {number} state Previous counter value. + * @return {number} New state value. */ +const counterReducer = state => state + 1; +const getAbsolutePosition = element => { + return { + top: element.offsetTop, + left: element.offsetLeft + }; +}; - -function SeparatedInputControls({ - minimumCustomValue, - onChange, - onMouseOut, - onMouseOver, - sides, - spacingSizes, - type, - values +/** + * Hook used to compute the styles required to move a div into a new position. + * + * The way this animation works is the following: + * - It first renders the element as if there was no animation. + * - It takes a snapshot of the position of the block to use it + * as a destination point for the animation. + * - It restores the element to the previous position using a CSS transform + * - It uses the "resetAnimation" flag to reset the animation + * from the beginning in order to animate to the new destination point. + * + * @param {Object} $1 Options + * @param {boolean} $1.isSelected Whether it's the current block or not. + * @param {boolean} $1.adjustScrolling Adjust the scroll position to the current block. + * @param {boolean} $1.enableAnimation Enable/Disable animation. + * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes. + */ +function useMovingAnimation({ + isSelected, + adjustScrolling, + enableAnimation, + triggerAnimationOnChange }) { - // Filter sides if custom configuration provided, maintaining default order. - const filteredSides = sides?.length ? ALL_SIDES.filter(side => sides.includes(side)) : ALL_SIDES; - const createHandleOnChange = side => next => { - // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. - const nextValues = { - ...Object.keys(values).reduce((acc, key) => { - acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); - return acc; - }, {}) + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const prefersReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)() || !enableAnimation; + const [triggeredAnimation, triggerAnimation] = (0,external_wp_element_namespaceObject.useReducer)(counterReducer, 0); + const [finishedAnimation, endAnimation] = (0,external_wp_element_namespaceObject.useReducer)(counterReducer, 0); + const [transform, setTransform] = (0,external_wp_element_namespaceObject.useState)({ + x: 0, + y: 0 + }); + const previous = (0,external_wp_element_namespaceObject.useMemo)(() => ref.current ? getAbsolutePosition(ref.current) : null, [triggerAnimationOnChange]); + + // Calculate the previous position of the block relative to the viewport and + // return a function to maintain that position by scrolling. + const preserveScrollPosition = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!adjustScrolling || !ref.current) { + return () => {}; + } + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(ref.current); + if (!scrollContainer) { + return () => {}; + } + const prevRect = ref.current.getBoundingClientRect(); + return () => { + const blockRect = ref.current.getBoundingClientRect(); + const diff = blockRect.top - prevRect.top; + if (diff) { + scrollContainer.scrollTop += diff; + } }; - nextValues[side] = next; - onChange(nextValues); - }; - return (0,external_React_.createElement)(external_React_.Fragment, null, filteredSides.map(side => { - return (0,external_React_.createElement)(SpacingInputControl, { - key: `spacing-sizes-control-${side}`, - icon: ICONS[side], - label: LABELS[side], - minimumCustomValue: minimumCustomValue, - onChange: createHandleOnChange(side), - onMouseOut: onMouseOut, - onMouseOver: onMouseOver, - side: side, - spacingSizes: spacingSizes, - type: type, - value: values[side], - withInputField: false + }, [triggerAnimationOnChange, adjustScrolling]); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (triggeredAnimation) { + endAnimation(); + } + }, [triggeredAnimation]); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!previous) { + return; + } + if (prefersReducedMotion) { + // If the animation is disabled and the scroll needs to be adjusted, + // just move directly to the final scroll position. + preserveScrollPosition(); + return; + } + ref.current.style.transform = undefined; + const destination = getAbsolutePosition(ref.current); + triggerAnimation(); + setTransform({ + x: Math.round(previous.left - destination.left), + y: Math.round(previous.top - destination.top) }); - })); + }, [triggerAnimationOnChange]); + function onChange({ + value + }) { + if (!ref.current) { + return; + } + let { + x, + y + } = value; + x = Math.round(x); + y = Math.round(y); + const finishedMoving = x === 0 && y === 0; + ref.current.style.transformOrigin = 'center center'; + ref.current.style.transform = finishedMoving ? undefined : `translate3d(${x}px,${y}px,0)`; + ref.current.style.zIndex = isSelected ? '1' : ''; + preserveScrollPosition(); + } + useSpring({ + from: { + x: transform.x, + y: transform.y + }, + to: { + x: 0, + y: 0 + }, + reset: triggeredAnimation !== finishedAnimation, + config: { + mass: 5, + tension: 2000, + friction: 200 + }, + immediate: prefersReducedMotion, + onChange + }); + return ref; } +/* harmony default export */ var use_moving_animation = (useMovingAnimation); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/single.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/dom.js +const BLOCK_SELECTOR = '.block-editor-block-list__block'; +const APPENDER_SELECTOR = '.block-list-appender'; +const BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender'; /** - * Internal dependencies + * Returns true if two elements are contained within the same block. + * + * @param {Element} a First element. + * @param {Element} b Second element. + * + * @return {boolean} Whether elements are in the same block. */ +function isInSameBlock(a, b) { + return a.closest(BLOCK_SELECTOR) === b.closest(BLOCK_SELECTOR); +} - -function SingleInputControl({ - minimumCustomValue, - onChange, - onMouseOut, - onMouseOver, - showSideInLabel, - side, - spacingSizes, - type, - values -}) { - const createHandleOnChange = currentSide => next => { - // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. - const nextValues = { - ...Object.keys(values).reduce((acc, key) => { - acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); - return acc; - }, {}) - }; - nextValues[currentSide] = next; - onChange(nextValues); - }; - return (0,external_React_.createElement)(SpacingInputControl, { - label: LABELS[side], - minimumCustomValue: minimumCustomValue, - onChange: createHandleOnChange(side), - onMouseOut: onMouseOut, - onMouseOver: onMouseOver, - showSideInLabel: showSideInLabel, - side: side, - spacingSizes: spacingSizes, - type: type, - value: values[side], - withInputField: false - }); +/** + * Returns true if an element is considered part of the block and not its inner + * blocks or appender. + * + * @param {Element} blockElement Block container element. + * @param {Element} element Element. + * + * @return {boolean} Whether an element is considered part of the block and not + * its inner blocks or appender. + */ +function isInsideRootBlock(blockElement, element) { + const parentBlock = element.closest([BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS].join(',')); + return parentBlock === blockElement; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js +/** + * Finds the block client ID given any DOM node inside the block. + * + * @param {Node?} node DOM node. + * + * @return {string|undefined} Client ID or undefined if the node is not part of + * a block. + */ +function getBlockClientId(node) { + while (node && node.nodeType !== node.ELEMENT_NODE) { + node = node.parentNode; + } + if (!node) { + return; + } + const elementNode = /** @type {Element} */node; + const blockNode = elementNode.closest(BLOCK_SELECTOR); + if (!blockNode) { + return; + } + return blockNode.id.slice('block-'.length); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-focus-first-element.js /** * WordPress dependencies */ -const check_check = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" -})); -/* harmony default export */ var library_check = (check_check); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/sides-dropdown/index.js + /** - * WordPress dependencies + * Internal dependencies */ +/** @typedef {import('@wordpress/element').RefObject} RefObject */ + /** - * Internal dependencies + * Returns the initial position if the block needs to be focussed, `undefined` + * otherwise. The initial position is either 0 (start) or -1 (end). + * + * @param {string} clientId Block client ID. + * + * @return {number} The initial position, either 0 (start) or -1 (end). */ +function useInitialPosition(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSelectedBlocksInitialCaretPosition, + __unstableGetEditorMode, + isBlockSelected + } = select(store); + if (!isBlockSelected(clientId)) { + return; + } + if (__unstableGetEditorMode() !== 'edit') { + return; + } -const checkIcon = (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - icon: library_check, - size: 24 -}); -function SidesDropdown({ - label: labelProp, - onChange, - sides, - value -}) { - if (!sides || !sides.length) { - return; - } - const supportedItems = getSupportedMenuItems(sides); - const sideIcon = supportedItems[value].icon; + // If there's no initial position, return 0 to focus the start. + return getSelectedBlocksInitialCaretPosition(); + }, [clientId]); +} + +/** + * Transitions focus to the block or inner tabbable when the block becomes + * selected and an initial position is set. + * + * @param {string} clientId Block client ID. + * + * @return {RefObject} React ref with the block element. + */ +function useFocusFirstElement(clientId) { + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const initialPosition = useInitialPosition(clientId); const { - custom: customItem, - ...menuItems - } = supportedItems; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - icon: sideIcon, - label: labelProp, - className: "spacing-sizes-control__dropdown", - toggleProps: { - isSmall: true + isBlockSelected, + isMultiSelecting + } = (0,external_wp_data_namespaceObject.useSelect)(store); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // Check if the block is still selected at the time this effect runs. + if (!isBlockSelected(clientId) || isMultiSelecting()) { + return; + } + if (initialPosition === undefined || initialPosition === null) { + return; + } + if (!ref.current) { + return; + } + const { + ownerDocument + } = ref.current; + + // Do not focus the block if it already contains the active element. + if (isInsideRootBlock(ref.current, ownerDocument.activeElement)) { + return; + } + + // Find all tabbables within node. + const textInputs = external_wp_dom_namespaceObject.focus.tabbable.find(ref.current).filter(node => (0,external_wp_dom_namespaceObject.isTextField)(node)); + + // If reversed (e.g. merge via backspace), use the last in the set of + // tabbables. + const isReverse = -1 === initialPosition; + const target = textInputs[isReverse ? textInputs.length - 1 : 0] || ref.current; + if (!isInsideRootBlock(ref.current, target)) { + ref.current.focus(); + return; + } + + // Check to see if element is focussable before a generic caret insert. + if (!ref.current.getAttribute('contenteditable')) { + const focusElement = external_wp_dom_namespaceObject.focus.tabbable.findNext(ref.current); + // Make sure focusElement is valid, contained in the same block, and a form field. + if (focusElement && isInsideRootBlock(ref.current, focusElement) && (0,external_wp_dom_namespaceObject.isFormElement)(focusElement)) { + focusElement.focus(); + return; + } } - }, ({ - onClose - }) => { - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, Object.entries(menuItems).map(([slug, { - label, - icon - }]) => { - const isSelected = value === slug; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - key: slug, - icon: icon, - iconPosition: "left", - isSelected: isSelected, - role: "menuitemradio", - onClick: () => { - onChange(slug); - onClose(); - }, - suffix: isSelected ? checkIcon : undefined - }, label); - })), !!customItem && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - icon: customItem.icon, - iconPosition: "left", - isSelected: value === VIEWS.custom, - role: "menuitemradio", - onClick: () => { - onChange(VIEWS.custom); - onClose(); - }, - suffix: value === VIEWS.custom ? checkIcon : undefined - }, customItem.label))); - }); + (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(target, isReverse); + }, [initialPosition, clientId]); + return ref; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-is-hovered.js /** * WordPress dependencies */ + /** * Internal dependencies */ -function useSpacingSizes() { - const spacingSizes = [{ - name: 0, - slug: '0', - size: 0 - }]; - const [settingsSizes] = use_settings_useSettings('spacing.spacingSizes'); - if (settingsSizes) { - spacingSizes.push(...settingsSizes); - } - if (spacingSizes.length > 8) { - spacingSizes.unshift({ - name: (0,external_wp_i18n_namespaceObject.__)('Default'), - slug: 'default', - size: undefined - }); +function listener(event) { + if (event.defaultPrevented) { + return; } - return spacingSizes; + const action = event.type === 'mouseover' ? 'add' : 'remove'; + event.preventDefault(); + event.currentTarget.classList[action]('is-hovered'); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/index.js - /** - * WordPress dependencies + * Adds `is-hovered` class when the block is hovered and in navigation or + * outline mode. */ +function useIsHovered() { + const isEnabled = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return getSettings().outlineMode; + }, []); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (isEnabled) { + node.addEventListener('mouseout', listener); + node.addEventListener('mouseover', listener); + return () => { + node.removeEventListener('mouseout', listener); + node.removeEventListener('mouseover', listener); + // Remove class in case it lingers. + node.classList.remove('is-hovered'); + }; + } + }, [isEnabled]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-class-names.js +/** + * External dependencies + */ /** - * Internal dependencies + * WordPress dependencies */ +/** + * Internal dependencies + */ - -function SpacingSizesControl({ - inputProps, - label: labelProp, - minimumCustomValue = 0, - onChange, - onMouseOut, - onMouseOver, - showSideInLabel = true, - sides = ALL_SIDES, - useSelect, - values -}) { - const spacingSizes = useSpacingSizes(); - const inputValues = values || DEFAULT_VALUES; - const hasOneSide = sides?.length === 1; - const hasOnlyAxialSides = sides?.includes('horizontal') && sides?.includes('vertical') && sides?.length === 2; - const [view, setView] = (0,external_wp_element_namespaceObject.useState)(getInitialView(inputValues, sides)); - const handleOnChange = nextValue => { - const newValues = { - ...values, - ...nextValue - }; - onChange(newValues); - }; - const inputControlProps = { - ...inputProps, - minimumCustomValue, - onChange: handleOnChange, - onMouseOut, - onMouseOver, - sides, - spacingSizes, - type: labelProp, - useSelect, - values: inputValues - }; - const renderControls = () => { - if (view === VIEWS.axial) { - return (0,external_React_.createElement)(AxialInputControls, { - ...inputControlProps - }); - } - if (view === VIEWS.custom) { - return (0,external_React_.createElement)(SeparatedInputControls, { - ...inputControlProps - }); - } - return (0,external_React_.createElement)(SingleInputControl, { - side: view, - ...inputControlProps, - showSideInLabel: showSideInLabel +/** + * Returns the class names used for the different states of the block. + * + * @param {string} clientId The block client ID. + * + * @return {string} The class names. + */ +function useBlockClassNames(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + isBlockBeingDragged, + isBlockHighlighted, + isBlockSelected, + isBlockMultiSelected, + getBlockName, + getSettings, + hasSelectedInnerBlock, + isTyping, + __unstableIsFullySelected, + __unstableSelectionHasUnmergeableBlock + } = select(store); + const { + outlineMode + } = getSettings(); + const isDragging = isBlockBeingDragged(clientId); + const isSelected = isBlockSelected(clientId); + const name = getBlockName(clientId); + const checkDeep = true; + // "ancestor" is the more appropriate label due to "deep" check. + const isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep); + const isMultiSelected = isBlockMultiSelected(clientId); + return classnames_default()({ + 'is-selected': isSelected, + 'is-highlighted': isBlockHighlighted(clientId), + 'is-multi-selected': isMultiSelected, + 'is-partially-selected': isMultiSelected && !__unstableIsFullySelected() && !__unstableSelectionHasUnmergeableBlock(), + 'is-reusable': (0,external_wp_blocks_namespaceObject.isReusableBlock)((0,external_wp_blocks_namespaceObject.getBlockType)(name)), + 'is-dragging': isDragging, + 'has-child-selected': isAncestorOfSelectedBlock, + 'remove-outline': isSelected && outlineMode && isTyping() }); - }; - const sideLabel = ALL_SIDES.includes(view) && showSideInLabel ? LABELS[view] : ''; - const label = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 2. Type of spacing being modified (Padding, margin, etc). 1: The side of the block being modified (top, bottom, left etc.). - (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), labelProp, sideLabel).trim(); - const dropdownLabelText = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: The current spacing property e.g. "Padding", "Margin". - (0,external_wp_i18n_namespaceObject._x)('%s options', 'Button label to reveal side configuration options'), labelProp); - return (0,external_React_.createElement)("fieldset", { - className: "spacing-sizes-control" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - className: "spacing-sizes-control__header" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend", - className: "spacing-sizes-control__label" - }, label), !hasOneSide && !hasOnlyAxialSides && (0,external_React_.createElement)(SidesDropdown, { - label: dropdownLabelText, - onChange: setView, - sides: sides, - value: view - })), renderControls()); + }, [clientId]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/height-control/index.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-default-class-name.js /** * WordPress dependencies */ - /** * Internal dependencies */ -const RANGE_CONTROL_CUSTOM_SETTINGS = { - px: { - max: 1000, - step: 1 - }, - '%': { - max: 100, - step: 1 - }, - vw: { - max: 100, - step: 1 - }, - vh: { - max: 100, - step: 1 - }, - em: { - max: 50, - step: 0.1 - }, - rem: { - max: 50, - step: 0.1 - }, - svw: { - max: 100, - step: 1 - }, - lvw: { - max: 100, - step: 1 - }, - dvw: { - max: 100, - step: 1 - }, - svh: { - max: 100, - step: 1 - }, - lvh: { - max: 100, - step: 1 - }, - dvh: { - max: 100, - step: 1 - }, - vi: { - max: 100, - step: 1 - }, - svi: { - max: 100, - step: 1 - }, - lvi: { - max: 100, - step: 1 - }, - dvi: { - max: 100, - step: 1 - }, - vb: { - max: 100, - step: 1 - }, - svb: { - max: 100, - step: 1 - }, - lvb: { - max: 100, - step: 1 - }, - dvb: { - max: 100, - step: 1 - }, - vmin: { - max: 100, - step: 1 - }, - svmin: { - max: 100, - step: 1 - }, - lvmin: { - max: 100, - step: 1 - }, - dvmin: { - max: 100, - step: 1 - }, - vmax: { - max: 100, - step: 1 - }, - svmax: { - max: 100, - step: 1 - }, - lvmax: { - max: 100, - step: 1 - }, - dvmax: { - max: 100, - step: 1 - } -}; /** - * HeightControl renders a linked unit control and range control for adjusting the height of a block. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/height-control/README.md + * Returns the default class name if the block is a light block and it supports + * `className`. * - * @param {Object} props - * @param {?string} props.label A label for the control. - * @param {( value: string ) => void } props.onChange Called when the height changes. - * @param {string} props.value The current height value. + * @param {string} clientId The block client ID. * - * @return {Component} The component to be rendered. + * @return {string} The class name, e.g. `wp-block-paragraph`. */ -function HeightControl({ - label = (0,external_wp_i18n_namespaceObject.__)('Height'), - onChange, - value -}) { - var _RANGE_CONTROL_CUSTOM, _RANGE_CONTROL_CUSTOM2; - const customRangeValue = parseFloat(value); - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vh', 'vw'] - }); - const selectedUnit = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value), [value])[1] || units[0]?.value || 'px'; - const handleSliderChange = next => { - onChange([next, selectedUnit].join('')); - }; - const handleUnitChange = newUnit => { - // Attempt to smooth over differences between currentUnit and newUnit. - // This should slightly improve the experience of switching between unit types. - const [currentValue, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); - if (['em', 'rem'].includes(newUnit) && currentUnit === 'px') { - // Convert pixel value to an approximate of the new unit, assuming a root size of 16px. - onChange((currentValue / 16).toFixed(2) + newUnit); - } else if (['em', 'rem'].includes(currentUnit) && newUnit === 'px') { - // Convert to pixel value assuming a root size of 16px. - onChange(Math.round(currentValue * 16) + newUnit); - } else if (['%', 'vw', 'svw', 'lvw', 'dvw', 'vh', 'svh', 'lvh', 'dvh', 'vi', 'svi', 'lvi', 'dvi', 'vb', 'svb', 'lvb', 'dvb', 'vmin', 'svmin', 'lvmin', 'dvmin', 'vmax', 'svmax', 'lvmax', 'dvmax'].includes(newUnit) && currentValue > 100) { - // When converting to `%` or viewport-relative units, cap the new value at 100. - onChange(100 + newUnit); +function useBlockDefaultClassName(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const name = select(store).getBlockName(clientId); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + const hasLightBlockWrapper = blockType?.apiVersion > 1; + if (!hasLightBlockWrapper) { + return; } - }; - return (0,external_React_.createElement)("fieldset", { - className: "block-editor-height-control" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { - as: "legend" - }, label), (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - isBlock: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - value: value, - units: units, - onChange: onChange, - onUnitChange: handleUnitChange, - min: 0, - size: '__unstable-large', - label: label, - hideLabelFromVision: true - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - isBlock: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { - marginX: 2, - marginBottom: 0 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - value: customRangeValue, - min: 0, - max: (_RANGE_CONTROL_CUSTOM = RANGE_CONTROL_CUSTOM_SETTINGS[selectedUnit]?.max) !== null && _RANGE_CONTROL_CUSTOM !== void 0 ? _RANGE_CONTROL_CUSTOM : 100, - step: (_RANGE_CONTROL_CUSTOM2 = RANGE_CONTROL_CUSTOM_SETTINGS[selectedUnit]?.step) !== null && _RANGE_CONTROL_CUSTOM2 !== void 0 ? _RANGE_CONTROL_CUSTOM2 : 0.1, - withInputField: false, - onChange: handleSliderChange, - __nextHasNoMarginBottom: true, - label: label, - hideLabelFromVision: true - }))))); + return (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(name); + }, [clientId]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/child-layout-control/index.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-custom-class-name.js /** * WordPress dependencies */ -function helpText(selfStretch, parentLayout) { - const { - orientation = 'horizontal' - } = parentLayout; - if (selfStretch === 'fill') { - return (0,external_wp_i18n_namespaceObject.__)('Stretch to fill available space.'); - } - if (selfStretch === 'fixed' && orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.__)('Specify a fixed width.'); - } else if (selfStretch === 'fixed') { - return (0,external_wp_i18n_namespaceObject.__)('Specify a fixed height.'); - } - return (0,external_wp_i18n_namespaceObject.__)('Fit contents.'); -} +/** + * Internal dependencies + */ + /** - * Form to edit the child layout value. + * Returns the custom class name if the block is a light block. * - * @param {Object} props Props. - * @param {Object} props.value The child layout value. - * @param {Function} props.onChange Function to update the child layout value. - * @param {Object} props.parentLayout The parent layout value. + * @param {string} clientId The block client ID. * - * @return {Element} child layout edit element. + * @return {string} The custom class name. */ -function ChildLayoutControl({ - value: childLayout = {}, - onChange, - parentLayout -}) { - const { - selfStretch, - flexSize - } = childLayout; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (selfStretch === 'fixed' && !flexSize) { - onChange({ - ...childLayout, - selfStretch: 'fit' - }); +function useBlockCustomClassName(clientId) { + // It's good for this to be a separate selector because it will be executed + // on every attribute change, while the other selectors are not re-evaluated + // as much. + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + getBlockAttributes + } = select(store); + const attributes = getBlockAttributes(clientId); + if (!attributes?.className) { + return; } - }, []); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - __nextHasNoMarginBottom: true, - size: '__unstable-large', - label: childLayoutOrientation(parentLayout), - value: selfStretch || 'fit', - help: helpText(selfStretch, parentLayout), - onChange: value => { - const newFlexSize = value !== 'fixed' ? null : flexSize; - onChange({ - ...childLayout, - selfStretch: value, - flexSize: newFlexSize - }); - }, - isBlock: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'fit', - value: 'fit', - label: (0,external_wp_i18n_namespaceObject.__)('Fit') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'fill', - value: 'fill', - label: (0,external_wp_i18n_namespaceObject.__)('Fill') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { - key: 'fixed', - value: 'fixed', - label: (0,external_wp_i18n_namespaceObject.__)('Fixed') - })), selfStretch === 'fixed' && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - size: '__unstable-large', - onChange: value => { - onChange({ - ...childLayout, - flexSize: value - }); - }, - value: flexSize - })); -} -function childLayoutOrientation(parentLayout) { - const { - orientation = 'horizontal' - } = parentLayout; - return orientation === 'horizontal' ? (0,external_wp_i18n_namespaceObject.__)('Width') : (0,external_wp_i18n_namespaceObject.__)('Height'); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(getBlockName(clientId)); + const hasLightBlockWrapper = blockType?.apiVersion > 1; + if (!hasLightBlockWrapper) { + return; + } + return attributes.className; + }, [clientId]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/dimensions-tool/aspect-ratio-tool.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js /** - * WordPress dependencies + * External dependencies */ - -/** - * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps - */ - /** - * @type {SelectControlProps[]} + * WordPress dependencies */ -const DEFAULT_ASPECT_RATIO_OPTIONS = [{ - label: (0,external_wp_i18n_namespaceObject._x)('Original', 'Aspect ratio option for dimensions control'), - value: 'auto' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Square - 1:1', 'Aspect ratio option for dimensions control'), - value: '1' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Standard - 4:3', 'Aspect ratio option for dimensions control'), - value: '4/3' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Portrait - 3:4', 'Aspect ratio option for dimensions control'), - value: '3/4' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Classic - 3:2', 'Aspect ratio option for dimensions control'), - value: '3/2' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Classic Portrait - 2:3', 'Aspect ratio option for dimensions control'), - value: '2/3' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Wide - 16:9', 'Aspect ratio option for dimensions control'), - value: '16/9' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Tall - 9:16', 'Aspect ratio option for dimensions control'), - value: '9/16' -}, { - label: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Aspect ratio option for dimensions control'), - value: 'custom', - disabled: true, - hidden: true -}]; -/** - * @callback AspectRatioToolPropsOnChange - * @param {string} [value] New aspect ratio value. - * @return {void} No return. - */ /** - * @typedef {Object} AspectRatioToolProps - * @property {string} [panelId] ID of the panel this tool is associated with. - * @property {string} [value] Current aspect ratio value. - * @property {AspectRatioToolPropsOnChange} [onChange] Callback to update the aspect ratio value. - * @property {SelectControlProps[]} [options] Aspect ratio options. - * @property {string} [defaultValue] Default aspect ratio value. - * @property {boolean} [isShownByDefault] Whether the tool is shown by default. + * Internal dependencies */ -function AspectRatioTool({ - panelId, - value, - onChange = () => {}, - options = DEFAULT_ASPECT_RATIO_OPTIONS, - defaultValue = DEFAULT_ASPECT_RATIO_OPTIONS[0].value, - hasValue, - isShownByDefault = true -}) { - // Match the CSS default so if the value is used directly in CSS it will look correct in the control. - const displayValue = value !== null && value !== void 0 ? value : 'auto'; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasValue ? hasValue : () => displayValue !== defaultValue, - label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'), - onDeselect: () => onChange(undefined), - isShownByDefault: isShownByDefault, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SelectControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'), - value: displayValue, - options: options, - onChange: onChange, - size: '__unstable-large', - __nextHasNoMarginBottom: true - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/dimensions-panel.js /** - * External dependencies + * Returns the class names used for block moving mode. + * + * @param {string} clientId The block client ID to insert above. + * + * @return {string} The class names. */ +function useBlockMovingModeClassNames(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + hasBlockMovingClientId, + canInsertBlockType, + getBlockName, + getBlockRootClientId, + isBlockSelected + } = select(store); + // The classes are only relevant for the selected block. Avoid + // re-rendering all blocks! + if (!isBlockSelected(clientId)) { + return; + } + const movingClientId = hasBlockMovingClientId(); + if (!movingClientId) { + return; + } + return classnames_default()('is-block-moving-mode', { + 'can-insert-moving-block': canInsertBlockType(getBlockName(movingClientId), getBlockRootClientId(clientId)) + }); + }, [clientId]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-focus-handler.js /** * WordPress dependencies */ - - /** * Internal dependencies */ - - - - -const AXIAL_SIDES = ['horizontal', 'vertical']; -function useHasDimensionsPanel(settings) { - const hasContentSize = useHasContentSize(settings); - const hasWideSize = useHasWideSize(settings); - const hasPadding = useHasPadding(settings); - const hasMargin = useHasMargin(settings); - const hasGap = useHasGap(settings); - const hasMinHeight = useHasMinHeight(settings); - const hasAspectRatio = useHasAspectRatio(settings); - const hasChildLayout = useHasChildLayout(settings); - return external_wp_element_namespaceObject.Platform.OS === 'web' && (hasContentSize || hasWideSize || hasPadding || hasMargin || hasGap || hasMinHeight || hasAspectRatio || hasChildLayout); -} -function useHasContentSize(settings) { - return settings?.layout?.contentSize; -} -function useHasWideSize(settings) { - return settings?.layout?.wideSize; -} -function useHasPadding(settings) { - return settings?.spacing?.padding; -} -function useHasMargin(settings) { - return settings?.spacing?.margin; -} -function useHasGap(settings) { - return settings?.spacing?.blockGap; -} -function useHasMinHeight(settings) { - return settings?.dimensions?.minHeight; -} -function useHasAspectRatio(settings) { - return settings?.dimensions?.aspectRatio; -} -function useHasChildLayout(settings) { - var _settings$parentLayou; +/** + * Selects the block if it receives focus. + * + * @param {string} clientId Block client ID. + */ +function useFocusHandler(clientId) { const { - type: parentLayoutType = 'default', - default: { - type: defaultParentLayoutType = 'default' - } = {}, - allowSizingOnChildren = false - } = (_settings$parentLayou = settings?.parentLayout) !== null && _settings$parentLayou !== void 0 ? _settings$parentLayou : {}; - const support = (defaultParentLayoutType === 'flex' || parentLayoutType === 'flex') && allowSizingOnChildren; - return !!settings?.layout && support; -} -function useHasSpacingPresets(settings) { - var _ref, _ref2; + isBlockSelected + } = (0,external_wp_data_namespaceObject.useSelect)(store); const { - custom, - theme, - default: defaultPresets - } = settings?.spacing?.spacingSizes || {}; - const presets = (_ref = (_ref2 = custom !== null && custom !== void 0 ? custom : theme) !== null && _ref2 !== void 0 ? _ref2 : defaultPresets) !== null && _ref !== void 0 ? _ref : []; - return presets.length > 0; -} -function filterValuesBySides(values, sides) { - // If no custom side configuration, all sides are opted into by default. - // Without any values, we have nothing to filter either. - if (!sides || !values) { - return values; - } + selectBlock, + selectionChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + /** + * Marks the block as selected when focused and not already + * selected. This specifically handles the case where block does not + * set focus on its own (via `setFocus`), typically if there is no + * focusable input in the block. + * + * @param {FocusEvent} event Focus event. + */ + function onFocus(event) { + // When the whole editor is editable, let writing flow handle + // selection. + if (node.parentElement.closest('[contenteditable="true"]')) { + return; + } - // Only include sides opted into within filtered values. - const filteredValues = {}; - sides.forEach(side => { - if (side === 'vertical') { - filteredValues.top = values.top; - filteredValues.bottom = values.bottom; - } - if (side === 'horizontal') { - filteredValues.left = values.left; - filteredValues.right = values.right; + // Check synchronously because a non-selected block might be + // getting data through `useSelect` asynchronously. + if (isBlockSelected(clientId)) { + // Potentially change selection away from rich text. + if (!event.target.isContentEditable) { + selectionChange(clientId); + } + return; + } + + // If an inner block is focussed, that block is resposible for + // setting the selected block. + if (!isInsideRootBlock(node, event.target)) { + return; + } + selectBlock(clientId); } - filteredValues[side] = values?.[side]; - }); - return filteredValues; -} -function splitStyleValue(value) { - // Check for shorthand value (a string value). - if (value && typeof value === 'string') { - // Convert to value for individual sides for BoxControl. - return { - top: value, - right: value, - bottom: value, - left: value - }; - } - return value; -} -function splitGapValue(value) { - // Check for shorthand value (a string value). - if (value && typeof value === 'string') { - // If the value is a string, treat it as a single side (top) for the spacing controls. - return { - top: value - }; - } - if (value) { - return { - ...value, - right: value?.left, - bottom: value?.top + node.addEventListener('focusin', onFocus); + return () => { + node.removeEventListener('focusin', onFocus); }; - } - return value; -} -function DimensionsToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject.__)('Dimensions'), - resetAll: resetAll, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); + }, [isBlockSelected, selectBlock]); } -const dimensions_panel_DEFAULT_CONTROLS = { - contentSize: true, - wideSize: true, - padding: true, - margin: true, - blockGap: true, - minHeight: true, - aspectRatio: true, - childLayout: true -}; -function DimensionsPanel({ - as: Wrapper = DimensionsToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = dimensions_panel_DEFAULT_CONTROLS, - onVisualize = () => {}, - // Special case because the layout controls are not part of the dimensions panel - // in global styles but not in block inspector. - includeLayoutControls = false -}) { - var _settings$parentLayou2, _defaultControls$cont, _defaultControls$wide, _defaultControls$padd, _defaultControls$marg, _defaultControls$bloc, _defaultControls$minH, _defaultControls$aspe, _defaultControls$chil; - const { - dimensions, - spacing - } = settings; - const decodeValue = rawValue => { - if (rawValue && typeof rawValue === 'object') { - return Object.keys(rawValue).reduce((acc, key) => { - acc[key] = getValueFromVariable({ - settings: { - dimensions, - spacing - } - }, '', rawValue[key]); - return acc; - }, {}); - } - return getValueFromVariable({ - settings: { - dimensions, - spacing - } - }, '', rawValue); - }; - const showSpacingPresetsControl = useHasSpacingPresets(settings); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: settings?.spacing?.units || ['%', 'px', 'em', 'rem', 'vw'] - }); - // Content Size - const showContentSizeControl = useHasContentSize(settings) && includeLayoutControls; - const contentSizeValue = decodeValue(inheritedValue?.layout?.contentSize); - const setContentSizeValue = newValue => { - onChange(setImmutably(value, ['layout', 'contentSize'], newValue || undefined)); - }; - const hasUserSetContentSizeValue = () => !!value?.layout?.contentSize; - const resetContentSizeValue = () => setContentSizeValue(undefined); +;// CONCATENATED MODULE: external ["wp","keycodes"] +var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +/** + * WordPress dependencies + */ - // Wide Size - const showWideSizeControl = useHasWideSize(settings) && includeLayoutControls; - const wideSizeValue = decodeValue(inheritedValue?.layout?.wideSize); - const setWideSizeValue = newValue => { - onChange(setImmutably(value, ['layout', 'wideSize'], newValue || undefined)); - }; - const hasUserSetWideSizeValue = () => !!value?.layout?.wideSize; - const resetWideSizeValue = () => setWideSizeValue(undefined); - // Padding - const showPaddingControl = useHasPadding(settings); - const rawPadding = decodeValue(inheritedValue?.spacing?.padding); - const paddingValues = splitStyleValue(rawPadding); - const paddingSides = Array.isArray(settings?.spacing?.padding) ? settings?.spacing?.padding : settings?.spacing?.padding?.sides; - const isAxialPadding = paddingSides && paddingSides.some(side => AXIAL_SIDES.includes(side)); - const setPaddingValues = newPaddingValues => { - const padding = filterValuesBySides(newPaddingValues, paddingSides); - onChange(setImmutably(value, ['spacing', 'padding'], padding)); - }; - const hasPaddingValue = () => !!value?.spacing?.padding && Object.keys(value?.spacing?.padding).length; - const resetPaddingValue = () => setPaddingValues(undefined); - const onMouseOverPadding = () => onVisualize('padding'); - // Margin - const showMarginControl = useHasMargin(settings); - const rawMargin = decodeValue(inheritedValue?.spacing?.margin); - const marginValues = splitStyleValue(rawMargin); - const marginSides = Array.isArray(settings?.spacing?.margin) ? settings?.spacing?.margin : settings?.spacing?.margin?.sides; - const isAxialMargin = marginSides && marginSides.some(side => AXIAL_SIDES.includes(side)); - const setMarginValues = newMarginValues => { - const margin = filterValuesBySides(newMarginValues, marginSides); - onChange(setImmutably(value, ['spacing', 'margin'], margin)); - }; - const hasMarginValue = () => !!value?.spacing?.margin && Object.keys(value?.spacing?.margin).length; - const resetMarginValue = () => setMarginValues(undefined); - const onMouseOverMargin = () => onVisualize('margin'); - // Block Gap - const showGapControl = useHasGap(settings); - const gapValue = decodeValue(inheritedValue?.spacing?.blockGap); - const gapValues = splitGapValue(gapValue); - const gapSides = Array.isArray(settings?.spacing?.blockGap) ? settings?.spacing?.blockGap : settings?.spacing?.blockGap?.sides; - const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side)); - const setGapValue = newGapValue => { - onChange(setImmutably(value, ['spacing', 'blockGap'], newGapValue)); - }; - const setGapValues = nextBoxGapValue => { - if (!nextBoxGapValue) { - setGapValue(null); - } - // If axial gap is not enabled, treat the 'top' value as the shorthand gap value. - if (!isAxialGap && nextBoxGapValue?.hasOwnProperty('top')) { - setGapValue(nextBoxGapValue.top); - } else { - setGapValue({ - top: nextBoxGapValue?.top, - left: nextBoxGapValue?.left - }); - } - }; - const resetGapValue = () => setGapValue(undefined); - const hasGapValue = () => !!value?.spacing?.blockGap; - // Min Height - const showMinHeightControl = useHasMinHeight(settings); - const minHeightValue = decodeValue(inheritedValue?.dimensions?.minHeight); - const setMinHeightValue = newValue => { - const tempValue = setImmutably(value, ['dimensions', 'minHeight'], newValue); - // Apply min-height, while removing any applied aspect ratio. - onChange(setImmutably(tempValue, ['dimensions', 'aspectRatio'], undefined)); - }; - const resetMinHeightValue = () => { - setMinHeightValue(undefined); - }; - const hasMinHeightValue = () => !!value?.dimensions?.minHeight; +/** + * Internal dependencies + */ - // Aspect Ratio - const showAspectRatioControl = useHasAspectRatio(settings); - const aspectRatioValue = decodeValue(inheritedValue?.dimensions?.aspectRatio); - const setAspectRatioValue = newValue => { - const tempValue = setImmutably(value, ['dimensions', 'aspectRatio'], newValue); - // Apply aspect-ratio, while removing any applied min-height. - onChange(setImmutably(tempValue, ['dimensions', 'minHeight'], undefined)); - }; - const hasAspectRatioValue = () => !!value?.dimensions?.aspectRatio; - // Child Layout - const showChildLayoutControl = useHasChildLayout(settings); - const childLayout = inheritedValue?.layout; +/** + * Adds block behaviour: + * - Removes the block on BACKSPACE. + * - Inserts a default block on ENTER. + * - Disables dragging of block contents. + * + * @param {string} clientId Block client ID. + */ +function useEventHandlers(clientId) { + const isSelected = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isBlockSelected(clientId), [clientId]); const { - orientation = 'horizontal' - } = (_settings$parentLayou2 = settings?.parentLayout) !== null && _settings$parentLayou2 !== void 0 ? _settings$parentLayou2 : {}; - const childLayoutOrientationLabel = orientation === 'horizontal' ? (0,external_wp_i18n_namespaceObject.__)('Width') : (0,external_wp_i18n_namespaceObject.__)('Height'); - const setChildLayout = newChildLayout => { - onChange({ - ...value, - layout: { - ...value?.layout, - ...newChildLayout - } - }); - }; - const resetChildLayoutValue = () => { - setChildLayout({ - selfStretch: undefined, - flexSize: undefined - }); - }; - const hasChildLayoutValue = () => !!value?.layout; - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - layout: utils_cleanEmptyObject({ - ...previousValue?.layout, - contentSize: undefined, - wideSize: undefined, - selfStretch: undefined, - flexSize: undefined - }), - spacing: { - ...previousValue?.spacing, - padding: undefined, - margin: undefined, - blockGap: undefined - }, - dimensions: { - ...previousValue?.dimensions, - minHeight: undefined, - aspectRatio: undefined - } - }; - }, []); - const onMouseLeaveControls = () => onVisualize(false); - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, (showContentSizeControl || showWideSizeControl) && (0,external_React_.createElement)("span", { - className: "span-columns" - }, (0,external_wp_i18n_namespaceObject.__)('Set the width of the main content area.')), showContentSizeControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Content size'), - hasValue: hasUserSetContentSizeValue, - onDeselect: resetContentSizeValue, - isShownByDefault: (_defaultControls$cont = defaultControls.contentSize) !== null && _defaultControls$cont !== void 0 ? _defaultControls$cont : dimensions_panel_DEFAULT_CONTROLS.contentSize, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - alignment: "flex-end", - justify: "flex-start" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Content'), - labelPosition: "top", - __unstableInputWidth: "80px", - value: contentSizeValue || '', - onChange: nextContentSize => { - setContentSizeValue(nextContentSize); - }, - units: units - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_React_.createElement)(build_module_icon, { - icon: position_center - })))), showWideSizeControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - className: "single-column", - label: (0,external_wp_i18n_namespaceObject.__)('Wide size'), - hasValue: hasUserSetWideSizeValue, - onDeselect: resetWideSizeValue, - isShownByDefault: (_defaultControls$wide = defaultControls.wideSize) !== null && _defaultControls$wide !== void 0 ? _defaultControls$wide : dimensions_panel_DEFAULT_CONTROLS.wideSize, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - alignment: "flex-end", - justify: "flex-start" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Wide'), - labelPosition: "top", - __unstableInputWidth: "80px", - value: wideSizeValue || '', - onChange: nextWideSize => { - setWideSizeValue(nextWideSize); - }, - units: units - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_React_.createElement)(build_module_icon, { - icon: stretch_wide - })))), showPaddingControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasPaddingValue, - label: (0,external_wp_i18n_namespaceObject.__)('Padding'), - onDeselect: resetPaddingValue, - isShownByDefault: (_defaultControls$padd = defaultControls.padding) !== null && _defaultControls$padd !== void 0 ? _defaultControls$padd : dimensions_panel_DEFAULT_CONTROLS.padding, - className: classnames_default()({ - 'tools-panel-item-spacing': showSpacingPresetsControl - }), - panelId: panelId - }, !showSpacingPresetsControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { - values: paddingValues, - onChange: setPaddingValues, - label: (0,external_wp_i18n_namespaceObject.__)('Padding'), - sides: paddingSides, - units: units, - allowReset: false, - splitOnAxis: isAxialPadding, - onMouseOver: onMouseOverPadding, - onMouseOut: onMouseLeaveControls - }), showSpacingPresetsControl && (0,external_React_.createElement)(SpacingSizesControl, { - values: paddingValues, - onChange: setPaddingValues, - label: (0,external_wp_i18n_namespaceObject.__)('Padding'), - sides: paddingSides, - units: units, - allowReset: false, - onMouseOver: onMouseOverPadding, - onMouseOut: onMouseLeaveControls - })), showMarginControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasMarginValue, - label: (0,external_wp_i18n_namespaceObject.__)('Margin'), - onDeselect: resetMarginValue, - isShownByDefault: (_defaultControls$marg = defaultControls.margin) !== null && _defaultControls$marg !== void 0 ? _defaultControls$marg : dimensions_panel_DEFAULT_CONTROLS.margin, - className: classnames_default()({ - 'tools-panel-item-spacing': showSpacingPresetsControl - }), - panelId: panelId - }, !showSpacingPresetsControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { - values: marginValues, - onChange: setMarginValues, - label: (0,external_wp_i18n_namespaceObject.__)('Margin'), - sides: marginSides, - units: units, - allowReset: false, - splitOnAxis: isAxialMargin, - onMouseOver: onMouseOverMargin, - onMouseOut: onMouseLeaveControls - }), showSpacingPresetsControl && (0,external_React_.createElement)(SpacingSizesControl, { - values: marginValues, - onChange: setMarginValues, - label: (0,external_wp_i18n_namespaceObject.__)('Margin'), - sides: marginSides, - units: units, - allowReset: false, - onMouseOver: onMouseOverMargin, - onMouseOut: onMouseLeaveControls - })), showGapControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasGapValue, - label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), - onDeselect: resetGapValue, - isShownByDefault: (_defaultControls$bloc = defaultControls.blockGap) !== null && _defaultControls$bloc !== void 0 ? _defaultControls$bloc : dimensions_panel_DEFAULT_CONTROLS.blockGap, - className: classnames_default()({ - 'tools-panel-item-spacing': showSpacingPresetsControl - }), - panelId: panelId - }, !showSpacingPresetsControl && (isAxialGap ? (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), - min: 0, - onChange: setGapValues, - units: units, - sides: gapSides, - values: gapValues, - allowReset: false, - splitOnAxis: isAxialGap - }) : (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), - __unstableInputWidth: "80px", - min: 0, - onChange: setGapValue, - units: units, - value: gapValue - })), showSpacingPresetsControl && (0,external_React_.createElement)(SpacingSizesControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), - min: 0, - onChange: setGapValues, - showSideInLabel: false, - sides: isAxialGap ? gapSides : ['top'] // Use 'top' as the shorthand property in non-axial configurations. - , - values: gapValues, - allowReset: false - })), showMinHeightControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: hasMinHeightValue, - label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'), - onDeselect: resetMinHeightValue, - isShownByDefault: (_defaultControls$minH = defaultControls.minHeight) !== null && _defaultControls$minH !== void 0 ? _defaultControls$minH : dimensions_panel_DEFAULT_CONTROLS.minHeight, - panelId: panelId - }, (0,external_React_.createElement)(HeightControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'), - value: minHeightValue, - onChange: setMinHeightValue - })), showAspectRatioControl && (0,external_React_.createElement)(AspectRatioTool, { - hasValue: hasAspectRatioValue, - value: aspectRatioValue, - onChange: setAspectRatioValue, - panelId: panelId, - isShownByDefault: (_defaultControls$aspe = defaultControls.aspectRatio) !== null && _defaultControls$aspe !== void 0 ? _defaultControls$aspe : dimensions_panel_DEFAULT_CONTROLS.aspectRatio - }), showChildLayoutControl && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - as: external_wp_components_namespaceObject.__experimentalToolsPanelItem, - spacing: 2, - hasValue: hasChildLayoutValue, - label: childLayoutOrientationLabel, - onDeselect: resetChildLayoutValue, - isShownByDefault: (_defaultControls$chil = defaultControls.childLayout) !== null && _defaultControls$chil !== void 0 ? _defaultControls$chil : dimensions_panel_DEFAULT_CONTROLS.childLayout, - panelId: panelId - }, (0,external_React_.createElement)(ChildLayoutControl, { - value: childLayout, - onChange: setChildLayout, - parentLayout: settings?.parentLayout - }))); + getBlockRootClientId, + getBlockIndex + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + insertDefaultBlock, + removeBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (!isSelected) { + return; + } + + /** + * Interprets keydown event intent to remove or insert after block if + * key event occurs on wrapper node. This can occur when the block has + * no text fields of its own, particularly after initial insertion, to + * allow for easy deletion and continuous writing flow to add additional + * content. + * + * @param {KeyboardEvent} event Keydown event. + */ + function onKeyDown(event) { + const { + keyCode, + target + } = event; + if (keyCode !== external_wp_keycodes_namespaceObject.ENTER && keyCode !== external_wp_keycodes_namespaceObject.BACKSPACE && keyCode !== external_wp_keycodes_namespaceObject.DELETE) { + return; + } + if (target !== node || (0,external_wp_dom_namespaceObject.isTextField)(target)) { + return; + } + event.preventDefault(); + if (keyCode === external_wp_keycodes_namespaceObject.ENTER) { + insertDefaultBlock({}, getBlockRootClientId(clientId), getBlockIndex(clientId) + 1); + } else { + removeBlock(clientId); + } + } + + /** + * Prevents default dragging behavior within a block. To do: we must + * handle this in the future and clean up the drag target. + * + * @param {DragEvent} event Drag event. + */ + function onDragStart(event) { + event.preventDefault(); + } + node.addEventListener('keydown', onKeyDown); + node.addEventListener('dragstart', onDragStart); + return () => { + node.removeEventListener('keydown', onKeyDown); + node.removeEventListener('dragstart', onDragStart); + }; + }, [clientId, isSelected, getBlockRootClientId, getBlockIndex, insertDefaultBlock, removeBlock]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/use-popover-scroll.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-nav-mode-exit.js /** * WordPress dependencies */ + /** - * Allow scrolling "through" popovers over the canvas. This is only called for - * as long as the pointer is over a popover. Do not use React events because it - * will bubble through portals. + * Internal dependencies + */ + + +/** + * Allows navigation mode to be exited by clicking in the selected block. * - * @param {Object} scrollableRef + * @param {string} clientId Block client ID. */ -function usePopoverScroll(scrollableRef) { +function useNavModeExit(clientId) { + const { + isNavigationMode, + isBlockSelected + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + setNavigationMode, + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (!scrollableRef) { - return; - } - function onWheel(event) { - const { - deltaX, - deltaY - } = event; - scrollableRef.current.scrollBy(deltaX, deltaY); + function onMouseDown(event) { + // Don't select a block if it's already handled by a child + // block. + if (isNavigationMode() && !event.defaultPrevented) { + // Prevent focus from moving to the block. + event.preventDefault(); + + // When clicking on a selected block, exit navigation mode. + if (isBlockSelected(clientId)) { + setNavigationMode(false); + } else { + selectBlock(clientId); + } + } } - // Tell the browser that we do not call event.preventDefault - // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners - const options = { - passive: true - }; - node.addEventListener('wheel', onWheel, options); + node.addEventListener('mousedown', onMouseDown); return () => { - node.removeEventListener('wheel', onWheel, options); + node.removeEventListener('mousedown', onMouseDown); }; - }, [scrollableRef]); + }, [clientId, isNavigationMode, isBlockSelected, setNavigationMode]); } -/* harmony default export */ var use_popover_scroll = (usePopoverScroll); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/block-refs-provider.js /** - * External dependencies + * WordPress dependencies */ +const BlockRefs = (0,external_wp_element_namespaceObject.createContext)({ + refs: new Map(), + callbacks: new Map() +}); +function BlockRefsProvider({ + children +}) { + const value = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + refs: new Map(), + callbacks: new Map() + }), []); + return (0,external_wp_element_namespaceObject.createElement)(BlockRefs.Provider, { + value: value + }, children); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-block-refs.js /** * WordPress dependencies */ - /** * Internal dependencies */ -const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER; -function BlockPopover({ - clientId, - bottomClientId, - children, - __unstableRefreshSize, - __unstableCoverTarget = false, - __unstablePopoverSlot, - __unstableContentRef, - shift = true, - ...props -}, ref) { - const selectedElement = useBlockElement(clientId); - const lastSelectedElement = useBlockElement(bottomClientId !== null && bottomClientId !== void 0 ? bottomClientId : clientId); - const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, use_popover_scroll(__unstableContentRef)]); - const [popoverDimensionsRecomputeCounter, forceRecomputePopoverDimensions] = (0,external_wp_element_namespaceObject.useReducer)( - // Module is there to make sure that the counter doesn't overflow. - s => (s + 1) % MAX_POPOVER_RECOMPUTE_COUNTER, 0); +/** @typedef {import('@wordpress/element').RefCallback} RefCallback */ +/** @typedef {import('@wordpress/element').RefObject} RefObject */ - // When blocks are moved up/down, they are animated to their new position by - // updating the `transform` property manually (i.e. without using CSS - // transitions or animations). The animation, which can also scroll the block - // editor, can sometimes cause the position of the Popover to get out of sync. - // A MutationObserver is therefore used to make sure that changes to the - // selectedElement's attribute (i.e. `transform`) can be tracked and used to - // trigger the Popover to rerender. +/** + * Provides a ref to the BlockRefs context. + * + * @param {string} clientId The client ID of the element ref. + * + * @return {RefCallback} Ref callback. + */ +function useBlockRefProvider(clientId) { + const { + refs, + callbacks + } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); + const ref = (0,external_wp_element_namespaceObject.useRef)(); (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!selectedElement) { - return; - } - const observer = new window.MutationObserver(forceRecomputePopoverDimensions); - observer.observe(selectedElement, { - attributes: true - }); + refs.set(ref, clientId); return () => { - observer.disconnect(); - }; - }, [selectedElement]); - const style = (0,external_wp_element_namespaceObject.useMemo)(() => { - if ( - // popoverDimensionsRecomputeCounter is by definition always equal or greater - // than 0. This check is only there to satisfy the correctness of the - // exhaustive-deps rule for the `useMemo` hook. - popoverDimensionsRecomputeCounter < 0 || !selectedElement || lastSelectedElement !== selectedElement) { - return {}; - } - return { - position: 'absolute', - width: selectedElement.offsetWidth, - height: selectedElement.offsetHeight + refs.delete(ref); }; - }, [selectedElement, lastSelectedElement, __unstableRefreshSize, popoverDimensionsRecomputeCounter]); - const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { - if ( - // popoverDimensionsRecomputeCounter is by definition always equal or greater - // than 0. This check is only there to satisfy the correctness of the - // exhaustive-deps rule for the `useMemo` hook. - popoverDimensionsRecomputeCounter < 0 || !selectedElement || bottomClientId && !lastSelectedElement) { - return undefined; + }, [clientId]); + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + // Update the ref in the provider. + ref.current = element; + // Call any update functions. + callbacks.forEach((id, setElement) => { + if (clientId === id) { + setElement(element); + } + }); + }, [clientId]); +} + +/** + * Gets a ref pointing to the current block element. Continues to return a + * stable ref even if the block client ID changes. + * + * @param {string} clientId The client ID to get a ref for. + * + * @return {RefObject} A ref containing the element. + */ +function useBlockRef(clientId) { + const { + refs + } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); + const freshClientId = (0,external_wp_element_namespaceObject.useRef)(); + freshClientId.current = clientId; + // Always return an object, even if no ref exists for a given client ID, so + // that `current` works at a later point. + return (0,external_wp_element_namespaceObject.useMemo)(() => ({ + get current() { + let element = null; + + // Multiple refs may be created for a single block. Find the + // first that has an element set. + for (const [ref, id] of refs.entries()) { + if (id === freshClientId.current && ref.current) { + element = ref.current; + } + } + return element; } - return { - getBoundingClientRect() { - var _lastSelectedBCR$left, _lastSelectedBCR$top, _lastSelectedBCR$righ, _lastSelectedBCR$bott; - const selectedBCR = selectedElement.getBoundingClientRect(); - const lastSelectedBCR = lastSelectedElement?.getBoundingClientRect(); + }), []); +} - // Get the biggest rectangle that encompasses completely the currently - // selected element and the last selected element: - // - for top/left coordinates, use the smaller numbers - // - for the bottom/right coordinates, use the largest numbers - const left = Math.min(selectedBCR.left, (_lastSelectedBCR$left = lastSelectedBCR?.left) !== null && _lastSelectedBCR$left !== void 0 ? _lastSelectedBCR$left : Infinity); - const top = Math.min(selectedBCR.top, (_lastSelectedBCR$top = lastSelectedBCR?.top) !== null && _lastSelectedBCR$top !== void 0 ? _lastSelectedBCR$top : Infinity); - const right = Math.max(selectedBCR.right, (_lastSelectedBCR$righ = lastSelectedBCR.right) !== null && _lastSelectedBCR$righ !== void 0 ? _lastSelectedBCR$righ : -Infinity); - const bottom = Math.max(selectedBCR.bottom, (_lastSelectedBCR$bott = lastSelectedBCR.bottom) !== null && _lastSelectedBCR$bott !== void 0 ? _lastSelectedBCR$bott : -Infinity); - const width = right - left; - const height = bottom - top; - return new window.DOMRect(left, top, width, height); - }, - contextElement: selectedElement +/** + * Return the element for a given client ID. Updates whenever the element + * changes, becomes available, or disappears. + * + * @param {string} clientId The client ID to an element for. + * + * @return {Element|null} The block's wrapper element. + */ +function useBlockElement(clientId) { + const { + callbacks + } = (0,external_wp_element_namespaceObject.useContext)(BlockRefs); + const ref = useBlockRef(clientId); + const [element, setElement] = (0,external_wp_element_namespaceObject.useState)(null); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!clientId) { + return; + } + callbacks.set(setElement, clientId); + return () => { + callbacks.delete(setElement); }; - }, [bottomClientId, lastSelectedElement, selectedElement, popoverDimensionsRecomputeCounter]); - if (!selectedElement || bottomClientId && !lastSelectedElement) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - ref: mergedRefs, - animate: false, - focusOnMount: false, - anchor: popoverAnchor - // Render in the old slot if needed for backward compatibility, - // otherwise render in place (not in the default popover slot). - , - __unstableSlotName: __unstablePopoverSlot, - inline: !__unstablePopoverSlot, - placement: "top-start", - resize: false, - flip: false, - shift: shift, - ...props, - className: classnames_default()('block-editor-block-popover', props.className), - variant: "unstyled" - }, __unstableCoverTarget && (0,external_React_.createElement)("div", { - style: style - }, children), !__unstableCoverTarget && children); + }, [clientId]); + return ref.current || element; } -/* harmony default export */ var block_popover = ((0,external_wp_element_namespaceObject.forwardRef)(BlockPopover)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/margin.js + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-intersection-observer.js /** * WordPress dependencies */ @@ -30259,145 +22217,227 @@ function BlockPopover({ * Internal dependencies */ +function useIntersectionObserver() { + const observer = (0,external_wp_element_namespaceObject.useContext)(block_list_IntersectionObserver); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (observer) { + observer.observe(node); + return () => { + observer.unobserve(node); + }; + } + }, [observer]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-content-overlay/index.js +/** + * WordPress dependencies + */ + -function getComputedCSS(element, property) { - return element.ownerDocument.defaultView.getComputedStyle(element).getPropertyValue(property); +/** + * Internal dependencies + */ + +function useBlockOverlayActive(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __unstableHasActiveBlockOverlayActive + } = select(store); + return __unstableHasActiveBlockOverlayActive(clientId); + }, [clientId]); } -function MarginVisualizer({ - clientId, - attributes, - forceShow -}) { - const blockElement = useBlockElement(clientId); - const [style, setStyle] = (0,external_wp_element_namespaceObject.useState)(); - const margin = attributes?.style?.spacing?.margin; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!blockElement || null === blockElement.ownerDocument.defaultView) { - return; - } - const top = getComputedCSS(blockElement, 'margin-top'); - const right = getComputedCSS(blockElement, 'margin-right'); - const bottom = getComputedCSS(blockElement, 'margin-bottom'); - const left = getComputedCSS(blockElement, 'margin-left'); - setStyle({ - borderTopWidth: top, - borderRightWidth: right, - borderBottomWidth: bottom, - borderLeftWidth: left, - top: top ? `-${top}` : 0, - right: right ? `-${right}` : 0, - bottom: bottom ? `-${bottom}` : 0, - left: left ? `-${left}` : 0 - }); - }, [blockElement, margin]); - const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false); - const valueRef = (0,external_wp_element_namespaceObject.useRef)(margin); - const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); - const clearTimer = () => { - if (timeoutRef.current) { - window.clearTimeout(timeoutRef.current); - } - }; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!external_wp_isShallowEqual_default()(margin, valueRef.current) && !forceShow) { - setIsActive(true); - valueRef.current = margin; - timeoutRef.current = setTimeout(() => { - setIsActive(false); - }, 400); - } - return () => { - setIsActive(false); - clearTimer(); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/index.js +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + + + +/** + * Internal dependencies + */ + + + + + + + + + + + + + + + + + + +/** + * If the block count exceeds the threshold, we disable the reordering animation + * to avoid laginess. + */ +const BLOCK_ANIMATION_THRESHOLD = 200; + +/** + * This hook is used to lightly mark an element as a block element. The element + * should be the outermost element of a block. Call this hook and pass the + * returned props to the element to mark as a block. If you define a ref for the + * element, it is important to pass the ref to this hook, which the hook in turn + * will pass to the component through the props it returns. Optionally, you can + * also pass any other props through this hook, and they will be merged and + * returned. + * + * Use of this hook on the outermost element of a block is required if using API >= v2. + * + * @example + * ```js + * import { useBlockProps } from '@wordpress/block-editor'; + * + * export default function Edit() { + * + * const blockProps = useBlockProps( + * className: 'my-custom-class', + * style: { + * color: '#222222', + * backgroundColor: '#eeeeee' + * } + * ) + * + * return ( + *
+ * + *
+ * ) + * } + * + * ``` + * + * + * @param {Object} props Optional. Props to pass to the element. Must contain + * the ref if one is defined. + * @param {Object} options Options for internal use only. + * @param {boolean} options.__unstableIsHtml + * + * @return {Object} Props to pass to the element to mark as a block. + */ +function useBlockProps(props = {}, { + __unstableIsHtml +} = {}) { + const { + clientId, + className, + wrapperProps = {}, + isAligned + } = (0,external_wp_element_namespaceObject.useContext)(BlockListBlockContext); + const { + index, + mode, + name, + blockApiVersion, + blockTitle, + isPartOfSelection, + adjustScrolling, + enableAnimation, + isSubtreeDisabled + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockAttributes, + getBlockIndex, + getBlockMode, + getBlockName, + isTyping, + getGlobalBlockCount, + isBlockSelected, + isBlockMultiSelected, + isAncestorMultiSelected, + isFirstMultiSelectedBlock, + isBlockSubtreeDisabled + } = unlock(select(store)); + const { + getActiveBlockVariation + } = select(external_wp_blocks_namespaceObject.store); + const isSelected = isBlockSelected(clientId); + const isPartOfMultiSelection = isBlockMultiSelected(clientId) || isAncestorMultiSelected(clientId); + const blockName = getBlockName(clientId); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); + const attributes = getBlockAttributes(clientId); + const match = getActiveBlockVariation(blockName, attributes); + return { + index: getBlockIndex(clientId), + mode: getBlockMode(clientId), + name: blockName, + blockApiVersion: blockType?.apiVersion || 1, + blockTitle: match?.title || blockType?.title, + isPartOfSelection: isSelected || isPartOfMultiSelection, + adjustScrolling: isSelected || isFirstMultiSelectedBlock(clientId), + enableAnimation: !isTyping() && getGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD, + isSubtreeDisabled: isBlockSubtreeDisabled(clientId) }; - }, [margin, forceShow]); - if (!isActive && !forceShow) { - return null; + }, [clientId]); + const hasOverlay = useBlockOverlayActive(clientId); + + // translators: %s: Type of block (i.e. Text, Image etc) + const blockLabel = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Block: %s'), blockTitle); + const htmlSuffix = mode === 'html' && !__unstableIsHtml ? '-visual' : ''; + const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, useFocusFirstElement(clientId), useBlockRefProvider(clientId), useFocusHandler(clientId), useEventHandlers(clientId), useNavModeExit(clientId), useIsHovered(), useIntersectionObserver(), use_moving_animation({ + isSelected: isPartOfSelection, + adjustScrolling, + enableAnimation, + triggerAnimationOnChange: index + }), (0,external_wp_compose_namespaceObject.useDisabled)({ + isDisabled: !hasOverlay + })]); + const blockEditContext = useBlockEditContext(); + // Ensures it warns only inside the `edit` implementation for the block. + if (blockApiVersion < 2 && clientId === blockEditContext.clientId) { + true ? external_wp_warning_default()(`Block type "${name}" must support API version 2 or higher to work correctly with "useBlockProps" method.`) : 0; } - return (0,external_React_.createElement)(block_popover, { - clientId: clientId, - __unstableCoverTarget: true, - __unstableRefreshSize: margin, - __unstablePopoverSlot: "block-toolbar", - shift: false - }, (0,external_React_.createElement)("div", { - className: "block-editor__padding-visualizer", - style: style - })); + return { + tabIndex: 0, + ...wrapperProps, + ...props, + ref: mergedRefs, + id: `block-${clientId}${htmlSuffix}`, + role: 'document', + 'aria-label': blockLabel, + 'data-block': clientId, + 'data-type': name, + 'data-title': blockTitle, + inert: isSubtreeDisabled ? 'true' : undefined, + className: classnames_default()( + // The wp-block className is important for editor styles. + classnames_default()('block-editor-block-list__block', { + 'wp-block': !isAligned, + 'has-block-overlay': hasOverlay + }), className, props.className, wrapperProps.className, useBlockClassNames(clientId), useBlockDefaultClassName(clientId), useBlockCustomClassName(clientId), useBlockMovingModeClassNames(clientId)), + style: { + ...wrapperProps.style, + ...props.style + } + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/padding.js - -/** - * WordPress dependencies - */ - - - /** - * Internal dependencies + * Call within a save function to get the props for the block wrapper. + * + * @param {Object} props Optional. Props to pass to the element. */ +useBlockProps.save = external_wp_blocks_namespaceObject.__unstableGetBlockProps; - -function padding_getComputedCSS(element, property) { - return element.ownerDocument.defaultView.getComputedStyle(element).getPropertyValue(property); -} -function PaddingVisualizer({ - clientId, - value, - forceShow -}) { - const blockElement = useBlockElement(clientId); - const [style, setStyle] = (0,external_wp_element_namespaceObject.useState)(); - const padding = value?.spacing?.padding; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!blockElement || null === blockElement.ownerDocument.defaultView) { - return; - } - setStyle({ - borderTopWidth: padding_getComputedCSS(blockElement, 'padding-top'), - borderRightWidth: padding_getComputedCSS(blockElement, 'padding-right'), - borderBottomWidth: padding_getComputedCSS(blockElement, 'padding-bottom'), - borderLeftWidth: padding_getComputedCSS(blockElement, 'padding-left') - }); - }, [blockElement, padding]); - const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false); - const valueRef = (0,external_wp_element_namespaceObject.useRef)(padding); - const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); - const clearTimer = () => { - if (timeoutRef.current) { - window.clearTimeout(timeoutRef.current); - } - }; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!external_wp_isShallowEqual_default()(padding, valueRef.current) && !forceShow) { - setIsActive(true); - valueRef.current = padding; - timeoutRef.current = setTimeout(() => { - setIsActive(false); - }, 400); - } - return () => { - setIsActive(false); - clearTimer(); - }; - }, [padding, forceShow]); - if (!isActive && !forceShow) { - return null; - } - return (0,external_React_.createElement)(block_popover, { - clientId: clientId, - __unstableCoverTarget: true, - __unstableRefreshSize: padding, - __unstablePopoverSlot: "block-toolbar", - shift: false - }, (0,external_React_.createElement)("div", { - className: "block-editor__padding-visualizer", - style: style - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/dimensions.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block.js /** * External dependencies @@ -30412,6 +22452,8 @@ function PaddingVisualizer({ + + /** * Internal dependencies */ @@ -30422,177 +22464,421 @@ function PaddingVisualizer({ -const DIMENSIONS_SUPPORT_KEY = 'dimensions'; -const SPACING_SUPPORT_KEY = 'spacing'; -const dimensions_ALL_SIDES = (/* unused pure expression or super */ null && (['top', 'right', 'bottom', 'left'])); -const dimensions_AXIAL_SIDES = (/* unused pure expression or super */ null && (['vertical', 'horizontal'])); -function useVisualizer() { - const [property, setProperty] = (0,external_wp_element_namespaceObject.useState)(false); - const { - hideBlockInterface, - showBlockInterface - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!property) { - showBlockInterface(); - } else { - hideBlockInterface(); - } - }, [property, showBlockInterface, hideBlockInterface]); - return [property, setProperty]; + + + +/** + * Merges wrapper props with special handling for classNames and styles. + * + * @param {Object} propsA + * @param {Object} propsB + * + * @return {Object} Merged props. + */ +function mergeWrapperProps(propsA, propsB) { + const newProps = { + ...propsA, + ...propsB + }; + if (propsA?.className && propsB?.className) { + newProps.className = classnames_default()(propsA.className, propsB.className); + } + if (propsA?.style && propsB?.style) { + newProps.style = { + ...propsA.style, + ...propsB.style + }; + } + return newProps; } -function DimensionsInspectorControl({ +function Block({ children, - resetAllFilter + isHtml, + ...props }) { - const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { - const existingStyle = attributes.style; - const updatedStyle = resetAllFilter(existingStyle); - return { - ...attributes, - style: updatedStyle - }; - }, [resetAllFilter]); - return (0,external_React_.createElement)(inspector_controls, { - group: "dimensions", - resetAllFilter: attributesResetAllFilter + return (0,external_wp_element_namespaceObject.createElement)("div", { + ...useBlockProps(props, { + __unstableIsHtml: isHtml + }) }, children); } -function dimensions_DimensionsPanel({ +function BlockListBlock({ + block: { + __unstableBlockSource + }, + mode, + isLocked, + canRemove, clientId, + isSelected, + isSelectionEnabled, + className, + __unstableLayoutClassNames: layoutClassNames, name, + isValid, + attributes, + wrapperProps, setAttributes, - settings + onReplace, + onInsertBlocksAfter, + onMerge, + toggleSelection }) { - const isEnabled = useHasDimensionsPanel(settings); - const value = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockAttributes(clientId)?.style, [clientId]); - const [visualizedProperty, setVisualizedProperty] = useVisualizer(); - const onChange = newStyle => { - setAttributes({ - style: utils_cleanEmptyObject(newStyle) - }); - }; - if (!isEnabled) { - return null; - } - const defaultDimensionsControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [DIMENSIONS_SUPPORT_KEY, '__experimentalDefaultControls']); - const defaultSpacingControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [SPACING_SUPPORT_KEY, '__experimentalDefaultControls']); - const defaultControls = { - ...defaultDimensionsControls, - ...defaultSpacingControls - }; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(DimensionsPanel, { - as: DimensionsInspectorControl, - panelId: clientId, - settings: settings, - value: value, - onChange: onChange, - defaultControls: defaultControls, - onVisualize: setVisualizedProperty - }), !!settings?.spacing?.padding && (0,external_React_.createElement)(PaddingVisualizer, { - forceShow: visualizedProperty === 'padding', - clientId: clientId, - value: value - }), !!settings?.spacing?.margin && (0,external_React_.createElement)(MarginVisualizer, { - forceShow: visualizedProperty === 'margin', - clientId: clientId, - value: value - })); -} + var _wrapperProps; + const { + themeSupportsLayout, + isTemporarilyEditingAsBlocks, + blockEditingMode + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings, + __unstableGetTemporarilyEditingAsBlocks, + getBlockEditingMode + } = select(store); + return { + themeSupportsLayout: getSettings().supportsLayout, + isTemporarilyEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === clientId, + blockEditingMode: getBlockEditingMode(clientId) + }; + }, [clientId]); + const { + removeBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const onRemove = (0,external_wp_element_namespaceObject.useCallback)(() => removeBlock(clientId), [clientId]); + const parentLayout = useLayout() || {}; -/** - * Determine whether there is block support for dimensions. - * - * @param {string} blockName Block name. - * @param {string} feature Background image feature to check for. - * - * @return {boolean} Whether there is support. - */ -function hasDimensionsSupport(blockName, feature = 'any') { - if (external_wp_element_namespaceObject.Platform.OS !== 'web') { - return false; + // We wrap the BlockEdit component in a div that hides it when editing in + // HTML mode. This allows us to render all of the ancillary pieces + // (InspectorControls, etc.) which are inside `BlockEdit` but not + // `BlockHTML`, even in HTML mode. + let blockEdit = (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + name: name, + isSelected: isSelected, + attributes: attributes, + setAttributes: setAttributes, + insertBlocksAfter: isLocked ? undefined : onInsertBlocksAfter, + onReplace: canRemove ? onReplace : undefined, + onRemove: canRemove ? onRemove : undefined, + mergeBlocks: canRemove ? onMerge : undefined, + clientId: clientId, + isSelectionEnabled: isSelectionEnabled, + toggleSelection: toggleSelection, + __unstableLayoutClassNames: layoutClassNames, + __unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined + }); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + if (blockEditingMode === 'disabled') { + wrapperProps = { + ...wrapperProps, + tabIndex: -1 + }; } - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, DIMENSIONS_SUPPORT_KEY); - if (support === true) { - return true; + // Determine whether the block has props to apply to the wrapper. + if (blockType?.getEditWrapperProps) { + wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes)); } - if (feature === 'any') { - return !!(support?.aspectRatio || !!support?.minHeight); + const isAligned = wrapperProps && !!wrapperProps['data-align'] && !themeSupportsLayout; + + // For aligned blocks, provide a wrapper element so the block can be + // positioned relative to the block column. + // This is only kept for classic themes that don't support layout + // Historically we used to rely on extra divs and data-align to + // provide the alignments styles in the editor. + // Due to the differences between frontend and backend, we migrated + // to the layout feature, and we're now aligning the markup of frontend + // and backend. + if (isAligned) { + blockEdit = (0,external_wp_element_namespaceObject.createElement)("div", { + className: "wp-block", + "data-align": wrapperProps['data-align'] + }, blockEdit); } - return !!support?.[feature]; -} -/* harmony default export */ var dimensions = ({ - useBlockProps: dimensions_useBlockProps, - attributeKeys: ['minHeight', 'style'], - hasSupport(name) { - return hasDimensionsSupport(name, 'aspectRatio'); + let block; + if (!isValid) { + const saveContent = __unstableBlockSource ? (0,external_wp_blocks_namespaceObject.serializeRawBlock)(__unstableBlockSource) : (0,external_wp_blocks_namespaceObject.getSaveContent)(blockType, attributes); + block = (0,external_wp_element_namespaceObject.createElement)(Block, { + className: "has-warning" + }, (0,external_wp_element_namespaceObject.createElement)(BlockInvalidWarning, { + clientId: clientId + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(saveContent))); + } else if (mode === 'html') { + // Render blockEdit so the inspector controls don't disappear. + // See #8969. + block = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + display: 'none' + } + }, blockEdit), (0,external_wp_element_namespaceObject.createElement)(Block, { + isHtml: true + }, (0,external_wp_element_namespaceObject.createElement)(block_html, { + clientId: clientId + }))); + } else if (blockType?.apiVersion > 1) { + block = blockEdit; + } else { + block = (0,external_wp_element_namespaceObject.createElement)(Block, { + ...wrapperProps + }, blockEdit); } + const { + 'data-align': dataAlign, + ...restWrapperProps + } = (_wrapperProps = wrapperProps) !== null && _wrapperProps !== void 0 ? _wrapperProps : {}; + const value = { + clientId, + className: classnames_default()({ + 'is-editing-disabled': blockEditingMode === 'disabled', + 'is-content-locked-temporarily-editing-as-blocks': isTemporarilyEditingAsBlocks + }, dataAlign && themeSupportsLayout && `align${dataAlign}`, className), + wrapperProps: restWrapperProps, + isAligned + }; + const memoizedValue = (0,external_wp_element_namespaceObject.useMemo)(() => value, Object.values(value)); + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlockContext.Provider, { + value: memoizedValue + }, (0,external_wp_element_namespaceObject.createElement)(block_crash_boundary, { + fallback: (0,external_wp_element_namespaceObject.createElement)(Block, { + className: "has-warning" + }, (0,external_wp_element_namespaceObject.createElement)(block_crash_warning, null)) + }, block)); +} +const applyWithSelect = (0,external_wp_data_namespaceObject.withSelect)((select, { + clientId, + rootClientId +}) => { + const { + isBlockSelected, + getBlockMode, + isSelectionEnabled, + getTemplateLock, + __unstableGetBlockWithoutInnerBlocks, + canRemoveBlock, + canMoveBlock + } = select(store); + const block = __unstableGetBlockWithoutInnerBlocks(clientId); + const isSelected = isBlockSelected(clientId); + const templateLock = getTemplateLock(rootClientId); + const canRemove = canRemoveBlock(clientId, rootClientId); + const canMove = canMoveBlock(clientId, rootClientId); + + // The fallback to `{}` is a temporary fix. + // This function should never be called when a block is not present in + // the state. It happens now because the order in withSelect rendering + // is not correct. + const { + name, + attributes, + isValid + } = block || {}; + + // Do not add new properties here, use `useSelect` instead to avoid + // leaking new props to the public API (editor.BlockListBlock filter). + return { + mode: getBlockMode(clientId), + isSelectionEnabled: isSelectionEnabled(), + isLocked: !!templateLock, + canRemove, + canMove, + // Users of the editor.BlockListBlock filter used to be able to + // access the block prop. + // Ideally these blocks would rely on the clientId prop only. + // This is kept for backward compatibility reasons. + block, + name, + attributes, + isValid, + isSelected + }; }); -function dimensions_useBlockProps({ - name, - minHeight, - style -}) { - if (!hasDimensionsSupport(name, 'aspectRatio') || shouldSkipSerialization(name, DIMENSIONS_SUPPORT_KEY, 'aspectRatio')) { - return {}; - } - const className = classnames_default()({ - 'has-aspect-ratio': !!style?.dimensions?.aspectRatio - }); +const applyWithDispatch = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, registry) => { + const { + updateBlockAttributes, + insertBlocks, + mergeBlocks, + replaceBlocks, + toggleSelection, + __unstableMarkLastChangeAsPersistent, + moveBlocksToPosition, + removeBlock + } = dispatch(store); - // Allow dimensions-based inline style overrides to override any global styles rules that - // might be set for the block, and therefore affect the display of the aspect ratio. - const inlineStyleOverrides = {}; - - // Apply rules to unset incompatible styles. - // Note that a set `aspectRatio` will win out if both an aspect ratio and a minHeight are set. - // This is because the aspect ratio is a newer block support, so (in theory) any aspect ratio - // that is set should be intentional and should override any existing minHeight. The Cover block - // and dimensions controls have logic that will manually clear the aspect ratio if a minHeight - // is set. - if (style?.dimensions?.aspectRatio) { - // To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule. - inlineStyleOverrides.minHeight = 'unset'; - } else if (minHeight || style?.dimensions?.minHeight) { - // To ensure the minHeight does not get overridden by `aspectRatio` unset any existing rule. - inlineStyleOverrides.aspectRatio = 'unset'; - } + // Do not add new properties here, use `useDispatch` instead to avoid + // leaking new props to the public API (editor.BlockListBlock filter). return { - className, - style: inlineStyleOverrides + setAttributes(newAttributes) { + const { + getMultiSelectedBlockClientIds + } = registry.select(store); + const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(); + const { + clientId + } = ownProps; + const clientIds = multiSelectedBlockClientIds.length ? multiSelectedBlockClientIds : [clientId]; + updateBlockAttributes(clientIds, newAttributes); + }, + onInsertBlocks(blocks, index) { + const { + rootClientId + } = ownProps; + insertBlocks(blocks, index, rootClientId); + }, + onInsertBlocksAfter(blocks) { + const { + clientId, + rootClientId + } = ownProps; + const { + getBlockIndex + } = registry.select(store); + const index = getBlockIndex(clientId); + insertBlocks(blocks, index + 1, rootClientId); + }, + onMerge(forward) { + const { + clientId, + rootClientId + } = ownProps; + const { + getPreviousBlockClientId, + getNextBlockClientId, + getBlock, + getBlockAttributes, + getBlockName, + getBlockOrder, + getBlockIndex, + getBlockRootClientId, + canInsertBlockType + } = registry.select(store); + + /** + * Moves the block with clientId up one level. If the block type + * cannot be inserted at the new location, it will be attempted to + * convert to the default block type. + * + * @param {string} _clientId The block to move. + * @param {boolean} changeSelection Whether to change the selection + * to the moved block. + */ + function moveFirstItemUp(_clientId, changeSelection = true) { + const targetRootClientId = getBlockRootClientId(_clientId); + const blockOrder = getBlockOrder(_clientId); + const [firstClientId] = blockOrder; + if (blockOrder.length === 1 && (0,external_wp_blocks_namespaceObject.isUnmodifiedBlock)(getBlock(firstClientId))) { + removeBlock(_clientId); + } else { + registry.batch(() => { + if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) { + moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId)); + } else { + const replacement = (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(firstClientId), (0,external_wp_blocks_namespaceObject.getDefaultBlockName)()); + if (replacement && replacement.length) { + insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection); + removeBlock(firstClientId, false); + } + } + if (!getBlockOrder(_clientId).length && (0,external_wp_blocks_namespaceObject.isUnmodifiedBlock)(getBlock(_clientId))) { + removeBlock(_clientId, false); + } + }); + } + } + + // For `Delete` or forward merge, we should do the exact same thing + // as `Backspace`, but from the other block. + if (forward) { + if (rootClientId) { + const nextRootClientId = getNextBlockClientId(rootClientId); + if (nextRootClientId) { + // If there is a block that follows with the same parent + // block name and the same attributes, merge the inner + // blocks. + if (getBlockName(rootClientId) === getBlockName(nextRootClientId)) { + const rootAttributes = getBlockAttributes(rootClientId); + const previousRootAttributes = getBlockAttributes(nextRootClientId); + if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { + registry.batch(() => { + moveBlocksToPosition(getBlockOrder(nextRootClientId), nextRootClientId, rootClientId); + removeBlock(nextRootClientId, false); + }); + return; + } + } else { + mergeBlocks(rootClientId, nextRootClientId); + return; + } + } + } + const nextBlockClientId = getNextBlockClientId(clientId); + if (!nextBlockClientId) { + return; + } + if (getBlockOrder(nextBlockClientId).length) { + moveFirstItemUp(nextBlockClientId, false); + } else { + mergeBlocks(clientId, nextBlockClientId); + } + } else { + const previousBlockClientId = getPreviousBlockClientId(clientId); + if (previousBlockClientId) { + mergeBlocks(previousBlockClientId, clientId); + } else if (rootClientId) { + const previousRootClientId = getPreviousBlockClientId(rootClientId); + + // If there is a preceding block with the same parent block + // name and the same attributes, merge the inner blocks. + if (previousRootClientId && getBlockName(rootClientId) === getBlockName(previousRootClientId)) { + const rootAttributes = getBlockAttributes(rootClientId); + const previousRootAttributes = getBlockAttributes(previousRootClientId); + if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { + registry.batch(() => { + moveBlocksToPosition(getBlockOrder(rootClientId), rootClientId, previousRootClientId); + removeBlock(rootClientId, false); + }); + return; + } + } + moveFirstItemUp(rootClientId); + } + } + }, + onReplace(blocks, indexToSelect, initialPosition) { + if (blocks.length && !(0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(blocks[blocks.length - 1])) { + __unstableMarkLastChangeAsPersistent(); + } + //Unsynced patterns are nested in an array so we need to flatten them. + const replacementBlocks = blocks?.length === 1 && Array.isArray(blocks[0]) ? blocks[0] : blocks; + replaceBlocks([ownProps.clientId], replacementBlocks, indexToSelect, initialPosition); + }, + toggleSelection(selectionEnabled) { + toggleSelection(selectionEnabled); + } }; -} - -/** - * @deprecated - */ -function useCustomSides() { - external_wp_deprecated_default()('wp.blockEditor.__experimentalUseCustomSides', { - since: '6.3', - version: '6.4' - }); -} +}); +/* harmony default export */ var block = ((0,external_wp_compose_namespaceObject.compose)(external_wp_compose_namespaceObject.pure, applyWithSelect, applyWithDispatch, +// Block is sometimes not mounted at the right time, causing it be undefined +// see issue for more info +// https://github.com/WordPress/gutenberg/issues/17013 +(0,external_wp_compose_namespaceObject.ifCondition)(({ + block +}) => !!block), (0,external_wp_components_namespaceObject.withFilters)('editor.BlockListBlock'))(BlockListBlock)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shadow.js +;// CONCATENATED MODULE: external ["wp","htmlEntities"] +var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js /** * WordPress dependencies */ -const shadow = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 8c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 6.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12.8 3h-1.5v3h1.5V3zm-1.6 18h1.5v-3h-1.5v3zm6.8-9.8v1.5h3v-1.5h-3zm-12 0H3v1.5h3v-1.5zm9.7 5.6 2.1 2.1 1.1-1.1-2.1-2.1-1.1 1.1zM8.3 7.2 6.2 5.1 5.1 6.2l2.1 2.1 1.1-1.1zM5.1 17.8l1.1 1.1 2.1-2.1-1.1-1.1-2.1 2.1zM18.9 6.2l-1.1-1.1-2.1 2.1 1.1 1.1 2.1-2.1z" +const plus = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" })); -/* harmony default export */ var library_shadow = (shadow); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/effects-panel.js - -/** - * External dependencies - */ +/* harmony default export */ var library_plus = (plus); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tips.js /** * WordPress dependencies @@ -30600,1151 +22886,830 @@ const shadow = (0,external_React_.createElement)(external_wp_primitives_namespac +const globalTips = [(0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('While writing, you can press / to quickly insert new blocks.'), { + kbd: (0,external_wp_element_namespaceObject.createElement)("kbd", null) +}), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Indent a list by pressing space at the beginning of a line.'), { + kbd: (0,external_wp_element_namespaceObject.createElement)("kbd", null) +}), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Outdent a list by pressing backspace at the beginning of a line.'), { + kbd: (0,external_wp_element_namespaceObject.createElement)("kbd", null) +}), (0,external_wp_i18n_namespaceObject.__)('Drag files into the editor to automatically insert media blocks.'), (0,external_wp_i18n_namespaceObject.__)("Change a block's type by pressing the block icon on the toolbar.")]; +function Tips() { + const [randomIndex] = (0,external_wp_element_namespaceObject.useState)( + // Disable Reason: I'm not generating an HTML id. + // eslint-disable-next-line no-restricted-syntax + Math.floor(Math.random() * globalTips.length)); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tip, null, globalTips[randomIndex]); +} +/* harmony default export */ var tips = (Tips); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js /** - * Internal dependencies + * WordPress dependencies */ +const chevronRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" +})); +/* harmony default export */ var chevron_right = (chevronRight); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js -function useHasEffectsPanel(settings) { - const hasShadowControl = useHasShadowControl(settings); - return hasShadowControl; -} -function useHasShadowControl(settings) { - return !!settings?.shadow; -} -function EffectsToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject.__)('Effects'), - resetAll: resetAll, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); -} -const effects_panel_DEFAULT_CONTROLS = { - shadow: true -}; -function EffectsPanel({ - as: Wrapper = EffectsToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = effects_panel_DEFAULT_CONTROLS -}) { - const decodeValue = rawValue => getValueFromVariable({ - settings - }, '', rawValue); +/** + * WordPress dependencies + */ - // Shadow - const hasShadowEnabled = useHasShadowControl(settings); - const shadow = decodeValue(inheritedValue?.shadow); - const shadowPresets = settings?.shadow?.presets; - const mergedShadowPresets = shadowPresets ? mergeOrigins(shadowPresets) : []; - const setShadow = newValue => { - const slug = mergedShadowPresets?.find(({ - shadow: shadowName - }) => shadowName === newValue)?.slug; - onChange(setImmutably(value, ['shadow'], slug ? `var:preset|shadow|${slug}` : newValue || undefined)); - }; - const hasShadow = () => !!value?.shadow; - const resetShadow = () => setShadow(undefined); - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - shadow: undefined - }; - }, []); - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, hasShadowEnabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - label: (0,external_wp_i18n_namespaceObject.__)('Shadow'), - hasValue: hasShadow, - onDeselect: resetShadow, - isShownByDefault: defaultControls.shadow, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { - isBordered: true, - isSeparated: true - }, (0,external_React_.createElement)(ShadowPopover, { - shadow: shadow, - onShadowChange: setShadow, - settings: settings - })))); -} -const ShadowPopover = ({ - shadow, - onShadowChange, - settings -}) => { - const popoverProps = { - placement: 'left-start', - offset: 36, - shift: true - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: popoverProps, - className: "block-editor-global-styles-effects-panel__shadow-dropdown", - renderToggle: renderShadowToggle(), - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { - paddingSize: "medium" - }, (0,external_React_.createElement)(ShadowPopoverContainer, { - shadow: shadow, - onShadowChange: onShadowChange, - settings: settings - })) - }); -}; -function renderShadowToggle() { - return ({ - onToggle, - isOpen - }) => { - const toggleProps = { - onClick: onToggle, - className: classnames_default()({ - 'is-open': isOpen - }), - 'aria-expanded': isOpen - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...toggleProps - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start" - }, (0,external_React_.createElement)(build_module_icon, { - className: "block-editor-global-styles-effects-panel__toggle-icon", - icon: library_shadow, - size: 24 - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_i18n_namespaceObject.__)('Shadow')))); - }; -} -function ShadowPopoverContainer({ - shadow, - onShadowChange, - settings -}) { - const defaultShadows = settings?.shadow?.presets?.default; - const themeShadows = settings?.shadow?.presets?.theme; - const defaultPresetsEnabled = settings?.shadow?.defaultPresets; - const shadows = [...(defaultPresetsEnabled ? defaultShadows : []), ...(themeShadows || [])]; - return (0,external_React_.createElement)("div", { - className: "block-editor-global-styles-effects-panel__shadow-popover-container" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 4 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { - level: 5 - }, (0,external_wp_i18n_namespaceObject.__)('Shadow')), (0,external_React_.createElement)(ShadowPresets, { - presets: shadows, - activeShadow: shadow, - onSelect: onShadowChange - }))); -} -function ShadowPresets({ - presets, - activeShadow, - onSelect -}) { - return !presets ? null : (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalGrid, { - columns: 6, - gap: 0, - align: "center", - justify: "center" - }, presets.map(({ - name, - slug, - shadow - }) => (0,external_React_.createElement)(ShadowIndicator, { - key: slug, - label: name, - isActive: shadow === activeShadow, - onSelect: () => onSelect(shadow === activeShadow ? undefined : shadow), - shadow: shadow - }))); -} -function ShadowIndicator({ - label, - isActive, - onSelect, - shadow -}) { - return (0,external_React_.createElement)("div", { - className: "block-editor-global-styles-effects-panel__shadow-indicator-wrapper" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-global-styles-effects-panel__shadow-indicator", - onClick: onSelect, - label: label, - style: { - boxShadow: shadow - }, - showTooltip: true - }, isActive && (0,external_React_.createElement)(build_module_icon, { - icon: library_check - }))); -} +const chevronLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" +})); +/* harmony default export */ var chevron_left = (chevronLeft); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/effects.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js /** * WordPress dependencies */ +const blockDefault = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z" +})); +/* harmony default export */ var block_default = (blockDefault); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-icon/index.js /** - * Internal dependencies + * External dependencies */ +/** + * WordPress dependencies + */ -const SHADOW_SUPPORT_KEY = 'shadow'; -const EFFECTS_SUPPORT_KEYS = [SHADOW_SUPPORT_KEY]; -function hasEffectsSupport(blockName) { - return EFFECTS_SUPPORT_KEYS.some(key => hasBlockSupport(blockName, key)); -} -function EffectsInspectorControl({ - children, - resetAllFilter -}) { - return (0,external_React_.createElement)(inspector_controls, { - group: "effects", - resetAllFilter: resetAllFilter - }, children); -} -function effects_EffectsPanel({ - clientId, - setAttributes, - settings + +function BlockIcon({ + icon, + showColors = false, + className, + context }) { - const isEnabled = useHasEffectsPanel(settings); - const value = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockAttributes(clientId)?.style, [clientId]); - const onChange = newStyle => { - setAttributes({ - style: utils_cleanEmptyObject(newStyle) - }); - }; - if (!isEnabled) { - return null; + if (icon?.src === 'block-default') { + icon = { + src: block_default + }; } - return (0,external_React_.createElement)(EffectsPanel, { - as: EffectsInspectorControl, - panelId: clientId, - settings: settings, - value: value, - onChange: onChange + const renderedIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + icon: icon && icon.src ? icon.src : icon, + context: context }); + const style = showColors ? { + backgroundColor: icon && icon.background, + color: icon && icon.foreground + } : {}; + return (0,external_wp_element_namespaceObject.createElement)("span", { + style: style, + className: classnames_default()('block-editor-block-icon', className, { + 'has-colors': showColors + }) + }, renderedIcon); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/style.js - /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-icon/README.md */ +/* harmony default export */ var block_icon = ((0,external_wp_element_namespaceObject.memo)(BlockIcon)); - - - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-card/index.js /** - * Internal dependencies + * External dependencies */ +/** + * WordPress dependencies + */ - -const styleSupportKeys = [...TYPOGRAPHY_SUPPORT_KEYS, ...EFFECTS_SUPPORT_KEYS, BORDER_SUPPORT_KEY, COLOR_SUPPORT_KEY, DIMENSIONS_SUPPORT_KEY, BACKGROUND_SUPPORT_KEY, SPACING_SUPPORT_KEY]; -const hasStyleSupport = nameOrType => styleSupportKeys.some(key => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, key)); - /** - * Returns the inline styles to add depending on the style object - * - * @param {Object} styles Styles configuration. - * - * @return {Object} Flattened CSS variables declaration. + * Internal dependencies */ -function getInlineStyles(styles = {}) { - const output = {}; - // The goal is to move everything to server side generated engine styles - // This is temporary as we absorb more and more styles into the engine. - (0,external_wp_styleEngine_namespaceObject.getCSSRules)(styles).forEach(rule => { - output[rule.key] = rule.value; - }); - return output; -} -/** - * Filters registered block settings, extending attributes to include `style` attribute. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function style_addAttribute(settings) { - if (!hasStyleSupport(settings)) { - return settings; - } - // Allow blocks to specify their own attribute definition with default values if needed. - if (!settings.attributes.style) { - Object.assign(settings.attributes, { - style: { - type: 'object' - } +function BlockCard({ + title, + icon, + description, + blockType, + className +}) { + if (blockType) { + external_wp_deprecated_default()('`blockType` property in `BlockCard component`', { + since: '5.7', + alternative: '`title, icon and description` properties' }); + ({ + title, + icon, + description + } = blockType); } - return settings; + const { + parentNavBlockClientId + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSelectedBlockClientId, + getBlockParentsByBlockName + } = select(store); + const _selectedBlockClientId = getSelectedBlockClientId(); + return { + parentNavBlockClientId: getBlockParentsByBlockName(_selectedBlockClientId, 'core/navigation', true)[0] + }; + }, []); + const { + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-block-card', className) + }, parentNavBlockClientId && + // This is only used by the Navigation block for now. It's not ideal having Navigation block specific code here. + (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + onClick: () => selectBlock(parentNavBlockClientId), + label: (0,external_wp_i18n_namespaceObject.__)('Go to parent Navigation block'), + style: + // TODO: This style override is also used in ToolsPanelHeader. + // It should be supported out-of-the-box by Button. + { + minWidth: 24, + padding: 0 + }, + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left, + isSmall: true + }), (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon, + showColors: true + }), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-card__content" + }, (0,external_wp_element_namespaceObject.createElement)("h2", { + className: "block-editor-block-card__title" + }, title), (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-card__description" + }, description))); } +/* harmony default export */ var block_card = (BlockCard); -/** - * A dictionary of paths to flag skipping block support serialization as the key, - * with values providing the style paths to be omitted from serialization. - * - * @constant - * @type {Record} - */ -const skipSerializationPathsEdit = { - [`${BORDER_SUPPORT_KEY}.__experimentalSkipSerialization`]: ['border'], - [`${COLOR_SUPPORT_KEY}.__experimentalSkipSerialization`]: [COLOR_SUPPORT_KEY], - [`${TYPOGRAPHY_SUPPORT_KEY}.__experimentalSkipSerialization`]: [TYPOGRAPHY_SUPPORT_KEY], - [`${DIMENSIONS_SUPPORT_KEY}.__experimentalSkipSerialization`]: [DIMENSIONS_SUPPORT_KEY], - [`${SPACING_SUPPORT_KEY}.__experimentalSkipSerialization`]: [SPACING_SUPPORT_KEY], - [`${SHADOW_SUPPORT_KEY}`]: [SHADOW_SUPPORT_KEY] -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/with-registry-provider.js /** - * A dictionary of paths to flag skipping block support serialization as the key, - * with values providing the style paths to be omitted from serialization. - * - * Extends the Edit skip paths to enable skipping additional paths in just - * the Save component. This allows a block support to be serialized within the - * editor, while using an alternate approach, such as server-side rendering, when - * the support is saved. - * - * @constant - * @type {Record} + * WordPress dependencies */ -const skipSerializationPathsSave = { - ...skipSerializationPathsEdit, - [`${DIMENSIONS_SUPPORT_KEY}.aspectRatio`]: [`${DIMENSIONS_SUPPORT_KEY}.aspectRatio`], - // Skip serialization of aspect ratio in save mode. - [`${BACKGROUND_SUPPORT_KEY}`]: [BACKGROUND_SUPPORT_KEY] // Skip serialization of background support in save mode. -}; -const skipSerializationPathsSaveChecks = { - [`${DIMENSIONS_SUPPORT_KEY}.aspectRatio`]: true, - [`${BACKGROUND_SUPPORT_KEY}`]: true -}; -/** - * A dictionary used to normalize feature names between support flags, style - * object properties and __experimentSkipSerialization configuration arrays. - * - * This allows not having to provide a migration for a support flag and possible - * backwards compatibility bridges, while still achieving consistency between - * the support flag and the skip serialization array. - * - * @constant - * @type {Record} - */ -const renamedFeatures = { - gradients: 'gradient' -}; + /** - * A utility function used to remove one or more paths from a style object. - * Works in a way similar to Lodash's `omit()`. See unit tests and examples below. - * - * It supports a single string path: - * - * ``` - * omitStyle( { color: 'red' }, 'color' ); // {} - * ``` - * - * or an array of paths: - * - * ``` - * omitStyle( { color: 'red', background: '#fff' }, [ 'color', 'background' ] ); // {} - * ``` - * - * It also allows you to specify paths at multiple levels in a string. - * - * ``` - * omitStyle( { typography: { textDecoration: 'underline' } }, 'typography.textDecoration' ); // {} - * ``` - * - * You can remove multiple paths at the same time: - * - * ``` - * omitStyle( - * { - * typography: { - * textDecoration: 'underline', - * textTransform: 'uppercase', - * } - * }, - * [ - * 'typography.textDecoration', - * 'typography.textTransform', - * ] - * ); - * // {} - * ``` - * - * You can also specify nested paths as arrays: - * - * ``` - * omitStyle( - * { - * typography: { - * textDecoration: 'underline', - * textTransform: 'uppercase', - * } - * }, - * [ - * [ 'typography', 'textDecoration' ], - * [ 'typography', 'textTransform' ], - * ] - * ); - * // {} - * ``` - * - * With regards to nesting of styles, infinite depth is supported: - * - * ``` - * omitStyle( - * { - * border: { - * radius: { - * topLeft: '10px', - * topRight: '0.5rem', - * } - * } - * }, - * [ - * [ 'border', 'radius', 'topRight' ], - * ] - * ); - * // { border: { radius: { topLeft: '10px' } } } - * ``` - * - * The third argument, `preserveReference`, defines how to treat the input style object. - * It is mostly necessary to properly handle mutation when recursively handling the style object. - * Defaulting to `false`, this will always create a new object, avoiding to mutate `style`. - * However, when recursing, we change that value to `true` in order to work with a single copy - * of the original style object. - * - * @see https://lodash.com/docs/4.17.15#omit - * - * @param {Object} style Styles object. - * @param {Array|string} paths Paths to remove. - * @param {boolean} preserveReference True to mutate the `style` object, false otherwise. - * @return {Object} Styles object with the specified paths removed. + * Internal dependencies */ -function omitStyle(style, paths, preserveReference = false) { - if (!style) { - return style; - } - let newStyle = style; - if (!preserveReference) { - newStyle = JSON.parse(JSON.stringify(style)); - } - if (!Array.isArray(paths)) { - paths = [paths]; - } - paths.forEach(path => { - if (!Array.isArray(path)) { - path = path.split('.'); + + +const withRegistryProvider = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => { + return (0,external_wp_data_namespaceObject.withRegistry)(({ + useSubRegistry = true, + registry, + ...props + }) => { + if (!useSubRegistry) { + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + registry: registry, + ...props + }); } - if (path.length > 1) { - const [firstSubpath, ...restPath] = path; - omitStyle(newStyle[firstSubpath], [restPath], true); - } else if (path.length === 1) { - delete newStyle[path[0]]; + const [subRegistry, setSubRegistry] = (0,external_wp_element_namespaceObject.useState)(null); + (0,external_wp_element_namespaceObject.useEffect)(() => { + const newRegistry = (0,external_wp_data_namespaceObject.createRegistry)({}, registry); + newRegistry.registerStore(STORE_NAME, storeConfig); + setSubRegistry(newRegistry); + }, [registry]); + if (!subRegistry) { + return null; } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.RegistryProvider, { + value: subRegistry + }, (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + registry: subRegistry, + ...props + })); }); - return newStyle; -} +}, 'withRegistryProvider'); +/* harmony default export */ var with_registry_provider = (withRegistryProvider); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/use-block-sync.js /** - * Override props assigned to save component to inject the CSS variables definition. + * WordPress dependencies + */ + + + + +/** + * Internal dependencies + */ + +const use_block_sync_noop = () => {}; + +/** + * A function to call when the block value has been updated in the block-editor + * store. * - * @param {Object} props Additional props applied to save element. - * @param {Object|string} blockNameOrType Block type. - * @param {Object} attributes Block attributes. - * @param {?Record} skipPaths An object of keys and paths to skip serialization. + * @callback onBlockUpdate + * @param {Object[]} blocks The updated blocks. + * @param {Object} options The updated block options, such as selectionStart + * and selectionEnd. + */ + +/** + * useBlockSync is a side effect which handles bidirectional sync between the + * block-editor store and a controlling data source which provides blocks. This + * is most commonly used by the BlockEditorProvider to synchronize the contents + * of the block-editor store with the root entity, like a post. * - * @return {Object} Filtered props applied to save element. + * Another example would be the template part block, which provides blocks from + * a separate entity data source than a root entity. This hook syncs edits to + * the template part in the block editor back to the entity and vice-versa. + * + * Here are some of its basic functions: + * - Initalizes the block-editor store for the given clientID to the blocks + * given via props. + * - Adds incoming changes (like undo) to the block-editor store. + * - Adds outgoing changes (like editing content) to the controlling entity, + * determining if a change should be considered persistent or not. + * - Handles edge cases and race conditions which occur in those operations. + * - Ignores changes which happen to other entities (like nested inner block + * controllers. + * - Passes selection state from the block-editor store to the controlling entity. + * + * @param {Object} props Props for the block sync hook + * @param {string} props.clientId The client ID of the inner block controller. + * If none is passed, then it is assumed to be a + * root controller rather than an inner block + * controller. + * @param {Object[]} props.value The control value for the blocks. This value + * is used to initalize the block-editor store + * and for resetting the blocks to incoming + * changes like undo. + * @param {Object} props.selection The selection state responsible to restore the selection on undo/redo. + * @param {onBlockUpdate} props.onChange Function to call when a persistent + * change has been made in the block-editor blocks + * for the given clientId. For example, after + * this function is called, an entity is marked + * dirty because it has changes to save. + * @param {onBlockUpdate} props.onInput Function to call when a non-persistent + * change has been made in the block-editor blocks + * for the given clientId. When this is called, + * controlling sources do not become dirty. */ -function style_addSaveProps(props, blockNameOrType, attributes, skipPaths = skipSerializationPathsSave) { - if (!hasStyleSupport(blockNameOrType)) { - return props; - } - let { - style - } = attributes; - Object.entries(skipPaths).forEach(([indicator, path]) => { - const skipSerialization = skipSerializationPathsSaveChecks[indicator] || (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockNameOrType, indicator); - if (skipSerialization === true) { - style = omitStyle(style, path); +function useBlockSync({ + clientId = null, + value: controlledBlocks, + selection: controlledSelection, + onChange = use_block_sync_noop, + onInput = use_block_sync_noop +}) { + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const { + resetBlocks, + resetSelection, + replaceInnerBlocks, + selectBlock, + setHasControlledInnerBlocks, + __unstableMarkNextChangeAsNotPersistent + } = registry.dispatch(store); + const { + hasSelectedBlock, + getBlockName, + getBlocks, + getSelectionStart, + getSelectionEnd, + getBlock + } = registry.select(store); + const isControlled = (0,external_wp_data_namespaceObject.useSelect)(select => { + return !clientId || select(store).areInnerBlocksControlled(clientId); + }, [clientId]); + const pendingChanges = (0,external_wp_element_namespaceObject.useRef)({ + incoming: null, + outgoing: [] + }); + const subscribed = (0,external_wp_element_namespaceObject.useRef)(false); + const setControlledBlocks = () => { + if (!controlledBlocks) { + return; } - if (Array.isArray(skipSerialization)) { - skipSerialization.forEach(featureName => { - const feature = renamedFeatures[featureName] || featureName; - style = omitStyle(style, [[...path, feature]]); + + // We don't need to persist this change because we only replace + // controlled inner blocks when the change was caused by an entity, + // and so it would already be persisted. + __unstableMarkNextChangeAsNotPersistent(); + if (clientId) { + // It is important to batch here because otherwise, + // as soon as `setHasControlledInnerBlocks` is called + // the effect to restore might be triggered + // before the actual blocks get set properly in state. + registry.batch(() => { + setHasControlledInnerBlocks(clientId, true); + const storeBlocks = controlledBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); + if (subscribed.current) { + pendingChanges.current.incoming = storeBlocks; + } + __unstableMarkNextChangeAsNotPersistent(); + replaceInnerBlocks(clientId, storeBlocks); }); + } else { + if (subscribed.current) { + pendingChanges.current.incoming = controlledBlocks; + } + resetBlocks(controlledBlocks); } - }); - props.style = { - ...getInlineStyles(style), - ...props.style }; - return props; -} -function BlockStyleControls({ - clientId, - name, - setAttributes, - __unstableParentLayout -}) { - const settings = useBlockSettings(name, __unstableParentLayout); - const blockEditingMode = useBlockEditingMode(); - const passedProps = { - clientId, - name, - setAttributes, - settings + + // Clean up the changes made by setControlledBlocks() when the component + // containing useBlockSync() unmounts. + const unsetControlledBlocks = () => { + __unstableMarkNextChangeAsNotPersistent(); + if (clientId) { + setHasControlledInnerBlocks(clientId, false); + __unstableMarkNextChangeAsNotPersistent(); + replaceInnerBlocks(clientId, []); + } else { + resetBlocks([]); + } }; - if (blockEditingMode !== 'default') { - return null; - } - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(ColorEdit, { - ...passedProps - }), (0,external_React_.createElement)(BackgroundImagePanel, { - ...passedProps - }), (0,external_React_.createElement)(typography_TypographyPanel, { - ...passedProps - }), (0,external_React_.createElement)(border_BorderPanel, { - ...passedProps - }), (0,external_React_.createElement)(dimensions_DimensionsPanel, { - ...passedProps - }), (0,external_React_.createElement)(effects_EffectsPanel, { - ...passedProps - })); -} -/* harmony default export */ var style = ({ - edit: BlockStyleControls, - hasSupport: hasStyleSupport, - addSaveProps: style_addSaveProps, - attributeKeys: ['style'], - useBlockProps: style_useBlockProps -}); -// Defines which element types are supported, including their hover styles or -// any other elements that have been included under a single element type -// e.g. heading and h1-h6. -const elementTypes = [{ - elementType: 'button' -}, { - elementType: 'link', - pseudo: [':hover'] -}, { - elementType: 'heading', - elements: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] -}]; -function style_useBlockProps({ - name, - style -}) { - const blockElementsContainerIdentifier = `wp-elements-${(0,external_wp_compose_namespaceObject.useInstanceId)(style_useBlockProps)}`; + // Add a subscription to the block-editor registry to detect when changes + // have been made. This lets us inform the data source of changes. This + // is an effect so that the subscriber can run synchronously without + // waiting for React renders for changes. + const onInputRef = (0,external_wp_element_namespaceObject.useRef)(onInput); + const onChangeRef = (0,external_wp_element_namespaceObject.useRef)(onChange); + (0,external_wp_element_namespaceObject.useEffect)(() => { + onInputRef.current = onInput; + onChangeRef.current = onChange; + }, [onInput, onChange]); - // The .editor-styles-wrapper selector is required on elements styles. As it is - // added to all other editor styles, not providing it causes reset and global - // styles to override element styles because of higher specificity. - const baseElementSelector = `.editor-styles-wrapper .${blockElementsContainerIdentifier}`; - const blockElementStyles = style?.elements; - const styles = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!blockElementStyles) { - return; + // Determine if blocks need to be reset when they change. + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (pendingChanges.current.outgoing.includes(controlledBlocks)) { + // Skip block reset if the value matches expected outbound sync + // triggered by this component by a preceding change detection. + // Only skip if the value matches expectation, since a reset should + // still occur if the value is modified (not equal by reference), + // to allow that the consumer may apply modifications to reflect + // back on the editor. + if (pendingChanges.current.outgoing[pendingChanges.current.outgoing.length - 1] === controlledBlocks) { + pendingChanges.current.outgoing = []; + } + } else if (getBlocks(clientId) !== controlledBlocks) { + // Reset changing value in all other cases than the sync described + // above. Since this can be reached in an update following an out- + // bound sync, unset the outbound value to avoid considering it in + // subsequent renders. + pendingChanges.current.outgoing = []; + const hadSelecton = hasSelectedBlock(); + const selectionAnchor = getSelectionStart(); + const selectionFocus = getSelectionEnd(); + setControlledBlocks(); + if (controlledSelection) { + resetSelection(controlledSelection.selectionStart, controlledSelection.selectionEnd, controlledSelection.initialPosition); + } else { + const selectionStillExists = getBlock(selectionAnchor.clientId); + if (hadSelecton && !selectionStillExists) { + selectBlock(clientId); + } else { + resetSelection(selectionAnchor, selectionFocus); + } + } } - const elementCSSRules = []; - elementTypes.forEach(({ - elementType, - pseudo, - elements - }) => { - const skipSerialization = shouldSkipSerialization(name, COLOR_SUPPORT_KEY, elementType); - if (skipSerialization) { + }, [controlledBlocks, clientId]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // When the block becomes uncontrolled, it means its inner state has been reset + // we need to take the blocks again from the external value property. + if (!isControlled) { + pendingChanges.current.outgoing = []; + setControlledBlocks(); + } + }, [isControlled]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + const { + getSelectedBlocksInitialCaretPosition, + isLastBlockChangePersistent, + __unstableIsLastBlockChangeIgnored, + areInnerBlocksControlled + } = registry.select(store); + let blocks = getBlocks(clientId); + let isPersistent = isLastBlockChangePersistent(); + let previousAreBlocksDifferent = false; + subscribed.current = true; + const unsubscribe = registry.subscribe(() => { + // Sometimes, when changing block lists, lingering subscriptions + // might trigger before they are cleaned up. If the block for which + // the subscription runs is no longer in the store, this would clear + // its parent entity's block list. To avoid this, we bail out if + // the subscription is triggering for a block (`clientId !== null`) + // and its block name can't be found because it's not on the list. + // (`getBlockName( clientId ) === null`). + if (clientId !== null && getBlockName(clientId) === null) return; + + // When RESET_BLOCKS on parent blocks get called, the controlled blocks + // can reset to uncontrolled, in these situations, it means we need to populate + // the blocks again from the external blocks (the value property here) + // and we should stop triggering onChange + const isStillControlled = !clientId || areInnerBlocksControlled(clientId); + if (!isStillControlled) { return; } - const elementStyles = blockElementStyles?.[elementType]; - - // Process primary element type styles. - if (elementStyles) { - const selector = scopeSelector(baseElementSelector, external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[elementType]); - elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(elementStyles, { - selector - })); - - // Process any interactive states for the element type. - if (pseudo) { - pseudo.forEach(pseudoSelector => { - if (elementStyles[pseudoSelector]) { - elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(elementStyles[pseudoSelector], { - selector: scopeSelector(baseElementSelector, `${external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[elementType]}${pseudoSelector}`) - })); - } - }); - } + const newIsPersistent = isLastBlockChangePersistent(); + const newBlocks = getBlocks(clientId); + const areBlocksDifferent = newBlocks !== blocks; + blocks = newBlocks; + if (areBlocksDifferent && (pendingChanges.current.incoming || __unstableIsLastBlockChangeIgnored())) { + pendingChanges.current.incoming = null; + isPersistent = newIsPersistent; + return; } - // Process related elements e.g. h1-h6 for headings - if (elements) { - elements.forEach(element => { - if (blockElementStyles[element]) { - elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(blockElementStyles[element], { - selector: scopeSelector(baseElementSelector, external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[element]) - })); + // Since we often dispatch an action to mark the previous action as + // persistent, we need to make sure that the blocks changed on the + // previous action before committing the change. + const didPersistenceChange = previousAreBlocksDifferent && !areBlocksDifferent && newIsPersistent && !isPersistent; + if (areBlocksDifferent || didPersistenceChange) { + isPersistent = newIsPersistent; + // We know that onChange/onInput will update controlledBlocks. + // We need to be aware that it was caused by an outgoing change + // so that we do not treat it as an incoming change later on, + // which would cause a block reset. + pendingChanges.current.outgoing.push(blocks); + + // Inform the controlling entity that changes have been made to + // the block-editor store they should be aware about. + const updateParent = isPersistent ? onChangeRef.current : onInputRef.current; + updateParent(blocks, { + selection: { + selectionStart: getSelectionStart(), + selectionEnd: getSelectionEnd(), + initialPosition: getSelectedBlocksInitialCaretPosition() } }); } + previousAreBlocksDifferent = areBlocksDifferent; }); - return elementCSSRules.length > 0 ? elementCSSRules.join('') : undefined; - }, [baseElementSelector, blockElementStyles, name]); - useStyleOverride({ - css: styles - }); - return style_addSaveProps({ - className: blockElementsContainerIdentifier - }, name, { - style - }, skipSerializationPathsEdit); + return () => { + subscribed.current = false; + unsubscribe(); + }; + }, [registry, clientId]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + return () => { + unsetControlledBlocks(); + }; + }, []); } -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/style/addAttribute', style_addAttribute); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/settings.js +;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"] +var external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/keyboard-shortcuts/index.js +/** + * WordPress dependencies + */ + + + + +function KeyboardShortcuts() { + return null; +} +function KeyboardShortcutsRegister() { + // Registering the shortcuts. + const { + registerShortcut + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store); + (0,external_wp_element_namespaceObject.useEffect)(() => { + registerShortcut({ + name: 'core/block-editor/duplicate', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Duplicate the selected block(s).'), + keyCombination: { + modifier: 'primaryShift', + character: 'd' + } + }); + registerShortcut({ + name: 'core/block-editor/remove', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Remove the selected block(s).'), + keyCombination: { + modifier: 'access', + character: 'z' + } + }); + registerShortcut({ + name: 'core/block-editor/insert-before', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Insert a new block before the selected block(s).'), + keyCombination: { + modifier: 'primaryAlt', + character: 't' + } + }); + registerShortcut({ + name: 'core/block-editor/insert-after', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Insert a new block after the selected block(s).'), + keyCombination: { + modifier: 'primaryAlt', + character: 'y' + } + }); + registerShortcut({ + name: 'core/block-editor/delete-multi-selection', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Delete selection.'), + keyCombination: { + character: 'del' + }, + aliases: [{ + character: 'backspace' + }] + }); + registerShortcut({ + name: 'core/block-editor/select-all', + category: 'selection', + description: (0,external_wp_i18n_namespaceObject.__)('Select all text when typing. Press again to select all blocks.'), + keyCombination: { + modifier: 'primary', + character: 'a' + } + }); + registerShortcut({ + name: 'core/block-editor/unselect', + category: 'selection', + description: (0,external_wp_i18n_namespaceObject.__)('Clear selection.'), + keyCombination: { + character: 'escape' + } + }); + registerShortcut({ + name: 'core/block-editor/multi-text-selection', + category: 'selection', + description: (0,external_wp_i18n_namespaceObject.__)('Select text across multiple blocks.'), + keyCombination: { + modifier: 'shift', + character: 'arrow' + } + }); + registerShortcut({ + name: 'core/block-editor/focus-toolbar', + category: 'global', + description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the nearest toolbar.'), + keyCombination: { + modifier: 'alt', + character: 'F10' + } + }); + registerShortcut({ + name: 'core/block-editor/move-up', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Move the selected block(s) up.'), + keyCombination: { + modifier: 'secondary', + character: 't' + } + }); + registerShortcut({ + name: 'core/block-editor/move-down', + category: 'block', + description: (0,external_wp_i18n_namespaceObject.__)('Move the selected block(s) down.'), + keyCombination: { + modifier: 'secondary', + character: 'y' + } + }); + }, [registerShortcut]); + return null; +} +KeyboardShortcuts.Register = KeyboardShortcutsRegister; +/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/index.js + /** * WordPress dependencies */ -const hasSettingsSupport = blockType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, '__experimentalSettings', false); -function settings_addAttribute(settings) { - if (!hasSettingsSupport(settings)) { - return settings; - } - - // Allow blocks to specify their own attribute definition with default values if needed. - if (!settings?.attributes?.settings) { - settings.attributes = { - ...settings.attributes, - settings: { - type: 'object' - } - }; - } - return settings; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/settings/addAttribute', settings_addAttribute); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/filter.js /** - * WordPress dependencies + * Internal dependencies */ -const filter = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 4 4 19h16L12 4zm0 3.2 5.5 10.3H12V7.2z" -})); -/* harmony default export */ var library_filter = (filter); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/duotone-control/index.js -/** - * WordPress dependencies - */ +/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */ -function DuotoneControl({ - id: idProp, - colorPalette, - duotonePalette, - disableCustomColors, - disableCustomDuotone, - value, - onChange -}) { - let toolbarIcon; - if (value === 'unset') { - toolbarIcon = (0,external_React_.createElement)(external_wp_components_namespaceObject.ColorIndicator, { - className: "block-editor-duotone-control__unset-indicator" - }); - } else if (value) { - toolbarIcon = (0,external_React_.createElement)(external_wp_components_namespaceObject.DuotoneSwatch, { - values: value - }); - } else { - toolbarIcon = (0,external_React_.createElement)(build_module_icon, { - icon: library_filter +const ExperimentalBlockEditorProvider = with_registry_provider(props => { + const { + children, + settings, + stripExperimentalSettings = false + } = props; + const { + __experimentalUpdateSettings + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + (0,external_wp_element_namespaceObject.useEffect)(() => { + __experimentalUpdateSettings({ + ...settings, + __internalIsInitialized: true + }, { + stripExperimentalSettings, + reset: true }); - } - const actionLabel = (0,external_wp_i18n_namespaceObject.__)('Apply duotone filter'); - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(DuotoneControl, 'duotone-control', idProp); - const descriptionId = `${id}__description`; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: { - className: 'block-editor-duotone-control__popover', - headerTitle: (0,external_wp_i18n_namespaceObject.__)('Duotone') - }, - renderToggle: ({ - isOpen, - onToggle - }) => { - const openOnArrowDown = event => { - if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { - event.preventDefault(); - onToggle(); - } - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - showTooltip: true, - onClick: onToggle, - "aria-haspopup": "true", - "aria-expanded": isOpen, - onKeyDown: openOnArrowDown, - label: actionLabel, - icon: toolbarIcon - }); - }, - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Duotone') - }, (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Create a two-tone color effect without losing your original image.')), (0,external_React_.createElement)(external_wp_components_namespaceObject.DuotonePicker, { - "aria-label": actionLabel, - "aria-describedby": descriptionId, - colorPalette: colorPalette, - duotonePalette: duotonePalette, - disableCustomColors: disableCustomColors, - disableCustomDuotone: disableCustomDuotone, - value: value, - onChange: onChange - })) - }); -} -/* harmony default export */ var duotone_control = (DuotoneControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/duotone/utils.js -/** - * External dependencies - */ + }, [settings, stripExperimentalSettings, __experimentalUpdateSettings]); + // Syncs the entity provider with changes in the block-editor store. + useBlockSync(props); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SlotFillProvider, { + passthrough: true + }, (0,external_wp_element_namespaceObject.createElement)(keyboard_shortcuts.Register, null), (0,external_wp_element_namespaceObject.createElement)(BlockRefsProvider, null, children)); +}); +const BlockEditorProvider = props => { + return (0,external_wp_element_namespaceObject.createElement)(ExperimentalBlockEditorProvider, { + ...props, + stripExperimentalSettings: true + }, props.children); +}; +/* harmony default export */ var provider = (BlockEditorProvider); -/** - * Convert a list of colors to an object of R, G, and B values. - * - * @param {string[]} colors Array of RBG color strings. - * - * @return {Object} R, G, and B values. - */ -function getValuesFromColors(colors = []) { - const values = { - r: [], - g: [], - b: [], - a: [] - }; - colors.forEach(color => { - const rgbColor = w(color).toRgb(); - values.r.push(rgbColor.r / 255); - values.g.push(rgbColor.g / 255); - values.b.push(rgbColor.b / 255); - values.a.push(rgbColor.a); - }); - return values; -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-selection-clearer/index.js /** - * Stylesheet for disabling a global styles duotone filter. - * - * @param {string} selector Selector to disable the filter for. - * - * @return {string} Filter none style. + * WordPress dependencies */ -function getDuotoneUnsetStylesheet(selector) { - return `${selector}{filter:none}`; -} -/** - * SVG and stylesheet needed for rendering the duotone filter. - * - * @param {string} selector Selector to apply the filter to. - * @param {string} id Unique id for this duotone filter. - * - * @return {string} Duotone filter style. - */ -function getDuotoneStylesheet(selector, id) { - return `${selector}{filter:url(#${id})}`; -} -/** - * The SVG part of the duotone filter. - * - * @param {string} id Unique id for this duotone filter. - * @param {string[]} colors Color strings from dark to light. - * - * @return {string} Duotone SVG. - */ -function getDuotoneFilter(id, colors) { - const values = getValuesFromColors(colors); - return ` -`; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/get-block-css-selector.js /** * Internal dependencies */ - /** - * Determine the CSS selector for the block type and target provided, returning - * it if available. - * - * @param {import('@wordpress/blocks').Block} blockType The block's type. - * @param {string|string[]} target The desired selector's target e.g. `root`, delimited string, or array path. - * @param {Object} options Options object. - * @param {boolean} options.fallback Whether or not to fallback to broader selector. + * Pass the returned ref callback to an element that should clear block + * selection. Selection will only be cleared if the element is clicked directly, + * not if a child element is clicked. * - * @return {?string} The CSS selector or `null` if no selector available. + * @return {import('react').RefCallback} Ref callback. */ -function getBlockCSSSelector(blockType, target = 'root', options = {}) { - if (!target) { - return null; - } +function useBlockSelectionClearer() { const { - fallback = false - } = options; + getSettings, + hasSelectedBlock, + hasMultiSelection + } = (0,external_wp_data_namespaceObject.useSelect)(store); const { - name, - selectors, - supports - } = blockType; - const hasSelectors = selectors && Object.keys(selectors).length > 0; - const path = Array.isArray(target) ? target.join('.') : target; - - // Root selector. - - // Calculated before returning as it can be used as a fallback for feature - // selectors later on. - let rootSelector = null; - if (hasSelectors && selectors.root) { - // Use the selectors API if available. - rootSelector = selectors?.root; - } else if (supports?.__experimentalSelector) { - // Use the old experimental selector supports property if set. - rootSelector = supports.__experimentalSelector; - } else { - // If no root selector found, generate default block class selector. - rootSelector = '.wp-block-' + name.replace('core/', '').replace('/', '-'); - } - - // Return selector if it's the root target we are looking for. - if (path === 'root') { - return rootSelector; - } - - // If target is not `root` or `duotone` we have a feature or subfeature - // as the target. If the target is a string convert to an array. - const pathArray = Array.isArray(target) ? target : target.split('.'); - - // Feature selectors ( may fallback to root selector ); - if (pathArray.length === 1) { - const fallbackSelector = fallback ? rootSelector : null; - - // Prefer the selectors API if available. - if (hasSelectors) { - // Get selector from either `feature.root` or shorthand path. - const featureSelector = getValueFromObjectPath(selectors, `${path}.root`, null) || getValueFromObjectPath(selectors, path, null); - - // Return feature selector if found or any available fallback. - return featureSelector || fallbackSelector; + clearSelectedBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + clearBlockSelection: isEnabled + } = getSettings(); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (!isEnabled) { + return; } + function onMouseDown(event) { + if (!hasSelectedBlock() && !hasMultiSelection()) { + return; + } - // Try getting old experimental supports selector value. - const featureSelector = getValueFromObjectPath(supports, `${path}.__experimentalSelector`, null); - - // If nothing to work with, provide fallback selector if available. - if (!featureSelector) { - return fallbackSelector; + // Only handle clicks on the element, not the children. + if (event.target !== node) { + return; + } + clearSelectedBlock(); } - - // Scope the feature selector by the block's root selector. - return scopeSelector(rootSelector, featureSelector); - } - - // Subfeature selector. - // This may fallback either to parent feature or root selector. - let subfeatureSelector; - - // Use selectors API if available. - if (hasSelectors) { - subfeatureSelector = getValueFromObjectPath(selectors, path, null); - } - - // Only return if we have a subfeature selector. - if (subfeatureSelector) { - return subfeatureSelector; - } - - // To this point we don't have a subfeature selector. If a fallback has been - // requested, remove subfeature from target path and return results of a - // call for the parent feature's selector. - if (fallback) { - return getBlockCSSSelector(blockType, pathArray[0], options); - } - - // We tried. - return null; + node.addEventListener('mousedown', onMouseDown); + return () => { + node.removeEventListener('mousedown', onMouseDown); + }; + }, [hasSelectedBlock, hasMultiSelection, clearSelectedBlock, isEnabled]); +} +function BlockSelectionClearer(props) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: useBlockSelectionClearer(), + ...props + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/filters-panel.js - -/** - * External dependencies - */ - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-multi-selection.js /** * WordPress dependencies */ - /** * Internal dependencies */ - -const filters_panel_EMPTY_ARRAY = []; -function useMultiOriginColorPresets(settings, { - presetSetting, - defaultSetting -}) { - const disableDefault = !settings?.color?.[defaultSetting]; - const userPresets = settings?.color?.[presetSetting]?.custom || filters_panel_EMPTY_ARRAY; - const themePresets = settings?.color?.[presetSetting]?.theme || filters_panel_EMPTY_ARRAY; - const defaultPresets = settings?.color?.[presetSetting]?.default || filters_panel_EMPTY_ARRAY; - return (0,external_wp_element_namespaceObject.useMemo)(() => [...userPresets, ...themePresets, ...(disableDefault ? filters_panel_EMPTY_ARRAY : defaultPresets)], [disableDefault, userPresets, themePresets, defaultPresets]); -} -function useHasFiltersPanel(settings) { - return useHasDuotoneControl(settings); -} -function useHasDuotoneControl(settings) { - return settings.color.customDuotone || settings.color.defaultDuotone || settings.color.duotone.length > 0; -} -function FiltersToolsPanel({ - resetAllFilter, - onChange, - value, - panelId, - children -}) { - const resetAll = () => { - const updatedValue = resetAllFilter(value); - onChange(updatedValue); +function selector(select) { + const { + isMultiSelecting, + getMultiSelectedBlockClientIds, + hasMultiSelection, + getSelectedBlockClientId, + getSelectedBlocksInitialCaretPosition, + __unstableIsFullySelected + } = select(store); + return { + isMultiSelecting: isMultiSelecting(), + multiSelectedBlockClientIds: getMultiSelectedBlockClientIds(), + hasMultiSelection: hasMultiSelection(), + selectedBlockClientId: getSelectedBlockClientId(), + initialPosition: getSelectedBlocksInitialCaretPosition(), + isFullSelection: __unstableIsFullySelected() }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - label: (0,external_wp_i18n_namespaceObject._x)('Filters', 'Name for applying graphical effects'), - resetAll: resetAll, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, children); } -const filters_panel_DEFAULT_CONTROLS = { - duotone: true -}; -const filters_panel_popoverProps = { - placement: 'left-start', - offset: 36, - shift: true, - className: 'block-editor-duotone-control__popover', - headerTitle: (0,external_wp_i18n_namespaceObject.__)('Duotone') -}; -const LabeledColorIndicator = ({ - indicator, - label -}) => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalZStack, { - isLayered: false, - offset: -8 -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - expanded: false -}, indicator === 'unset' || !indicator ? (0,external_React_.createElement)(external_wp_components_namespaceObject.ColorIndicator, { - className: "block-editor-duotone-control__unset-indicator" -}) : (0,external_React_.createElement)(external_wp_components_namespaceObject.DuotoneSwatch, { - values: indicator -}))), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - title: label -}, label)); -function FiltersPanel({ - as: Wrapper = FiltersToolsPanel, - value, - onChange, - inheritedValue = value, - settings, - panelId, - defaultControls = filters_panel_DEFAULT_CONTROLS -}) { - const decodeValue = rawValue => getValueFromVariable({ - settings - }, '', rawValue); +function useMultiSelection() { + const { + initialPosition, + isMultiSelecting, + multiSelectedBlockClientIds, + hasMultiSelection, + selectedBlockClientId, + isFullSelection + } = (0,external_wp_data_namespaceObject.useSelect)(selector, []); - // Duotone - const hasDuotoneEnabled = useHasDuotoneControl(settings); - const duotonePalette = useMultiOriginColorPresets(settings, { - presetSetting: 'duotone', - defaultSetting: 'defaultDuotone' - }); - const colorPalette = useMultiOriginColorPresets(settings, { - presetSetting: 'palette', - defaultSetting: 'defaultPalette' - }); - const duotone = decodeValue(inheritedValue?.filter?.duotone); - const setDuotone = newValue => { - const duotonePreset = duotonePalette.find(({ - colors - }) => { - return colors === newValue; - }); - const settedValue = duotonePreset ? `var:preset|duotone|${duotonePreset.slug}` : newValue; - onChange(setImmutably(value, ['filter', 'duotone'], settedValue)); - }; - const hasDuotone = () => !!value?.filter?.duotone; - const resetDuotone = () => setDuotone(undefined); - const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { - return { - ...previousValue, - filter: { - ...previousValue.filter, - duotone: undefined - } - }; - }, []); - return (0,external_React_.createElement)(Wrapper, { - resetAllFilter: resetAllFilter, - value: value, - onChange: onChange, - panelId: panelId - }, hasDuotoneEnabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - label: (0,external_wp_i18n_namespaceObject.__)('Duotone'), - hasValue: hasDuotone, - onDeselect: resetDuotone, - isShownByDefault: defaultControls.duotone, - panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: filters_panel_popoverProps, - className: "block-editor-global-styles-filters-panel__dropdown", - renderToggle: ({ - onToggle, - isOpen - }) => { - const toggleProps = { - onClick: onToggle, - className: classnames_default()({ - 'is-open': isOpen - }), - 'aria-expanded': isOpen - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { - isBordered: true, - isSeparated: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...toggleProps - }, (0,external_React_.createElement)(LabeledColorIndicator, { - indicator: duotone, - label: (0,external_wp_i18n_namespaceObject.__)('Duotone') - }))); - }, - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { - paddingSize: "small" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Duotone') - }, (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Create a two-tone color effect without losing your original image.')), (0,external_React_.createElement)(external_wp_components_namespaceObject.DuotonePicker, { - colorPalette: colorPalette, - duotonePalette: duotonePalette - // TODO: Re-enable both when custom colors are supported for block-level styles. - , - disableCustomColors: true, - disableCustomDuotone: true, - value: duotone, - onChange: setDuotone - }))) - }))); -} + /** + * When the component updates, and there is multi selection, we need to + * select the entire block contents. + */ + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + const { + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/duotone.js + // Allow initialPosition to bypass focus behavior. This is useful + // for the list view or other areas where we don't want to transfer + // focus to the editor canvas. + if (initialPosition === undefined || initialPosition === null) { + return; + } + if (!hasMultiSelection || isMultiSelecting) { + return; + } + const { + length + } = multiSelectedBlockClientIds; + if (length < 2) { + return; + } + if (!isFullSelection) { + return; + } -/** - * External dependencies - */ + // Allow cross contentEditable selection by temporarily making + // all content editable. We can't rely on using the store and + // React because re-rending happens too slowly. We need to be + // able to select across instances immediately. + node.contentEditable = true; + // For some browsers, like Safari, it is important that focus + // happens BEFORE selection removal. + node.focus(); + defaultView.getSelection().removeAllRanges(); + }, [hasMultiSelection, isMultiSelecting, multiSelectedBlockClientIds, selectedBlockClientId, initialPosition, isFullSelection]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-tab-nav.js /** * WordPress dependencies @@ -31754,285 +23719,191 @@ function FiltersPanel({ + /** * Internal dependencies */ +function useTabNav() { + const container = (0,external_wp_element_namespaceObject.useRef)(); + const focusCaptureBeforeRef = (0,external_wp_element_namespaceObject.useRef)(); + const focusCaptureAfterRef = (0,external_wp_element_namespaceObject.useRef)(); + const lastFocus = (0,external_wp_element_namespaceObject.useRef)(); + const { + hasMultiSelection, + getSelectedBlockClientId, + getBlockCount + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + setNavigationMode + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const isNavigationMode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isNavigationMode(), []); + // Don't allow tabbing to this element in Navigation mode. + const focusCaptureTabIndex = !isNavigationMode ? '0' : undefined; - - - - -const duotone_EMPTY_ARRAY = []; - -// Safari does not always update the duotone filter when the duotone colors -// are changed. This browser check is later used to force a re-render of the block -// element to ensure the duotone filter is updated. The check is included at the -// root of this file as it only needs to be run once per page load. -const isSafari = window?.navigator.userAgent && window.navigator.userAgent.includes('Safari') && !window.navigator.userAgent.includes('Chrome') && !window.navigator.userAgent.includes('Chromium'); -k([names]); -function useMultiOriginPresets({ - presetSetting, - defaultSetting -}) { - const [enableDefault, userPresets, themePresets, defaultPresets] = use_settings_useSettings(defaultSetting, `${presetSetting}.custom`, `${presetSetting}.theme`, `${presetSetting}.default`); - return (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPresets || duotone_EMPTY_ARRAY), ...(themePresets || duotone_EMPTY_ARRAY), ...(enableDefault && defaultPresets || duotone_EMPTY_ARRAY)], [enableDefault, userPresets, themePresets, defaultPresets]); -} -function getColorsFromDuotonePreset(duotone, duotonePalette) { - if (!duotone) { - return; - } - const preset = duotonePalette?.find(({ - slug - }) => { - return duotone === `var:preset|duotone|${slug}`; - }); - return preset ? preset.colors : undefined; -} -function getDuotonePresetFromColors(colors, duotonePalette) { - if (!colors || !Array.isArray(colors)) { - return; + // Reference that holds the a flag for enabling or disabling + // capturing on the focus capture elements. + const noCapture = (0,external_wp_element_namespaceObject.useRef)(); + function onFocusCapture(event) { + // Do not capture incoming focus if set by us in WritingFlow. + if (noCapture.current) { + noCapture.current = null; + } else if (hasMultiSelection()) { + container.current.focus(); + } else if (getSelectedBlockClientId()) { + lastFocus.current.focus(); + } else { + setNavigationMode(true); + const canvasElement = container.current.ownerDocument === event.target.ownerDocument ? container.current : container.current.ownerDocument.defaultView.frameElement; + const isBefore = + // eslint-disable-next-line no-bitwise + event.target.compareDocumentPosition(canvasElement) & event.target.DOCUMENT_POSITION_FOLLOWING; + const tabbables = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); + if (tabbables.length) { + const next = isBefore ? tabbables[0] : tabbables[tabbables.length - 1]; + next.focus(); + } + } } - const preset = duotonePalette?.find(duotonePreset => { - return duotonePreset?.colors?.every((val, index) => val === colors[index]); - }); - return preset ? `var:preset|duotone|${preset.slug}` : undefined; -} -function DuotonePanelPure({ - style, - setAttributes, - name -}) { - const duotoneStyle = style?.color?.duotone; - const settings = useBlockSettings(name); - const blockEditingMode = useBlockEditingMode(); - const duotonePalette = useMultiOriginPresets({ - presetSetting: 'color.duotone', - defaultSetting: 'color.defaultDuotone' + const before = (0,external_wp_element_namespaceObject.createElement)("div", { + ref: focusCaptureBeforeRef, + tabIndex: focusCaptureTabIndex, + onFocus: onFocusCapture }); - const colorPalette = useMultiOriginPresets({ - presetSetting: 'color.palette', - defaultSetting: 'color.defaultPalette' + const after = (0,external_wp_element_namespaceObject.createElement)("div", { + ref: focusCaptureAfterRef, + tabIndex: focusCaptureTabIndex, + onFocus: onFocusCapture }); - const [enableCustomColors, enableCustomDuotone] = use_settings_useSettings('color.custom', 'color.customDuotone'); - const disableCustomColors = !enableCustomColors; - const disableCustomDuotone = !enableCustomDuotone || colorPalette?.length === 0 && disableCustomColors; - if (duotonePalette?.length === 0 && disableCustomDuotone) { - return null; - } - if (blockEditingMode !== 'default') { - return null; - } - const duotonePresetOrColors = !Array.isArray(duotoneStyle) ? getColorsFromDuotonePreset(duotoneStyle, duotonePalette) : duotoneStyle; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(inspector_controls, { - group: "filter" - }, (0,external_React_.createElement)(FiltersPanel, { - value: { - filter: { - duotone: duotonePresetOrColors + const ref = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function onKeyDown(event) { + if (event.defaultPrevented) { + return; } - }, - onChange: newDuotone => { - const newStyle = { - ...style, - color: { - ...newDuotone?.filter - } - }; - setAttributes({ - style: newStyle - }); - }, - settings: settings - })), (0,external_React_.createElement)(block_controls, { - group: "block", - __experimentalShareWithChildBlocks: true - }, (0,external_React_.createElement)(duotone_control, { - duotonePalette: duotonePalette, - colorPalette: colorPalette, - disableCustomDuotone: disableCustomDuotone, - disableCustomColors: disableCustomColors, - value: duotonePresetOrColors, - onChange: newDuotone => { - const maybePreset = getDuotonePresetFromColors(newDuotone, duotonePalette); - const newStyle = { - ...style, - color: { - ...style?.color, - duotone: maybePreset !== null && maybePreset !== void 0 ? maybePreset : newDuotone // use preset or fallback to custom colors. - } - }; - - setAttributes({ - style: newStyle - }); - }, - settings: settings - }))); -} -/* harmony default export */ var duotone = ({ - shareWithChildBlocks: true, - edit: DuotonePanelPure, - useBlockProps: duotone_useBlockProps, - attributeKeys: ['style'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'filter.duotone'); - } -}); - -/** - * Filters registered block settings, extending attributes to include - * the `duotone` attribute. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. - */ -function addDuotoneAttributes(settings) { - // Previous `color.__experimentalDuotone` support flag is migrated via - // block_type_metadata_settings filter in `lib/block-supports/duotone.php`. - if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'filter.duotone')) { - return settings; - } - - // Allow blocks to specify their own attribute definition with default - // values if needed. - if (!settings.attributes.style) { - Object.assign(settings.attributes, { - style: { - type: 'object' + if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !hasMultiSelection()) { + event.preventDefault(); + setNavigationMode(true); + return; } - }); - } - return settings; -} -function useDuotoneStyles({ - clientId, - id: filterId, - selector: duotoneSelector, - attribute: duotoneAttr -}) { - const duotonePalette = useMultiOriginPresets({ - presetSetting: 'color.duotone', - defaultSetting: 'color.defaultDuotone' - }); - // Possible values for duotone attribute: - // 1. Array of colors - e.g. ['#000000', '#ffffff']. - // 2. Variable for an existing Duotone preset - e.g. 'var:preset|duotone|green-blue' or 'var(--wp--preset--duotone--green-blue)'' - // 3. A CSS string - e.g. 'unset' to remove globally applied duotone. - const isCustom = Array.isArray(duotoneAttr); - const duotonePreset = isCustom ? undefined : getColorsFromDuotonePreset(duotoneAttr, duotonePalette); - const isPreset = typeof duotoneAttr === 'string' && duotonePreset; - const isCSS = typeof duotoneAttr === 'string' && !isPreset; + // In Edit mode, Tab should focus the first tabbable element after + // the content, which is normally the sidebar (with block controls) + // and Shift+Tab should focus the first tabbable element before the + // content, which is normally the block toolbar. + // Arrow keys can be used, and Tab and arrow keys can be used in + // Navigation mode (press Esc), to navigate through blocks. + if (event.keyCode !== external_wp_keycodes_namespaceObject.TAB) { + return; + } + const isShift = event.shiftKey; + const direction = isShift ? 'findPrevious' : 'findNext'; + if (!hasMultiSelection() && !getSelectedBlockClientId()) { + // Preserve the behaviour of entering navigation mode when + // tabbing into the content without a block selection. + // `onFocusCapture` already did this previously, but we need to + // do it again here because after clearing block selection, + // focus land on the writing flow container and pressing Tab + // will no longer send focus through the focus capture element. + if (event.target === node) setNavigationMode(true); + return; + } + const nextTabbable = external_wp_dom_namespaceObject.focus.tabbable[direction](event.target); - // Match the structure of WP_Duotone_Gutenberg::render_duotone_support() in PHP. - let colors = null; - if (isPreset) { - // Array of colors. - colors = duotonePreset; - } else if (isCSS) { - // CSS filter property string (e.g. 'unset'). - colors = duotoneAttr; - } else if (isCustom) { - // Array of colors. - colors = duotoneAttr; - } + // We want to constrain the tabbing to the block and its child blocks. + // If the preceding form element is within a different block, + // such as two sibling image blocks in the placeholder state, + // we want shift + tab from the first form element to move to the image + // block toolbar and not the previous image block's form element. + const currentBlock = event.target.closest('[data-block]'); + const isElementPartOfSelectedBlock = currentBlock && nextTabbable && (isInSameBlock(currentBlock, nextTabbable) || isInsideRootBlock(currentBlock, nextTabbable)); - // Build the CSS selectors to which the filter will be applied. - const selectors = duotoneSelector.split(','); - const selectorsScoped = selectors.map(selectorPart => { - // Extra .editor-styles-wrapper specificity is needed in the editor - // since we're not using inline styles to apply the filter. We need to - // override duotone applied by global styles and theme.json. + // Allow tabbing from the block wrapper to a form element, + // and between form elements rendered in a block and its child blocks, + // such as inside a placeholder. Form elements are generally + // meant to be UI rather than part of the content. Ideally + // these are not rendered in the content and perhaps in the + // future they can be rendered in an iframe or shadow DOM. + if ((0,external_wp_dom_namespaceObject.isFormElement)(nextTabbable) && isElementPartOfSelectedBlock) { + return; + } + const next = isShift ? focusCaptureBeforeRef : focusCaptureAfterRef; - // Assuming the selector part is a subclass selector (not a tag name) - // so we can prepend the filter id class. If we want to support elements - // such as `img` or namespaces, we'll need to add a case for that here. - return `.${filterId}${selectorPart.trim()}`; - }); - const selector = selectorsScoped.join(', '); - const isValidFilter = Array.isArray(colors) || colors === 'unset'; - useStyleOverride(isValidFilter ? { - css: colors !== 'unset' ? getDuotoneStylesheet(selector, filterId) : getDuotoneUnsetStylesheet(selector), - __unstableType: 'presets' - } : undefined); - useStyleOverride(isValidFilter ? { - assets: colors !== 'unset' ? getDuotoneFilter(filterId, colors) : '', - __unstableType: 'svgs' - } : undefined); - const blockElement = useBlockElement(clientId); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!isValidFilter) return; + // Disable focus capturing on the focus capture element, so it + // doesn't refocus this block and so it allows default behaviour + // (moving focus to the next tabbable element). + noCapture.current = true; - // Safari does not always update the duotone filter when the duotone colors - // are changed. When using Safari, force the block element to be repainted by - // the browser to ensure any changes are reflected visually. This logic matches - // that used on the site frontend in `block-supports/duotone.php`. - if (blockElement && isSafari) { - const display = blockElement.style.display; - // Switch to `inline-block` to force a repaint. In the editor, `inline-block` - // is used instead of `none` to ensure that scroll position is not affected, - // as `none` results in the editor scrolling to the top of the block. - blockElement.style.display = 'inline-block'; - // Simply accessing el.offsetHeight flushes layout and style - // changes in WebKit without having to wait for setTimeout. - // eslint-disable-next-line no-unused-expressions - blockElement.offsetHeight; - blockElement.style.display = display; + // Focusing the focus capture element, which is located above and + // below the editor, should not scroll the page all the way up or + // down. + next.current.focus({ + preventScroll: true + }); } - }, [isValidFilter, blockElement]); -} -function duotone_useBlockProps({ - name, - style -}) { - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(duotone_useBlockProps); - const selector = (0,external_wp_element_namespaceObject.useMemo)(() => { - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - if (blockType) { - // Backwards compatibility for `supports.color.__experimentalDuotone` - // is provided via the `block_type_metadata_settings` filter. If - // `supports.filter.duotone` has not been set and the - // experimental property has been, the experimental property - // value is copied into `supports.filter.duotone`. - const duotoneSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'filter.duotone', false); - if (!duotoneSupport) { - return null; - } + function onFocusOut(event) { + lastFocus.current = event.target; + const { + ownerDocument + } = node; - // If the experimental duotone support was set, that value is - // to be treated as a selector and requires scoping. - const experimentalDuotone = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'color.__experimentalDuotone', false); - if (experimentalDuotone) { - const rootSelector = getBlockCSSSelector(blockType); - return typeof experimentalDuotone === 'string' ? scopeSelector(rootSelector, experimentalDuotone) : rootSelector; + // If focus disappears due to there being no blocks, move focus to + // the writing flow wrapper. + if (!event.relatedTarget && ownerDocument.activeElement === ownerDocument.body && getBlockCount() === 0) { + node.focus(); } + } - // Regular filter.duotone support uses filter.duotone selectors with fallbacks. - return getBlockCSSSelector(blockType, 'filter.duotone', { - fallback: true - }); + // When tabbing back to an element in block list, this event handler prevents scrolling if the + // focus capture divs (before/after) are outside of the viewport. (For example shift+tab back to a paragraph + // when focus is on a sidebar element. This prevents the scrollable writing area from jumping either to the + // top or bottom of the document. + // + // Note that it isn't possible to disable scrolling in the onFocus event. We need to intercept this + // earlier in the keypress handler, and call focus( { preventScroll: true } ) instead. + // https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus#parameters + function preventScrollOnTab(event) { + if (event.keyCode !== external_wp_keycodes_namespaceObject.TAB) { + return; + } + if (event.target?.getAttribute('role') === 'region') { + return; + } + if (container.current === event.target) { + return; + } + const isShift = event.shiftKey; + const direction = isShift ? 'findPrevious' : 'findNext'; + const target = external_wp_dom_namespaceObject.focus.tabbable[direction](event.target); + // Only do something when the next tabbable is a focus capture div (before/after) + if (target === focusCaptureBeforeRef.current || target === focusCaptureAfterRef.current) { + event.preventDefault(); + target.focus({ + preventScroll: true + }); + } } - }, [name]); - const attribute = style?.color?.duotone; - const filterClass = `wp-duotone-${id}`; - const shouldRender = selector && attribute; - useDuotoneStyles({ - clientId: id, - id: filterClass, - selector, - attribute - }); - return { - className: shouldRender ? filterClass : '' - }; + const { + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; + defaultView.addEventListener('keydown', preventScrollOnTab); + node.addEventListener('keydown', onKeyDown); + node.addEventListener('focusout', onFocusOut); + return () => { + defaultView.removeEventListener('keydown', preventScrollOnTab); + node.removeEventListener('keydown', onKeyDown); + node.removeEventListener('focusout', onFocusOut); + }; + }, []); + const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([container, ref]); + return [before, mergedRefs, after]; } -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/duotone/add-attributes', addDuotoneAttributes); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-display-information/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-arrow-nav.js /** * WordPress dependencies */ @@ -32040,907 +23911,928 @@ function duotone_useBlockProps({ + /** * Internal dependencies */ -/** @typedef {import('@wordpress/blocks').WPIcon} WPIcon */ /** - * Contains basic block's information for display reasons. + * Returns true if the element should consider edge navigation upon a keyboard + * event of the given directional key code, or false otherwise. * - * @typedef {Object} WPBlockDisplayInformation + * @param {Element} element HTML element to test. + * @param {number} keyCode KeyboardEvent keyCode to test. + * @param {boolean} hasModifier Whether a modifier is pressed. * - * @property {boolean} isSynced True if is a reusable block or template part - * @property {string} title Human-readable block type label. - * @property {WPIcon} icon Block type icon. - * @property {string} description A detailed block type description. - * @property {string} anchor HTML anchor. - * @property {name} name A custom, human readable name for the block. + * @return {boolean} Whether element should consider edge navigation. */ +function isNavigationCandidate(element, keyCode, hasModifier) { + const isVertical = keyCode === external_wp_keycodes_namespaceObject.UP || keyCode === external_wp_keycodes_namespaceObject.DOWN; + const { + tagName + } = element; + const elementType = element.getAttribute('type'); -/** - * Get the display label for a block's position type. - * - * @param {Object} attributes Block attributes. - * @return {string} The position type label. - */ -function getPositionTypeLabel(attributes) { - const positionType = attributes?.style?.position?.type; - if (positionType === 'sticky') { - return (0,external_wp_i18n_namespaceObject.__)('Sticky'); - } - if (positionType === 'fixed') { - return (0,external_wp_i18n_namespaceObject.__)('Fixed'); + // Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys. + if (isVertical && !hasModifier) { + if (tagName === 'INPUT') { + const verticalInputTypes = ['date', 'datetime-local', 'month', 'number', 'range', 'time', 'week']; + return !verticalInputTypes.includes(elementType); + } + return true; } - return null; -} - -/** - * Hook used to try to find a matching block variation and return - * the appropriate information for display reasons. In order to - * to try to find a match we need to things: - * 1. Block's client id to extract it's current attributes. - * 2. A block variation should have set `isActive` prop to a proper function. - * - * If for any reason a block variation match cannot be found, - * the returned information come from the Block Type. - * If no blockType is found with the provided clientId, returns null. - * - * @param {string} clientId Block's client id. - * @return {?WPBlockDisplayInformation} Block's display information, or `null` when the block or its type not found. - */ -function useBlockDisplayInformation(clientId) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - if (!clientId) return null; - const { - getBlockName, - getBlockAttributes, - __experimentalGetReusableBlockTitle - } = select(store); - const { - getBlockType, - getActiveBlockVariation - } = select(external_wp_blocks_namespaceObject.store); - const blockName = getBlockName(clientId); - const blockType = getBlockType(blockName); - if (!blockType) return null; - const attributes = getBlockAttributes(clientId); - const match = getActiveBlockVariation(blockName, attributes); - const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)(blockType); - const resusableTitle = isReusable ? __experimentalGetReusableBlockTitle(attributes.ref) : undefined; - const title = resusableTitle || blockType.title; - const isSynced = isReusable || (0,external_wp_blocks_namespaceObject.isTemplatePart)(blockType); - const positionLabel = getPositionTypeLabel(attributes); - const blockTypeInfo = { - isSynced, - title, - icon: blockType.icon, - description: blockType.description, - anchor: attributes?.anchor, - positionLabel, - positionType: attributes?.style?.position?.type, - name: attributes?.metadata?.name - }; - if (!match) return blockTypeInfo; - return { - isSynced, - title: match.title || blockType.title, - icon: match.icon || blockType.icon, - description: match.description || blockType.description, - anchor: attributes?.anchor, - positionLabel, - positionType: attributes?.style?.position?.type, - name: attributes?.metadata?.name - }; - }, [clientId]); -} + // Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys. + if (tagName === 'INPUT') { + const simpleInputTypes = ['button', 'checkbox', 'number', 'color', 'file', 'image', 'radio', 'reset', 'submit']; + return simpleInputTypes.includes(elementType); + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/position.js + // Native textareas should not navigate horizontally. + return tagName !== 'TEXTAREA'; +} /** - * External dependencies + * Returns the optimal tab target from the given focused element in the desired + * direction. A preference is made toward text fields, falling back to the block + * focus stop if no other candidates exist for the block. + * + * @param {Element} target Currently focused text field. + * @param {boolean} isReverse True if considering as the first field. + * @param {Element} containerElement Element containing all blocks. + * @param {boolean} onlyVertical Whether to only consider tabbable elements + * that are visually above or under the + * target. + * + * @return {?Element} Optimal tab target, if one exists. */ +function getClosestTabbable(target, isReverse, containerElement, onlyVertical) { + // Since the current focus target is not guaranteed to be a text field, find + // all focusables. Tabbability is considered later. + let focusableNodes = external_wp_dom_namespaceObject.focus.focusable.find(containerElement); + if (isReverse) { + focusableNodes.reverse(); + } + // Consider as candidates those focusables after the current target. It's + // assumed this can only be reached if the target is focusable (on its + // keydown event), so no need to verify it exists in the set. + focusableNodes = focusableNodes.slice(focusableNodes.indexOf(target) + 1); + let targetRect; + if (onlyVertical) { + targetRect = target.getBoundingClientRect(); + } + function isTabCandidate(node) { + // Skip if there's only one child that is content editable (and thus a + // better candidate). + if (node.children.length === 1 && isInSameBlock(node, node.firstElementChild) && node.firstElementChild.getAttribute('contenteditable') === 'true') { + return; + } -/** - * WordPress dependencies - */ + // Not a candidate if the node is not tabbable. + if (!external_wp_dom_namespaceObject.focus.tabbable.isTabbableIndex(node)) { + return false; + } + // Skip focusable elements such as links within content editable nodes. + if (node.isContentEditable && node.contentEditable !== 'true') { + return false; + } + if (onlyVertical) { + const nodeRect = node.getBoundingClientRect(); + if (nodeRect.left >= targetRect.right || nodeRect.right <= targetRect.left) { + return false; + } + } + return true; + } + return focusableNodes.find(isTabCandidate); +} +function useArrowNav() { + const { + getMultiSelectedBlocksStartClientId, + getMultiSelectedBlocksEndClientId, + getSettings, + hasMultiSelection, + __unstableIsFullySelected + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + // Here a DOMRect is stored while moving the caret vertically so + // vertical position of the start position can be restored. This is to + // recreate browser behaviour across blocks. + let verticalRect; + function onMouseDown() { + verticalRect = null; + } + function isClosestTabbableABlock(target, isReverse) { + const closestTabbable = getClosestTabbable(target, isReverse, node); + return closestTabbable && getBlockClientId(closestTabbable); + } + function onKeyDown(event) { + // Abort if navigation has already been handled (e.g. RichText + // inline boundaries). + if (event.defaultPrevented) { + return; + } + const { + keyCode, + target, + shiftKey, + ctrlKey, + altKey, + metaKey + } = event; + const isUp = keyCode === external_wp_keycodes_namespaceObject.UP; + const isDown = keyCode === external_wp_keycodes_namespaceObject.DOWN; + const isLeft = keyCode === external_wp_keycodes_namespaceObject.LEFT; + const isRight = keyCode === external_wp_keycodes_namespaceObject.RIGHT; + const isReverse = isUp || isLeft; + const isHorizontal = isLeft || isRight; + const isVertical = isUp || isDown; + const isNav = isHorizontal || isVertical; + const hasModifier = shiftKey || ctrlKey || altKey || metaKey; + const isNavEdge = isVertical ? external_wp_dom_namespaceObject.isVerticalEdge : external_wp_dom_namespaceObject.isHorizontalEdge; + const { + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; + if (!isNav) { + return; + } + // If there is a multi-selection, the arrow keys should collapse the + // selection to the start or end of the selection. + if (hasMultiSelection()) { + if (shiftKey) { + return; + } + // Only handle if we have a full selection (not a native partial + // selection). + if (!__unstableIsFullySelected()) { + return; + } + event.preventDefault(); + if (isReverse) { + selectBlock(getMultiSelectedBlocksStartClientId()); + } else { + selectBlock(getMultiSelectedBlocksEndClientId(), -1); + } + return; + } + // Abort if our current target is not a candidate for navigation + // (e.g. preserve native input behaviors). + if (!isNavigationCandidate(target, keyCode, hasModifier)) { + return; + } + // When presing any key other than up or down, the initial vertical + // position must ALWAYS be reset. The vertical position is saved so + // it can be restored as well as possible on sebsequent vertical + // arrow key presses. It may not always be possible to restore the + // exact same position (such as at an empty line), so it wouldn't be + // good to compute the position right before any vertical arrow key + // press. + if (!isVertical) { + verticalRect = null; + } else if (!verticalRect) { + verticalRect = (0,external_wp_dom_namespaceObject.computeCaretRect)(defaultView); + } + // In the case of RTL scripts, right means previous and left means + // next, which is the exact reverse of LTR. + const isReverseDir = (0,external_wp_dom_namespaceObject.isRTL)(target) ? !isReverse : isReverse; + const { + keepCaretInsideBlock + } = getSettings(); + if (shiftKey) { + if (isClosestTabbableABlock(target, isReverse) && isNavEdge(target, isReverse)) { + node.contentEditable = true; + // Firefox doesn't automatically move focus. + node.focus(); + } + } else if (isVertical && (0,external_wp_dom_namespaceObject.isVerticalEdge)(target, isReverse) && ( + // When Alt is pressed, only intercept if the caret is also at + // the horizontal edge. + altKey ? (0,external_wp_dom_namespaceObject.isHorizontalEdge)(target, isReverseDir) : true) && !keepCaretInsideBlock) { + const closestTabbable = getClosestTabbable(target, isReverse, node, true); + if (closestTabbable) { + (0,external_wp_dom_namespaceObject.placeCaretAtVerticalEdge)(closestTabbable, + // When Alt is pressed, place the caret at the furthest + // horizontal edge and the furthest vertical edge. + altKey ? !isReverse : isReverse, altKey ? undefined : verticalRect); + event.preventDefault(); + } + } else if (isHorizontal && defaultView.getSelection().isCollapsed && (0,external_wp_dom_namespaceObject.isHorizontalEdge)(target, isReverseDir) && !keepCaretInsideBlock) { + const closestTabbable = getClosestTabbable(target, isReverseDir, node); + (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(closestTabbable, isReverse); + event.preventDefault(); + } + } + node.addEventListener('mousedown', onMouseDown); + node.addEventListener('keydown', onKeyDown); + return () => { + node.removeEventListener('mousedown', onMouseDown); + node.removeEventListener('keydown', onKeyDown); + }; + }, []); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-select-all.js /** - * Internal dependencies + * WordPress dependencies */ - -const { - CustomSelectControl -} = unlock(external_wp_components_namespaceObject.privateApis); -const POSITION_SUPPORT_KEY = 'position'; -const OPTION_CLASSNAME = 'block-editor-hooks__position-selection__select-control__option'; -const DEFAULT_OPTION = { - key: 'default', - value: '', - name: (0,external_wp_i18n_namespaceObject.__)('Default'), - className: OPTION_CLASSNAME -}; -const STICKY_OPTION = { - key: 'sticky', - value: 'sticky', - name: (0,external_wp_i18n_namespaceObject._x)('Sticky', 'Name for the value of the CSS position property'), - className: OPTION_CLASSNAME, - __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('The block will stick to the top of the window instead of scrolling.') -}; -const FIXED_OPTION = { - key: 'fixed', - value: 'fixed', - name: (0,external_wp_i18n_namespaceObject._x)('Fixed', 'Name for the value of the CSS position property'), - className: OPTION_CLASSNAME, - __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('The block will not move when the page is scrolled.') -}; -const POSITION_SIDES = ['top', 'right', 'bottom', 'left']; -const VALID_POSITION_TYPES = ['sticky', 'fixed']; - /** - * Get calculated position CSS. - * - * @param {Object} props Component props. - * @param {string} props.selector Selector to use. - * @param {Object} props.style Style object. - * @return {string} The generated CSS rules. + * Internal dependencies */ -function getPositionCSS({ - selector, - style -}) { - let output = ''; + +function useSelectAll() { const { - type: positionType - } = style?.position || {}; - if (!VALID_POSITION_TYPES.includes(positionType)) { - return output; - } - output += `${selector} {`; - output += `position: ${positionType};`; - POSITION_SIDES.forEach(side => { - if (style?.position?.[side] !== undefined) { - output += `${side}: ${style.position[side]};`; + getBlockOrder, + getSelectedBlockClientIds, + getBlockRootClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + multiSelect, + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function onKeyDown(event) { + if (!isMatch('core/block-editor/select-all', event)) { + return; + } + const selectedClientIds = getSelectedBlockClientIds(); + if (selectedClientIds.length < 2 && !(0,external_wp_dom_namespaceObject.isEntirelySelected)(event.target)) { + return; + } + event.preventDefault(); + const [firstSelectedClientId] = selectedClientIds; + const rootClientId = getBlockRootClientId(firstSelectedClientId); + const blockClientIds = getBlockOrder(rootClientId); + + // If we have selected all sibling nested blocks, try selecting up a + // level. See: https://github.com/WordPress/gutenberg/pull/31859/ + if (selectedClientIds.length === blockClientIds.length) { + if (rootClientId) { + node.ownerDocument.defaultView.getSelection().removeAllRanges(); + selectBlock(rootClientId); + } + return; + } + multiSelect(blockClientIds[0], blockClientIds[blockClientIds.length - 1]); } - }); - if (positionType === 'sticky' || positionType === 'fixed') { - // TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json. - output += `z-index: 10`; - } - output += `}`; - return output; + node.addEventListener('keydown', onKeyDown); + return () => { + node.removeEventListener('keydown', onKeyDown); + }; + }, []); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-drag-selection.js /** - * Determines if there is sticky position support. - * - * @param {string|Object} blockType Block name or Block Type object. - * - * @return {boolean} Whether there is support. + * WordPress dependencies */ -function hasStickyPositionSupport(blockType) { - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); - return !!(true === support || support?.sticky); -} -/** - * Determines if there is fixed position support. - * - * @param {string|Object} blockType Block name or Block Type object. - * - * @return {boolean} Whether there is support. - */ -function hasFixedPositionSupport(blockType) { - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); - return !!(true === support || support?.fixed); -} -/** - * Determines if there is position support. - * - * @param {string|Object} blockType Block name or Block Type object. - * - * @return {boolean} Whether there is support. - */ -function hasPositionSupport(blockType) { - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); - return !!support; -} /** - * Checks if there is a current value in the position block support attributes. - * - * @param {Object} props Block props. - * @return {boolean} Whether or not the block has a position value set. + * Internal dependencies */ -function hasPositionValue(props) { - return props.attributes.style?.position?.type !== undefined; -} -/** - * Checks if the block is currently set to a sticky or fixed position. - * This check is helpful for determining how to position block toolbars or other elements. - * - * @param {Object} attributes Block attributes. - * @return {boolean} Whether or not the block is set to a sticky or fixed position. - */ -function hasStickyOrFixedPositionValue(attributes) { - const positionType = attributes.style?.position?.type; - return positionType === 'sticky' || positionType === 'fixed'; -} /** - * Resets the position block support attributes. This can be used when disabling - * the position support controls for a block via a `ToolsPanel`. + * Sets the `contenteditable` wrapper element to `value`. * - * @param {Object} props Block props. - * @param {Object} props.attributes Block's attributes. - * @param {Object} props.setAttributes Function to set block's attributes. + * @param {HTMLElement} node Block element. + * @param {boolean} value `contentEditable` value (true or false) */ -function resetPosition({ - attributes = {}, - setAttributes -}) { - const { - style = {} - } = attributes; - setAttributes({ - style: cleanEmptyObject({ - ...style, - position: { - ...style?.position, - type: undefined, - top: undefined, - right: undefined, - bottom: undefined, - left: undefined - } - }) - }); +function setContentEditableWrapper(node, value) { + node.contentEditable = value; + // Firefox doesn't automatically move focus. + if (value) node.focus(); } /** - * Custom hook that checks if position settings have been disabled. - * - * @param {string} name The name of the block. - * - * @return {boolean} Whether padding setting is disabled. - */ -function useIsPositionDisabled({ - name: blockName -} = {}) { - const [allowFixed, allowSticky] = use_settings_useSettings('position.fixed', 'position.sticky'); - const isDisabled = !allowFixed && !allowSticky; - return !hasPositionSupport(blockName) || isDisabled; -} - -/* - * Position controls rendered in an inspector control panel. - * - * @param {Object} props - * - * @return {Element} Position panel. + * Sets a multi-selection based on the native selection across blocks. */ -function PositionPanelPure({ - style = {}, - clientId, - name: blockName, - setAttributes -}) { - const allowFixed = hasFixedPositionSupport(blockName); - const allowSticky = hasStickyPositionSupport(blockName); - const value = style?.position?.type; +function useDragSelection() { const { - firstParentClientId - } = (0,external_wp_data_namespaceObject.useSelect)(select => { + startMultiSelect, + stopMultiSelect + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + isSelectionEnabled, + hasMultiSelection, + isDraggingBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { const { - getBlockParents - } = select(store); - const parents = getBlockParents(clientId); - return { - firstParentClientId: parents[parents.length - 1] - }; - }, [clientId]); - const blockInformation = useBlockDisplayInformation(firstParentClientId); - const stickyHelpText = allowSticky && value === STICKY_OPTION.value && blockInformation ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: the name of the parent block. */ - (0,external_wp_i18n_namespaceObject.__)('The block will stick to the scrollable area of the parent %s block.'), blockInformation.title) : null; - const options = (0,external_wp_element_namespaceObject.useMemo)(() => { - const availableOptions = [DEFAULT_OPTION]; - // Display options if they are allowed, or if a block already has a valid value set. - // This allows for a block to be switched off from a position type that is not allowed. - if (allowSticky || value === STICKY_OPTION.value) { - availableOptions.push(STICKY_OPTION); - } - if (allowFixed || value === FIXED_OPTION.value) { - availableOptions.push(FIXED_OPTION); - } - return availableOptions; - }, [allowFixed, allowSticky, value]); - const onChangeType = next => { - // For now, use a hard-coded `0px` value for the position. - // `0px` is preferred over `0` as it can be used in `calc()` functions. - // In the future, it could be useful to allow for an offset value. - const placementValue = '0px'; - const newStyle = { - ...style, - position: { - ...style?.position, - type: next, - top: next === 'sticky' || next === 'fixed' ? placementValue : undefined - } - }; - setAttributes({ - style: utils_cleanEmptyObject(newStyle) - }); - }; - const selectedOption = value ? options.find(option => option.value === value) || DEFAULT_OPTION : DEFAULT_OPTION; - - // Only display position controls if there is at least one option to choose from. - return external_wp_element_namespaceObject.Platform.select({ - web: options.length > 1 ? (0,external_React_.createElement)(inspector_controls, { - group: "position" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.BaseControl, { - className: "block-editor-hooks__position-selection", - __nextHasNoMarginBottom: true, - help: stickyHelpText - }, (0,external_React_.createElement)(CustomSelectControl, { - __nextUnconstrainedWidth: true, - __next40pxDefaultSize: true, - className: "block-editor-hooks__position-selection__select-control", - label: (0,external_wp_i18n_namespaceObject.__)('Position'), - hideLabelFromVision: true, - describedBy: (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Currently selected position. - (0,external_wp_i18n_namespaceObject.__)('Currently selected position: %s'), selectedOption.name), - options: options, - value: selectedOption, - __experimentalShowSelectedHint: true, - onChange: ({ - selectedItem - }) => { - onChangeType(selectedItem.value); - }, - size: '__unstable-large' - }))) : null, - native: null - }); -} -/* harmony default export */ var position = ({ - edit: function Edit(props) { - const isPositionDisabled = useIsPositionDisabled(props); - if (isPositionDisabled) { - return null; - } - return (0,external_React_.createElement)(PositionPanelPure, { - ...props - }); - }, - useBlockProps: position_useBlockProps, - attributeKeys: ['style'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, POSITION_SUPPORT_KEY); - } -}); -function position_useBlockProps({ - name, - style -}) { - const hasPositionBlockSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, POSITION_SUPPORT_KEY); - const isPositionDisabled = useIsPositionDisabled({ - name - }); - const allowPositionStyles = hasPositionBlockSupport && !isPositionDisabled; - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(position_useBlockProps); + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; + let anchorElement; + let rafId; + function onMouseUp() { + stopMultiSelect(); + // Equivalent to attaching the listener once. + defaultView.removeEventListener('mouseup', onMouseUp); + // The browser selection won't have updated yet at this point, + // so wait until the next animation frame to get the browser + // selection. + rafId = defaultView.requestAnimationFrame(() => { + if (hasMultiSelection()) { + return; + } - // Higher specificity to override defaults in editor UI. - const positionSelector = `.wp-container-${id}.wp-container-${id}`; + // If the selection is complete (on mouse up), and no + // multiple blocks have been selected, set focus back to the + // anchor element. if the anchor element contains the + // selection. Additionally, the contentEditable wrapper can + // now be disabled again. + setContentEditableWrapper(node, false); + const selection = defaultView.getSelection(); + if (selection.rangeCount) { + const { + commonAncestorContainer + } = selection.getRangeAt(0); + if (anchorElement.contains(commonAncestorContainer)) { + anchorElement.focus(); + } + } + }); + } + function onMouseLeave({ + buttons, + target + }) { + // Avoid triggering a multi-selection if the user is already + // dragging blocks. + if (isDraggingBlocks()) { + return; + } - // Get CSS string for the current position values. - let css; - if (allowPositionStyles) { - css = getPositionCSS({ - selector: positionSelector, - style - }) || ''; - } + // The primary button must be pressed to initiate selection. + // See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons + if (buttons !== 1) { + return; + } - // Attach a `wp-container-` id-based class name. - const className = classnames_default()({ - [`wp-container-${id}`]: allowPositionStyles && !!css, - // Only attach a container class if there is generated CSS to be attached. - [`is-position-${style?.position?.type}`]: allowPositionStyles && !!css && !!style?.position?.type - }); - useStyleOverride({ - css - }); - return { - className - }; -} + // Check the attribute, not the contentEditable attribute. All + // child elements of the content editable wrapper are editable + // and return true for this property. We only want to start + // multi selecting when the mouse leaves the wrapper. + if (target.getAttribute('contenteditable') !== 'true') { + return; + } + if (!isSelectionEnabled()) { + return; + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/layout.js + // Do not rely on the active element because it may change after + // the mouse leaves for the first time. See + // https://github.com/WordPress/gutenberg/issues/48747. + anchorElement = target; + startMultiSelect(); -/** - * External dependencies - */ + // `onSelectionStart` is called after `mousedown` and + // `mouseleave` (from a block). The selection ends when + // `mouseup` happens anywhere in the window. + defaultView.addEventListener('mouseup', onMouseUp); + // Allow cross contentEditable selection by temporarily making + // all content editable. We can't rely on using the store and + // React because re-rending happens too slowly. We need to be + // able to select across instances immediately. + setContentEditableWrapper(node, true); + } + node.addEventListener('mouseout', onMouseLeave); + return () => { + node.removeEventListener('mouseout', onMouseLeave); + defaultView.removeEventListener('mouseup', onMouseUp); + defaultView.cancelAnimationFrame(rafId); + }; + }, [startMultiSelect, stopMultiSelect, isSelectionEnabled, hasMultiSelection]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-selection-observer.js /** * WordPress dependencies */ - - - - /** * Internal dependencies */ - - - - - -const layoutBlockSupportKey = 'layout'; -function hasLayoutBlockSupport(blockName) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'layout') || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, '__experimentalLayout'); -} - /** - * Generates the utility classnames for the given block's layout attributes. + * Extract the selection start node from the selection. When the anchor node is + * not a text node, the selection offset is the index of a child node. * - * @param { Object } blockAttributes Block attributes. - * @param { string } blockName Block name. + * @param {Selection} selection The selection. * - * @return { Array } Array of CSS classname strings. + * @return {Element} The selection start node. */ -function useLayoutClasses(blockAttributes = {}, blockName = '') { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - const rootPaddingAlignment = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings - } = select(store); - return getSettings().__experimentalFeatures?.useRootPaddingAwareAlignments; - }, []); - const { - layout - } = blockAttributes; +function extractSelectionStartNode(selection) { const { - default: defaultBlockLayout - } = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, layoutBlockSupportKey) || {}; - const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { - ...layout, - type: 'constrained' - } : layout || defaultBlockLayout || {}; - const layoutClassnames = []; - if (LAYOUT_DEFINITIONS[usedLayout?.type || 'default']?.className) { - const baseClassName = LAYOUT_DEFINITIONS[usedLayout?.type || 'default']?.className; - const splitBlockName = blockName.split('/'); - const fullBlockName = splitBlockName[0] === 'core' ? splitBlockName.pop() : splitBlockName.join('-'); - const compoundClassName = `wp-block-${fullBlockName}-${baseClassName}`; - layoutClassnames.push(baseClassName, compoundClassName); + anchorNode, + anchorOffset + } = selection; + if (anchorNode.nodeType === anchorNode.TEXT_NODE) { + return anchorNode; } - if ((usedLayout?.inherit || usedLayout?.contentSize || usedLayout?.type === 'constrained') && rootPaddingAlignment) { - layoutClassnames.push('has-global-padding'); + if (anchorOffset === 0) { + return anchorNode; } - if (usedLayout?.orientation) { - layoutClassnames.push(`is-${kebabCase(usedLayout.orientation)}`); + return anchorNode.childNodes[anchorOffset - 1]; +} + +/** + * Extract the selection end node from the selection. When the focus node is not + * a text node, the selection offset is the index of a child node. The selection + * reaches up to but excluding that child node. + * + * @param {Selection} selection The selection. + * + * @return {Element} The selection start node. + */ +function extractSelectionEndNode(selection) { + const { + focusNode, + focusOffset + } = selection; + if (focusNode.nodeType === focusNode.TEXT_NODE) { + return focusNode; } - if (usedLayout?.justifyContent) { - layoutClassnames.push(`is-content-justification-${kebabCase(usedLayout.justifyContent)}`); + if (focusOffset === focusNode.childNodes.length) { + return focusNode; } - if (usedLayout?.flexWrap && usedLayout.flexWrap === 'nowrap') { - layoutClassnames.push('is-nowrap'); + return focusNode.childNodes[focusOffset]; +} +function findDepth(a, b) { + let depth = 0; + while (a[depth] === b[depth]) { + depth++; } - return layoutClassnames; + return depth; } /** - * Generates a CSS rule with the given block's layout styles. - * - * @param { Object } blockAttributes Block attributes. - * @param { string } blockName Block name. - * @param { string } selector A selector to use in generating the CSS rule. + * Sets the `contenteditable` wrapper element to `value`. * - * @return { string } CSS rule. + * @param {HTMLElement} node Block element. + * @param {boolean} value `contentEditable` value (true or false) */ -function useLayoutStyles(blockAttributes = {}, blockName, selector) { - const { - layout = {}, - style = {} - } = blockAttributes; - // Update type for blocks using legacy layouts. - const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { - ...layout, - type: 'constrained' - } : layout || {}; - const fullLayoutType = getLayoutType(usedLayout?.type || 'default'); - const [blockGapSupport] = use_settings_useSettings('spacing.blockGap'); - const hasBlockGapSupport = blockGapSupport !== null; - const css = fullLayoutType?.getLayoutStyle?.({ - blockName, - selector, - layout, - style, - hasBlockGapSupport - }); - return css; +function use_selection_observer_setContentEditableWrapper(node, value) { + // Since we are calling this on every selection change, check if the value + // needs to be updated first because it trigger the browser to recalculate + // style. + if (node.contentEditable !== String(value)) node.contentEditable = value; + // Firefox doesn't automatically move focus. + if (value) node.focus(); } -function LayoutPanelPure({ - layout, - setAttributes, - name: blockName -}) { - const settings = useBlockSettings(blockName); - // Block settings come from theme.json under settings.[blockName]. + +/** + * Sets a multi-selection based on the native selection across blocks. + */ +function useSelectionObserver() { const { - layout: layoutSettings - } = settings; - // Layout comes from block attributes. - const [defaultThemeLayout] = use_settings_useSettings('layout'); + multiSelect, + selectBlock, + selectionChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); const { - themeSupportsLayout - } = (0,external_wp_data_namespaceObject.useSelect)(select => { + getBlockParents, + getBlockSelectionStart + } = (0,external_wp_data_namespaceObject.useSelect)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { const { - getSettings - } = select(store); - return { - themeSupportsLayout: getSettings().supportsLayout + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; + function onSelectionChange(event) { + const selection = defaultView.getSelection(); + if (!selection.rangeCount) { + return; + } + + // If selection is collapsed and we haven't used `shift+click`, + // end multi selection and disable the contentEditable wrapper. + // We have to check about `shift+click` case because elements + // that don't support text selection might be involved, and we might + // update the clientIds to multi-select blocks. + // For now we check if the event is a `mouse` event. + const isClickShift = event.shiftKey && event.type === 'mouseup'; + if (selection.isCollapsed && !isClickShift) { + use_selection_observer_setContentEditableWrapper(node, false); + return; + } + let startClientId = getBlockClientId(extractSelectionStartNode(selection)); + let endClientId = getBlockClientId(extractSelectionEndNode(selection)); + // If the selection has changed and we had pressed `shift+click`, + // we need to check if in an element that doesn't support + // text selection has been clicked. + if (isClickShift) { + const selectedClientId = getBlockSelectionStart(); + const clickedClientId = getBlockClientId(event.target); + // `endClientId` is not defined if we end the selection by clicking a non-selectable block. + // We need to check if there was already a selection with a non-selectable focusNode. + const focusNodeIsNonSelectable = clickedClientId !== endClientId; + if (startClientId === endClientId && selection.isCollapsed || !endClientId || focusNodeIsNonSelectable) { + endClientId = clickedClientId; + } + // Handle the case when we have a non-selectable block + // selected and click another one. + if (startClientId !== selectedClientId) { + startClientId = selectedClientId; + } + } + + // If the selection did not involve a block, return. + if (startClientId === undefined && endClientId === undefined) { + use_selection_observer_setContentEditableWrapper(node, false); + return; + } + const isSingularSelection = startClientId === endClientId; + if (isSingularSelection) { + selectBlock(startClientId); + } else { + const startPath = [...getBlockParents(startClientId), startClientId]; + const endPath = [...getBlockParents(endClientId), endClientId]; + const depth = findDepth(startPath, endPath); + multiSelect(startPath[depth], endPath[depth]); + } + } + function addListeners() { + ownerDocument.addEventListener('selectionchange', onSelectionChange); + defaultView.addEventListener('mouseup', onSelectionChange); + } + function removeListeners() { + ownerDocument.removeEventListener('selectionchange', onSelectionChange); + defaultView.removeEventListener('mouseup', onSelectionChange); + } + function resetListeners() { + removeListeners(); + addListeners(); + } + addListeners(); + // We must allow rich text to set selection first. This ensures that + // our `selectionchange` listener is always reset to be called after + // the rich text one. + node.addEventListener('focusin', resetListeners); + return () => { + removeListeners(); + node.removeEventListener('focusin', resetListeners); }; - }, []); - const blockEditingMode = useBlockEditingMode(); - if (blockEditingMode !== 'default') { - return null; - } + }, [multiSelect, selectBlock, selectionChange, getBlockParents]); +} - // Layout block support comes from the block's block.json. - const layoutBlockSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, layoutBlockSupportKey, {}); - const blockSupportAndThemeSettings = { - ...layoutSettings, - ...layoutBlockSupport - }; - const { - allowSwitching, - allowEditing = true, - allowInheriting = true, - default: defaultBlockLayout - } = blockSupportAndThemeSettings; - if (!allowEditing) { - return null; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-click-selection.js +/** + * WordPress dependencies + */ - // Only show the inherit toggle if it's supported, - // a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values), - // and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other. - const showInheritToggle = !!(allowInheriting && !!defaultThemeLayout && (!layout?.type || layout?.type === 'default' || layout?.type === 'constrained' || layout?.inherit)); - const usedLayout = layout || defaultBlockLayout || {}; + + +/** + * Internal dependencies + */ + + +function useClickSelection() { const { - inherit = false, - type = 'default', - contentSize = null - } = usedLayout; - /** - * `themeSupportsLayout` is only relevant to the `default/flow` or - * `constrained` layouts and it should not be taken into account when other - * `layout` types are used. - */ - if ((type === 'default' || type === 'constrained') && !themeSupportsLayout) { - return null; - } - const layoutType = getLayoutType(type); - const constrainedType = getLayoutType('constrained'); - const displayControlsForLegacyLayouts = !usedLayout.type && (contentSize || inherit); - const hasContentSizeOrLegacySettings = !!inherit || !!contentSize; - const onChangeType = newType => setAttributes({ - layout: { - type: newType - } - }); - const onChangeLayout = newLayout => setAttributes({ - layout: newLayout - }); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(inspector_controls, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - title: (0,external_wp_i18n_namespaceObject.__)('Layout') - }, showInheritToggle && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-hooks__toggle-control", - label: (0,external_wp_i18n_namespaceObject.__)('Inner blocks use content width'), - checked: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings, - onChange: () => setAttributes({ - layout: { - type: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings ? 'default' : 'constrained' + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + isSelectionEnabled, + getBlockSelectionStart, + hasMultiSelection + } = (0,external_wp_data_namespaceObject.useSelect)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function onMouseDown(event) { + // The main button. + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button + if (!isSelectionEnabled() || event.button !== 0) { + return; } - }), - help: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings ? (0,external_wp_i18n_namespaceObject.__)('Nested blocks use content width with options for full and wide widths.') : (0,external_wp_i18n_namespaceObject.__)('Nested blocks will fill the width of this container. Toggle to constrain.') - })), !inherit && allowSwitching && (0,external_React_.createElement)(LayoutTypeSwitcher, { - type: type, - onChange: onChangeType - }), layoutType && layoutType.name !== 'default' && (0,external_React_.createElement)(layoutType.inspectorControls, { - layout: usedLayout, - onChange: onChangeLayout, - layoutBlockSupport: blockSupportAndThemeSettings - }), constrainedType && displayControlsForLegacyLayouts && (0,external_React_.createElement)(constrainedType.inspectorControls, { - layout: usedLayout, - onChange: onChangeLayout, - layoutBlockSupport: blockSupportAndThemeSettings - }))), !inherit && layoutType && (0,external_React_.createElement)(layoutType.toolBarControls, { - layout: usedLayout, - onChange: onChangeLayout, - layoutBlockSupport: layoutBlockSupport - })); -} -/* harmony default export */ var layout = ({ - shareWithChildBlocks: true, - edit: LayoutPanelPure, - attributeKeys: ['layout'], - hasSupport(name) { - return hasLayoutBlockSupport(name); - } -}); -function LayoutTypeSwitcher({ - type, - onChange -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ButtonGroup, null, getLayoutTypes().map(({ - name, - label - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: name, - isPressed: type === name, - onClick: () => onChange(name) - }, label); - })); + const startClientId = getBlockSelectionStart(); + const clickedClientId = getBlockClientId(event.target); + if (event.shiftKey) { + if (startClientId !== clickedClientId) { + node.contentEditable = true; + // Firefox doesn't automatically move focus. + node.focus(); + } + } else if (hasMultiSelection()) { + // Allow user to escape out of a multi-selection to a + // singular selection of a block via click. This is handled + // here since focus handling excludes blocks when there is + // multiselection, as focus can be incurred by starting a + // multiselection (focus moved to first block's multi- + // controls). + selectBlock(clickedClientId); + } + } + node.addEventListener('mousedown', onMouseDown); + return () => { + node.removeEventListener('mousedown', onMouseDown); + }; + }, [selectBlock, isSelectionEnabled, getBlockSelectionStart, hasMultiSelection]); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-input.js /** - * Filters registered block settings, extending attributes to include `layout`. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. + * WordPress dependencies */ -function layout_addAttribute(settings) { - var _settings$attributes$; - if ('type' in ((_settings$attributes$ = settings.attributes?.layout) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { - return settings; - } - if (hasLayoutBlockSupport(settings)) { - settings.attributes = { - ...settings.attributes, - layout: { - type: 'object' + + + + + +/** + * Internal dependencies + */ + + +/** + * Handles input for selections across blocks. + */ +function useInput() { + const { + __unstableIsFullySelected, + getSelectedBlockClientIds, + __unstableIsSelectionMergeable, + hasMultiSelection + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + replaceBlocks, + __unstableSplitSelection, + removeBlocks, + __unstableDeleteSelection, + __unstableExpandSelection + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function onBeforeInput(event) { + // If writing flow is editable, NEVER allow the browser to alter the + // DOM. This will cause React errors (and the DOM should only be + // altered in a controlled fashion). + if (node.contentEditable === 'true') { + event.preventDefault(); + } + } + function onKeyDown(event) { + if (event.defaultPrevented) { + return; + } + if (!hasMultiSelection()) { + return; + } + if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER) { + node.contentEditable = false; + event.preventDefault(); + if (__unstableIsFullySelected()) { + replaceBlocks(getSelectedBlockClientIds(), (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())); + } else { + __unstableSplitSelection(); + } + } else if (event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) { + node.contentEditable = false; + event.preventDefault(); + if (__unstableIsFullySelected()) { + removeBlocks(getSelectedBlockClientIds()); + } else if (__unstableIsSelectionMergeable()) { + __unstableDeleteSelection(event.keyCode === external_wp_keycodes_namespaceObject.DELETE); + } else { + __unstableExpandSelection(); + } + } else if ( + // If key.length is longer than 1, it's a control key that doesn't + // input anything. + event.key.length === 1 && !(event.metaKey || event.ctrlKey)) { + node.contentEditable = false; + if (__unstableIsSelectionMergeable()) { + __unstableDeleteSelection(event.keyCode === external_wp_keycodes_namespaceObject.DELETE); + } else { + event.preventDefault(); + // Safari does not stop default behaviour with either + // event.preventDefault() or node.contentEditable = false, so + // remove the selection to stop browser manipulation. + node.ownerDocument.defaultView.getSelection().removeAllRanges(); + } + } + } + function onCompositionStart(event) { + if (!hasMultiSelection()) { + return; + } + node.contentEditable = false; + if (__unstableIsSelectionMergeable()) { + __unstableDeleteSelection(); + } else { + event.preventDefault(); + // Safari does not stop default behaviour with either + // event.preventDefault() or node.contentEditable = false, so + // remove the selection to stop browser manipulation. + node.ownerDocument.defaultView.getSelection().removeAllRanges(); } + } + node.addEventListener('beforeinput', onBeforeInput); + node.addEventListener('keydown', onKeyDown); + node.addEventListener('compositionstart', onCompositionStart); + return () => { + node.removeEventListener('beforeinput', onBeforeInput); + node.removeEventListener('keydown', onKeyDown); + node.removeEventListener('compositionstart', onCompositionStart); }; - } - return settings; + }, []); } -function BlockWithLayoutStyles({ - block: BlockListBlock, - props -}) { - const { - name, - attributes - } = props; - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock); - const { - layout - } = attributes; - const { - default: defaultBlockLayout - } = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, layoutBlockSupportKey) || {}; - const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { - ...layout, - type: 'constrained' - } : layout || defaultBlockLayout || {}; - const layoutClasses = useLayoutClasses(attributes, name); - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - const selectorPrefix = `wp-container-${kebabCase(name)}-is-layout-`; - // Higher specificity to override defaults from theme.json. - const selector = `.${selectorPrefix}${id}.${selectorPrefix}${id}`; - const [blockGapSupport] = use_settings_useSettings('spacing.blockGap'); - const hasBlockGapSupport = blockGapSupport !== null; - - // Get CSS string for the current layout type. - // The CSS and `style` element is only output if it is not empty. - const fullLayoutType = getLayoutType(usedLayout?.type || 'default'); - const css = fullLayoutType?.getLayoutStyle?.({ - blockName: name, - selector, - layout: usedLayout, - style: attributes?.style, - hasBlockGapSupport - }); - // Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`. - const layoutClassNames = classnames_default()({ - [`${selectorPrefix}${id}`]: !!css // Only attach a container class if there is generated CSS to be attached. - }, layoutClasses); - useStyleOverride({ - css - }); - return (0,external_React_.createElement)(BlockListBlock, { - ...props, - __unstableLayoutClassNames: layoutClassNames - }); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/index.js /** - * Override the default block element to add the layout styles. - * - * @param {Function} BlockListBlock Original component. - * - * @return {Function} Wrapped component. + * External dependencies */ -const withLayoutStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { - const blockSupportsLayout = hasLayoutBlockSupport(props.name); - const shouldRenderLayoutStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { - // The callback returns early to avoid block editor subscription. - if (!blockSupportsLayout) { - return false; - } - return !select(store).getSettings().disableLayoutStyles; - }, [blockSupportsLayout]); - if (!shouldRenderLayoutStyles) { - return (0,external_React_.createElement)(BlockListBlock, { - ...props - }); - } - return (0,external_React_.createElement)(BlockWithLayoutStyles, { - block: BlockListBlock, - props: props - }); -}, 'withLayoutStyles'); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/layout/addAttribute', layout_addAttribute); -(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/layout/with-layout-styles', withLayoutStyles); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/layout-child.js + /** * WordPress dependencies */ + + /** * Internal dependencies */ -function useBlockPropsChildLayoutStyles({ - style -}) { - var _style$layout; - const shouldRenderChildLayoutStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { - return !select(store).getSettings().disableLayoutStyles; - }); - const layout = (_style$layout = style?.layout) !== null && _style$layout !== void 0 ? _style$layout : {}; - const { - selfStretch, - flexSize - } = layout; - const id = (0,external_wp_compose_namespaceObject.useInstanceId)(useBlockPropsChildLayoutStyles); - const selector = `.wp-container-content-${id}`; - let css = ''; - if (shouldRenderChildLayoutStyles) { - if (selfStretch === 'fixed' && flexSize) { - css = `${selector} { - flex-basis: ${flexSize}; - box-sizing: border-box; - }`; - } else if (selfStretch === 'fill') { - css = `${selector} { - flex-grow: 1; - }`; - } - } - useStyleOverride({ - css - }); - // Only attach a container class if there is generated CSS to be attached. - if (!css) { - return; - } - // Attach a `wp-container-content` id-based classname. - return { - className: `wp-container-content-${id}` - }; + + + + + +function useWritingFlow() { + const [before, ref, after] = useTabNav(); + const hasMultiSelection = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).hasMultiSelection(), []); + return [before, (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, useInput(), useDragSelection(), useSelectionObserver(), useClickSelection(), useMultiSelection(), useSelectAll(), useArrowNav(), (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + node.tabIndex = 0; + node.contentEditable = hasMultiSelection; + if (!hasMultiSelection) { + return; + } + node.classList.add('has-multi-selection'); + node.setAttribute('aria-label', (0,external_wp_i18n_namespaceObject.__)('Multiple selected blocks')); + return () => { + node.classList.remove('has-multi-selection'); + node.removeAttribute('aria-label'); + }; + }, [hasMultiSelection])]), after]; +} +function WritingFlow({ + children, + ...props +}, forwardedRef) { + const [before, ref, after] = useWritingFlow(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, before, (0,external_wp_element_namespaceObject.createElement)("div", { + ...props, + ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, forwardedRef]), + className: classnames_default()(props.className, 'block-editor-writing-flow') + }, children), after); } -/* harmony default export */ var layout_child = ({ - useBlockProps: useBlockPropsChildLayoutStyles, - attributeKeys: ['style'], - hasSupport() { - return true; - } -}); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js /** - * WordPress dependencies + * Handles selection and navigation across blocks. This component should be + * wrapped around BlockList. + * + * @param {Object} props Component properties. + * @param {WPElement} props.children Children to be rendered. */ +/* harmony default export */ var writing_flow = ((0,external_wp_element_namespaceObject.forwardRef)(WritingFlow)); - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/iframe/use-compatibility-styles.js /** - * Internal dependencies + * WordPress dependencies */ /** - * Contains the properties `ConvertToGroupButton` component needs. + * Returns a list of stylesheets that target the editor canvas. A stylesheet is + * considered targetting the editor a canvas if it contains the + * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors. * - * @typedef {Object} ConvertToGroupButtonProps - * @property {string[]} clientIds An array of the selected client ids. - * @property {boolean} isGroupable Indicates if the selected blocks can be grouped. - * @property {boolean} isUngroupable Indicates if the selected blocks can be ungrouped. - * @property {WPBlock[]} blocksSelection An array of the selected blocks. - * @property {string} groupingBlockName The name of block used for handling grouping interactions. + * Ideally, this hook should be removed in the future and styles should be added + * explicitly as editor styles. */ +function useCompatibilityStyles() { + // Only memoize the result once on load, since these stylesheets should not + // change. + return (0,external_wp_element_namespaceObject.useMemo)(() => { + // Search the document for stylesheets targetting the editor canvas. + return Array.from(document.styleSheets).reduce((accumulator, styleSheet) => { + try { + // May fail for external styles. + // eslint-disable-next-line no-unused-expressions + styleSheet.cssRules; + } catch (e) { + return accumulator; + } + const { + ownerNode, + cssRules + } = styleSheet; + + // Stylesheet is added by another stylesheet. See + // https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet/ownerNode#notes. + if (ownerNode === null) { + return accumulator; + } + if (!cssRules) { + return accumulator; + } + + // Don't try to add the reset styles, which were removed as a dependency + // from `edit-blocks` for the iframe since we don't need to reset admin + // styles. + if (ownerNode.id === 'wp-reset-editor-styles-css') { + return accumulator; + } + + // Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs. + if (!ownerNode.id) { + return accumulator; + } + function matchFromRules(_cssRules) { + return Array.from(_cssRules).find(({ + selectorText, + conditionText, + cssRules: __cssRules + }) => { + // If the rule is conditional then it will not have selector text. + // Recurse into child CSS ruleset to determine selector eligibility. + if (conditionText) { + return matchFromRules(__cssRules); + } + return selectorText && (selectorText.includes('.editor-styles-wrapper') || selectorText.includes('.wp-block')); + }); + } + if (matchFromRules(cssRules)) { + const isInline = ownerNode.tagName === 'STYLE'; + if (isInline) { + // If the current target is inline, + // it could be a dependency of an existing stylesheet. + // Look for that dependency and add it BEFORE the current target. + const mainStylesCssId = ownerNode.id.replace('-inline-css', '-css'); + const mainStylesElement = document.getElementById(mainStylesCssId); + if (mainStylesElement) { + accumulator.push(mainStylesElement.cloneNode(true)); + } + } + accumulator.push(ownerNode.cloneNode(true)); + if (!isInline) { + // If the current target is not inline, + // we still look for inline styles that could be relevant for the current target. + // If they exist, add them AFTER the current target. + const inlineStylesCssId = ownerNode.id.replace('-css', '-inline-css'); + const inlineStylesElement = document.getElementById(inlineStylesCssId); + if (inlineStylesElement) { + accumulator.push(inlineStylesElement.cloneNode(true)); + } + } + } + return accumulator; + }, []); + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/iframe/index.js /** - * Returns the properties `ConvertToGroupButton` component needs to work properly. - * It is used in `BlockSettingsMenuControls` to know if `ConvertToGroupButton` - * should be rendered, to avoid ending up with an empty MenuGroup. - * - * @param {?string[]} selectedClientIds An optional array of clientIds to group. The selected blocks - * from the block editor store are used if this is not provided. - * - * @return {ConvertToGroupButtonProps} Returns the properties needed by `ConvertToGroupButton`. + * External dependencies */ -function useConvertToGroupButtonProps(selectedClientIds) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlocksByClientId, - getSelectedBlockClientIds, - isUngroupable, - isGroupable - } = select(store); - const { - getGroupingBlockName, - getBlockType - } = select(external_wp_blocks_namespaceObject.store); - const clientIds = selectedClientIds?.length ? selectedClientIds : getSelectedBlockClientIds(); - const blocksSelection = getBlocksByClientId(clientIds); - const [firstSelectedBlock] = blocksSelection; - const _isUngroupable = clientIds.length === 1 && isUngroupable(clientIds[0]); - return { - clientIds, - isGroupable: isGroupable(clientIds), - isUngroupable: _isUngroupable, - blocksSelection, - groupingBlockName: getGroupingBlockName(), - onUngroup: _isUngroupable && getBlockType(firstSelectedBlock.name)?.transforms?.ungroup - }; - }, [selectedClientIds]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/index.js /** * WordPress dependencies @@ -32950,587 +24842,980 @@ function useConvertToGroupButtonProps(selectedClientIds) { + /** * Internal dependencies */ -function ConvertToGroupButton({ - clientIds, - isGroupable, - isUngroupable, - onUngroup, - blocksSelection, - groupingBlockName, - onClose = () => {} + +function bubbleEvent(event, Constructor, frame) { + const init = {}; + for (const key in event) { + init[key] = event[key]; + } + + // Check if the event is a MouseEvent generated within the iframe. + // If so, adjust the coordinates to be relative to the position of + // the iframe. This ensures that components such as Draggable + // receive coordinates relative to the window, instead of relative + // to the iframe. Without this, the Draggable event handler would + // result in components "jumping" position as soon as the user + // drags over the iframe. + if (event instanceof frame.contentDocument.defaultView.MouseEvent) { + const rect = frame.getBoundingClientRect(); + init.clientX += rect.left; + init.clientY += rect.top; + } + const newEvent = new Constructor(event.type, init); + if (init.defaultPrevented) { + newEvent.preventDefault(); + } + const cancelled = !frame.dispatchEvent(newEvent); + if (cancelled) { + event.preventDefault(); + } +} + +/** + * Bubbles some event types (keydown, keypress, and dragover) to parent document + * document to ensure that the keyboard shortcuts and drag and drop work. + * + * Ideally, we should remove event bubbling in the future. Keyboard shortcuts + * should be context dependent, e.g. actions on blocks like Cmd+A should not + * work globally outside the block editor. + * + * @param {Document} iframeDocument Document to attach listeners to. + */ +function useBubbleEvents(iframeDocument) { + return (0,external_wp_compose_namespaceObject.useRefEffect)(body => { + const { + defaultView + } = iframeDocument; + if (!defaultView) { + return; + } + const { + frameElement + } = defaultView; + const eventTypes = ['dragover', 'mousemove']; + const handlers = {}; + for (const name of eventTypes) { + handlers[name] = event => { + const prototype = Object.getPrototypeOf(event); + const constructorName = prototype.constructor.name; + const Constructor = window[constructorName]; + bubbleEvent(event, Constructor, frameElement); + }; + body.addEventListener(name, handlers[name]); + } + return () => { + for (const name of eventTypes) { + body.removeEventListener(name, handlers[name]); + } + }; + }); +} +function Iframe({ + contentRef, + children, + tabIndex = 0, + scale = 1, + frameSize = 0, + expand = false, + readonly, + forwardedRef: ref, + ...props }) { const { - replaceBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const onConvertToGroup = () => { - // Activate the `transform` on the Grouping Block which does the conversion. - const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocksSelection, groupingBlockName); - if (newBlocks) { - replaceBlocks(clientIds, newBlocks); + resolvedAssets, + isPreviewMode + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const settings = select(store).getSettings(); + return { + resolvedAssets: settings.__unstableResolvedAssets, + isPreviewMode: settings.__unstableIsPreviewMode + }; + }, []); + const { + styles = '', + scripts = '' + } = resolvedAssets; + const [iframeDocument, setIframeDocument] = (0,external_wp_element_namespaceObject.useState)(); + const [bodyClasses, setBodyClasses] = (0,external_wp_element_namespaceObject.useState)([]); + const compatStyles = useCompatibilityStyles(); + const clearerRef = useBlockSelectionClearer(); + const [before, writingFlowRef, after] = useWritingFlow(); + const [contentResizeListener, { + height: contentHeight + }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); + const setRef = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + node._load = () => { + setIframeDocument(node.contentDocument); + }; + let iFrameDocument; + // Prevent the default browser action for files dropped outside of dropzones. + function preventFileDropDefault(event) { + event.preventDefault(); } - }; - const onConvertFromGroup = () => { - let innerBlocks = blocksSelection[0].innerBlocks; - if (!innerBlocks.length) { - return; + function onLoad() { + const { + contentDocument, + ownerDocument + } = node; + const { + documentElement + } = contentDocument; + iFrameDocument = contentDocument; + clearerRef(documentElement); + + // Ideally ALL classes that are added through get_body_class should + // be added in the editor too, which we'll somehow have to get from + // the server in the future (which will run the PHP filters). + setBodyClasses(Array.from(ownerDocument.body.classList).filter(name => name.startsWith('admin-color-') || name.startsWith('post-type-') || name === 'wp-embed-responsive')); + contentDocument.dir = ownerDocument.dir; + for (const compatStyle of compatStyles) { + if (contentDocument.getElementById(compatStyle.id)) { + continue; + } + contentDocument.head.appendChild(compatStyle.cloneNode(true)); + if (!isPreviewMode) { + // eslint-disable-next-line no-console + console.warn(`${compatStyle.id} was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`, compatStyle); + } + } + iFrameDocument.addEventListener('dragover', preventFileDropDefault, false); + iFrameDocument.addEventListener('drop', preventFileDropDefault, false); } - if (onUngroup) { - innerBlocks = onUngroup(blocksSelection[0].attributes, blocksSelection[0].innerBlocks); + node.addEventListener('load', onLoad); + return () => { + delete node._load; + node.removeEventListener('load', onLoad); + iFrameDocument?.removeEventListener('dragover', preventFileDropDefault); + iFrameDocument?.removeEventListener('drop', preventFileDropDefault); + }; + }, []); + const disabledRef = (0,external_wp_compose_namespaceObject.useDisabled)({ + isDisabled: !readonly + }); + const bodyRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([useBubbleEvents(iframeDocument), contentRef, clearerRef, writingFlowRef, disabledRef]); + + // Correct doctype is required to enable rendering in standards + // mode. Also preload the styles to avoid a flash of unstyled + // content. + const html = ` + + + + + + ${styles} + ${scripts} + + + + +`; + const [src, cleanup] = (0,external_wp_element_namespaceObject.useMemo)(() => { + const _src = URL.createObjectURL(new window.Blob([html], { + type: 'text/html' + })); + return [_src, () => URL.revokeObjectURL(_src)]; + }, [html]); + (0,external_wp_element_namespaceObject.useEffect)(() => cleanup, [cleanup]); + + // We need to counter the margin created by scaling the iframe. If the scale + // is e.g. 0.45, then the top + bottom margin is 0.55 (1 - scale). Just the + // top or bottom margin is 0.55 / 2 ((1 - scale) / 2). + const marginFromScaling = contentHeight * (1 - scale) / 2; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, tabIndex >= 0 && before, (0,external_wp_element_namespaceObject.createElement)("iframe", { + ...props, + style: { + border: 0, + ...props.style, + height: expand ? contentHeight : props.style?.height, + marginTop: scale !== 1 ? -marginFromScaling + frameSize : props.style?.marginTop, + marginBottom: scale !== 1 ? -marginFromScaling + frameSize : props.style?.marginBottom, + transform: scale !== 1 ? `scale( ${scale} )` : props.style?.transform, + transition: 'all .3s' + }, + ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, setRef]), + tabIndex: tabIndex + // Correct doctype is required to enable rendering in standards + // mode. Also preload the styles to avoid a flash of unstyled + // content. + , + src: src, + title: (0,external_wp_i18n_namespaceObject.__)('Editor canvas'), + onKeyDown: event => { + // If the event originates from inside the iframe, it means + // it bubbled through the portal, but only with React + // events. We need to to bubble native events as well, + // though by doing so we also trigger another React event, + // so we need to stop the propagation of this event to avoid + // duplication. + if (event.currentTarget.ownerDocument !== event.target.ownerDocument) { + event.stopPropagation(); + bubbleEvent(event, window.KeyboardEvent, event.currentTarget); + } } - replaceBlocks(clientIds, innerBlocks); - }; - if (!isGroupable && !isUngroupable) { + }, iframeDocument && (0,external_wp_element_namespaceObject.createPortal)( + // We want to prevent React events from bubbling throught the iframe + // we bubble these manually. + /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ + (0,external_wp_element_namespaceObject.createElement)("body", { + ref: bodyRef, + className: classnames_default()('block-editor-iframe__body', 'editor-styles-wrapper', ...bodyClasses) + }, contentResizeListener, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { + document: iframeDocument + }, children)), iframeDocument.documentElement)), tabIndex >= 0 && after); +} +function IframeIfReady(props, ref) { + const isInitialised = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().__internalIsInitialized, []); + + // We shouldn't render the iframe until the editor settings are initialised. + // The initial settings are needed to get the styles for the srcDoc, which + // cannot be changed after the iframe is mounted. srcDoc is used to to set + // the initial iframe HTML, which is required to avoid a flash of unstyled + // content. + if (!isInitialised) { return null; } - return (0,external_React_.createElement)(external_React_.Fragment, null, isGroupable && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - onConvertToGroup(); - onClose(); - } - }, (0,external_wp_i18n_namespaceObject._x)('Group', 'verb')), isUngroupable && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - onConvertFromGroup(); - onClose(); - } - }, (0,external_wp_i18n_namespaceObject._x)('Ungroup', 'Ungrouping blocks from within a grouping block back into individual blocks within the Editor '))); + return (0,external_wp_element_namespaceObject.createElement)(Iframe, { + ...props, + forwardedRef: ref + }); } +/* harmony default export */ var iframe = ((0,external_wp_element_namespaceObject.forwardRef)(IframeIfReady)); + +;// CONCATENATED MODULE: ./node_modules/colord/index.mjs +var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})}; + +;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs +/* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));ud?(u+.05)/(d+.05):(d+.05)/(u+.05),void 0===(a=2)&&(a=0),void 0===i&&(i=Math.pow(10,a)),Math.floor(i*n)/i+0},o.prototype.isReadable=function(o,t){return void 0===o&&(o="#FFF"),void 0===t&&(t={}),this.contrast(o)>=(e=void 0===(i=(r=t).size)?"normal":i,"AAA"===(a=void 0===(n=r.level)?"AA":n)&&"normal"===e?7:"AA"===a&&"large"===e?3:4.5);var r,n,a,i,e}} + +// EXTERNAL MODULE: ./node_modules/traverse/index.js +var traverse = __webpack_require__(3124); +var traverse_default = /*#__PURE__*/__webpack_require__.n(traverse); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/parse.js +/* eslint-disable @wordpress/no-unused-vars-before-return */ + +// Adapted from https://github.com/reworkcss/css +// because we needed to remove source map support. + +// http://www.w3.org/TR/CSS21/grammar.htm +// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027 +const commentre = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g; +/* harmony default export */ function parse(css, options) { + options = options || {}; + + /** + * Positional. + */ + + let lineno = 1; + let column = 1; + + /** + * Update lineno and column based on `str`. + */ + + function updatePosition(str) { + const lines = str.match(/\n/g); + if (lines) { + lineno += lines.length; + } + const i = str.lastIndexOf('\n'); + // eslint-disable-next-line no-bitwise + column = ~i ? str.length - i : column + str.length; + } + + /** + * Mark position and patch `node.position`. + */ + + function position() { + const start = { + line: lineno, + column + }; + return function (node) { + node.position = new Position(start); + whitespace(); + return node; + }; + } + /** + * Store position information for a node + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/use-block-lock.js -/** - * WordPress dependencies - */ + function Position(start) { + this.start = start; + this.end = { + line: lineno, + column + }; + this.source = options.source; + } + /** + * Non-enumerable source string + */ -/** - * Internal dependencies - */ + Position.prototype.content = css; + /** + * Error `msg`. + */ -/** - * Return details about the block lock status. - * - * @param {string} clientId The block client Id. - * - * @return {Object} Block lock status - */ -function useBlockLock(clientId) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - canEditBlock, - canMoveBlock, - canRemoveBlock, - canLockBlockType, - getBlockName, - getBlockRootClientId, - getTemplateLock - } = select(store); - const rootClientId = getBlockRootClientId(clientId); - const canEdit = canEditBlock(clientId); - const canMove = canMoveBlock(clientId, rootClientId); - const canRemove = canRemoveBlock(clientId, rootClientId); + const errorsList = []; + function error(msg) { + const err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg); + err.reason = msg; + err.filename = options.source; + err.line = lineno; + err.column = column; + err.source = css; + if (options.silent) { + errorsList.push(err); + } else { + throw err; + } + } + + /** + * Parse stylesheet. + */ + + function stylesheet() { + const rulesList = rules(); return { - canEdit, - canMove, - canRemove, - canLock: canLockBlockType(getBlockName(clientId)), - isContentLocked: getTemplateLock(clientId) === 'contentOnly', - isLocked: !canEdit || !canMove || !canRemove + type: 'stylesheet', + stylesheet: { + source: options.source, + rules: rulesList, + parsingErrors: errorsList + } }; - }, [clientId]); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/unlock.js + } -/** - * WordPress dependencies - */ + /** + * Opening brace. + */ -const unlock_unlock = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8h1.5c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1z" -})); -/* harmony default export */ var library_unlock = (unlock_unlock); + function open() { + return match(/^{\s*/); + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock-outline.js + /** + * Closing brace. + */ -/** - * WordPress dependencies - */ + function close() { + return match(/^}/); + } -const lockOutline = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zM9.8 7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2v3H9.8V7zm6.7 11.5h-9v-7h9v7z" -})); -/* harmony default export */ var lock_outline = (lockOutline); + /** + * Parse ruleset. + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock.js + function rules() { + let node; + const accumulator = []; + whitespace(); + comments(accumulator); + while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) { + if (node !== false) { + accumulator.push(node); + comments(accumulator); + } + } + return accumulator; + } -/** - * WordPress dependencies - */ + /** + * Match `re` and return captures. + */ -const lock_lock = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zm-2.8 0H9.8V7c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3z" -})); -/* harmony default export */ var library_lock = (lock_lock); + function match(re) { + const m = re.exec(css); + if (!m) { + return; + } + const str = m[0]; + updatePosition(str); + css = css.slice(str.length); + return m; + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/modal.js + /** + * Parse whitespace. + */ -/** - * WordPress dependencies - */ + function whitespace() { + match(/^\s*/); + } + /** + * Parse comments; + */ + function comments(accumulator) { + let c; + accumulator = accumulator || []; + // eslint-disable-next-line no-cond-assign + while (c = comment()) { + if (c !== false) { + accumulator.push(c); + } + } + return accumulator; + } + /** + * Parse comment. + */ + function comment() { + const pos = position(); + if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) { + return; + } + let i = 2; + while ('' !== css.charAt(i) && ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) { + ++i; + } + i += 2; + if ('' === css.charAt(i - 1)) { + return error('End of comment missing'); + } + const str = css.slice(2, i - 2); + column += 2; + updatePosition(str); + css = css.slice(i); + column += 2; + return pos({ + type: 'comment', + comment: str + }); + } + /** + * Parse selector. + */ + function selector() { + const m = match(/^([^{]+)/); + if (!m) { + return; + } + // FIXME: Remove all comments from selectors http://ostermiller.org/findcomment.html + return trim(m[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, '').replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, function (matched) { + return matched.replace(/,/g, '\u200C'); + }).split(/\s*(?![^(]*\)),\s*/).map(function (s) { + return s.replace(/\u200C/g, ','); + }); + } + /** + * Parse declaration. + */ -/** - * Internal dependencies - */ + function declaration() { + const pos = position(); + // prop. + let prop = match(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/); + if (!prop) { + return; + } + prop = trim(prop[0]); + // : + if (!match(/^:\s*/)) { + return error("property missing ':'"); + } + // val. + const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/); + const ret = pos({ + type: 'declaration', + property: prop.replace(commentre, ''), + value: val ? trim(val[0]).replace(commentre, '') : '' + }); -// Entity based blocks which allow edit locking -const ALLOWS_EDIT_LOCKING = ['core/block', 'core/navigation']; -function getTemplateLockValue(lock) { - // Prevents all operations. - if (lock.remove && lock.move) { - return 'all'; + // ; + match(/^[;\s]*/); + return ret; } - // Prevents inserting or removing blocks, but allows moving existing blocks. - if (lock.remove && !lock.move) { - return 'insert'; - } - return false; -} -function BlockLockModal({ - clientId, - onClose -}) { - const [lock, setLock] = (0,external_wp_element_namespaceObject.useState)({ - move: false, - remove: false - }); - const { - canEdit, - canMove, - canRemove - } = useBlockLock(clientId); - const { - allowsEditLocking, - templateLock, - hasTemplateLock - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockName, - getBlockAttributes - } = select(store); - const blockName = getBlockName(clientId); - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); - return { - allowsEditLocking: ALLOWS_EDIT_LOCKING.includes(blockName), - templateLock: getBlockAttributes(clientId)?.templateLock, - hasTemplateLock: !!blockType?.attributes?.templateLock - }; - }, [clientId]); - const [applyTemplateLock, setApplyTemplateLock] = (0,external_wp_element_namespaceObject.useState)(!!templateLock); - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const blockInformation = useBlockDisplayInformation(clientId); - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockLockModal, 'block-editor-block-lock-modal__options-title'); - (0,external_wp_element_namespaceObject.useEffect)(() => { - setLock({ - move: !canMove, - remove: !canRemove, - ...(allowsEditLocking ? { - edit: !canEdit - } : {}) - }); - }, [canEdit, canMove, canRemove, allowsEditLocking]); - const isAllChecked = Object.values(lock).every(Boolean); - const isMixed = Object.values(lock).some(Boolean) && !isAllChecked; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block. */ - (0,external_wp_i18n_namespaceObject.__)('Lock %s'), blockInformation.title), - overlayClassName: "block-editor-block-lock-modal", - onRequestClose: onClose - }, (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Choose specific attributes to restrict or lock all available options.')), (0,external_React_.createElement)("form", { - onSubmit: event => { - event.preventDefault(); - updateBlockAttributes([clientId], { - lock, - templateLock: applyTemplateLock ? getTemplateLockValue(lock) : undefined - }); - onClose(); + /** + * Parse declarations. + */ + + function declarations() { + const decls = []; + if (!open()) { + return error("missing '{'"); } - }, (0,external_React_.createElement)("div", { - role: "group", - "aria-labelledby": instanceId, - className: "block-editor-block-lock-modal__options" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.CheckboxControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-block-lock-modal__options-title", - label: (0,external_React_.createElement)("span", { - id: instanceId - }, (0,external_wp_i18n_namespaceObject.__)('Lock all')), - checked: isAllChecked, - indeterminate: isMixed, - onChange: newValue => setLock({ - move: newValue, - remove: newValue, - ...(allowsEditLocking ? { - edit: newValue - } : {}) - }) - }), (0,external_React_.createElement)("ul", { - className: "block-editor-block-lock-modal__checklist" - }, allowsEditLocking && (0,external_React_.createElement)("li", { - className: "block-editor-block-lock-modal__checklist-item" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.CheckboxControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Restrict editing'), - checked: !!lock.edit, - onChange: edit => setLock(prevLock => ({ - ...prevLock, - edit - })) - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - className: "block-editor-block-lock-modal__lock-icon", - icon: lock.edit ? library_lock : library_unlock - })), (0,external_React_.createElement)("li", { - className: "block-editor-block-lock-modal__checklist-item" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.CheckboxControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Disable movement'), - checked: lock.move, - onChange: move => setLock(prevLock => ({ - ...prevLock, - move - })) - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - className: "block-editor-block-lock-modal__lock-icon", - icon: lock.move ? library_lock : library_unlock - })), (0,external_React_.createElement)("li", { - className: "block-editor-block-lock-modal__checklist-item" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.CheckboxControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Prevent removal'), - checked: lock.remove, - onChange: remove => setLock(prevLock => ({ - ...prevLock, - remove - })) - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - className: "block-editor-block-lock-modal__lock-icon", - icon: lock.remove ? library_lock : library_unlock - }))), hasTemplateLock && (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-block-lock-modal__template-lock", - label: (0,external_wp_i18n_namespaceObject.__)('Apply to all blocks inside'), - checked: applyTemplateLock, - disabled: lock.move && !lock.remove, - onChange: () => setApplyTemplateLock(!applyTemplateLock) - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - className: "block-editor-block-lock-modal__actions", - justify: "flex-end", - expanded: false - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: onClose - }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "primary", - type: "submit" - }, (0,external_wp_i18n_namespaceObject.__)('Apply')))))); -} + comments(decls); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/menu-item.js + // declarations. + let decl; + // eslint-disable-next-line no-cond-assign + while (decl = declaration()) { + if (decl !== false) { + decls.push(decl); + comments(decls); + } + } + if (!close()) { + return error("missing '}'"); + } + return decls; + } -/** - * WordPress dependencies - */ + /** + * Parse keyframe. + */ + function keyframe() { + let m; + const vals = []; + const pos = position(); + // eslint-disable-next-line no-cond-assign + while (m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/)) { + vals.push(m[1]); + match(/^,\s*/); + } + if (!vals.length) { + return; + } + return pos({ + type: 'keyframe', + values: vals, + declarations: declarations() + }); + } + /** + * Parse keyframes. + */ + function atkeyframes() { + const pos = position(); + let m = match(/^@([-\w]+)?keyframes\s*/); + if (!m) { + return; + } + const vendor = m[1]; -/** - * Internal dependencies - */ + // identifier + m = match(/^([-\w]+)\s*/); + if (!m) { + return error('@keyframes missing name'); + } + const name = m[1]; + if (!open()) { + return error("@keyframes missing '{'"); + } + let frame; + let frames = comments(); + // eslint-disable-next-line no-cond-assign + while (frame = keyframe()) { + frames.push(frame); + frames = frames.concat(comments()); + } + if (!close()) { + return error("@keyframes missing '}'"); + } + return pos({ + type: 'keyframes', + name, + vendor, + keyframes: frames + }); + } + /** + * Parse supports. + */ -function BlockLockMenuItem({ - clientId -}) { - const { - canLock, - isLocked - } = useBlockLock(clientId); - const [isModalOpen, toggleModal] = (0,external_wp_element_namespaceObject.useReducer)(isActive => !isActive, false); - if (!canLock) { - return null; + function atsupports() { + const pos = position(); + const m = match(/^@supports *([^{]+)/); + if (!m) { + return; + } + const supports = trim(m[1]); + if (!open()) { + return error("@supports missing '{'"); + } + const style = comments().concat(rules()); + if (!close()) { + return error("@supports missing '}'"); + } + return pos({ + type: 'supports', + supports, + rules: style + }); } - const label = isLocked ? (0,external_wp_i18n_namespaceObject.__)('Unlock') : (0,external_wp_i18n_namespaceObject.__)('Lock'); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - icon: isLocked ? library_unlock : lock_outline, - onClick: toggleModal, - "aria-expanded": isModalOpen, - "aria-haspopup": "dialog" - }, label), isModalOpen && (0,external_React_.createElement)(BlockLockModal, { - clientId: clientId, - onClose: toggleModal - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-mode-toggle.js -/** - * WordPress dependencies - */ + /** + * Parse host. + */ + function athost() { + const pos = position(); + const m = match(/^@host\s*/); + if (!m) { + return; + } + if (!open()) { + return error("@host missing '{'"); + } + const style = comments().concat(rules()); + if (!close()) { + return error("@host missing '}'"); + } + return pos({ + type: 'host', + rules: style + }); + } + /** + * Parse media. + */ + function atmedia() { + const pos = position(); + const m = match(/^@media *([^{]+)/); + if (!m) { + return; + } + const media = trim(m[1]); + if (!open()) { + return error("@media missing '{'"); + } + const style = comments().concat(rules()); + if (!close()) { + return error("@media missing '}'"); + } + return pos({ + type: 'media', + media, + rules: style + }); + } + /** + * Parse container. + */ + function atcontainer() { + const pos = position(); + const m = match(/^@container *([^{]+)/); + if (!m) { + return; + } + const container = trim(m[1]); + if (!open()) { + return error("@container missing '{'"); + } + const style = comments().concat(rules()); + if (!close()) { + return error("@container missing '}'"); + } + return pos({ + type: 'container', + container, + rules: style + }); + } -/** - * Internal dependencies - */ + /** + * Parse custom-media. + */ -const block_mode_toggle_noop = () => {}; -function BlockModeToggle({ - blockType, - mode, - onToggleMode, - small = false, - isCodeEditingEnabled = true -}) { - if (!blockType || !(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'html', true) || !isCodeEditingEnabled) { - return null; - } - const label = mode === 'visual' ? (0,external_wp_i18n_namespaceObject.__)('Edit as HTML') : (0,external_wp_i18n_namespaceObject.__)('Edit visually'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: onToggleMode - }, !small && label); -} -/* harmony default export */ var block_mode_toggle = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, { - clientId -}) => { - const { - getBlock, - getBlockMode, - getSettings - } = select(store); - const block = getBlock(clientId); - const isCodeEditingEnabled = getSettings().codeEditingEnabled; - return { - mode: getBlockMode(clientId), - blockType: block ? (0,external_wp_blocks_namespaceObject.getBlockType)(block.name) : null, - isCodeEditingEnabled - }; -}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, { - onToggle = block_mode_toggle_noop, - clientId -}) => ({ - onToggleMode() { - dispatch(store).toggleBlockMode(clientId); - onToggle(); + function atcustommedia() { + const pos = position(); + const m = match(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/); + if (!m) { + return; + } + return pos({ + type: 'custom-media', + name: trim(m[1]), + media: trim(m[2]) + }); } -}))])(BlockModeToggle)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/use-block-rename.js -/** - * WordPress dependencies - */ + /** + * Parse paged media. + */ -function useBlockRename(name) { - return { - canRename: (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'renaming', true) - }; -} + function atpage() { + const pos = position(); + const m = match(/^@page */); + if (!m) { + return; + } + const sel = selector() || []; + if (!open()) { + return error("@page missing '{'"); + } + let decls = comments(); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/is-empty-string.js -function isEmptyString(testString) { - return testString?.trim()?.length === 0; -} + // declarations. + let decl; + // eslint-disable-next-line no-cond-assign + while (decl = declaration()) { + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) { + return error("@page missing '}'"); + } + return pos({ + type: 'page', + selectors: sel, + declarations: decls + }); + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/modal.js + /** + * Parse document. + */ -/** - * WordPress dependencies - */ + function atdocument() { + const pos = position(); + const m = match(/^@([-\w]+)?document *([^{]+)/); + if (!m) { + return; + } + const vendor = trim(m[1]); + const doc = trim(m[2]); + if (!open()) { + return error("@document missing '{'"); + } + const style = comments().concat(rules()); + if (!close()) { + return error("@document missing '}'"); + } + return pos({ + type: 'document', + document: doc, + vendor, + rules: style + }); + } + /** + * Parse font-face. + */ + function atfontface() { + const pos = position(); + const m = match(/^@font-face\s*/); + if (!m) { + return; + } + if (!open()) { + return error("@font-face missing '{'"); + } + let decls = comments(); + // declarations. + let decl; + // eslint-disable-next-line no-cond-assign + while (decl = declaration()) { + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) { + return error("@font-face missing '}'"); + } + return pos({ + type: 'font-face', + declarations: decls + }); + } + /** + * Parse import + */ + const atimport = _compileAtrule('import'); -/** - * Internal dependencies - */ + /** + * Parse charset + */ -function BlockRenameModal({ - blockName, - originalBlockName, - onClose, - onSave -}) { - const [editedBlockName, setEditedBlockName] = (0,external_wp_element_namespaceObject.useState)(blockName); - const nameHasChanged = editedBlockName !== blockName; - const nameIsOriginal = editedBlockName === originalBlockName; - const nameIsEmpty = isEmptyString(editedBlockName); - const isNameValid = nameHasChanged || nameIsOriginal; - const autoSelectInputText = event => event.target.select(); - const dialogDescription = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockRenameModal, `block-editor-rename-modal__description`); - const handleSubmit = () => { - const message = nameIsOriginal || nameIsEmpty ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: new name/label for the block */ - (0,external_wp_i18n_namespaceObject.__)('Block name reset to: "%s".'), editedBlockName) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: new name/label for the block */ - (0,external_wp_i18n_namespaceObject.__)('Block name changed to: "%s".'), editedBlockName); + const atcharset = _compileAtrule('charset'); - // Must be assertive to immediately announce change. - (0,external_wp_a11y_namespaceObject.speak)(message, 'assertive'); - onSave(editedBlockName); + /** + * Parse namespace + */ - // Immediate close avoids ability to hit save multiple times. - onClose(); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: (0,external_wp_i18n_namespaceObject.__)('Rename'), - onRequestClose: onClose, - overlayClassName: "block-editor-block-rename-modal", - aria: { - describedby: dialogDescription - }, - focusOnMount: "firstContentElement" - }, (0,external_React_.createElement)("p", { - id: dialogDescription - }, (0,external_wp_i18n_namespaceObject.__)('Enter a custom name for this block.')), (0,external_React_.createElement)("form", { - onSubmit: e => { - e.preventDefault(); - if (!isNameValid) { + const atnamespace = _compileAtrule('namespace'); + + /** + * Parse non-block at-rules + */ + + function _compileAtrule(name) { + const re = new RegExp('^@' + name + '\\s*([^;]+);'); + return function () { + const pos = position(); + const m = match(re); + if (!m) { return; } - handleSubmit(); - } - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: "3" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - __next40pxDefaultSize: true, - value: editedBlockName, - label: (0,external_wp_i18n_namespaceObject.__)('Block name'), - hideLabelFromVision: true, - placeholder: originalBlockName, - onChange: setEditedBlockName, - onFocus: autoSelectInputText - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "right" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - __next40pxDefaultSize: true, - variant: "tertiary", - onClick: onClose - }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - __next40pxDefaultSize: true, - "aria-disabled": !isNameValid, - variant: "primary", - type: "submit" - }, (0,external_wp_i18n_namespaceObject.__)('Save')))))); + const ret = { + type: name + }; + ret[name] = m[1].trim(); + return pos(ret); + }; + } + + /** + * Parse at rule. + */ + + function atrule() { + if (css[0] !== '@') { + return; + } + return atkeyframes() || atmedia() || atcontainer() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface(); + } + + /** + * Parse rule. + */ + + function rule() { + const pos = position(); + const sel = selector(); + if (!sel) { + return error('selector missing'); + } + comments(); + return pos({ + type: 'rule', + selectors: sel, + declarations: declarations() + }); + } + return addParent(stylesheet()); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/rename-control.js +/** + * Trim `str`. + */ + +function trim(str) { + return str ? str.replace(/^\s+|\s+$/g, '') : ''; +} /** - * WordPress dependencies + * Adds non-enumerable parent node reference to each node. */ +function addParent(obj, parent) { + const isNode = obj && typeof obj.type === 'string'; + const childParent = isNode ? obj : parent; + for (const k in obj) { + const value = obj[k]; + if (Array.isArray(value)) { + value.forEach(function (v) { + addParent(v, childParent); + }); + } else if (value && typeof value === 'object') { + addParent(value, childParent); + } + } + if (isNode) { + Object.defineProperty(obj, 'parent', { + configurable: true, + writable: true, + enumerable: false, + value: parent || null + }); + } + return obj; +} + +/* eslint-enable @wordpress/no-unused-vars-before-return */ +// EXTERNAL MODULE: ./node_modules/inherits/inherits_browser.js +var inherits_browser = __webpack_require__(8575); +var inherits_browser_default = /*#__PURE__*/__webpack_require__.n(inherits_browser); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/compiler.js +// Adapted from https://github.com/reworkcss/css +// because we needed to remove source map support. +/** + * Expose `Compiler`. + */ +/* harmony default export */ var compiler = (Compiler); /** - * Internal dependencies + * Initialize a compiler. */ +function Compiler(opts) { + this.options = opts || {}; +} +/** + * Emit `str` + */ +Compiler.prototype.emit = function (str) { + return str; +}; -function BlockRenameControl({ - clientId -}) { - const [renamingBlock, setRenamingBlock] = (0,external_wp_element_namespaceObject.useState)(false); - const { - metadata - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockAttributes - } = select(store); - const _metadata = getBlockAttributes(clientId)?.metadata; - return { - metadata: _metadata - }; - }, [clientId]); - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const customName = metadata?.name; - function onChange(newName) { - updateBlockAttributes([clientId], { - metadata: { - ...(metadata && metadata), - name: newName - } - }); - } - const blockInformation = useBlockDisplayInformation(clientId); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - setRenamingBlock(true); - }, - "aria-expanded": renamingBlock, - "aria-haspopup": "dialog" - }, (0,external_wp_i18n_namespaceObject.__)('Rename')), renamingBlock && (0,external_React_.createElement)(BlockRenameModal, { - blockName: customName || '', - originalBlockName: blockInformation?.title, - onClose: () => setRenamingBlock(false), - onSave: newName => { - // If the new value is the block's original name (e.g. `Group`) - // or it is an empty string then assume the intent is to reset - // the value. Therefore reset the metadata. - if (newName === blockInformation?.title || isEmptyString(newName)) { - newName = undefined; - } - onChange(newName); - } - })); -} +/** + * Visit `node`. + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu-controls/index.js +Compiler.prototype.visit = function (node) { + return this[node.type](node); +}; /** - * WordPress dependencies + * Map visit over array of `nodes`, optionally using a `delim` */ +Compiler.prototype.mapVisit = function (nodes, delim) { + let buf = ''; + delim = delim || ''; + for (let i = 0, length = nodes.length; i < length; i++) { + buf += this.visit(nodes[i]); + if (delim && i < length - 1) { + buf += this.emit(delim); + } + } + return buf; +}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/compress.js +// Adapted from https://github.com/reworkcss/css +// because we needed to remove source map support. +/** + * External dependencies + */ /** @@ -33538,292 +25823,178 @@ function BlockRenameControl({ */ +/** + * Expose compiler. + */ +/* harmony default export */ var compress = (compress_Compiler); +/** + * Initialize a new `Compiler`. + */ -const { - Fill, - Slot -} = (0,external_wp_components_namespaceObject.createSlotFill)('BlockSettingsMenuControls'); -const BlockSettingsMenuControlsSlot = ({ - fillProps, - clientIds = null, - __unstableDisplayLocation -}) => { - const { - selectedBlocks, - selectedClientIds - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockNamesByClientId, - getSelectedBlockClientIds - } = select(store); - const ids = clientIds !== null ? clientIds : getSelectedBlockClientIds(); - return { - selectedBlocks: getBlockNamesByClientId(ids), - selectedClientIds: ids - }; - }, [clientIds]); - const { - canLock - } = useBlockLock(selectedClientIds[0]); - const { - canRename - } = useBlockRename(selectedBlocks[0]); - const showLockButton = selectedClientIds.length === 1 && canLock; - const showRenameButton = selectedClientIds.length === 1 && canRename; +function compress_Compiler(options) { + compiler.call(this, options); +} - // Check if current selection of blocks is Groupable or Ungroupable - // and pass this props down to ConvertToGroupButton. - const convertToGroupButtonProps = useConvertToGroupButtonProps(selectedClientIds); - const { - isGroupable, - isUngroupable - } = convertToGroupButtonProps; - const showConvertToGroupButton = isGroupable || isUngroupable; - return (0,external_React_.createElement)(Slot, { - fillProps: { - ...fillProps, - __unstableDisplayLocation, - selectedBlocks, - selectedClientIds - } - }, fills => { - if (!fills?.length > 0 && !showConvertToGroupButton && !showLockButton) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, showConvertToGroupButton && (0,external_React_.createElement)(ConvertToGroupButton, { - ...convertToGroupButtonProps, - onClose: fillProps?.onClose - }), showLockButton && (0,external_React_.createElement)(BlockLockMenuItem, { - clientId: selectedClientIds[0] - }), showRenameButton && (0,external_React_.createElement)(BlockRenameControl, { - clientId: selectedClientIds[0] - }), fills, fillProps?.canMove && !fillProps?.onlyBlock && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: (0,external_wp_compose_namespaceObject.pipe)(fillProps?.onClose, fillProps?.onMoveTo) - }, (0,external_wp_i18n_namespaceObject.__)('Move to')), fillProps?.count === 1 && (0,external_React_.createElement)(block_mode_toggle, { - clientId: fillProps?.firstBlockClientId, - onToggle: fillProps?.onClose - })); - }); +/** + * Inherit from `Base.prototype`. + */ + +inherits_browser_default()(compress_Compiler, compiler); + +/** + * Compile `node`. + */ + +compress_Compiler.prototype.compile = function (node) { + return node.stylesheet.rules.map(this.visit, this).join(''); }; /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md - * - * @param {Object} props Fill props. - * @return {Element} Element. + * Visit comment node. */ -function BlockSettingsMenuControls({ - ...props -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { - document: document - }, (0,external_React_.createElement)(Fill, { - ...props - })); -} -BlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot; -/* harmony default export */ var block_settings_menu_controls = (BlockSettingsMenuControls); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/content-lock-ui.js +compress_Compiler.prototype.comment = function (node) { + return this.emit('', node.position); +}; /** - * WordPress dependencies + * Visit import node. */ +compress_Compiler.prototype.import = function (node) { + return this.emit('@import ' + node.import + ';', node.position); +}; + +/** + * Visit media node. + */ +compress_Compiler.prototype.media = function (node) { + return this.emit('@media ' + node.media, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}'); +}; +/** + * Visit container node. + */ +compress_Compiler.prototype.container = function (node) { + return this.emit('@container ' + node.container, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}'); +}; /** - * Internal dependencies + * Visit document node. */ +compress_Compiler.prototype.document = function (node) { + const doc = '@' + (node.vendor || '') + 'document ' + node.document; + return this.emit(doc, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}'); +}; +/** + * Visit charset node. + */ +compress_Compiler.prototype.charset = function (node) { + return this.emit('@charset ' + node.charset + ';', node.position); +}; -// The implementation of content locking is mainly in this file, although the mechanism -// to stop temporarily editing as blocks when an outside block is selected is on component StopEditingAsBlocksOnOutsideSelect -// at block-editor/src/components/block-list/index.js. -// Besides the components on this file and the file referenced above the implementation -// also includes artifacts on the store (actions, reducers, and selector). +/** + * Visit namespace node. + */ -function ContentLockControlsPure({ - clientId, - isSelected -}) { - const { - getBlockListSettings, - getSettings - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - templateLock, - isLockedByParent, - isEditingAsBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - __unstableGetContentLockingParent, - getTemplateLock, - __unstableGetTemporarilyEditingAsBlocks - } = select(store); - return { - templateLock: getTemplateLock(clientId), - isLockedByParent: !!__unstableGetContentLockingParent(clientId), - isEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === clientId - }; - }, [clientId]); - const { - updateSettings, - updateBlockListSettings, - __unstableSetTemporarilyEditingAsBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - stopEditingAsBlocks - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - const isContentLocked = !isLockedByParent && templateLock === 'contentOnly'; - const { - __unstableMarkNextChangeAsNotPersistent, - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const stopEditingAsBlockCallback = (0,external_wp_element_namespaceObject.useCallback)(() => { - stopEditingAsBlocks(clientId); - }, [clientId, stopEditingAsBlocks]); - if (!isContentLocked && !isEditingAsBlocks) { - return null; - } - const showStopEditingAsBlocks = isEditingAsBlocks && !isContentLocked; - const showStartEditingAsBlocks = !isEditingAsBlocks && isContentLocked && isSelected; - return (0,external_React_.createElement)(external_React_.Fragment, null, showStopEditingAsBlocks && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_controls, { - group: "other" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - onClick: stopEditingAsBlockCallback - }, (0,external_wp_i18n_namespaceObject.__)('Done')))), showStartEditingAsBlocks && (0,external_React_.createElement)(block_settings_menu_controls, null, ({ - onClose - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => { - __unstableMarkNextChangeAsNotPersistent(); - updateBlockAttributes(clientId, { - templateLock: undefined - }); - updateBlockListSettings(clientId, { - ...getBlockListSettings(clientId), - templateLock: false - }); - const focusModeToRevert = getSettings().focusMode; - updateSettings({ - focusMode: true - }); - __unstableSetTemporarilyEditingAsBlocks(clientId, focusModeToRevert); - onClose(); - } - }, (0,external_wp_i18n_namespaceObject.__)('Modify')))); -} -/* harmony default export */ var content_lock_ui = ({ - edit: ContentLockControlsPure, - hasSupport() { - return true; - } -}); +compress_Compiler.prototype.namespace = function (node) { + return this.emit('@namespace ' + node.namespace + ';', node.position); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/metadata.js /** - * WordPress dependencies + * Visit supports node. */ -const META_ATTRIBUTE_NAME = 'metadata'; +compress_Compiler.prototype.supports = function (node) { + return this.emit('@supports ' + node.supports, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}'); +}; /** - * Filters registered block settings, extending attributes to include `metadata`. - * - * see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012 - * - * @param {Object} blockTypeSettings Original block settings. - * @return {Object} Filtered block settings. + * Visit keyframes node. */ -function addMetaAttribute(blockTypeSettings) { - // Allow blocks to specify their own attribute definition with default values if needed. - if (blockTypeSettings?.attributes?.[META_ATTRIBUTE_NAME]?.type) { - return blockTypeSettings; - } - blockTypeSettings.attributes = { - ...blockTypeSettings.attributes, - [META_ATTRIBUTE_NAME]: { - type: 'object' - } - }; - return blockTypeSettings; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/metadata/addMetaAttribute', addMetaAttribute); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js +compress_Compiler.prototype.keyframes = function (node) { + return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit('{') + this.mapVisit(node.keyframes) + this.emit('}'); +}; /** - * WordPress dependencies + * Visit keyframe node. */ -const blockDefault = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z" -})); -/* harmony default export */ var block_default = (blockDefault); +compress_Compiler.prototype.keyframe = function (node) { + const decls = node.declarations; + return this.emit(node.values.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}'); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-icon/index.js +/** + * Visit page node. + */ + +compress_Compiler.prototype.page = function (node) { + const sel = node.selectors.length ? node.selectors.join(', ') : ''; + return this.emit('@page ' + sel, node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}'); +}; /** - * External dependencies + * Visit font-face node. */ +compress_Compiler.prototype['font-face'] = function (node) { + return this.emit('@font-face', node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}'); +}; /** - * WordPress dependencies + * Visit host node. */ +compress_Compiler.prototype.host = function (node) { + return this.emit('@host', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}'); +}; +/** + * Visit custom-media node. + */ -function BlockIcon({ - icon, - showColors = false, - className, - context -}) { - if (icon?.src === 'block-default') { - icon = { - src: block_default - }; - } - const renderedIcon = (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - icon: icon && icon.src ? icon.src : icon, - context: context - }); - const style = showColors ? { - backgroundColor: icon && icon.background, - color: icon && icon.foreground - } : {}; - return (0,external_React_.createElement)("span", { - style: style, - className: classnames_default()('block-editor-block-icon', className, { - 'has-colors': showColors - }) - }, renderedIcon); -} +compress_Compiler.prototype['custom-media'] = function (node) { + return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position); +}; /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-icon/README.md + * Visit rule node. */ -/* harmony default export */ var block_icon = ((0,external_wp_element_namespaceObject.memo)(BlockIcon)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/block-hooks.js +compress_Compiler.prototype.rule = function (node) { + const decls = node.declarations; + if (!decls.length) { + return ''; + } + return this.emit(node.selectors.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}'); +}; /** - * WordPress dependencies + * Visit declaration node. */ +compress_Compiler.prototype.declaration = function (node) { + return this.emit(node.property + ':' + node.value, node.position) + this.emit(';'); +}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/identity.js +/* eslint-disable @wordpress/no-unused-vars-before-return */ +// Adapted from https://github.com/reworkcss/css +// because we needed to remove source map support. +/** + * External dependencies + */ /** @@ -33831,664 +26002,439 @@ function BlockIcon({ */ -const EMPTY_OBJECT = {}; -function BlockHooksControlPure({ - name, - clientId -}) { - const blockTypes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getBlockTypes(), []); - const hookedBlocksForCurrentBlock = (0,external_wp_element_namespaceObject.useMemo)(() => blockTypes?.filter(({ - blockHooks - }) => blockHooks && name in blockHooks), [blockTypes, name]); - const { - blockIndex, - rootClientId, - innerBlocksLength - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlock, - getBlockIndex, - getBlockRootClientId - } = select(store); - return { - blockIndex: getBlockIndex(clientId), - innerBlocksLength: getBlock(clientId)?.innerBlocks?.length, - rootClientId: getBlockRootClientId(clientId) - }; - }, [clientId]); - const hookedBlockClientIds = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlock, - getGlobalBlockCount - } = select(store); - const _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce((clientIds, block) => { - // If the block doesn't exist anywhere in the block tree, - // we know that we have to set the toggle to disabled. - if (getGlobalBlockCount(block.name) === 0) { - return clientIds; - } - const relativePosition = block?.blockHooks?.[name]; - let candidates; - switch (relativePosition) { - case 'before': - case 'after': - // Any of the current block's siblings (with the right block type) qualifies - // as a hooked block (inserted `before` or `after` the current one), as the block - // might've been automatically inserted and then moved around a bit by the user. - candidates = getBlock(rootClientId)?.innerBlocks; - break; - case 'first_child': - case 'last_child': - // Any of the current block's child blocks (with the right block type) qualifies - // as a hooked first or last child block, as the block might've been automatically - // inserted and then moved around a bit by the user. - candidates = getBlock(clientId).innerBlocks; - break; - } - const hookedBlock = candidates?.find(candidate => candidate.name === block.name); - - // If the block exists in the designated location, we consider it hooked - // and show the toggle as enabled. - if (hookedBlock) { - return { - ...clientIds, - [block.name]: hookedBlock.clientId - }; - } +/** + * Expose compiler. + */ - // If no hooked block was found in any of its designated locations, - // we set the toggle to disabled. - return clientIds; - }, {}); - if (Object.values(_hookedBlockClientIds).length > 0) { - return _hookedBlockClientIds; - } - return EMPTY_OBJECT; - }, [hookedBlocksForCurrentBlock, name, clientId, rootClientId]); - const { - insertBlock, - removeBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - if (!hookedBlocksForCurrentBlock.length) { - return null; - } +/* harmony default export */ var stringify_identity = (identity_Compiler); - // Group by block namespace (i.e. prefix before the slash). - const groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce((groups, block) => { - const [namespace] = block.name.split('/'); - if (!groups[namespace]) { - groups[namespace] = []; - } - groups[namespace].push(block); - return groups; - }, {}); - const insertBlockIntoDesignatedLocation = (block, relativePosition) => { - switch (relativePosition) { - case 'before': - case 'after': - insertBlock(block, relativePosition === 'after' ? blockIndex + 1 : blockIndex, rootClientId, - // Insert as a child of the current block's parent - false); - break; - case 'first_child': - case 'last_child': - insertBlock(block, - // TODO: It'd be great if insertBlock() would accept negative indices for insertion. - relativePosition === 'first_child' ? 0 : innerBlocksLength, clientId, - // Insert as a child of the current block. - false); - break; - } - }; - return (0,external_React_.createElement)(inspector_controls, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - className: "block-editor-hooks__block-hooks", - title: (0,external_wp_i18n_namespaceObject.__)('Plugins'), - initialOpen: true - }, Object.keys(groupedHookedBlocks).map(vendor => { - return (0,external_React_.createElement)(external_wp_element_namespaceObject.Fragment, { - key: vendor - }, (0,external_React_.createElement)("h3", null, vendor), groupedHookedBlocks[vendor].map(block => { - const checked = (block.name in hookedBlockClientIds); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - checked: checked, - key: block.title, - label: (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start" - }, (0,external_React_.createElement)(block_icon, { - icon: block.icon - }), (0,external_React_.createElement)("span", null, block.title)), - onChange: () => { - if (!checked) { - // Create and insert block. - const relativePosition = block.blockHooks[name]; - insertBlockIntoDesignatedLocation((0,external_wp_blocks_namespaceObject.createBlock)(block.name), relativePosition); - return; - } +/** + * Initialize a new `Compiler`. + */ - // Remove block. - removeBlock(hookedBlockClientIds[block.name], false); - } - }); - })); - }))); +function identity_Compiler(options) { + options = options || {}; + compiler.call(this, options); + this.indentation = options.indent; } -/* harmony default export */ var block_hooks = ({ - edit: BlockHooksControlPure, - hasSupport() { - return true; - } -}); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/block-renaming.js +/** + * Inherit from `Base.prototype`. + */ + +inherits_browser_default()(identity_Compiler, compiler); /** - * WordPress dependencies + * Compile `node`. + */ + +identity_Compiler.prototype.compile = function (node) { + return this.stylesheet(node); +}; + +/** + * Visit stylesheet node. */ +identity_Compiler.prototype.stylesheet = function (node) { + return this.mapVisit(node.stylesheet.rules, '\n\n'); +}; + +/** + * Visit comment node. + */ +identity_Compiler.prototype.comment = function (node) { + return this.emit(this.indent() + '/*' + node.comment + '*/', node.position); +}; +/** + * Visit import node. + */ +identity_Compiler.prototype.import = function (node) { + return this.emit('@import ' + node.import + ';', node.position); +}; /** - * Internal dependencies + * Visit media node. */ +identity_Compiler.prototype.media = function (node) { + return this.emit('@media ' + node.media, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}'); +}; /** - * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist. - * - * @param {Object} settings Original block settings. - * - * @return {Object} Filtered block settings. + * Visit container node. */ -function addLabelCallback(settings) { - // If blocks provide their own label callback, do not override it. - if (settings.__experimentalLabel) { - return settings; - } - const supportsBlockNaming = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'renaming', true // default value - ); - // Check whether block metadata is supported before using it. - if (supportsBlockNaming) { - settings.__experimentalLabel = (attributes, { - context - }) => { - const { - metadata - } = attributes; +identity_Compiler.prototype.container = function (node) { + return this.emit('@container ' + node.container, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}'); +}; - // In the list view, use the block's name attribute as the label. - if (context === 'list-view' && metadata?.name) { - return metadata.name; - } - }; - } - return settings; -} -function BlockRenameControlPure({ - metadata, - setAttributes -}) { - return (0,external_React_.createElement)(inspector_controls, { - group: "advanced" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - __next40pxDefaultSize: true, - label: (0,external_wp_i18n_namespaceObject.__)('Block name'), - value: metadata?.name || '', - onChange: newName => { - setAttributes({ - metadata: { - ...metadata, - name: newName - } - }); - } - })); -} -/* harmony default export */ var block_renaming = ({ - edit: BlockRenameControlPure, - attributeKeys: ['metadata'], - hasSupport(name) { - return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'renaming', true); - } -}); -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback); +/** + * Visit document node. + */ + +identity_Compiler.prototype.document = function (node) { + const doc = '@' + (node.vendor || '') + 'document ' + node.document; + return this.emit(doc, node.position) + this.emit(' ' + ' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}'); +}; + +/** + * Visit charset node. + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-bindings-attributes.js +identity_Compiler.prototype.charset = function (node) { + return this.emit('@charset ' + node.charset + ';', node.position); +}; /** - * WordPress dependencies + * Visit namespace node. */ +identity_Compiler.prototype.namespace = function (node) { + return this.emit('@namespace ' + node.namespace + ';', node.position); +}; +/** + * Visit supports node. + */ +identity_Compiler.prototype.supports = function (node) { + return this.emit('@supports ' + node.supports, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}'); +}; /** - * Internal dependencies + * Visit keyframes node. */ +identity_Compiler.prototype.keyframes = function (node) { + return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.keyframes, '\n') + this.emit(this.indent(-1) + '}'); +}; +/** + * Visit keyframe node. + */ - -/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */ -/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */ +identity_Compiler.prototype.keyframe = function (node) { + const decls = node.declarations; + return this.emit(this.indent()) + this.emit(node.values.join(', '), node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1) + '\n' + this.indent() + '}\n'); +}; /** - * Given a binding of block attributes, returns a higher order component that - * overrides its `attributes` and `setAttributes` props to sync any changes needed. - * - * @return {WPHigherOrderComponent} Higher-order component. + * Visit page node. */ -const BLOCK_BINDINGS_ALLOWED_BLOCKS = { - 'core/paragraph': ['content'], - 'core/heading': ['content'], - 'core/image': ['url', 'title', 'alt'], - 'core/button': ['url', 'text', 'linkTarget'] +identity_Compiler.prototype.page = function (node) { + const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : ''; + return this.emit('@page ' + sel, node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}'); }; -const createEditFunctionWithBindingsAttribute = () => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { - const { - clientId, - name: blockName - } = useBlockEditContext(); - const { - getBlockBindingsSource - } = unlock((0,external_wp_data_namespaceObject.useSelect)(store)); - const { - getBlockAttributes, - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const updatedAttributes = getBlockAttributes(clientId); - if (updatedAttributes?.metadata?.bindings) { - Object.entries(updatedAttributes.metadata.bindings).forEach(([attributeName, settings]) => { - const source = getBlockBindingsSource(settings.source.name); - if (source) { - // Second argument (`updateMetaValue`) will be used to update the value in the future. - const { - placeholder, - useValue: [metaValue = null] = [] - } = source.useSource(props, settings.source.attributes); - if (placeholder && !metaValue) { - // If the attribute is `src` or `href`, a placeholder can't be used because it is not a valid url. - // Adding this workaround until attributes and metadata fields types are improved and include `url`. - const htmlAttribute = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName).attributes[attributeName].attribute; - if (htmlAttribute === 'src' || htmlAttribute === 'href') { - updatedAttributes[attributeName] = null; - } else { - updatedAttributes[attributeName] = placeholder; - } - } - if (metaValue) { - updatedAttributes[attributeName] = metaValue; - } - } - }); - } - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(BlockEdit, { - key: "edit", - attributes: updatedAttributes, - setAttributes: (newAttributes, blockId) => registry.batch(() => updateBlockAttributes(blockId, newAttributes)), - ...props - })); -}, 'useBoundAttributes'); /** - * Filters a registered block's settings to enhance a block's `edit` component - * to upgrade bound attributes. - * - * @param {WPBlockSettings} settings Registered block settings. - * - * @return {WPBlockSettings} Filtered block settings. + * Visit font-face node. */ -function shimAttributeSource(settings) { - if (!(settings.name in BLOCK_BINDINGS_ALLOWED_BLOCKS)) { - return settings; - } - settings.edit = createEditFunctionWithBindingsAttribute()(settings.edit); - return settings; -} -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/custom-sources-backwards-compatibility/shim-attribute-source', shimAttributeSource); -// Add the context to all blocks. -(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/block-bindings-ui', (settings, name) => { - if (!(name in BLOCK_BINDINGS_ALLOWED_BLOCKS)) { - return settings; - } - const contextItems = ['postId', 'postType', 'queryId']; - const usesContextArray = settings.usesContext; - const oldUsesContextArray = new Set(usesContextArray); - contextItems.forEach(item => { - if (!oldUsesContextArray.has(item)) { - usesContextArray.push(item); - } - }); - settings.usesContext = usesContextArray; - return settings; -}); +identity_Compiler.prototype['font-face'] = function (node) { + return this.emit('@font-face ', node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}'); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-border-props.js /** - * Internal dependencies + * Visit host node. */ +identity_Compiler.prototype.host = function (node) { + return this.emit('@host', node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}'); +}; +/** + * Visit custom-media node. + */ +identity_Compiler.prototype['custom-media'] = function (node) { + return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position); +}; -// This utility is intended to assist where the serialization of the border -// block support is being skipped for a block but the border related CSS classes -// & styles still need to be generated so they can be applied to inner elements. +/** + * Visit rule node. + */ + +identity_Compiler.prototype.rule = function (node) { + const indent = this.indent(); + const decls = node.declarations; + if (!decls.length) { + return ''; + } + return this.emit(node.selectors.map(function (s) { + return indent + s; + }).join(',\n'), node.position) + this.emit(' {\n') + this.emit(this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1)) + this.emit('\n' + this.indent() + '}'); +}; /** - * Provides the CSS class names and inline styles for a block's border support - * attributes. - * - * @param {Object} attributes Block attributes. - * @return {Object} Border block support derived CSS classes & styles. + * Visit declaration node. */ -function getBorderClassesAndStyles(attributes) { - const border = attributes.style?.border || {}; - const className = getBorderClasses(attributes); - return { - className: className || undefined, - style: getInlineStyles({ - border - }) - }; -} + +identity_Compiler.prototype.declaration = function (node) { + return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value, node.position) + this.emit(';'); +}; /** - * Derives the border related props for a block from its border block support - * attributes. - * - * Inline styles are forced for named colors to ensure these selections are - * reflected when themes do not load their color stylesheets in the editor. - * - * @param {Object} attributes Block attributes. - * - * @return {Object} ClassName & style props from border block support. + * Increase, decrease or return current indentation. */ -function useBorderProps(attributes) { - const { - colors - } = useMultipleOriginColorsAndGradients(); - const borderProps = getBorderClassesAndStyles(attributes); - const { - borderColor - } = attributes; - // Force inline styles to apply named border colors when themes do not load - // their color stylesheets in the editor. - if (borderColor) { - const borderColorObject = getMultiOriginColor({ - colors, - namedColor: borderColor - }); - borderProps.style.borderColor = borderColorObject.color; +identity_Compiler.prototype.indent = function (level) { + this.level = this.level || 1; + if (null !== level) { + this.level += level; + return ''; } - return borderProps; -} + return Array(this.level).join(this.indentation || ' '); +}; + +/* eslint-enable @wordpress/no-unused-vars-before-return */ + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/index.js +// Adapted from https://github.com/reworkcss/css +// because we needed to remove source map support. -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-shadow-props.js /** * Internal dependencies */ -// This utility is intended to assist where the serialization of the shadow -// block support is being skipped for a block but the shadow related CSS classes -// & styles still need to be generated so they can be applied to inner elements. /** - * Provides the CSS class names and inline styles for a block's shadow support - * attributes. + * Stringfy the given AST `node`. * - * @param {Object} attributes Block attributes. - * @return {Object} Shadow block support derived CSS classes & styles. - */ -function getShadowClassesAndStyles(attributes) { - const shadow = attributes.style?.shadow || ''; - return { - className: undefined, - style: getInlineStyles({ - shadow - }) - }; -} - -/** - * Derives the shadow related props for a block from its shadow block support - * attributes. + * Options: * - * @param {Object} attributes Block attributes. + * - `compress` space-optimized output + * - `sourcemap` return an object with `.code` and `.map` * - * @return {Object} ClassName & style props from shadow block support. + * @param {Object} node + * @param {Object} [options] + * @return {string} */ -function useShadowProps(attributes) { - const shadowProps = getShadowClassesAndStyles(attributes); - return shadowProps; + +/* harmony default export */ function stringify(node, options) { + options = options || {}; + const compiler = options.compress ? new compress(options) : new stringify_identity(options); + const code = compiler.compile(node); + return code; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-color-props.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/traverse.js /** * External dependencies */ /** - * WordPress dependencies + * Internal dependencies */ +function traverseCSS(css, callback) { + try { + const parsed = parse(css); + const updated = traverse_default().map(parsed, function (node) { + if (!node) { + return node; + } + const updatedNode = callback(node); + return this.update(updatedNode); + }); + return stringify(updated); + } catch (err) { + // eslint-disable-next-line no-console + console.warn('Error while traversing the CSS: ' + err); + return null; + } +} +/* harmony default export */ var transform_styles_traverse = (traverseCSS); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/transforms/url-rewrite.js /** - * Internal dependencies + * Return `true` if the given path is http/https. + * + * @param {string} filePath path + * + * @return {boolean} is remote path. */ - - - - - -// The code in this file has largely been lifted from the color block support -// hook. -// -// This utility is intended to assist where the serialization of the colors -// block support is being skipped for a block but the color related CSS classes -// & styles still need to be generated so they can be applied to inner elements. +function isRemotePath(filePath) { + return /^(?:https?:)?\/\//.test(filePath); +} /** - * Provides the CSS class names and inline styles for a block's color support - * attributes. + * Return `true` if the given filePath is an absolute url. * - * @param {Object} attributes Block attributes. + * @param {string} filePath path * - * @return {Object} Color block support derived CSS classes & styles. + * @return {boolean} is absolute path. */ -function getColorClassesAndStyles(attributes) { - const { - backgroundColor, - textColor, - gradient, - style - } = attributes; - - // Collect color CSS classes. - const backgroundClass = getColorClassName('background-color', backgroundColor); - const textClass = getColorClassName('color', textColor); - const gradientClass = __experimentalGetGradientClass(gradient); - const hasGradient = gradientClass || style?.color?.gradient; - - // Determine color CSS class name list. - const className = classnames_default()(textClass, gradientClass, { - // Don't apply the background class if there's a gradient. - [backgroundClass]: !hasGradient && !!backgroundClass, - 'has-text-color': textColor || style?.color?.text, - 'has-background': backgroundColor || style?.color?.background || gradient || style?.color?.gradient, - 'has-link-color': style?.elements?.link?.color - }); - - // Collect inline styles for colors. - const colorStyles = style?.color || {}; - const styleProp = getInlineStyles({ - color: colorStyles - }); - return { - className: className || undefined, - style: styleProp - }; +function isAbsolutePath(filePath) { + return /^\/(?!\/)/.test(filePath); } /** - * Determines the color related props for a block derived from its color block - * support attributes. - * - * Inline styles are forced for named colors to ensure these selections are - * reflected when themes do not load their color stylesheets in the editor. + * Whether or not the url should be inluded. * - * @param {Object} attributes Block attributes. + * @param {Object} meta url meta info * - * @return {Object} ClassName & style props from colors block support. + * @return {boolean} is valid. */ -function useColorProps(attributes) { - const { - backgroundColor, - textColor, - gradient - } = attributes; - const [userPalette, themePalette, defaultPalette, userGradients, themeGradients, defaultGradients] = use_settings_useSettings('color.palette.custom', 'color.palette.theme', 'color.palette.default', 'color.gradients.custom', 'color.gradients.theme', 'color.gradients.default'); - const colors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); - const gradients = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userGradients || []), ...(themeGradients || []), ...(defaultGradients || [])], [userGradients, themeGradients, defaultGradients]); - const colorProps = getColorClassesAndStyles(attributes); - - // Force inline styles to apply colors when themes do not load their color - // stylesheets in the editor. - if (backgroundColor) { - const backgroundColorObject = getColorObjectByAttributeValues(colors, backgroundColor); - colorProps.style.backgroundColor = backgroundColorObject.color; +function isValidURL(meta) { + // Ignore hashes or data uris. + if (meta.value.indexOf('data:') === 0 || meta.value.indexOf('#') === 0) { + return false; } - if (gradient) { - colorProps.style.background = getGradientValueBySlug(gradients, gradient); + if (isAbsolutePath(meta.value)) { + return false; } - if (textColor) { - const textColorObject = getColorObjectByAttributeValues(colors, textColor); - colorProps.style.color = textColorObject.color; + + // Do not handle the http/https urls if `includeRemote` is false. + if (isRemotePath(meta.value)) { + return false; } - return colorProps; + return true; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-spacing-props.js /** - * Internal dependencies + * Get the absolute path of the url, relative to the basePath + * + * @param {string} str the url + * @param {string} baseURL base URL + * + * @return {string} the full path to the file */ - - -// This utility is intended to assist where the serialization of the spacing -// block support is being skipped for a block but the spacing related CSS -// styles still need to be generated so they can be applied to inner elements. +function getResourcePath(str, baseURL) { + return new URL(str, baseURL).toString(); +} /** - * Provides the CSS class names and inline styles for a block's spacing support - * attributes. + * Process the single `url()` pattern * - * @param {Object} attributes Block attributes. + * @param {string} baseURL the base URL for relative URLs. * - * @return {Object} Spacing block support derived CSS classes & styles. + * @return {Promise} the Promise. */ -function getSpacingClassesAndStyles(attributes) { - const { - style - } = attributes; - - // Collect inline styles for spacing. - const spacingStyles = style?.spacing || {}; - const styleProp = getInlineStyles({ - spacing: spacingStyles +function processURL(baseURL) { + return meta => ({ + ...meta, + newUrl: 'url(' + meta.before + meta.quote + getResourcePath(meta.value, baseURL) + meta.quote + meta.after + ')' }); - return { - style: styleProp - }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-typography-props.js /** - * External dependencies + * Get all `url()`s, and return the meta info + * + * @param {string} value decl.value. + * + * @return {Array} the urls. */ - +function getURLs(value) { + const reg = /url\((\s*)(['"]?)(.+?)\2(\s*)\)/g; + let match; + const URLs = []; + while ((match = reg.exec(value)) !== null) { + const meta = { + source: match[0], + before: match[1], + quote: match[2], + value: match[3], + after: match[4] + }; + if (isValidURL(meta)) { + URLs.push(meta); + } + } + return URLs; +} /** - * WordPress dependencies + * Replace the raw value's `url()` segment to the new value + * + * @param {string} raw the raw value. + * @param {Array} URLs the URLs to replace. + * + * @return {string} the new value. */ +function replaceURLs(raw, URLs) { + URLs.forEach(item => { + raw = raw.replace(item.source, item.newUrl); + }); + return raw; +} +const rewrite = rootURL => node => { + if (node.type === 'declaration') { + const updatedURLs = getURLs(node.value).map(processURL(rootURL)); + return { + ...node, + value: replaceURLs(node.value, updatedURLs) + }; + } + return node; +}; +/* harmony default export */ var url_rewrite = (rewrite); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/transforms/wrap.js /** - * Internal dependencies + * @constant string IS_ROOT_TAG Regex to check if the selector is a root tag selector. */ +const IS_ROOT_TAG = /^(body|html|:root).*$/; - - - - -/* - * This utility is intended to assist where the serialization of the typography - * block support is being skipped for a block but the typography related CSS - * styles still need to be generated so they can be applied to inner elements. - */ /** - * Provides the CSS class names and inline styles for a block's typography support - * attributes. + * Creates a callback to modify selectors so they only apply within a certain + * namespace. * - * @param {Object} attributes Block attributes. - * @param {Object|boolean} settings Merged theme.json settings + * @param {string} namespace Namespace to prefix selectors with. + * @param {string[]} ignore Selectors to not prefix. * - * @return {Object} Typography block support derived CSS classes & styles. + * @return {(node: Object) => Object} Callback to wrap selectors. */ -function getTypographyClassesAndStyles(attributes, settings) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - let typographyStyles = attributes?.style?.typography || {}; - const fluidTypographySettings = getFluidTypographyOptionsFromSettings(settings); - typographyStyles = { - ...typographyStyles, - fontSize: getTypographyFontSizeValue({ - size: attributes?.style?.typography?.fontSize - }, fluidTypographySettings) - }; - const style = getInlineStyles({ - typography: typographyStyles - }); - const fontFamilyClassName = !!attributes?.fontFamily ? `has-${kebabCase(attributes.fontFamily)}-font-family` : ''; - const className = classnames_default()(fontFamilyClassName, getFontSizeClass(attributes?.fontSize)); - return { - className, - style +const wrap = (namespace, ignore = []) => node => { + /** + * Updates selector if necessary. + * + * @param {string} selector Selector to modify. + * + * @return {string} Updated selector. + */ + const updateSelector = selector => { + if (ignore.includes(selector.trim())) { + return selector; + } + + // Skip the update when a selector already has a namespace + space (" "). + if (selector.trim().startsWith(`${namespace} `)) { + return selector; + } + + // Anything other than a root tag is always prefixed. + { + if (!selector.match(IS_ROOT_TAG)) { + return namespace + ' ' + selector; + } + } + + // HTML and Body elements cannot be contained within our container so lets extract their styles. + return selector.replace(/^(body|html|:root)/, namespace); }; -} + if (node.type === 'rule') { + return { + ...node, + selectors: node.selectors.map(updateSelector) + }; + } + return node; +}; +/* harmony default export */ var transforms_wrap = (wrap); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-cached-truthy.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/index.js /** * WordPress dependencies */ -/** - * Keeps an up-to-date copy of the passed value and returns it. If value becomes falsy, it will return the last truthy copy. - * - * @param {any} value - * @return {any} value - */ -function useCachedTruthy(value) { - const [cachedValue, setCachedValue] = (0,external_wp_element_namespaceObject.useState)(value); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (value) { - setCachedValue(value); - } - }, [value]); - return cachedValue; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/index.js /** * Internal dependencies */ @@ -34496,40 +26442,263 @@ function useCachedTruthy(value) { +/** + * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed. + * + * @param {Object|Array} styles CSS rules. + * @param {string} wrapperClassName Wrapper Class Name. + * @return {Array} converted rules. + */ +const transform_styles_transformStyles = (styles, wrapperClassName = '') => { + return Object.values(styles !== null && styles !== void 0 ? styles : []).map(({ + css, + baseURL + }) => { + const transforms = []; + if (wrapperClassName) { + transforms.push(transforms_wrap(wrapperClassName)); + } + if (baseURL) { + transforms.push(url_rewrite(baseURL)); + } + if (transforms.length) { + return transform_styles_traverse(css, (0,external_wp_compose_namespaceObject.compose)(transforms)); + } + return css; + }); +}; +/* harmony default export */ var transform_styles = (transform_styles_transformStyles); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editor-styles/index.js +/** + * External dependencies + */ +/** + * WordPress dependencies + */ +/** + * Internal dependencies + */ +k([names, a11y]); +function useDarkThemeBodyClassName(styles, scope) { + return (0,external_wp_element_namespaceObject.useCallback)(node => { + if (!node) { + return; + } + const { + ownerDocument + } = node; + const { + defaultView, + body + } = ownerDocument; + const canvas = scope ? ownerDocument.querySelector(scope) : body; + let backgroundColor; + if (!canvas) { + // The real .editor-styles-wrapper element might not exist in the + // DOM, so calculate the background color by creating a fake + // wrapper. + const tempCanvas = ownerDocument.createElement('div'); + tempCanvas.classList.add('editor-styles-wrapper'); + body.appendChild(tempCanvas); + backgroundColor = defaultView?.getComputedStyle(tempCanvas, null).getPropertyValue('background-color'); + body.removeChild(tempCanvas); + } else { + backgroundColor = defaultView?.getComputedStyle(canvas, null).getPropertyValue('background-color'); + } + const colordBackgroundColor = w(backgroundColor); + // If background is transparent, it should be treated as light color. + if (colordBackgroundColor.luminance() > 0.5 || colordBackgroundColor.alpha() === 0) { + body.classList.remove('is-dark-theme'); + } else { + body.classList.add('is-dark-theme'); + } + }, [styles, scope]); +} +function EditorStyles({ + styles, + scope +}) { + const overrides = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getStyleOverrides(), []); + const [transformedStyles, transformedSvgs] = (0,external_wp_element_namespaceObject.useMemo)(() => { + const _styles = Object.values(styles !== null && styles !== void 0 ? styles : []); + for (const [id, override] of overrides) { + const index = _styles.findIndex(({ + id: _id + }) => id === _id); + const overrideWithId = { + ...override, + id + }; + if (index === -1) { + _styles.push(overrideWithId); + } else { + _styles[index] = overrideWithId; + } + } + return [transform_styles(_styles.filter(style => style?.css), scope), _styles.filter(style => style.__unstableType === 'svgs').map(style => style.assets).join('')]; + }, [styles, overrides, scope]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("style", { + ref: useDarkThemeBodyClassName(transformedStyles, scope) + }), transformedStyles.map((css, index) => (0,external_wp_element_namespaceObject.createElement)("style", { + key: index + }, css)), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 0 0", + width: "0", + height: "0", + role: "none", + style: { + visibility: 'hidden', + position: 'absolute', + left: '-9999px', + overflow: 'hidden' + }, + dangerouslySetInnerHTML: { + __html: transformedSvgs + } + })); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/auto.js +/** + * WordPress dependencies + */ +/** + * Internal dependencies + */ -createBlockEditFilter([align, hooks_anchor, custom_class_name, style, duotone, position, layout, content_lock_ui, block_hooks, block_renaming].filter(Boolean)); -createBlockListBlockFilter([align, style, color, dimensions, duotone, font_family, font_size, border, position, layout_child]); -createBlockSaveFilter([align, hooks_anchor, aria_label, custom_class_name, border, color, style, font_family, font_size]); +// This is used to avoid rendering the block list if the sizes change. +let MemoizedBlockList; +const MAX_HEIGHT = 2000; +function ScaledBlockPreview({ + viewportWidth, + containerWidth, + minHeight, + additionalStyles = [] +}) { + if (!viewportWidth) { + viewportWidth = containerWidth; + } + const [contentResizeListener, { + height: contentHeight + }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); + const { + styles + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const settings = select(store).getSettings(); + return { + styles: settings.styles + }; + }, []); + // Avoid scrollbars for pattern previews. + const editorStyles = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (styles) { + return [...styles, { + css: 'body{height:auto;overflow:hidden;border:none;padding:0;}', + __unstableType: 'presets' + }, ...additionalStyles]; + } + return styles; + }, [styles, additionalStyles]); + // Initialize on render instead of module top level, to avoid circular dependency issues. + MemoizedBlockList = MemoizedBlockList || (0,external_wp_compose_namespaceObject.pure)(BlockList); + const scale = containerWidth / viewportWidth; + const aspectRatio = contentHeight ? containerWidth / (contentHeight * scale) : 0; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Disabled, { + className: "block-editor-block-preview__content", + style: { + transform: `scale(${scale})`, + // Using width + aspect-ratio instead of height here triggers browsers' native + // handling of scrollbar's visibility. It prevents the flickering issue seen + // in https://github.com/WordPress/gutenberg/issues/52027. + // See https://github.com/WordPress/gutenberg/pull/52921 for more info. + aspectRatio, + maxHeight: contentHeight > MAX_HEIGHT ? MAX_HEIGHT * scale : undefined, + minHeight + } + }, (0,external_wp_element_namespaceObject.createElement)(iframe, { + contentRef: (0,external_wp_compose_namespaceObject.useRefEffect)(bodyElement => { + const { + ownerDocument: { + documentElement + } + } = bodyElement; + documentElement.classList.add('block-editor-block-preview__content-iframe'); + documentElement.style.position = 'absolute'; + documentElement.style.width = '100%'; + // Necessary for contentResizeListener to work. + bodyElement.style.boxSizing = 'border-box'; + bodyElement.style.position = 'absolute'; + bodyElement.style.width = '100%'; + }, []), + "aria-hidden": true, + tabIndex: -1, + style: { + position: 'absolute', + width: viewportWidth, + height: contentHeight, + pointerEvents: 'none', + // This is a catch-all max-height for patterns. + // See: https://github.com/WordPress/gutenberg/pull/38175. + maxHeight: MAX_HEIGHT, + minHeight: scale !== 0 && scale < 1 && minHeight ? minHeight / scale : minHeight + } + }, (0,external_wp_element_namespaceObject.createElement)(EditorStyles, { + styles: editorStyles + }), contentResizeListener, (0,external_wp_element_namespaceObject.createElement)(MemoizedBlockList, { + renderAppender: false + }))); +} +function AutoBlockPreview(props) { + const [containerResizeListener, { + width: containerWidth + }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + position: 'relative', + width: '100%', + height: 0 + } + }, containerResizeListener), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-preview__container" + }, !!containerWidth && (0,external_wp_element_namespaceObject.createElement)(ScaledBlockPreview, { + ...props, + containerWidth: containerWidth + }))); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/index.js +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/with-colors.js /** * WordPress dependencies @@ -34538,6 +26707,7 @@ createBlockSaveFilter([align, hooks_anchor, aria_label, custom_class_name, borde + /** * Internal dependencies */ @@ -34545,225 +26715,246 @@ createBlockSaveFilter([align, hooks_anchor, aria_label, custom_class_name, borde -/** - * Capitalizes the first letter in a string. - * - * @param {string} str The string whose first letter the function will capitalize. - * - * @return {string} Capitalized string. - */ -const upperFirst = ([firstLetter, ...rest]) => firstLetter.toUpperCase() + rest.join(''); -/** - * Higher order component factory for injecting the `colorsArray` argument as - * the colors prop in the `withCustomColors` HOC. - * - * @param {Array} colorsArray An array of color objects. - * - * @return {Function} The higher order component. - */ -const withCustomColorPalette = colorsArray => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => (0,external_React_.createElement)(WrappedComponent, { - ...props, - colors: colorsArray -}), 'withCustomColorPalette'); +function BlockPreview({ + blocks, + viewportWidth = 1200, + minHeight, + additionalStyles = [], + // Deprecated props: + __experimentalMinHeight, + __experimentalPadding +}) { + if (__experimentalMinHeight) { + minHeight = __experimentalMinHeight; + external_wp_deprecated_default()('The __experimentalMinHeight prop', { + since: '6.2', + version: '6.4', + alternative: 'minHeight' + }); + } + if (__experimentalPadding) { + additionalStyles = [...additionalStyles, { + css: `body { padding: ${__experimentalPadding}px; }` + }]; + external_wp_deprecated_default()('The __experimentalPadding prop of BlockPreview', { + since: '6.2', + version: '6.4', + alternative: 'additionalStyles' + }); + } + const originalSettings = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings(), []); + const settings = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + ...originalSettings, + __unstableIsPreviewMode: true + }), [originalSettings]); + const renderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]); + if (!blocks || blocks.length === 0) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(ExperimentalBlockEditorProvider, { + value: renderedBlocks, + settings: settings + }, (0,external_wp_element_namespaceObject.createElement)(AutoBlockPreview, { + viewportWidth: viewportWidth, + minHeight: minHeight, + additionalStyles: additionalStyles + })); +} /** - * Higher order component factory for injecting the editor colors as the - * `colors` prop in the `withColors` HOC. + * BlockPreview renders a preview of a block or array of blocks. * - * @return {Function} The higher order component. - */ -const withEditorColorPalette = () => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { - const [userPalette, themePalette, defaultPalette] = use_settings_useSettings('color.palette.custom', 'color.palette.theme', 'color.palette.default'); - const allColors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); - return (0,external_React_.createElement)(WrappedComponent, { - ...props, - colors: allColors - }); -}, 'withEditorColorPalette'); - -/** - * Helper function used with `createHigherOrderComponent` to create - * higher order components for managing color logic. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md * - * @param {Array} colorTypes An array of color types (e.g. 'backgroundColor, borderColor). - * @param {Function} withColorPalette A HOC for injecting the 'colors' prop into the WrappedComponent. + * @param {Object} preview options for how the preview should be shown + * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed. + * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700. * - * @return {Component} The component that can be used as a HOC. + * @return {WPComponent} The component to be rendered. */ -function createColorHOC(colorTypes, withColorPalette) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); - const colorMap = colorTypes.reduce((colorObject, colorType) => { - return { - ...colorObject, - ...(typeof colorType === 'string' ? { - [colorType]: kebabCase(colorType) - } : colorType) - }; - }, {}); - return (0,external_wp_compose_namespaceObject.compose)([withColorPalette, WrappedComponent => { - return class extends external_wp_element_namespaceObject.Component { - constructor(props) { - super(props); - this.setters = this.createSetters(); - this.colorUtils = { - getMostReadableColor: this.getMostReadableColor.bind(this) - }; - this.state = {}; - } - getMostReadableColor(colorValue) { - const { - colors - } = this.props; - return getMostReadableColor(colors, colorValue); - } - createSetters() { - return Object.keys(colorMap).reduce((settersAccumulator, colorAttributeName) => { - const upperFirstColorAttributeName = upperFirst(colorAttributeName); - const customColorAttributeName = `custom${upperFirstColorAttributeName}`; - settersAccumulator[`set${upperFirstColorAttributeName}`] = this.createSetColor(colorAttributeName, customColorAttributeName); - return settersAccumulator; - }, {}); - } - createSetColor(colorAttributeName, customColorAttributeName) { - return colorValue => { - const colorObject = getColorObjectByColorValue(this.props.colors, colorValue); - this.props.setAttributes({ - [colorAttributeName]: colorObject && colorObject.slug ? colorObject.slug : undefined, - [customColorAttributeName]: colorObject && colorObject.slug ? undefined : colorValue - }); - }; - } - static getDerivedStateFromProps({ - attributes, - colors - }, previousState) { - return Object.entries(colorMap).reduce((newState, [colorAttributeName, colorContext]) => { - const colorObject = getColorObjectByAttributeValues(colors, attributes[colorAttributeName], attributes[`custom${upperFirst(colorAttributeName)}`]); - const previousColorObject = previousState[colorAttributeName]; - const previousColor = previousColorObject?.color; - /** - * The "and previousColorObject" condition checks that a previous color object was already computed. - * At the start previousColorObject and colorValue are both equal to undefined - * bus as previousColorObject does not exist we should compute the object. - */ - if (previousColor === colorObject.color && previousColorObject) { - newState[colorAttributeName] = previousColorObject; - } else { - newState[colorAttributeName] = { - ...colorObject, - class: getColorClassName(colorContext, colorObject.slug) - }; - } - return newState; - }, {}); - } - render() { - return (0,external_React_.createElement)(WrappedComponent, { - ...this.props, - colors: undefined, - ...this.state, - ...this.setters, - colorUtils: this.colorUtils - }); - } - }; - }]); -} +/* harmony default export */ var block_preview = ((0,external_wp_element_namespaceObject.memo)(BlockPreview)); /** - * A higher-order component factory for creating a 'withCustomColors' HOC, which handles color logic - * for class generation color value, retrieval and color attribute setting. - * - * Use this higher-order component to work with a custom set of colors. - * - * @example - * - * ```jsx - * const CUSTOM_COLORS = [ { name: 'Red', slug: 'red', color: '#ff0000' }, { name: 'Blue', slug: 'blue', color: '#0000ff' } ]; - * const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS ); - * // ... - * export default compose( - * withCustomColors( 'backgroundColor', 'borderColor' ), - * MyColorfulComponent, - * ); - * ``` - * - * @param {Array} colorsArray The array of color objects (name, slug, color, etc... ). + * This hook is used to lightly mark an element as a block preview wrapper + * element. Call this hook and pass the returned props to the element to mark as + * a block preview wrapper, automatically rendering inner blocks as children. If + * you define a ref for the element, it is important to pass the ref to this + * hook, which the hook in turn will pass to the component through the props it + * returns. Optionally, you can also pass any other props through this hook, and + * they will be merged and returned. * - * @return {Function} Higher-order component. + * @param {Object} options Preview options. + * @param {WPBlock[]} options.blocks Block objects. + * @param {Object} options.props Optional. Props to pass to the element. Must contain + * the ref if one is defined. + * @param {Object} options.layout Layout settings to be used in the preview. */ -function createCustomColorsHOC(colorsArray) { - return (...colorTypes) => { - const withColorPalette = withCustomColorPalette(colorsArray); - return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(createColorHOC(colorTypes, withColorPalette), 'withCustomColors'); +function useBlockPreview({ + blocks, + props = {}, + layout +}) { + const originalSettings = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings(), []); + const settings = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + ...originalSettings, + styles: undefined, + // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles. + __unstableIsPreviewMode: true + }), [originalSettings]); + const disabledRef = (0,external_wp_compose_namespaceObject.useDisabled)(); + const ref = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, disabledRef]); + const renderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]); + const children = (0,external_wp_element_namespaceObject.createElement)(ExperimentalBlockEditorProvider, { + value: renderedBlocks, + settings: settings + }, (0,external_wp_element_namespaceObject.createElement)(EditorStyles, null), (0,external_wp_element_namespaceObject.createElement)(BlockListItems, { + renderAppender: false, + layout: layout + })); + return { + ...props, + ref, + className: classnames_default()(props.className, 'block-editor-block-preview__live-content', 'components-disabled'), + children: blocks?.length ? children : null }; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/preview-panel.js + /** - * A higher-order component, which handles color logic for class generation color value, retrieval and color attribute setting. - * - * For use with the default editor/theme color palette. - * - * @example - * - * ```jsx - * export default compose( - * withColors( 'backgroundColor', { textColor: 'color' } ), - * MyColorfulComponent, - * ); - * ``` - * - * @param {...(Object|string)} colorTypes The arguments can be strings or objects. If the argument is an object, - * it should contain the color attribute name as key and the color context as value. - * If the argument is a string the value should be the color attribute name, - * the color context is computed by applying a kebab case transform to the value. - * Color context represents the context/place where the color is going to be used. - * The class name of the color is generated using 'has' followed by the color name - * and ending with the color context all in kebab case e.g: has-green-background-color. - * - * @return {Function} Higher-order component. + * WordPress dependencies */ -function withColors(...colorTypes) { - const withColorPalette = withEditorColorPalette(); - return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(createColorHOC(colorTypes, withColorPalette), 'withColors'); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/index.js +/** + * Internal dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/font-size-picker.js +function InserterPreviewPanel({ + item +}) { + var _example$viewportWidt; + const { + name, + title, + icon, + description, + initialAttributes, + example + } = item; + const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)(item); + const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!example) { + return (0,external_wp_blocks_namespaceObject.createBlock)(name, initialAttributes); + } + return (0,external_wp_blocks_namespaceObject.getBlockFromExample)(name, { + attributes: { + ...example.attributes, + ...initialAttributes + }, + innerBlocks: example.innerBlocks + }); + }, [name, example, initialAttributes]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__preview-container" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__preview" + }, isReusable || example ? (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__preview-content" + }, (0,external_wp_element_namespaceObject.createElement)(block_preview, { + blocks: blocks, + viewportWidth: (_example$viewportWidt = example?.viewportWidth) !== null && _example$viewportWidt !== void 0 ? _example$viewportWidt : 500, + additionalStyles: [{ + css: 'body { padding: 16px; }' + }] + })) : (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__preview-content-missing" + }, (0,external_wp_i18n_namespaceObject.__)('No Preview Available.'))), !isReusable && (0,external_wp_element_namespaceObject.createElement)(block_card, { + title: title, + icon: icon, + description: description + })); +} +/* harmony default export */ var preview_panel = (InserterPreviewPanel); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/context.js +/** + * WordPress dependencies + */ + +const InserterListboxContext = (0,external_wp_element_namespaceObject.createContext)(); +/* harmony default export */ var context = (InserterListboxContext); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/item.js /** * WordPress dependencies */ + /** * Internal dependencies */ -function font_size_picker_FontSizePicker(props) { - const [fontSizes, customFontSize] = use_settings_useSettings('typography.fontSizes', 'typography.customFontSize'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.FontSizePicker, { - ...props, - fontSizes: fontSizes, - disableCustomFontSizes: !customFontSize +function InserterListboxItem({ + isFirst, + as: Component, + children, + ...props +}, ref) { + const state = (0,external_wp_element_namespaceObject.useContext)(context); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + ref: ref, + state: state, + role: "option" + // Use the CompositeItem `focusable` prop over Button's + // isFocusable. The latter was shown to cause an issue + // with tab order in the inserter list. + , + focusable: true, + ...props + }, htmlProps => { + const propsWithTabIndex = { + ...htmlProps, + tabIndex: isFirst ? 0 : htmlProps.tabIndex + }; + if (Component) { + return (0,external_wp_element_namespaceObject.createElement)(Component, { + ...propsWithTabIndex + }, children); + } + if (typeof children === 'function') { + return children(propsWithTabIndex); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...propsWithTabIndex + }, children); }); } +/* harmony default export */ var inserter_listbox_item = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxItem)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/drag-handle.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md + * WordPress dependencies */ -/* harmony default export */ var font_size_picker = (font_size_picker_FontSizePicker); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/with-font-sizes.js +const dragHandle = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + width: "24", + height: "24", + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M8 7h2V5H8v2zm0 6h2v-2H8v2zm0 6h2v-2H8v2zm6-14v2h2V5h-2zm0 8h2v-2h-2v2zm0 6h2v-2h-2v2z" +})); +/* harmony default export */ var drag_handle = (dragHandle); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/draggable-chip.js /** * WordPress dependencies @@ -34771,501 +26962,314 @@ function font_size_picker_FontSizePicker(props) { + /** * Internal dependencies */ +function BlockDraggableChip({ + count, + icon, + isPattern +}) { + const patternLabel = isPattern && (0,external_wp_i18n_namespaceObject.__)('Pattern'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-draggable-chip-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-draggable-chip", + "data-testid": "block-draggable-chip" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + justify: "center", + className: "block-editor-block-draggable-chip__content" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, icon ? (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon + }) : patternLabel || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: Number of blocks. */ + (0,external_wp_i18n_namespaceObject._n)('%d block', '%d blocks', count), count)), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: drag_handle + }))))); +} -const DEFAULT_FONT_SIZES = []; - -/** - * Capitalizes the first letter in a string. - * - * @param {string} str The string whose first letter the function will capitalize. - * - * @return {string} Capitalized string. - */ -const with_font_sizes_upperFirst = ([firstLetter, ...rest]) => firstLetter.toUpperCase() + rest.join(''); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-draggable-blocks/index.js /** - * Higher-order component, which handles font size logic for class generation, - * font size value retrieval, and font size change handling. - * - * @param {...(Object|string)} fontSizeNames The arguments should all be strings. - * Each string contains the font size - * attribute name e.g: 'fontSize'. - * - * @return {Function} Higher-order component. + * WordPress dependencies */ -/* harmony default export */ var with_font_sizes = ((...fontSizeNames) => { - /* - * Computes an object whose key is the font size attribute name as passed in the array, - * and the value is the custom font size attribute name. - * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized. - */ - const fontSizeAttributeNames = fontSizeNames.reduce((fontSizeAttributeNamesAccumulator, fontSizeAttributeName) => { - fontSizeAttributeNamesAccumulator[fontSizeAttributeName] = `custom${with_font_sizes_upperFirst(fontSizeAttributeName)}`; - return fontSizeAttributeNamesAccumulator; - }, {}); - return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { - const [fontSizes] = use_settings_useSettings('typography.fontSizes'); - return (0,external_React_.createElement)(WrappedComponent, { - ...props, - fontSizes: fontSizes || DEFAULT_FONT_SIZES - }); - }, 'withFontSizes'), WrappedComponent => { - return class extends external_wp_element_namespaceObject.Component { - constructor(props) { - super(props); - this.setters = this.createSetters(); - this.state = {}; - } - createSetters() { - return Object.entries(fontSizeAttributeNames).reduce((settersAccumulator, [fontSizeAttributeName, customFontSizeAttributeName]) => { - const upperFirstFontSizeAttributeName = with_font_sizes_upperFirst(fontSizeAttributeName); - settersAccumulator[`set${upperFirstFontSizeAttributeName}`] = this.createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName); - return settersAccumulator; - }, {}); - } - createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName) { - return fontSizeValue => { - const fontSizeObject = this.props.fontSizes?.find(({ - size - }) => size === Number(fontSizeValue)); - this.props.setAttributes({ - [fontSizeAttributeName]: fontSizeObject && fontSizeObject.slug ? fontSizeObject.slug : undefined, - [customFontSizeAttributeName]: fontSizeObject && fontSizeObject.slug ? undefined : fontSizeValue - }); - }; - } - static getDerivedStateFromProps({ - attributes, - fontSizes - }, previousState) { - const didAttributesChange = (customFontSizeAttributeName, fontSizeAttributeName) => { - if (previousState[fontSizeAttributeName]) { - // If new font size is name compare with the previous slug. - if (attributes[fontSizeAttributeName]) { - return attributes[fontSizeAttributeName] !== previousState[fontSizeAttributeName].slug; - } - // If font size is not named, update when the font size value changes. - return previousState[fontSizeAttributeName].size !== attributes[customFontSizeAttributeName]; - } - // In this case we need to build the font size object. - return true; - }; - if (!Object.values(fontSizeAttributeNames).some(didAttributesChange)) { - return null; - } - const newState = Object.entries(fontSizeAttributeNames).filter(([key, value]) => didAttributesChange(value, key)).reduce((newStateAccumulator, [fontSizeAttributeName, customFontSizeAttributeName]) => { - const fontSizeAttributeValue = attributes[fontSizeAttributeName]; - const fontSizeObject = utils_getFontSize(fontSizes, fontSizeAttributeValue, attributes[customFontSizeAttributeName]); - newStateAccumulator[fontSizeAttributeName] = { - ...fontSizeObject, - class: getFontSizeClass(fontSizeAttributeValue) - }; - return newStateAccumulator; - }, {}); - return { - ...previousState, - ...newState - }; - } - render() { - return (0,external_React_.createElement)(WrappedComponent, { - ...this.props, - fontSizes: undefined, - ...this.state, - ...this.setters - }); - } - }; - }]), 'withFontSizes'); -}); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/index.js +/** + * Internal dependencies + */ +const InserterDraggableBlocks = ({ + isEnabled, + blocks, + icon, + children, + isPattern +}) => { + const transferData = { + type: 'inserter', + blocks + }; + const blockTypeIcon = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockType + } = select(external_wp_blocks_namespaceObject.store); + return blocks.length === 1 && getBlockType(blocks[0].name)?.icon; + }, [blocks]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Draggable, { + __experimentalTransferDataType: "wp-blocks", + transferData: transferData, + onDragStart: event => { + event.dataTransfer.setData('text/html', (0,external_wp_blocks_namespaceObject.serialize)(blocks)); + }, + __experimentalDragComponent: (0,external_wp_element_namespaceObject.createElement)(BlockDraggableChip, { + count: blocks.length, + icon: icon || !isPattern && blockTypeIcon, + isPattern: isPattern + }) + }, ({ + onDraggableStart, + onDraggableEnd + }) => { + return children({ + draggable: isEnabled, + onDragStart: isEnabled ? onDraggableStart : undefined, + onDragEnd: isEnabled ? onDraggableEnd : undefined + }); + }); +}; +/* harmony default export */ var inserter_draggable_blocks = (InserterDraggableBlocks); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js /** - * WordPress dependencies + * External dependencies */ -const alignLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z" -})); -/* harmony default export */ var align_left = (alignLeft); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js /** * WordPress dependencies */ -const align_center_alignCenter = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z" -})); -/* harmony default export */ var align_center = (align_center_alignCenter); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js -/** - * WordPress dependencies - */ -const alignRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z" -})); -/* harmony default export */ var align_right = (alignRight); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/alignment-control/ui.js /** - * WordPress dependencies + * Internal dependencies */ -const DEFAULT_ALIGNMENT_CONTROLS = [{ - icon: align_left, - title: (0,external_wp_i18n_namespaceObject.__)('Align text left'), - align: 'left' -}, { - icon: align_center, - title: (0,external_wp_i18n_namespaceObject.__)('Align text center'), - align: 'center' -}, { - icon: align_right, - title: (0,external_wp_i18n_namespaceObject.__)('Align text right'), - align: 'right' -}]; -const ui_POPOVER_PROPS = { - placement: 'bottom-start' -}; -function AlignmentUI({ - value, - onChange, - alignmentControls = DEFAULT_ALIGNMENT_CONTROLS, - label = (0,external_wp_i18n_namespaceObject.__)('Align text'), - describedBy = (0,external_wp_i18n_namespaceObject.__)('Change text alignment'), - isCollapsed = true, - isToolbar +function InserterListItem({ + className, + isFirst, + item, + onSelect, + onHover, + isDraggable, + ...props }) { - function applyOrUnset(align) { - return () => onChange(value === align ? undefined : align); - } - const activeAlignment = alignmentControls.find(control => control.align === value); - function setIcon() { - if (activeAlignment) return activeAlignment.icon; - return (0,external_wp_i18n_namespaceObject.isRTL)() ? align_right : align_left; - } - const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; - const extraProps = isToolbar ? { - isCollapsed - } : { - toggleProps: { - describedBy + const isDragging = (0,external_wp_element_namespaceObject.useRef)(false); + const itemIconStyle = item.icon ? { + backgroundColor: item.icon.background, + color: item.icon.foreground + } : {}; + const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => { + return [(0,external_wp_blocks_namespaceObject.createBlock)(item.name, item.initialAttributes, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(item.innerBlocks))]; + }, [item.name, item.initialAttributes, item.initialAttributes]); + const isSynced = (0,external_wp_blocks_namespaceObject.isReusableBlock)(item) && item.syncStatus !== 'unsynced' || (0,external_wp_blocks_namespaceObject.isTemplatePart)(item); + return (0,external_wp_element_namespaceObject.createElement)(inserter_draggable_blocks, { + isEnabled: isDraggable && !item.disabled, + blocks: blocks, + icon: item.icon + }, ({ + draggable, + onDragStart, + onDragEnd + }) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-block-types-list__list-item', { + 'is-synced': isSynced + }), + draggable: draggable, + onDragStart: event => { + isDragging.current = true; + if (onDragStart) { + onHover(null); + onDragStart(event); + } }, - popoverProps: ui_POPOVER_PROPS - }; - return (0,external_React_.createElement)(UIComponent, { - icon: setIcon(), - label: label, - controls: alignmentControls.map(control => { + onDragEnd: event => { + isDragging.current = false; + if (onDragEnd) { + onDragEnd(event); + } + } + }, (0,external_wp_element_namespaceObject.createElement)(inserter_listbox_item, { + isFirst: isFirst, + className: classnames_default()('block-editor-block-types-list__item', className), + disabled: item.isDisabled, + onClick: event => { + event.preventDefault(); + onSelect(item, (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? event.metaKey : event.ctrlKey); + onHover(null); + }, + onKeyDown: event => { const { - align - } = control; - const isActive = value === align; - return { - ...control, - isActive, - role: isCollapsed ? 'menuitemradio' : undefined, - onClick: applyOrUnset(align) - }; - }), - ...extraProps - }); + keyCode + } = event; + if (keyCode === external_wp_keycodes_namespaceObject.ENTER) { + event.preventDefault(); + onSelect(item, (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? event.metaKey : event.ctrlKey); + onHover(null); + } + }, + onMouseEnter: () => { + if (isDragging.current) { + return; + } + onHover(item); + }, + onMouseLeave: () => onHover(null), + ...props + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-types-list__item-icon", + style: itemIconStyle + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: item.icon, + showColors: true + })), (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-types-list__item-title" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { + numberOfLines: 3 + }, item.title))))); } -/* harmony default export */ var alignment_control_ui = (AlignmentUI); +/* harmony default export */ var inserter_list_item = ((0,external_wp_element_namespaceObject.memo)(InserterListItem)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/alignment-control/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/group.js /** - * Internal dependencies + * WordPress dependencies */ -const AlignmentControl = props => { - return (0,external_React_.createElement)(alignment_control_ui, { - ...props, - isToolbar: false - }); -}; -const AlignmentToolbar = props => { - return (0,external_React_.createElement)(alignment_control_ui, { - ...props, - isToolbar: true - }); -}; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/alignment-control/README.md - */ -// EXTERNAL MODULE: ./node_modules/remove-accents/index.js -var remove_accents = __webpack_require__(4793); -var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents); -;// CONCATENATED MODULE: ./node_modules/lower-case/dist.es2015/index.js -/** - * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt - */ -var SUPPORTED_LOCALE = { - tr: { - regexp: /\u0130|\u0049|\u0049\u0307/g, - map: { - İ: "\u0069", - I: "\u0131", - İ: "\u0069", - }, - }, - az: { - regexp: /\u0130/g, - map: { - İ: "\u0069", - I: "\u0131", - İ: "\u0069", - }, +function InserterListboxGroup(props, ref) { + const [shouldSpeak, setShouldSpeak] = (0,external_wp_element_namespaceObject.useState)(false); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (shouldSpeak) { + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Use left and right arrow keys to move through blocks')); + } + }, [shouldSpeak]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: ref, + role: "listbox", + "aria-orientation": "horizontal", + onFocus: () => { + setShouldSpeak(true); }, - lt: { - regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g, - map: { - I: "\u0069\u0307", - J: "\u006A\u0307", - Į: "\u012F\u0307", - Ì: "\u0069\u0307\u0300", - Í: "\u0069\u0307\u0301", - Ĩ: "\u0069\u0307\u0303", - }, + onBlur: event => { + const focusingOutsideGroup = !event.currentTarget.contains(event.relatedTarget); + if (focusingOutsideGroup) { + setShouldSpeak(false); + } }, -}; -/** - * Localized lower case. - */ -function localeLowerCase(str, locale) { - var lang = SUPPORTED_LOCALE[locale.toLowerCase()]; - if (lang) - return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; })); - return lowerCase(str); -} -/** - * Lower case as a function. - */ -function lowerCase(str) { - return str.toLowerCase(); + ...props + }); } +/* harmony default export */ var group = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxGroup)); -;// CONCATENATED MODULE: ./node_modules/no-case/dist.es2015/index.js - -// Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case"). -var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; -// Remove all non-word characters. -var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; -/** - * Normalize the string into something other libraries can manipulate easier. - */ -function noCase(input, options) { - if (options === void 0) { options = {}; } - var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; - var result = dist_es2015_replace(dist_es2015_replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); - var start = 0; - var end = result.length; - // Trim the delimiter from around the output string. - while (result.charAt(start) === "\0") - start++; - while (result.charAt(end - 1) === "\0") - end--; - // Transform each token independently. - return result.slice(start, end).split("\0").map(transform).join(delimiter); -} -/** - * Replace `re` in the input string with the replacement value. - */ -function dist_es2015_replace(input, re, value) { - if (re instanceof RegExp) - return input.replace(re, value); - return re.reduce(function (input, re) { return input.replace(re, value); }, input); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/row.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-items.js /** - * External dependencies + * WordPress dependencies */ -// Default search helpers. -const defaultGetName = item => item.name || ''; -const defaultGetTitle = item => item.title; -const defaultGetDescription = item => item.description || ''; -const defaultGetKeywords = item => item.keywords || []; -const defaultGetCategory = item => item.category; -const defaultGetCollection = () => null; - /** - * Extracts words from an input string. - * - * @param {string} input The input string. - * - * @return {Array} Words, extracted from the input string. + * Internal dependencies */ -function extractWords(input = '') { - return noCase(input, { - splitRegexp: [/([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu, - // One lowercase or digit, followed by one uppercase. - /([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu // One uppercase followed by one uppercase and one lowercase. - ], - stripRegexp: /(\p{C}|\p{P}|\p{S})+/giu // Anything that's not a punctuation, symbol or control/format character. - }).split(' ').filter(Boolean); +function InserterListboxRow(props, ref) { + const state = (0,external_wp_element_namespaceObject.useContext)(context); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeGroup, { + state: state, + role: "presentation", + ref: ref, + ...props + }); } +/* harmony default export */ var inserter_listbox_row = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxRow)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-types-list/index.js /** - * Sanitizes the search input string. - * - * @param {string} input The search input to normalize. - * - * @return {string} The normalized search input. + * WordPress dependencies */ -function normalizeSearchInput(input = '') { - // Disregard diacritics. - // Input: "média" - input = remove_accents_default()(input); - - // Accommodate leading slash, matching autocomplete expectations. - // Input: "/media" - input = input.replace(/^\//, ''); - // Lowercase. - // Input: "MEDIA" - input = input.toLowerCase(); - return input; -} /** - * Converts the search term into a list of normalized terms. - * - * @param {string} input The search term to normalize. - * - * @return {string[]} The normalized list of search terms. + * Internal dependencies */ -const getNormalizedSearchTerms = (input = '') => { - return extractWords(normalizeSearchInput(input)); -}; -const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => { - return unmatchedTerms.filter(term => !getNormalizedSearchTerms(unprocessedTerms).some(unprocessedTerm => unprocessedTerm.includes(term))); -}; -const searchBlockItems = (items, categories, collections, searchInput) => { - const normalizedSearchTerms = getNormalizedSearchTerms(searchInput); - if (normalizedSearchTerms.length === 0) { - return items; - } - const config = { - getCategory: item => categories.find(({ - slug - }) => slug === item.category)?.title, - getCollection: item => collections[item.name.split('/')[0]]?.title - }; - return searchItems(items, searchInput, config); -}; -/** - * Filters an item list given a search term. - * - * @param {Array} items Item list - * @param {string} searchInput Search input. - * @param {Object} config Search Config. - * - * @return {Array} Filtered item list. - */ -const searchItems = (items = [], searchInput = '', config = {}) => { - const normalizedSearchTerms = getNormalizedSearchTerms(searchInput); - if (normalizedSearchTerms.length === 0) { - return items; + +function chunk(array, size) { + const chunks = []; + for (let i = 0, j = array.length; i < j; i += size) { + chunks.push(array.slice(i, i + size)); } - const rankedItems = items.map(item => { - return [item, getItemSearchRank(item, searchInput, config)]; - }).filter(([, rank]) => rank > 0); - rankedItems.sort(([, rank1], [, rank2]) => rank2 - rank1); - return rankedItems.map(([item]) => item); -}; + return chunks; +} +function BlockTypesList({ + items = [], + onSelect, + onHover = () => {}, + children, + label, + isDraggable = true +}) { + return (0,external_wp_element_namespaceObject.createElement)(group, { + className: "block-editor-block-types-list", + "aria-label": label + }, chunk(items, 3).map((row, i) => (0,external_wp_element_namespaceObject.createElement)(inserter_listbox_row, { + key: i + }, row.map((item, j) => (0,external_wp_element_namespaceObject.createElement)(inserter_list_item, { + key: item.id, + item: item, + className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(item.id), + onSelect: onSelect, + onHover: onHover, + isDraggable: isDraggable && !item.isDisabled, + isFirst: i === 0 && j === 0 + })))), children); +} +/* harmony default export */ var block_types_list = (BlockTypesList); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/panel.js /** - * Get the search rank for a given item and a specific search term. - * The better the match, the higher the rank. - * If the rank equals 0, it should be excluded from the results. - * - * @param {Object} item Item to filter. - * @param {string} searchTerm Search term. - * @param {Object} config Search Config. - * - * @return {number} Search Rank. + * WordPress dependencies */ -function getItemSearchRank(item, searchTerm, config = {}) { - const { - getName = defaultGetName, - getTitle = defaultGetTitle, - getDescription = defaultGetDescription, - getKeywords = defaultGetKeywords, - getCategory = defaultGetCategory, - getCollection = defaultGetCollection - } = config; - const name = getName(item); - const title = getTitle(item); - const description = getDescription(item); - const keywords = getKeywords(item); - const category = getCategory(item); - const collection = getCollection(item); - const normalizedSearchInput = normalizeSearchInput(searchTerm); - const normalizedTitle = normalizeSearchInput(title); - let rank = 0; - - // Prefers exact matches - // Then prefers if the beginning of the title matches the search term - // name, keywords, categories, collection, variations match come later. - if (normalizedSearchInput === normalizedTitle) { - rank += 30; - } else if (normalizedTitle.startsWith(normalizedSearchInput)) { - rank += 20; - } else { - const terms = [name, title, description, ...keywords, category, collection].join(' '); - const normalizedSearchTerms = extractWords(normalizedSearchInput); - const unmatchedTerms = removeMatchingTerms(normalizedSearchTerms, terms); - if (unmatchedTerms.length === 0) { - rank += 10; - } - } - // Give a better rank to "core" namespaced items. - if (rank !== 0 && name.startsWith('core/')) { - const isCoreBlockVariation = name !== item.id; - // Give a bit better rank to "core" blocks over "core" block variations. - rank += isCoreBlockVariation ? 1 : 2; - } - return rank; +function InserterPanel({ + title, + icon, + children +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__panel-header" + }, (0,external_wp_element_namespaceObject.createElement)("h2", { + className: "block-editor-inserter__panel-title" + }, title), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + icon: icon + })), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__panel-content" + }, children)); } +/* harmony default export */ var panel = (InserterPanel); ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-block-types-state.js /** @@ -35288,14 +27292,24 @@ function getItemSearchRank(item, searchTerm, config = {}) { * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler) */ const useBlockTypesState = (rootClientId, onInsert) => { - const [items] = (0,external_wp_data_namespaceObject.useSelect)(select => [select(store).getInserterItems(rootClientId)], [rootClientId]); - const [categories, collections] = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + categories, + collections, + items + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getInserterItems + } = select(store); const { getCategories, getCollections } = select(external_wp_blocks_namespaceObject.store); - return [getCategories(), getCollections()]; - }, []); + return { + categories: getCategories(), + collections: getCollections(), + items: getInserterItems(rootClientId) + }; + }, [rootClientId]); const onSelectItem = (0,external_wp_element_namespaceObject.useCallback)(({ name, initialAttributes, @@ -35310,222 +27324,307 @@ const useBlockTypesState = (rootClientId, onInsert) => { }, [onInsert]); return [items, categories, collections, onSelectItem]; }; -/* harmony default export */ var use_block_types_state = (useBlockTypesState); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/order-inserter-block-items.js -/** @typedef {import('../store/selectors').WPEditorInserterItem} WPEditorInserterItem */ - -/** - * Helper function to order inserter block items according to a provided array of prioritized blocks. - * - * @param {WPEditorInserterItem[]} items The array of editor inserter block items to be sorted. - * @param {string[]} priority The array of block names to be prioritized. - * @return {WPEditorInserterItem[]} The sorted array of editor inserter block items. - */ -const orderInserterBlockItems = (items, priority) => { - if (!priority) { - return items; - } - items.sort(({ - id: aName - }, { - id: bName - }) => { - // Sort block items according to `priority`. - let aIndex = priority.indexOf(aName); - let bIndex = priority.indexOf(bName); - // All other block items should come after that. - if (aIndex < 0) aIndex = priority.length; - if (bIndex < 0) bIndex = priority.length; - return aIndex - bIndex; - }); - return items; -}; +/* harmony default export */ var use_block_types_state = (useBlockTypesState); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/autocompleters/block.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/index.js /** * WordPress dependencies */ +/** + * Internal dependencies + */ + + + + +function InserterListbox({ + children +}) { + const compositeState = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)({ + shift: true, + wrap: 'horizontal' + }); + return (0,external_wp_element_namespaceObject.createElement)(context.Provider, { + value: compositeState + }, children); +} +/* harmony default export */ var inserter_listbox = (InserterListbox); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-types-tab.js /** - * Internal dependencies + * WordPress dependencies */ +/** + * Internal dependencies + */ + + -const block_noop = () => {}; -const SHOWN_BLOCK_TYPES = 9; -/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */ +const getBlockNamespace = item => item.name.split('/')[0]; +const MAX_SUGGESTED_ITEMS = 6; /** - * Creates a blocks repeater for replacing the current block with a selected block type. + * Shared reference to an empty array for cases where it is important to avoid + * returning a new array reference on every invocation and rerendering the component. * - * @return {WPCompleter} A blocks completer. + * @type {Array} */ -function createBlockCompleter() { - return { - name: 'blocks', - className: 'block-editor-autocompleters__block', - triggerPrefix: '/', - useItems(filterValue) { - const { - rootClientId, - selectedBlockName, - prioritizedBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectedBlockClientId, - getBlockName, - getBlockListSettings, - getBlockRootClientId - } = select(store); - const selectedBlockClientId = getSelectedBlockClientId(); - const _rootClientId = getBlockRootClientId(selectedBlockClientId); - return { - selectedBlockName: selectedBlockClientId ? getBlockName(selectedBlockClientId) : null, - rootClientId: _rootClientId, - prioritizedBlocks: getBlockListSettings(_rootClientId)?.prioritizedInserterBlocks - }; - }, []); - const [items, categories, collections] = use_block_types_state(rootClientId, block_noop); - const filteredItems = (0,external_wp_element_namespaceObject.useMemo)(() => { - const initialFilteredItems = !!filterValue.trim() ? searchBlockItems(items, categories, collections, filterValue) : orderInserterBlockItems(orderBy(items, 'frecency', 'desc'), prioritizedBlocks); - return initialFilteredItems.filter(item => item.name !== selectedBlockName).slice(0, SHOWN_BLOCK_TYPES); - }, [filterValue, selectedBlockName, items, categories, collections, prioritizedBlocks]); - const options = (0,external_wp_element_namespaceObject.useMemo)(() => filteredItems.map(blockItem => { - const { - title, - icon, - isDisabled - } = blockItem; - return { - key: `block-${blockItem.id}`, - value: blockItem, - label: (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_icon, { - key: "icon", - icon: icon, - showColors: true - }), title), - isDisabled - }; - }), [filteredItems]); - return [options]; - }, - allowContext(before, after) { - return !(/\S/.test(before) || /\S/.test(after)); - }, - getOptionCompletion(inserterItem) { +const block_types_tab_EMPTY_ARRAY = []; +function BlockTypesTab({ + rootClientId, + onInsert, + onHover, + showMostUsedBlocks +}) { + const [items, categories, collections, onSelectItem] = use_block_types_state(rootClientId, onInsert); + const suggestedItems = (0,external_wp_element_namespaceObject.useMemo)(() => { + return orderBy(items, 'frecency', 'desc').slice(0, MAX_SUGGESTED_ITEMS); + }, [items]); + const uncategorizedItems = (0,external_wp_element_namespaceObject.useMemo)(() => { + return items.filter(item => !item.category); + }, [items]); + const itemsPerCategory = (0,external_wp_element_namespaceObject.useMemo)(() => { + return (0,external_wp_compose_namespaceObject.pipe)(itemList => itemList.filter(item => item.category && item.category !== 'reusable'), itemList => itemList.reduce((acc, item) => { const { - name, - initialAttributes, - innerBlocks, - syncStatus, - content - } = inserterItem; - return { - action: 'replace', - value: syncStatus === 'unsynced' ? (0,external_wp_blocks_namespaceObject.parse)(content, { - __unstableSkipMigrationLogs: true - }) : (0,external_wp_blocks_namespaceObject.createBlock)(name, initialAttributes, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocks)) - }; + category + } = item; + if (!acc[category]) { + acc[category] = []; + } + acc[category].push(item); + return acc; + }, {}))(items); + }, [items]); + const itemsPerCollection = (0,external_wp_element_namespaceObject.useMemo)(() => { + // Create a new Object to avoid mutating collection. + const result = { + ...collections + }; + Object.keys(collections).forEach(namespace => { + result[namespace] = items.filter(item => getBlockNamespace(item) === namespace); + if (result[namespace].length === 0) { + delete result[namespace]; + } + }); + return result; + }, [items, collections]); + + // Hide block preview on unmount. + (0,external_wp_element_namespaceObject.useEffect)(() => () => onHover(null), []); + + /** + * The inserter contains a big number of blocks and opening it is a costful operation. + * The rendering is the most costful part of it, in order to improve the responsiveness + * of the "opening" action, these lazy lists allow us to render the inserter category per category, + * once all the categories are rendered, we start rendering the collections and the uncategorized block types. + */ + const currentlyRenderedCategories = (0,external_wp_compose_namespaceObject.useAsyncList)(categories); + const didRenderAllCategories = categories.length === currentlyRenderedCategories.length; + + // Async List requires an array. + const collectionEntries = (0,external_wp_element_namespaceObject.useMemo)(() => { + return Object.entries(collections); + }, [collections]); + const currentlyRenderedCollections = (0,external_wp_compose_namespaceObject.useAsyncList)(didRenderAllCategories ? collectionEntries : block_types_tab_EMPTY_ARRAY); + return (0,external_wp_element_namespaceObject.createElement)(inserter_listbox, null, (0,external_wp_element_namespaceObject.createElement)("div", null, showMostUsedBlocks && !!suggestedItems.length && (0,external_wp_element_namespaceObject.createElement)(panel, { + title: (0,external_wp_i18n_namespaceObject._x)('Most used', 'blocks') + }, (0,external_wp_element_namespaceObject.createElement)(block_types_list, { + items: suggestedItems, + onSelect: onSelectItem, + onHover: onHover, + label: (0,external_wp_i18n_namespaceObject._x)('Most used', 'blocks') + })), currentlyRenderedCategories.map(category => { + const categoryItems = itemsPerCategory[category.slug]; + if (!categoryItems || !categoryItems.length) { + return null; } - }; + return (0,external_wp_element_namespaceObject.createElement)(panel, { + key: category.slug, + title: category.title, + icon: category.icon + }, (0,external_wp_element_namespaceObject.createElement)(block_types_list, { + items: categoryItems, + onSelect: onSelectItem, + onHover: onHover, + label: category.title + })); + }), didRenderAllCategories && uncategorizedItems.length > 0 && (0,external_wp_element_namespaceObject.createElement)(panel, { + className: "block-editor-inserter__uncategorized-blocks-panel", + title: (0,external_wp_i18n_namespaceObject.__)('Uncategorized') + }, (0,external_wp_element_namespaceObject.createElement)(block_types_list, { + items: uncategorizedItems, + onSelect: onSelectItem, + onHover: onHover, + label: (0,external_wp_i18n_namespaceObject.__)('Uncategorized') + })), currentlyRenderedCollections.map(([namespace, collection]) => { + const collectionItems = itemsPerCollection[namespace]; + if (!collectionItems || !collectionItems.length) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(panel, { + key: namespace, + title: collection.title, + icon: collection.icon + }, (0,external_wp_element_namespaceObject.createElement)(block_types_list, { + items: collectionItems, + onSelect: onSelectItem, + onHover: onHover, + label: collection.title + })); + }))); } +/* harmony default export */ var block_types_tab = (BlockTypesTab); +;// CONCATENATED MODULE: external ["wp","notices"] +var external_wp_notices_namespaceObject = window["wp"]["notices"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-patterns-state.js /** - * Creates a blocks repeater for replacing the current block with a selected block type. - * - * @return {WPCompleter} A blocks completer. + * WordPress dependencies */ -/* harmony default export */ var block = (createBlockCompleter()); -;// CONCATENATED MODULE: external ["wp","apiFetch"] -var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"]; -var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post.js -/** - * WordPress dependencies - */ -const post = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z" -})); -/* harmony default export */ var library_post = (post); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/autocompleters/link.js + /** - * WordPress dependencies + * Internal dependencies */ -// Disable Reason: Needs to be refactored. -// eslint-disable-next-line no-restricted-imports +/** + * Retrieves the block patterns inserter state. + * + * @param {Function} onInsert function called when inserter a list of blocks. + * @param {string=} rootClientId Insertion's root client ID. + * + * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler) + */ +const usePatternsState = (onInsert, rootClientId) => { + const { + patternCategories, + patterns, + userPatternCategories + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __experimentalGetAllowedPatterns, + getSettings + } = select(store); + const { + __experimentalUserPatternCategories, + __experimentalBlockPatternCategories + } = getSettings(); + return { + patterns: __experimentalGetAllowedPatterns(rootClientId), + userPatternCategories: __experimentalUserPatternCategories, + patternCategories: __experimentalBlockPatternCategories + }; + }, [rootClientId]); + const allCategories = (0,external_wp_element_namespaceObject.useMemo)(() => { + const categories = [...patternCategories]; + userPatternCategories?.forEach(userCategory => { + if (!categories.find(existingCategory => existingCategory.name === userCategory.name)) { + categories.push(userCategory); + } + }); + return categories; + }, [patternCategories, userPatternCategories]); + const { + createSuccessNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + const onClickPattern = (0,external_wp_element_namespaceObject.useCallback)((pattern, blocks) => { + const patternBlocks = pattern.id && pattern.syncStatus !== 'unsynced' ? [(0,external_wp_blocks_namespaceObject.createBlock)('core/block', { + ref: pattern.id + })] : blocks; + onInsert((patternBlocks !== null && patternBlocks !== void 0 ? patternBlocks : []).map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)), pattern.name); + createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block pattern title. */ + (0,external_wp_i18n_namespaceObject.__)('Block pattern "%s" inserted.'), pattern.title), { + type: 'snackbar', + id: 'block-pattern-inserted-notice' + }); + }, [createSuccessNotice, onInsert]); + return [patterns, allCategories, onClickPattern]; +}; +/* harmony default export */ var use_patterns_state = (usePatternsState); -const SHOWN_SUGGESTIONS = 10; - -/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */ +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-patterns-paging/index.js /** - * Creates a suggestion list for links to posts or pages. - * - * @return {WPCompleter} A links completer. + * WordPress dependencies */ -function createLinkCompleter() { - return { - name: 'links', - className: 'block-editor-autocompleters__link', - triggerPrefix: '[[', - options: async letters => { - let options = await external_wp_apiFetch_default()({ - path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/search', { - per_page: SHOWN_SUGGESTIONS, - search: letters, - type: 'post', - order_by: 'menu_order' - }) - }); - options = options.filter(option => option.title !== ''); - return options; - }, - getOptionKeywords(item) { - const expansionWords = item.title.split(/\s+/); - return [...expansionWords]; - }, - getOptionLabel(item) { - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(build_module_icon, { - key: "icon", - icon: item.subtype === 'page' ? library_page : library_post - }), item.title); - }, - getOptionCompletion(item) { - return (0,external_React_.createElement)("a", { - href: item.url - }, item.title); - } - }; + + +function Pagination({ + currentPage, + numPages, + changePage, + totalItems +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + className: "block-editor-patterns__grid-pagination-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, { + variant: "muted" + }, + // translators: %s: Total number of patterns. + (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Total number of patterns. + (0,external_wp_i18n_namespaceObject._n)('%s item', '%s items', totalItems), totalItems)), numPages > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + expanded: false, + spacing: 3, + justify: "flex-start", + className: "block-editor-patterns__grid-pagination" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + expanded: false, + spacing: 1, + className: "block-editor-patterns__grid-pagination-previous" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: () => changePage(1), + disabled: currentPage === 1, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('First page') + }, (0,external_wp_element_namespaceObject.createElement)("span", null, "\xAB")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: () => changePage(currentPage - 1), + disabled: currentPage === 1, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page') + }, (0,external_wp_element_namespaceObject.createElement)("span", null, "\u2039"))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, { + variant: "muted" + }, (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %1$s: Current page number, %2$s: Total number of pages. + (0,external_wp_i18n_namespaceObject._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + expanded: false, + spacing: 1, + className: "block-editor-patterns__grid-pagination-next" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: () => changePage(currentPage + 1), + disabled: currentPage === numPages, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page') + }, (0,external_wp_element_namespaceObject.createElement)("span", null, "\u203A")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: () => changePage(numPages), + disabled: currentPage === numPages, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Last page'), + size: "default" + }, (0,external_wp_element_namespaceObject.createElement)("span", null, "\xBB"))))); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-patterns-list/index.js + /** - * Creates a suggestion list for links to posts or pages.. - * - * @return {WPCompleter} A link completer. + * External dependencies */ -/* harmony default export */ var autocompleters_link = (createLinkCompleter()); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/autocomplete/index.js /** * WordPress dependencies @@ -35535,163 +27634,220 @@ function createLinkCompleter() { + /** * Internal dependencies */ - -/** - * Shared reference to an empty array for cases where it is important to avoid - * returning a new array reference on every invocation. - * - * @type {Array} - */ -const autocomplete_EMPTY_ARRAY = []; -function useCompleters({ - completers = autocomplete_EMPTY_ARRAY +const WithToolTip = ({ + showTooltip, + title, + children +}) => { + if (showTooltip) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: title + }, children); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, children); +}; +function BlockPattern({ + isDraggable, + pattern, + onClick, + onHover, + composite, + showTooltip }) { + const [isDragging, setIsDragging] = (0,external_wp_element_namespaceObject.useState)(false); const { - name - } = useBlockEditContext(); - return (0,external_wp_element_namespaceObject.useMemo)(() => { - let filteredCompleters = [...completers, autocompleters_link]; - if (name === (0,external_wp_blocks_namespaceObject.getDefaultBlockName)() || (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, '__experimentalSlashInserter', false)) { - filteredCompleters = [...filteredCompleters, block]; - } - if ((0,external_wp_hooks_namespaceObject.hasFilter)('editor.Autocomplete.completers')) { - // Provide copies so filters may directly modify them. - if (filteredCompleters === completers) { - filteredCompleters = filteredCompleters.map(completer => ({ - ...completer - })); + blocks, + viewportWidth + } = pattern; + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockPattern); + const descriptionId = `block-editor-block-patterns-list__item-description-${instanceId}`; + return (0,external_wp_element_namespaceObject.createElement)(inserter_draggable_blocks, { + isEnabled: isDraggable, + blocks: blocks, + isPattern: !!pattern + }, ({ + draggable, + onDragStart, + onDragEnd + }) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-patterns-list__list-item", + draggable: draggable, + onDragStart: event => { + setIsDragging(true); + if (onDragStart) { + onHover?.(null); + onDragStart(event); + } + }, + onDragEnd: event => { + setIsDragging(false); + if (onDragEnd) { + onDragEnd(event); } - filteredCompleters = (0,external_wp_hooks_namespaceObject.applyFilters)('editor.Autocomplete.completers', filteredCompleters, name); } - return filteredCompleters; - }, [completers, name]); + }, (0,external_wp_element_namespaceObject.createElement)(WithToolTip, { + showTooltip: showTooltip && !pattern.type === 'user', + title: pattern.title + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + role: "option", + as: "div", + ...composite, + className: classnames_default()('block-editor-block-patterns-list__item', { + 'block-editor-block-patterns-list__list-item-synced': pattern.type === 'user' && !pattern.syncStatus + }), + onClick: () => { + onClick(pattern, blocks); + onHover?.(null); + }, + onMouseEnter: () => { + if (isDragging) { + return; + } + onHover?.(pattern); + }, + onMouseLeave: () => onHover?.(null), + "aria-label": pattern.title, + "aria-describedby": pattern.description ? descriptionId : undefined + }, (0,external_wp_element_namespaceObject.createElement)(block_preview, { + blocks: blocks, + viewportWidth: viewportWidth + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + className: "block-editor-patterns__pattern-details" + }, pattern.type === 'user' && !pattern.syncStatus && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-patterns__pattern-icon-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + className: "block-editor-patterns__pattern-icon", + icon: library_symbol + })), (!showTooltip || pattern.type === 'user') && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-patterns-list__item-title" + }, pattern.title)), !!pattern.description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: descriptionId + }, pattern.description))))); } -function useBlockEditorAutocompleteProps(props) { - return (0,external_wp_components_namespaceObject.__unstableUseAutocompleteProps)({ - ...props, - completers: useCompleters(props) +function BlockPatternPlaceholder() { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-patterns-list__item is-placeholder" }); } - -/** - * Wrap the default Autocomplete component with one that supports a filter hook - * for customizing its list of autocompleters. - * - * @type {import('react').FC} - */ -function BlockEditorAutocomplete(props) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Autocomplete, { - ...props, - completers: useCompleters(props) +function BlockPatternList({ + isDraggable, + blockPatterns, + shownPatterns, + onHover, + onClickPattern, + orientation, + label = (0,external_wp_i18n_namespaceObject.__)('Block patterns'), + showTitlesAsTooltip, + pagingProps +}, ref) { + const composite = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)({ + orientation }); -} - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/autocomplete/README.md - */ -/* harmony default export */ var autocomplete = (BlockEditorAutocomplete); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/fullscreen.js - -/** - * WordPress dependencies - */ - -const fullscreen = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z" -})); -/* harmony default export */ var library_fullscreen = (fullscreen); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableComposite, { + ...composite, + role: "listbox", + className: "block-editor-block-patterns-list", + "aria-label": label, + ref: ref + }, blockPatterns.map(pattern => { + const isShown = shownPatterns.includes(pattern); + return isShown ? (0,external_wp_element_namespaceObject.createElement)(BlockPattern, { + key: pattern.name, + pattern: pattern, + onClick: onClickPattern, + onHover: onHover, + isDraggable: isDraggable, + composite: composite, + showTooltip: showTitlesAsTooltip + }) : (0,external_wp_element_namespaceObject.createElement)(BlockPatternPlaceholder, { + key: pattern.name + }); + }), pagingProps && (0,external_wp_element_namespaceObject.createElement)(Pagination, { + ...pagingProps + })); +} +/* harmony default export */ var block_patterns_list = ((0,external_wp_element_namespaceObject.forwardRef)(BlockPatternList)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-full-height-alignment-control/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/sidebar.js /** * WordPress dependencies */ - -function BlockFullHeightAlignmentControl({ - isActive, - label = (0,external_wp_i18n_namespaceObject.__)('Toggle full height'), - onToggle, - isDisabled +function PatternCategoriesList({ + selectedCategory, + patternCategories, + onClickCategory }) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - isActive: isActive, - icon: library_fullscreen, - label: label, - onClick: () => onToggle(!isActive), - disabled: isDisabled - }); + const baseClassName = 'block-editor-block-patterns-explorer__sidebar'; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseClassName}__categories-list` + }, patternCategories.map(({ + name, + label + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: name, + label: label, + className: `${baseClassName}__categories-list__item`, + isPressed: selectedCategory === name, + onClick: () => { + onClickCategory(name); + } + }, label); + })); } -/* harmony default export */ var block_full_height_alignment_control = (BlockFullHeightAlignmentControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-matrix-control/index.js +function PatternsExplorerSearch({ + searchValue, + setSearchValue +}) { + const baseClassName = 'block-editor-block-patterns-explorer__search'; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: baseClassName + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SearchControl, { + __nextHasNoMarginBottom: true, + onChange: setSearchValue, + value: searchValue, + label: (0,external_wp_i18n_namespaceObject.__)('Search for patterns'), + placeholder: (0,external_wp_i18n_namespaceObject.__)('Search') + })); +} +function PatternExplorerSidebar({ + selectedCategory, + patternCategories, + onClickCategory, + searchValue, + setSearchValue +}) { + const baseClassName = 'block-editor-block-patterns-explorer__sidebar'; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: baseClassName + }, (0,external_wp_element_namespaceObject.createElement)(PatternsExplorerSearch, { + searchValue: searchValue, + setSearchValue: setSearchValue + }), !searchValue && (0,external_wp_element_namespaceObject.createElement)(PatternCategoriesList, { + selectedCategory: selectedCategory, + patternCategories: patternCategories, + onClickCategory: onClickCategory + })); +} +/* harmony default export */ var sidebar = (PatternExplorerSidebar); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-insertion-point.js /** * WordPress dependencies */ -const block_alignment_matrix_control_noop = () => {}; -function BlockAlignmentMatrixControl(props) { - const { - label = (0,external_wp_i18n_namespaceObject.__)('Change matrix alignment'), - onChange = block_alignment_matrix_control_noop, - value = 'center', - isDisabled - } = props; - const icon = (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalAlignmentMatrixControl.Icon, { - value: value - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: { - placement: 'bottom-start' - }, - renderToggle: ({ - onToggle, - isOpen - }) => { - const openOnArrowDown = event => { - if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { - event.preventDefault(); - onToggle(); - } - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - onClick: onToggle, - "aria-haspopup": "true", - "aria-expanded": isOpen, - onKeyDown: openOnArrowDown, - label: label, - icon: icon, - showTooltip: true, - disabled: isDisabled - }); - }, - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalAlignmentMatrixControl, { - hasFocusBorder: false, - onChange: onChange, - value: value - }) - }); -} -/* harmony default export */ var block_alignment_matrix_control = (BlockAlignmentMatrixControl); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-title/use-block-display-title.js -/** - * WordPress dependencies - */ @@ -35700,476 +27856,423 @@ function BlockAlignmentMatrixControl(props) { */ - /** - * Returns the block's configured title as a string, or empty if the title - * cannot be determined. - * - * @example + * @typedef WPInserterConfig * - * ```js - * useBlockDisplayTitle( { clientId: 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', maximumLength: 17 } ); - * ``` + * @property {string=} rootClientId If set, insertion will be into the + * block with this ID. + * @property {number=} insertionIndex If set, insertion will be into this + * explicit position. + * @property {string=} clientId If set, insertion will be after the + * block with this ID. + * @property {boolean=} isAppender Whether the inserter is an appender + * or not. + * @property {Function=} onSelect Called after insertion. + */ + +/** + * Returns the insertion point state given the inserter config. * - * @param {Object} props - * @param {string} props.clientId Client ID of block. - * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated. - * @param {string|undefined} props.context The context to pass to `getBlockLabel`. - * @return {?string} Block title. + * @param {WPInserterConfig} config Inserter Config. + * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle). */ -function useBlockDisplayTitle({ +function useInsertionPoint({ + rootClientId = '', + insertionIndex, clientId, - maximumLength, - context + isAppender, + onSelect, + shouldFocusBlock = true, + selectBlockOnInsert = true }) { const { - attributes, - name, - reusableBlockTitle + getSelectedBlock + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + destinationRootClientId, + destinationIndex } = (0,external_wp_data_namespaceObject.useSelect)(select => { - if (!clientId) { - return {}; - } const { - getBlockName, - getBlockAttributes, - __experimentalGetReusableBlockTitle + getSelectedBlockClientId, + getBlockRootClientId, + getBlockIndex, + getBlockOrder } = select(store); - const blockName = getBlockName(clientId); - if (!blockName) { - return {}; + const selectedBlockClientId = getSelectedBlockClientId(); + let _destinationRootClientId = rootClientId; + let _destinationIndex; + if (insertionIndex !== undefined) { + // Insert into a specific index. + _destinationIndex = insertionIndex; + } else if (clientId) { + // Insert after a specific client ID. + _destinationIndex = getBlockIndex(clientId); + } else if (!isAppender && selectedBlockClientId) { + _destinationRootClientId = getBlockRootClientId(selectedBlockClientId); + _destinationIndex = getBlockIndex(selectedBlockClientId) + 1; + } else { + // Insert at the end of the list. + _destinationIndex = getBlockOrder(_destinationRootClientId).length; } - const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)((0,external_wp_blocks_namespaceObject.getBlockType)(blockName)); return { - attributes: getBlockAttributes(clientId), - name: blockName, - reusableBlockTitle: isReusable && __experimentalGetReusableBlockTitle(getBlockAttributes(clientId).ref) + destinationRootClientId: _destinationRootClientId, + destinationIndex: _destinationIndex }; - }, [clientId]); - const blockInformation = useBlockDisplayInformation(clientId); - if (!name || !blockInformation) { - return null; - } - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - const blockLabel = blockType ? (0,external_wp_blocks_namespaceObject.__experimentalGetBlockLabel)(blockType, attributes, context) : null; - const label = reusableBlockTitle || blockLabel; - // Label will fallback to the title if no label is defined for the current - // label context. If the label is defined we prioritize it over a - // possible block variation title match. - const blockTitle = label && label !== blockType.title ? label : blockInformation.title; - if (maximumLength && maximumLength > 0 && blockTitle.length > maximumLength) { - const omission = '...'; - return blockTitle.slice(0, maximumLength - omission.length) + omission; - } - return blockTitle; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-title/index.js -/** - * Internal dependencies - */ - - - -/** - * Renders the block's configured title as a string, or empty if the title - * cannot be determined. - * - * @example - * - * ```jsx - * - * ``` - * - * @param {Object} props - * @param {string} props.clientId Client ID of block. - * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated. - * @param {string|undefined} props.context The context to pass to `getBlockLabel`. - * - * @return {JSX.Element} Block title. - */ -function BlockTitle({ - clientId, - maximumLength, - context -}) { - return useBlockDisplayTitle({ - clientId, - maximumLength, - context - }); + }, [rootClientId, insertionIndex, clientId, isAppender]); + const { + replaceBlocks, + insertBlocks, + showInsertionPoint, + hideInsertionPoint + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const onInsertBlocks = (0,external_wp_element_namespaceObject.useCallback)((blocks, meta, shouldForceFocusBlock = false) => { + const selectedBlock = getSelectedBlock(); + if (!isAppender && selectedBlock && (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(selectedBlock)) { + replaceBlocks(selectedBlock.clientId, blocks, null, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); + } else { + insertBlocks(blocks, destinationIndex, destinationRootClientId, selectBlockOnInsert, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); + } + const blockLength = Array.isArray(blocks) ? blocks.length : 1; + const message = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %d: the name of the block that has been added + (0,external_wp_i18n_namespaceObject._n)('%d block added.', '%d blocks added.', blockLength), blockLength); + (0,external_wp_a11y_namespaceObject.speak)(message); + if (onSelect) { + onSelect(blocks); + } + }, [isAppender, getSelectedBlock, replaceBlocks, insertBlocks, destinationRootClientId, destinationIndex, onSelect, shouldFocusBlock, selectBlockOnInsert]); + const onToggleInsertionPoint = (0,external_wp_element_namespaceObject.useCallback)(show => { + if (show) { + showInsertionPoint(destinationRootClientId, destinationIndex); + } else { + hideInsertionPoint(); + } + }, [showInsertionPoint, hideInsertionPoint, destinationRootClientId, destinationIndex]); + return [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint]; } +/* harmony default export */ var use_insertion_point = (useInsertionPoint); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-breadcrumb/index.js - -/** - * WordPress dependencies - */ - - - - - +// EXTERNAL MODULE: ./node_modules/remove-accents/index.js +var remove_accents = __webpack_require__(4793); +var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-items.js /** - * Internal dependencies + * External dependencies */ +// Default search helpers. +const defaultGetName = item => item.name || ''; +const defaultGetTitle = item => item.title; +const defaultGetDescription = item => item.description || ''; +const defaultGetKeywords = item => item.keywords || []; +const defaultGetCategory = item => item.category; +const defaultGetCollection = () => null; /** - * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb. + * Extracts words from an input string. * - * @param {Object} props Component props. - * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail. - * @return {Element} Block Breadcrumb. + * @param {string} input The input string. + * + * @return {Array} Words, extracted from the input string. */ -function BlockBreadcrumb({ - rootLabelText -}) { - const { - selectBlock, - clearSelectedBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - clientId, - parents, - hasSelection - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectionStart, - getSelectedBlockClientId, - getEnabledBlockParents - } = unlock(select(store)); - const selectedBlockClientId = getSelectedBlockClientId(); - return { - parents: getEnabledBlockParents(selectedBlockClientId), - clientId: selectedBlockClientId, - hasSelection: !!getSelectionStart().clientId - }; - }, []); - const rootLabel = rootLabelText || (0,external_wp_i18n_namespaceObject.__)('Document'); +function extractWords(input = '') { + return noCase(input, { + splitRegexp: [/([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu, + // One lowercase or digit, followed by one uppercase. + /([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu // One uppercase followed by one uppercase and one lowercase. + ], - /* - * Disable reason: The `list` ARIA role is redundant but - * Safari+VoiceOver won't announce the list otherwise. - */ - /* eslint-disable jsx-a11y/no-redundant-roles */ - return (0,external_React_.createElement)("ul", { - className: "block-editor-block-breadcrumb", - role: "list", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block breadcrumb') - }, (0,external_React_.createElement)("li", { - className: !hasSelection ? 'block-editor-block-breadcrumb__current' : undefined, - "aria-current": !hasSelection ? 'true' : undefined - }, hasSelection && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-block-breadcrumb__button", - variant: "tertiary", - onClick: clearSelectedBlock - }, rootLabel), !hasSelection && rootLabel, !!clientId && (0,external_React_.createElement)(build_module_icon, { - icon: chevron_right_small, - className: "block-editor-block-breadcrumb__separator" - })), parents.map(parentClientId => (0,external_React_.createElement)("li", { - key: parentClientId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-block-breadcrumb__button", - variant: "tertiary", - onClick: () => selectBlock(parentClientId) - }, (0,external_React_.createElement)(BlockTitle, { - clientId: parentClientId, - maximumLength: 35 - })), (0,external_React_.createElement)(build_module_icon, { - icon: chevron_right_small, - className: "block-editor-block-breadcrumb__separator" - }))), !!clientId && (0,external_React_.createElement)("li", { - className: "block-editor-block-breadcrumb__current", - "aria-current": "true" - }, (0,external_React_.createElement)(BlockTitle, { - clientId: clientId, - maximumLength: 35 - }))) - /* eslint-enable jsx-a11y/no-redundant-roles */; + stripRegexp: /(\p{C}|\p{P}|\p{S})+/giu // Anything that's not a punctuation, symbol or control/format character. + }).split(' ').filter(Boolean); } -/* harmony default export */ var block_breadcrumb = (BlockBreadcrumb); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-content-overlay/index.js /** - * WordPress dependencies + * Sanitizes the search input string. + * + * @param {string} input The search input to normalize. + * + * @return {string} The normalized search input. */ +function normalizeSearchInput(input = '') { + // Disregard diacritics. + // Input: "média" + input = remove_accents_default()(input); + // Accommodate leading slash, matching autocomplete expectations. + // Input: "/media" + input = input.replace(/^\//, ''); -/** - * Internal dependencies - */ - -function useBlockOverlayActive(clientId) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - __unstableHasActiveBlockOverlayActive - } = select(store); - return __unstableHasActiveBlockOverlayActive(clientId); - }, [clientId]); + // Lowercase. + // Input: "MEDIA" + input = input.toLowerCase(); + return input; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-context/index.js - /** - * WordPress dependencies + * Converts the search term into a list of normalized terms. + * + * @param {string} input The search term to normalize. + * + * @return {string[]} The normalized list of search terms. */ - - -/** @typedef {import('react').ReactNode} ReactNode */ +const getNormalizedSearchTerms = (input = '') => { + return extractWords(normalizeSearchInput(input)); +}; +const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => { + return unmatchedTerms.filter(term => !getNormalizedSearchTerms(unprocessedTerms).some(unprocessedTerm => unprocessedTerm.includes(term))); +}; +const searchBlockItems = (items, categories, collections, searchInput) => { + const normalizedSearchTerms = getNormalizedSearchTerms(searchInput); + if (normalizedSearchTerms.length === 0) { + return items; + } + const config = { + getCategory: item => categories.find(({ + slug + }) => slug === item.category)?.title, + getCollection: item => collections[item.name.split('/')[0]]?.title + }; + return searchItems(items, searchInput, config); +}; /** - * @typedef BlockContextProviderProps + * Filters an item list given a search term. * - * @property {Record} value Context value to merge with current - * value. - * @property {ReactNode} children Component children. + * @param {Array} items Item list + * @param {string} searchInput Search input. + * @param {Object} config Search Config. + * + * @return {Array} Filtered item list. */ - -/** @type {import('react').Context>} */ -const block_context_Context = (0,external_wp_element_namespaceObject.createContext)({}); +const searchItems = (items = [], searchInput = '', config = {}) => { + const normalizedSearchTerms = getNormalizedSearchTerms(searchInput); + if (normalizedSearchTerms.length === 0) { + return items; + } + const rankedItems = items.map(item => { + return [item, getItemSearchRank(item, searchInput, config)]; + }).filter(([, rank]) => rank > 0); + rankedItems.sort(([, rank1], [, rank2]) => rank2 - rank1); + return rankedItems.map(([item]) => item); +}; /** - * Component which merges passed value with current consumed block context. + * Get the search rank for a given item and a specific search term. + * The better the match, the higher the rank. + * If the rank equals 0, it should be excluded from the results. * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-context/README.md + * @param {Object} item Item to filter. + * @param {string} searchTerm Search term. + * @param {Object} config Search Config. * - * @param {BlockContextProviderProps} props + * @return {number} Search Rank. */ -function BlockContextProvider({ - value, - children -}) { - const context = (0,external_wp_element_namespaceObject.useContext)(block_context_Context); - const nextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - ...context, - ...value - }), [context, value]); - return (0,external_React_.createElement)(block_context_Context.Provider, { - value: nextValue, - children: children - }); -} -/* harmony default export */ var block_context = (block_context_Context); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/edit.js +function getItemSearchRank(item, searchTerm, config = {}) { + const { + getName = defaultGetName, + getTitle = defaultGetTitle, + getDescription = defaultGetDescription, + getKeywords = defaultGetKeywords, + getCategory = defaultGetCategory, + getCollection = defaultGetCollection + } = config; + const name = getName(item); + const title = getTitle(item); + const description = getDescription(item); + const keywords = getKeywords(item); + const category = getCategory(item); + const collection = getCollection(item); + const normalizedSearchInput = normalizeSearchInput(searchTerm); + const normalizedTitle = normalizeSearchInput(title); + let rank = 0; -/** - * External dependencies - */ + // Prefers exact matches + // Then prefers if the beginning of the title matches the search term + // name, keywords, categories, collection, variations match come later. + if (normalizedSearchInput === normalizedTitle) { + rank += 30; + } else if (normalizedTitle.startsWith(normalizedSearchInput)) { + rank += 20; + } else { + const terms = [name, title, description, ...keywords, category, collection].join(' '); + const normalizedSearchTerms = extractWords(normalizedSearchInput); + const unmatchedTerms = removeMatchingTerms(normalizedSearchTerms, terms); + if (unmatchedTerms.length === 0) { + rank += 10; + } + } + // Give a better rank to "core" namespaced items. + if (rank !== 0 && name.startsWith('core/')) { + const isCoreBlockVariation = name !== item.id; + // Give a bit better rank to "core" blocks over "core" block variations. + rank += isCoreBlockVariation ? 1 : 2; + } + return rank; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-patterns-paging.js /** * WordPress dependencies */ +const PAGE_SIZE = 20; +const INITIAL_INSERTER_RESULTS = 5; /** - * Internal dependencies - */ - - -/** - * Default value used for blocks which do not define their own context needs, - * used to guarantee that a block's `context` prop will always be an object. It - * is assigned as a constant since it is always expected to be an empty object, - * and in order to avoid unnecessary React reconciliations of a changing object. + * Supplies values needed to page the patterns list client side. * - * @type {{}} + * @param {Array} currentCategoryPatterns An array of the current patterns to display. + * @param {string} currentCategory The currently selected category. + * @param {Object} scrollContainerRef Ref of container to to find scroll container for when moving between pages. + * @param {string} currentFilter The currently search filter. + * + * @return {Object} Returns the relevant paging values. (totalItems, categoryPatternsList, numPages, changePage, currentPage) */ -const DEFAULT_BLOCK_CONTEXT = {}; -const Edit = props => { - const { - name - } = props; - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - if (!blockType) { - return null; - } - - // `edit` and `save` are functions or components describing the markup - // with which a block is displayed. If `blockType` is valid, assign - // them preferentially as the render value for the block. - const Component = blockType.edit || blockType.save; - return (0,external_React_.createElement)(Component, { - ...props - }); -}; -const EditWithFilters = (0,external_wp_components_namespaceObject.withFilters)('editor.BlockEdit')(Edit); -const EditWithGeneratedProps = props => { - const { - attributes = {}, - name - } = props; - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - const blockContext = (0,external_wp_element_namespaceObject.useContext)(block_context); - - // Assign context values using the block type's declared context needs. - const context = (0,external_wp_element_namespaceObject.useMemo)(() => { - return blockType && blockType.usesContext ? Object.fromEntries(Object.entries(blockContext).filter(([key]) => blockType.usesContext.includes(key))) : DEFAULT_BLOCK_CONTEXT; - }, [blockType, blockContext]); - if (!blockType) { - return null; - } - if (blockType.apiVersion > 1) { - return (0,external_React_.createElement)(EditWithFilters, { - ...props, - context: context - }); +function usePatternsPaging(currentCategoryPatterns, currentCategory, scrollContainerRef, currentFilter = '') { + const [currentPage, setCurrentPage] = (0,external_wp_element_namespaceObject.useState)(1); + const previousCategory = (0,external_wp_compose_namespaceObject.usePrevious)(currentCategory); + const previousFilter = (0,external_wp_compose_namespaceObject.usePrevious)(currentFilter); + if ((previousCategory !== currentCategory || previousFilter !== currentFilter) && currentPage !== 1) { + setCurrentPage(1); } - - // Generate a class name for the block's editable form. - const generatedClassName = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'className', true) ? (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(name) : null; - const className = classnames_default()(generatedClassName, attributes.className, props.className); - return (0,external_React_.createElement)(EditWithFilters, { - ...props, - context: context, - className: className + const totalItems = currentCategoryPatterns.length; + const pageIndex = currentPage - 1; + const categoryPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { + return currentCategoryPatterns.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE); + }, [pageIndex, currentCategoryPatterns]); + const categoryPatternsAsyncList = (0,external_wp_compose_namespaceObject.useAsyncList)(categoryPatterns, { + step: INITIAL_INSERTER_RESULTS }); -}; -/* harmony default export */ var block_edit_edit = (EditWithGeneratedProps); + const numPages = Math.ceil(currentCategoryPatterns.length / PAGE_SIZE); + const changePage = page => { + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(scrollContainerRef?.current); + scrollContainer?.scrollTo(0, 0); + setCurrentPage(page); + }; + (0,external_wp_element_namespaceObject.useEffect)(function scrollToTopOnCategoryChange() { + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(scrollContainerRef?.current); + scrollContainer?.scrollTo(0, 0); + }, [currentCategory, scrollContainerRef]); + return { + totalItems, + categoryPatterns, + categoryPatternsAsyncList, + numPages, + changePage, + currentPage + }; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/patterns-list.js /** * WordPress dependencies */ -/** - * Internal dependencies - */ - - -/** - * The `useBlockEditContext` hook provides information about the block this hook is being used in. - * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block. - * It is useful if you want to create custom hooks that need access to the current blocks clientId - * but don't want to rely on the data getting passed in as a parameter. - * - * @return {Object} Block edit context - */ -function BlockEdit({ - mayDisplayControls, - mayDisplayParentControls, - blockEditingMode, - // The remaining props are passed through the BlockEdit filters and are thus - // public API! - ...props -}) { - const { - name, - isSelected, - clientId, - attributes = {}, - __unstableLayoutClassNames - } = props; - const { - layout = null - } = attributes; - const layoutSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, 'layout', false) || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, '__experimentalLayout', false); - return (0,external_React_.createElement)(Provider - // It is important to return the same object if props haven't - // changed to avoid unnecessary rerenders. - // See https://reactjs.org/docs/context.html#caveats. - , { - value: (0,external_wp_element_namespaceObject.useMemo)(() => ({ - name, - isSelected, - clientId, - layout: layoutSupport ? layout : null, - __unstableLayoutClassNames, - // We use symbols in favour of an __unstable prefix to avoid - // usage outside of the package (this context is exposed). - [mayDisplayControlsKey]: mayDisplayControls, - [mayDisplayParentControlsKey]: mayDisplayParentControls, - [blockEditingModeKey]: blockEditingMode - }), [name, isSelected, clientId, layoutSupport, layout, __unstableLayoutClassNames, mayDisplayControls, mayDisplayParentControls, blockEditingMode]) - }, (0,external_React_.createElement)(block_edit_edit, { - ...props - })); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js /** - * WordPress dependencies + * Internal dependencies */ -const moreVertical = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" -})); -/* harmony default export */ var more_vertical = (moreVertical); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/warning/index.js -/** - * External dependencies - */ -/** - * WordPress dependencies - */ -function Warning({ - className, - actions, - children, - secondaryActions +function PatternsListHeader({ + filterValue, + filteredBlockPatternsLength }) { - return (0,external_React_.createElement)("div", { - style: { - display: 'contents', - all: 'initial' - } - }, (0,external_React_.createElement)("div", { - className: classnames_default()(className, 'block-editor-warning') - }, (0,external_React_.createElement)("div", { - className: "block-editor-warning__contents" - }, (0,external_React_.createElement)("p", { - className: "block-editor-warning__message" - }, children), (external_wp_element_namespaceObject.Children.count(actions) > 0 || secondaryActions) && (0,external_React_.createElement)("div", { - className: "block-editor-warning__actions" - }, external_wp_element_namespaceObject.Children.count(actions) > 0 && external_wp_element_namespaceObject.Children.map(actions, (action, i) => (0,external_React_.createElement)("span", { - key: i, - className: "block-editor-warning__action" - }, action)), secondaryActions && (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - className: "block-editor-warning__secondary", - icon: more_vertical, - label: (0,external_wp_i18n_namespaceObject.__)('More options'), - popoverProps: { - position: 'bottom left', - className: 'block-editor-warning__dropdown' - }, - noIcons: true - }, () => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, secondaryActions.map((item, pos) => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: item.onClick, - key: pos - }, item.title)))))))); + if (!filterValue) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { + level: 2, + lineHeight: '48px', + className: "block-editor-block-patterns-explorer__search-results-count" + }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of patterns. */ + (0,external_wp_i18n_namespaceObject._n)('%d pattern found', '%d patterns found', filteredBlockPatternsLength), filteredBlockPatternsLength)); } +function PatternList({ + searchValue, + selectedCategory, + patternCategories +}) { + const container = (0,external_wp_element_namespaceObject.useRef)(); + const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500); + const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ + shouldFocusBlock: true + }); + const [patterns,, onClickPattern] = use_patterns_state(onInsertBlocks, destinationRootClientId); + const registeredPatternCategories = (0,external_wp_element_namespaceObject.useMemo)(() => patternCategories.map(patternCategory => patternCategory.name), [patternCategories]); + const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { + const filteredPatterns = patterns.filter(pattern => { + if (selectedCategory === allPatternsCategory.name) { + return true; + } + if (selectedCategory === myPatternsCategory.name && pattern.id) { + return true; + } + if (selectedCategory === 'uncategorized') { + const hasKnownCategory = pattern.categories.some(category => registeredPatternCategories.includes(category)); + return !pattern.categories?.length || !hasKnownCategory; + } + return pattern.categories?.includes(selectedCategory); + }); + if (!searchValue) { + return filteredPatterns; + } + return searchItems(filteredPatterns, searchValue); + }, [searchValue, patterns, selectedCategory, registeredPatternCategories]); -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md - */ -/* harmony default export */ var warning = (Warning); + // Announce search results on change. + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!searchValue) { + return; + } + const count = filteredBlockPatterns.length; + const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of results. */ + (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', count), count); + debouncedSpeak(resultsFoundMessage); + }, [searchValue, debouncedSpeak, filteredBlockPatterns.length]); + const pagingProps = usePatternsPaging(filteredBlockPatterns, selectedCategory, container); -// EXTERNAL MODULE: ./node_modules/diff/lib/diff/character.js -var character = __webpack_require__(1973); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/block-view.js + // Reset page when search value changes. + const [previousSearchValue, setPreviousSearchValue] = (0,external_wp_element_namespaceObject.useState)(searchValue); + if (searchValue !== previousSearchValue) { + setPreviousSearchValue(searchValue); + pagingProps.changePage(1); + } + const hasItems = !!filteredBlockPatterns?.length; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-patterns-explorer__list", + ref: container + }, (0,external_wp_element_namespaceObject.createElement)(PatternsListHeader, { + filterValue: searchValue, + filteredBlockPatternsLength: filteredBlockPatterns.length + }), (0,external_wp_element_namespaceObject.createElement)(inserter_listbox, null, hasItems && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_patterns_list, { + shownPatterns: pagingProps.categoryPatternsAsyncList, + blockPatterns: pagingProps.categoryPatterns, + onClickPattern: onClickPattern, + isDraggable: false + }), (0,external_wp_element_namespaceObject.createElement)(Pagination, { + ...pagingProps + })))); +} +/* harmony default export */ var patterns_list = (PatternList); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/explorer.js /** * WordPress dependencies @@ -36177,104 +28280,111 @@ var character = __webpack_require__(1973); -function BlockView({ - title, - rawContent, - renderedContent, - action, - actionText, - className -}) { - return (0,external_React_.createElement)("div", { - className: className - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-compare__content" - }, (0,external_React_.createElement)("h2", { - className: "block-editor-block-compare__heading" - }, title), (0,external_React_.createElement)("div", { - className: "block-editor-block-compare__html" - }, rawContent), (0,external_React_.createElement)("div", { - className: "block-editor-block-compare__preview edit-post-visual-editor" - }, (0,external_React_.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(renderedContent)))), (0,external_React_.createElement)("div", { - className: "block-editor-block-compare__action" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "secondary", - tabIndex: "0", - onClick: action - }, actionText))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/index.js /** - * External dependencies + * Internal dependencies */ -// diff doesn't tree-shake correctly, so we import from the individual -// module here, to avoid including too much of the library +function PatternsExplorer({ + initialCategory, + rootClientId +}) { + const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)(''); + const [patternSourceFilter, setPatternSourceFilter] = (0,external_wp_element_namespaceObject.useState)('all'); + const [selectedCategory, setSelectedCategory] = (0,external_wp_element_namespaceObject.useState)(initialCategory?.name); + const patternCategories = usePatternsCategories(rootClientId, patternSourceFilter); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-patterns-explorer" + }, (0,external_wp_element_namespaceObject.createElement)(sidebar, { + selectedCategory: selectedCategory, + patternCategories: patternCategories, + onClickCategory: setSelectedCategory, + searchValue: searchValue, + setSearchValue: setSearchValue, + patternSourceFilter: patternSourceFilter, + setPatternSourceFilter: setPatternSourceFilter + }), (0,external_wp_element_namespaceObject.createElement)(patterns_list, { + searchValue: searchValue, + selectedCategory: selectedCategory, + patternCategories: patternCategories, + patternSourceFilter: patternSourceFilter + })); +} +function PatternsExplorerModal({ + onModalClose, + ...restProps +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: (0,external_wp_i18n_namespaceObject.__)('Patterns'), + onRequestClose: onModalClose, + isFullScreen: true + }, (0,external_wp_element_namespaceObject.createElement)(PatternsExplorer, { + ...restProps + })); +} +/* harmony default export */ var explorer = (PatternsExplorerModal); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/mobile-tab-navigation.js + /** * WordPress dependencies */ -/** - * Internal dependencies - */ - -function BlockCompare({ - block, - onKeep, - onConvert, - convertor, - convertButtonText +function ScreenHeader({ + title }) { - function getDifference(originalContent, newContent) { - const difference = (0,character/* diffChars */.Kx)(originalContent, newContent); - return difference.map((item, pos) => { - const classes = classnames_default()({ - 'block-editor-block-compare__added': item.added, - 'block-editor-block-compare__removed': item.removed - }); - return (0,external_React_.createElement)("span", { - key: pos, - className: classes - }, item.value); - }); - } - function getConvertedContent(convertedBlock) { - // The convertor may return an array of items or a single item. - const newBlocks = Array.isArray(convertedBlock) ? convertedBlock : [convertedBlock]; - - // Get converted block details. - const newContent = newBlocks.map(item => (0,external_wp_blocks_namespaceObject.getSaveContent)(item.name, item.attributes, item.innerBlocks)); - return newContent.join(''); - } - const converted = getConvertedContent(convertor(block)); - const difference = getDifference(block.originalContent, converted); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-compare__wrapper" - }, (0,external_React_.createElement)(BlockView, { - title: (0,external_wp_i18n_namespaceObject.__)('Current'), - className: "block-editor-block-compare__current", - action: onKeep, - actionText: (0,external_wp_i18n_namespaceObject.__)('Convert to HTML'), - rawContent: block.originalContent, - renderedContent: block.originalContent - }), (0,external_React_.createElement)(BlockView, { - title: (0,external_wp_i18n_namespaceObject.__)('After Conversion'), - className: "block-editor-block-compare__converted", - action: onConvert, - actionText: convertButtonText, - rawContent: difference, - renderedContent: converted - })); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 0 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { + marginBottom: 0, + paddingX: 4, + paddingY: 3 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + spacing: 2 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorBackButton, { + style: + // TODO: This style override is also used in ToolsPanelHeader. + // It should be supported out-of-the-box by Button. + { + minWidth: 24, + padding: 0 + }, + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left, + isSmall: true, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigate to the previous view') + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { + level: 5 + }, title)))))); +} +function MobileTabNavigation({ + categories, + children +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorProvider, { + initialPath: "/", + className: "block-editor-inserter__mobile-tab-navigation" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorScreen, { + path: "/" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, null, categories.map(category => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorButton, { + key: category.name, + path: `/category/${category.name}`, + as: external_wp_components_namespaceObject.__experimentalItem, + isAction: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexBlock, null, category.label), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right + })))))), categories.map(category => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorScreen, { + key: category.name, + path: `/category/${category.name}` + }, (0,external_wp_element_namespaceObject.createElement)(ScreenHeader, { + title: (0,external_wp_i18n_namespaceObject.__)('Back') + }), children(category)))); } -/* harmony default export */ var block_compare = (BlockCompare); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-invalid-warning.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-filter.js /** * WordPress dependencies @@ -36284,150 +28394,135 @@ function BlockCompare({ - /** * Internal dependencies */ +const PATTERN_TYPES = { + all: 'all', + synced: 'synced', + unsynced: 'unsynced', + user: 'user', + theme: 'theme', + directory: 'directory' +}; +const SYNC_TYPES = { + all: 'all', + full: 'fully', + unsynced: 'unsynced' +}; +const getShouldDisableSyncFilter = sourceFilter => sourceFilter !== PATTERN_TYPES.all && sourceFilter !== PATTERN_TYPES.user; +const getShouldDisableNonUserSources = category => { + return category.name === myPatternsCategory.name; +}; +function BlockPatternsSyncFilter({ + setPatternSyncFilter, + setPatternSourceFilter, + patternSyncFilter, + patternSourceFilter, + scrollContainerRef, + category +}) { + // If the category is `myPatterns` then we need to set the source filter to `user`, but + // we do this by deriving from props rather than calling setPatternSourceFilter otherwise + // the user may be confused when switching to another category if the haven't explicity set + // this filter themselves. + const currentPatternSourceFilter = category.name === myPatternsCategory.name ? PATTERN_TYPES.user : patternSourceFilter; + // We need to disable the sync filter option if the source filter is not 'all' or 'user' + // otherwise applying them will just result in no patterns being shown. + const shouldDisableSyncFilter = getShouldDisableSyncFilter(currentPatternSourceFilter); -const blockToBlocks = block => (0,external_wp_blocks_namespaceObject.rawHandler)({ - HTML: block.originalContent -}); -function BlockInvalidWarning({ - clientId -}) { - const { - block, - canInsertHTMLBlock, - canInsertClassicBlock - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - canInsertBlockType, - getBlock, - getBlockRootClientId - } = select(store); - const rootClientId = getBlockRootClientId(clientId); - return { - block: getBlock(clientId), - canInsertHTMLBlock: canInsertBlockType('core/html', rootClientId), - canInsertClassicBlock: canInsertBlockType('core/freeform', rootClientId) - }; - }, [clientId]); - const { - replaceBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const [compare, setCompare] = (0,external_wp_element_namespaceObject.useState)(false); - const onCompareClose = (0,external_wp_element_namespaceObject.useCallback)(() => setCompare(false), []); - const convert = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - toClassic() { - const classicBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', { - content: block.originalContent - }); - return replaceBlock(block.clientId, classicBlock); + // We also need to disable the directory and theme source filter options if the category + // is `myPatterns` otherwise applying them will also just result in no patterns being shown. + const shouldDisableNonUserSources = getShouldDisableNonUserSources(category); + const patternSyncMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ + value: SYNC_TYPES.all, + label: (0,external_wp_i18n_namespaceObject._x)('All', 'Option that shows all patterns') + }, { + value: SYNC_TYPES.full, + label: (0,external_wp_i18n_namespaceObject._x)('Synced', 'Option that shows all synchronized patterns'), + disabled: shouldDisableSyncFilter + }, { + value: SYNC_TYPES.unsynced, + label: (0,external_wp_i18n_namespaceObject._x)('Not synced', 'Option that shows all patterns that are not synchronized'), + disabled: shouldDisableSyncFilter + }], [shouldDisableSyncFilter]); + const patternSourceMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ + value: PATTERN_TYPES.all, + label: (0,external_wp_i18n_namespaceObject.__)('All'), + disabled: shouldDisableNonUserSources + }, { + value: PATTERN_TYPES.directory, + label: (0,external_wp_i18n_namespaceObject.__)('Pattern Directory'), + disabled: shouldDisableNonUserSources + }, { + value: PATTERN_TYPES.theme, + label: (0,external_wp_i18n_namespaceObject.__)('Theme & Plugins'), + disabled: shouldDisableNonUserSources + }, { + value: PATTERN_TYPES.user, + label: (0,external_wp_i18n_namespaceObject.__)('User') + }], [shouldDisableNonUserSources]); + function handleSetSourceFilterChange(newSourceFilter) { + setPatternSourceFilter(newSourceFilter); + if (getShouldDisableSyncFilter(newSourceFilter)) { + setPatternSyncFilter(SYNC_TYPES.all); + } + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + popoverProps: { + placement: 'right-end' }, - toHTML() { - const htmlBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/html', { - content: block.originalContent - }); - return replaceBlock(block.clientId, htmlBlock); + label: "Filter patterns", + icon: (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + width: "24", + height: "24", + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z", + fill: "#1E1E1E" + })) + }) + }, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Source') + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { + choices: patternSourceMenuOptions, + onSelect: value => { + handleSetSourceFilterChange(value); + scrollContainerRef.current?.scrollTo(0, 0); }, - toBlocks() { - const newBlocks = blockToBlocks(block); - return replaceBlock(block.clientId, newBlocks); + value: currentPatternSourceFilter + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Type') + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { + choices: patternSyncMenuOptions, + onSelect: value => { + setPatternSyncFilter(value); + scrollContainerRef.current?.scrollTo(0, 0); }, - toRecoveredBlock() { - const recoveredBlock = (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks); - return replaceBlock(block.clientId, recoveredBlock); - } - }), [block, replaceBlock]); - const secondaryActions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ - // translators: Button to fix block content - title: (0,external_wp_i18n_namespaceObject._x)('Resolve', 'imperative verb'), - onClick: () => setCompare(true) - }, canInsertHTMLBlock && { - title: (0,external_wp_i18n_namespaceObject.__)('Convert to HTML'), - onClick: convert.toHTML - }, canInsertClassicBlock && { - title: (0,external_wp_i18n_namespaceObject.__)('Convert to Classic Block'), - onClick: convert.toClassic - }].filter(Boolean), [canInsertHTMLBlock, canInsertClassicBlock, convert]); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(warning, { - actions: [(0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: "recover", - onClick: convert.toRecoveredBlock, - variant: "primary" - }, (0,external_wp_i18n_namespaceObject.__)('Attempt Block Recovery'))], - secondaryActions: secondaryActions - }, (0,external_wp_i18n_namespaceObject.__)('This block contains unexpected or invalid content.')), compare && (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: - // translators: Dialog title to fix block content - (0,external_wp_i18n_namespaceObject.__)('Resolve Block'), - onRequestClose: onCompareClose, - className: "block-editor-block-compare" - }, (0,external_React_.createElement)(block_compare, { - block: block, - onKeep: convert.toHTML, - onConvert: convert.toBlocks, - convertor: blockToBlocks, - convertButtonText: (0,external_wp_i18n_namespaceObject.__)('Convert to Blocks') - }))); + value: patternSyncFilter + })), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-tool-selector__help" + }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Patterns are available from the WordPress.org Pattern Directory, bundled in the active theme, or created by users on this site. Only patterns created on this site can be synced.'), { + Link: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/patterns/') + }) + }))))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-warning.js - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - -const block_crash_warning_warning = (0,external_React_.createElement)(warning, { - className: "block-editor-block-list__block-crash-warning" -}, (0,external_wp_i18n_namespaceObject.__)('This block has encountered an error and cannot be previewed.')); -/* harmony default export */ var block_crash_warning = (() => block_crash_warning_warning); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-boundary.js /** * WordPress dependencies */ -class BlockCrashBoundary extends external_wp_element_namespaceObject.Component { - constructor() { - super(...arguments); - this.state = { - hasError: false - }; - } - componentDidCatch() { - this.setState({ - hasError: true - }); - } - render() { - if (this.state.hasError) { - return this.props.fallback; - } - return this.props.children; - } -} -/* harmony default export */ var block_crash_boundary = (BlockCrashBoundary); - -// EXTERNAL MODULE: ./node_modules/react-autosize-textarea/lib/index.js -var react_autosize_textarea_lib = __webpack_require__(773); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-html.js -/** - * External dependencies - */ -/** - * WordPress dependencies - */ @@ -36436,4598 +28531,6069 @@ var react_autosize_textarea_lib = __webpack_require__(773); * Internal dependencies */ -function BlockHTML({ - clientId -}) { - const [html, setHtml] = (0,external_wp_element_namespaceObject.useState)(''); - const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlock(clientId), [clientId]); - const { - updateBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const onChange = () => { - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(block.name); - if (!blockType) { - return; - } - const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(blockType, html, block.attributes); - // If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error - const content = html ? html : (0,external_wp_blocks_namespaceObject.getSaveContent)(blockType, attributes); - const [isValid] = html ? (0,external_wp_blocks_namespaceObject.validateBlock)({ - ...block, - attributes, - originalContent: content - }) : [true]; - updateBlock(clientId, { - attributes, - originalContent: content, - isValid - }); - // Ensure the state is updated if we reset so it displays the default content. - if (!html) { - setHtml(content); - } - }; - (0,external_wp_element_namespaceObject.useEffect)(() => { - setHtml((0,external_wp_blocks_namespaceObject.getBlockContent)(block)); - }, [block]); - return (0,external_React_.createElement)(react_autosize_textarea_lib/* default */.Z, { - className: "block-editor-block-list__block-html-textarea", - value: html, - onBlur: onChange, - onChange: event => setHtml(event.target.value) - }); -} -/* harmony default export */ var block_html = (BlockHTML); -;// CONCATENATED MODULE: ./node_modules/@react-spring/shared/dist/react-spring_shared.modern.mjs -var __defProp = Object.defineProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -// src/globals.ts -var globals_exports = {}; -__export(globals_exports, { - assign: () => react_spring_shared_modern_assign, - colors: () => colors, - createStringInterpolator: () => createStringInterpolator, - skipAnimation: () => skipAnimation, - to: () => to, - willAdvance: () => willAdvance -}); -// ../rafz/dist/react-spring_rafz.modern.mjs -var updateQueue = makeQueue(); -var raf = (fn) => schedule(fn, updateQueue); -var writeQueue = makeQueue(); -raf.write = (fn) => schedule(fn, writeQueue); -var onStartQueue = makeQueue(); -raf.onStart = (fn) => schedule(fn, onStartQueue); -var onFrameQueue = makeQueue(); -raf.onFrame = (fn) => schedule(fn, onFrameQueue); -var onFinishQueue = makeQueue(); -raf.onFinish = (fn) => schedule(fn, onFinishQueue); -var timeouts = []; -raf.setTimeout = (handler, ms) => { - const time = raf.now() + ms; - const cancel = () => { - const i = timeouts.findIndex((t) => t.cancel == cancel); - if (~i) - timeouts.splice(i, 1); - pendingCount -= ~i ? 1 : 0; - }; - const timeout = { time, handler, cancel }; - timeouts.splice(findTimeout(time), 0, timeout); - pendingCount += 1; - start(); - return timeout; -}; -var findTimeout = (time) => ~(~timeouts.findIndex((t) => t.time > time) || ~timeouts.length); -raf.cancel = (fn) => { - onStartQueue.delete(fn); - onFrameQueue.delete(fn); - onFinishQueue.delete(fn); - updateQueue.delete(fn); - writeQueue.delete(fn); +const block_patterns_tab_noop = () => {}; +const allPatternsCategory = { + name: 'allPatterns', + label: (0,external_wp_i18n_namespaceObject.__)('All patterns') }; -raf.sync = (fn) => { - sync = true; - raf.batchedUpdates(fn); - sync = false; +const myPatternsCategory = { + name: 'myPatterns', + label: (0,external_wp_i18n_namespaceObject.__)('My patterns') }; -raf.throttle = (fn) => { - let lastArgs; - function queuedFn() { - try { - fn(...lastArgs); - } finally { - lastArgs = null; - } +function isPatternFiltered(pattern, sourceFilter, syncFilter) { + const isUserPattern = pattern.name.startsWith('core/block'); + const isDirectoryPattern = pattern.source === 'core' || pattern.source?.startsWith('pattern-directory'); + + // If theme source selected, filter out user created patterns and those from + // the core patterns directory. + if (sourceFilter === PATTERN_TYPES.theme && (isUserPattern || isDirectoryPattern)) { + return true; } - function throttled(...args) { - lastArgs = args; - raf.onStart(queuedFn); + + // If the directory source is selected, filter out user created patterns + // and those bundled with the theme. + if (sourceFilter === PATTERN_TYPES.directory && (isUserPattern || !isDirectoryPattern)) { + return true; } - throttled.handler = fn; - throttled.cancel = () => { - onStartQueue.delete(queuedFn); - lastArgs = null; - }; - return throttled; -}; -var nativeRaf = typeof window != "undefined" ? window.requestAnimationFrame : ( - // eslint-disable-next-line @typescript-eslint/no-empty-function - () => { + + // If user source selected, filter out theme patterns. Any pattern without + // an id wasn't created by a user. + if (sourceFilter === PATTERN_TYPES.user && !pattern.id) { + return true; } -); -raf.use = (impl) => nativeRaf = impl; -raf.now = typeof performance != "undefined" ? () => performance.now() : Date.now; -raf.batchedUpdates = (fn) => fn(); -raf.catch = console.error; -raf.frameLoop = "always"; -raf.advance = () => { - if (raf.frameLoop !== "demand") { - console.warn( - "Cannot call the manual advancement of rafz whilst frameLoop is not set as demand" - ); - } else { - update(); + + // Filter by sync status. + if (syncFilter === SYNC_TYPES.full && pattern.syncStatus !== '') { + return true; } -}; -var ts = -1; -var pendingCount = 0; -var sync = false; -function schedule(fn, queue) { - if (sync) { - queue.delete(fn); - fn(0); - } else { - queue.add(fn); - start(); + if (syncFilter === SYNC_TYPES.unsynced && pattern.syncStatus !== 'unsynced' && isUserPattern) { + return true; } + return false; } -function start() { - if (ts < 0) { - ts = 0; - if (raf.frameLoop !== "demand") { - nativeRaf(loop); +function usePatternsCategories(rootClientId, sourceFilter = 'all') { + const [patterns, allCategories] = use_patterns_state(undefined, rootClientId); + const filteredPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => sourceFilter === 'all' ? patterns : patterns.filter(pattern => !isPatternFiltered(pattern, sourceFilter)), [sourceFilter, patterns]); + const hasRegisteredCategory = (0,external_wp_element_namespaceObject.useCallback)(pattern => { + if (!pattern.categories || !pattern.categories.length) { + return false; } - } -} -function stop() { - ts = -1; -} -function loop() { - if (~ts) { - nativeRaf(loop); - raf.batchedUpdates(update); - } -} -function update() { - const prevTs = ts; - ts = raf.now(); - const count = findTimeout(ts); - if (count) { - eachSafely(timeouts.splice(0, count), (t) => t.handler()); - pendingCount -= count; - } - if (!pendingCount) { - stop(); - return; - } - onStartQueue.flush(); - updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667); - onFrameQueue.flush(); - writeQueue.flush(); - onFinishQueue.flush(); -} -function makeQueue() { - let next = /* @__PURE__ */ new Set(); - let current = next; - return { - add(fn) { - pendingCount += current == next && !next.has(fn) ? 1 : 0; - next.add(fn); - }, - delete(fn) { - pendingCount -= current == next && next.has(fn) ? 1 : 0; - return next.delete(fn); - }, - flush(arg) { - if (current.size) { - next = /* @__PURE__ */ new Set(); - pendingCount -= current.size; - eachSafely(current, (fn) => fn(arg) && next.add(fn)); - pendingCount += next.size; - current = next; - } + return pattern.categories.some(cat => allCategories.some(category => category.name === cat)); + }, [allCategories]); + + // Remove any empty categories. + const populatedCategories = (0,external_wp_element_namespaceObject.useMemo)(() => { + const categories = allCategories.filter(category => filteredPatterns.some(pattern => pattern.categories?.includes(category.name))).sort((a, b) => a.label.localeCompare(b.label)); + if (filteredPatterns.some(pattern => !hasRegisteredCategory(pattern)) && !categories.find(category => category.name === 'uncategorized')) { + categories.push({ + name: 'uncategorized', + label: (0,external_wp_i18n_namespaceObject._x)('Uncategorized') + }); } - }; -} -function eachSafely(values, each2) { - values.forEach((value) => { - try { - each2(value); - } catch (e) { - raf.catch(e); + if (filteredPatterns.some(pattern => pattern.id)) { + categories.unshift(myPatternsCategory); } - }); + if (filteredPatterns.length > 0) { + categories.unshift({ + name: allPatternsCategory.name, + label: allPatternsCategory.label + }); + } + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of categories . */ + (0,external_wp_i18n_namespaceObject._n)('%d category button displayed.', '%d category buttons displayed.', categories.length), categories.length)); + return categories; + }, [allCategories, filteredPatterns, hasRegisteredCategory]); + return populatedCategories; } - -// src/helpers.ts -function react_spring_shared_modern_noop() { +function BlockPatternsCategoryDialog({ + rootClientId, + onInsert, + onHover, + category, + showTitlesAsTooltip, + patternFilter +}) { + const container = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useEffect)(() => { + const timeout = setTimeout(() => { + const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); + firstTabbable?.focus(); + }); + return () => clearTimeout(timeout); + }, [category]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: container, + className: "block-editor-inserter__patterns-category-dialog" + }, (0,external_wp_element_namespaceObject.createElement)(BlockPatternsCategoryPanel, { + key: category.name, + rootClientId: rootClientId, + onInsert: onInsert, + onHover: onHover, + category: category, + showTitlesAsTooltip: showTitlesAsTooltip, + patternFilter: patternFilter + })); } -var defineHidden = (obj, key, value) => Object.defineProperty(obj, key, { value, writable: true, configurable: true }); -var is = { - arr: Array.isArray, - obj: (a) => !!a && a.constructor.name === "Object", - fun: (a) => typeof a === "function", - str: (a) => typeof a === "string", - num: (a) => typeof a === "number", - und: (a) => a === void 0 -}; -function isEqual(a, b) { - if (is.arr(a)) { - if (!is.arr(b) || a.length !== b.length) +function BlockPatternsCategoryPanel({ + rootClientId, + onInsert, + onHover = block_patterns_tab_noop, + category, + showTitlesAsTooltip +}) { + const [allPatterns,, onClickPattern] = use_patterns_state(onInsert, rootClientId); + const [patternSyncFilter, setPatternSyncFilter] = (0,external_wp_element_namespaceObject.useState)('all'); + const [patternSourceFilter, setPatternSourceFilter] = (0,external_wp_element_namespaceObject.useState)('all'); + const availableCategories = usePatternsCategories(rootClientId, patternSourceFilter); + const scrollContainerRef = (0,external_wp_element_namespaceObject.useRef)(); + const currentCategoryPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => allPatterns.filter(pattern => { + var _pattern$categories$f; + if (isPatternFiltered(pattern, patternSourceFilter, patternSyncFilter)) { return false; - for (let i = 0; i < a.length; i++) { - if (a[i] !== b[i]) - return false; } - return true; - } - return a === b; -} -var react_spring_shared_modern_each = (obj, fn) => obj.forEach(fn); -function eachProp(obj, fn, ctx) { - if (is.arr(obj)) { - for (let i = 0; i < obj.length; i++) { - fn.call(ctx, obj[i], `${i}`); + if (category.name === allPatternsCategory.name) { + return true; } - return; - } - for (const key in obj) { - if (obj.hasOwnProperty(key)) { - fn.call(ctx, obj[key], key); + if (category.name === myPatternsCategory.name && pattern.id) { + return true; } - } + if (category.name !== 'uncategorized') { + return pattern.categories?.includes(category.name); + } + + // The uncategorized category should show all the patterns without any category + // or with no available category. + const availablePatternCategories = (_pattern$categories$f = pattern.categories?.filter(cat => availableCategories.find(availableCategory => availableCategory.name === cat))) !== null && _pattern$categories$f !== void 0 ? _pattern$categories$f : []; + return availablePatternCategories.length === 0; + }), [allPatterns, availableCategories, category.name, patternSourceFilter, patternSyncFilter]); + const pagingProps = usePatternsPaging(currentCategoryPatterns, category, scrollContainerRef); + const { + changePage + } = pagingProps; + + // Hide block pattern preview on unmount. + // eslint-disable-next-line react-hooks/exhaustive-deps + (0,external_wp_element_namespaceObject.useEffect)(() => () => onHover(null), []); + const onSetPatternSyncFilter = (0,external_wp_element_namespaceObject.useCallback)(value => { + setPatternSyncFilter(value); + changePage(1); + }, [setPatternSyncFilter, changePage]); + const onSetPatternSourceFilter = (0,external_wp_element_namespaceObject.useCallback)(value => { + setPatternSourceFilter(value); + changePage(1); + }, [setPatternSourceFilter, changePage]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__patterns-category-panel" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 2, + className: "block-editor-inserter__patterns-category-panel-header" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexBlock, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { + level: 4, + as: "div" + }, category.label)), (0,external_wp_element_namespaceObject.createElement)(BlockPatternsSyncFilter, { + patternSyncFilter: patternSyncFilter, + patternSourceFilter: patternSourceFilter, + setPatternSyncFilter: onSetPatternSyncFilter, + setPatternSourceFilter: onSetPatternSourceFilter, + scrollContainerRef: scrollContainerRef, + category: category + })), !currentCategoryPatterns.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, { + variant: "muted", + className: "block-editor-inserter__patterns-category-no-results" + }, (0,external_wp_i18n_namespaceObject.__)('No results found'))), currentCategoryPatterns.length > 0 && (0,external_wp_element_namespaceObject.createElement)(block_patterns_list, { + ref: scrollContainerRef, + shownPatterns: pagingProps.categoryPatternsAsyncList, + blockPatterns: pagingProps.categoryPatterns, + onClickPattern: onClickPattern, + onHover: onHover, + label: category.label, + orientation: "vertical", + category: category.name, + isDraggable: true, + showTitlesAsTooltip: showTitlesAsTooltip, + patternFilter: patternSourceFilter, + pagingProps: pagingProps + })); } -var toArray = (a) => is.und(a) ? [] : is.arr(a) ? a : [a]; -function flush(queue, iterator) { - if (queue.size) { - const items = Array.from(queue); - queue.clear(); - react_spring_shared_modern_each(items, iterator); - } +function BlockPatternsTabs({ + onSelectCategory, + selectedCategory, + onInsert, + rootClientId +}) { + const [showPatternsExplorer, setShowPatternsExplorer] = (0,external_wp_element_namespaceObject.useState)(false); + const categories = usePatternsCategories(rootClientId); + const initialCategory = selectedCategory || categories[0]; + const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isMobile && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__block-patterns-tabs-container" + }, (0,external_wp_element_namespaceObject.createElement)("nav", { + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block pattern categories'), + className: "block-editor-inserter__block-patterns-tabs" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { + role: "list" + }, categories.map(category => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItem, { + role: "listitem", + key: category.name, + onClick: () => onSelectCategory(category), + className: category === selectedCategory ? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category' : 'block-editor-inserter__patterns-category', + "aria-label": category.label, + "aria-current": category === selectedCategory ? 'true' : undefined + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexBlock, null, category.label), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right + })))), (0,external_wp_element_namespaceObject.createElement)("div", { + role: "listitem" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-inserter__patterns-explore-button", + onClick: () => setShowPatternsExplorer(true), + variant: "secondary" + }, (0,external_wp_i18n_namespaceObject.__)('Explore all patterns')))))), isMobile && (0,external_wp_element_namespaceObject.createElement)(MobileTabNavigation, { + categories: categories + }, category => (0,external_wp_element_namespaceObject.createElement)(BlockPatternsCategoryPanel, { + key: category.name, + onInsert: onInsert, + rootClientId: rootClientId, + category: category, + showTitlesAsTooltip: false + })), showPatternsExplorer && (0,external_wp_element_namespaceObject.createElement)(explorer, { + initialCategory: initialCategory, + patternCategories: categories, + onModalClose: () => setShowPatternsExplorer(false), + rootClientId: rootClientId + })); } -var flushCalls = (queue, ...args) => flush(queue, (fn) => fn(...args)); -var isSSR = () => typeof window === "undefined" || !window.navigator || /ServerSideRendering|^Deno\//.test(window.navigator.userAgent); +/* harmony default export */ var block_patterns_tab = (BlockPatternsTabs); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/hooks.js +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ -// src/globals.ts -var createStringInterpolator; -var to; -var colors = null; -var skipAnimation = false; -var willAdvance = react_spring_shared_modern_noop; -var react_spring_shared_modern_assign = (globals) => { - if (globals.to) - to = globals.to; - if (globals.now) - raf.now = globals.now; - if (globals.colors !== void 0) - colors = globals.colors; - if (globals.skipAnimation != null) - skipAnimation = globals.skipAnimation; - if (globals.createStringInterpolator) - createStringInterpolator = globals.createStringInterpolator; - if (globals.requestAnimationFrame) - raf.use(globals.requestAnimationFrame); - if (globals.batchedUpdates) - raf.batchedUpdates = globals.batchedUpdates; - if (globals.willAdvance) - willAdvance = globals.willAdvance; - if (globals.frameLoop) - raf.frameLoop = globals.frameLoop; -}; -// src/FrameLoop.ts -var startQueue = /* @__PURE__ */ new Set(); -var currentFrame = []; -var prevFrame = []; -var priority = 0; -var frameLoop = { - get idle() { - return !startQueue.size && !currentFrame.length; - }, - /** Advance the given animation on every frame until idle. */ - start(animation) { - if (priority > animation.priority) { - startQueue.add(animation); - raf.onStart(flushStartQueue); - } else { - startSafely(animation); - raf(advance); - } - }, - /** Advance all animations by the given time. */ - advance, - /** Call this when an animation's priority changes. */ - sort(animation) { - if (priority) { - raf.onFrame(() => frameLoop.sort(animation)); - } else { - const prevIndex = currentFrame.indexOf(animation); - if (~prevIndex) { - currentFrame.splice(prevIndex, 1); - startUnsafely(animation); + +/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */ +/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */ + +/** + * Fetches media items based on the provided category. + * Each media category is responsible for providing a `fetch` function. + * + * @param {Object} category The media category to fetch results for. + * @param {InserterMediaRequest} query The query args to use for the request. + * @return {InserterMediaItem[]} The media results. + */ +function useMediaResults(category, query = {}) { + const [mediaList, setMediaList] = (0,external_wp_element_namespaceObject.useState)(); + const [isLoading, setIsLoading] = (0,external_wp_element_namespaceObject.useState)(false); + // We need to keep track of the last request made because + // multiple request can be fired without knowing the order + // of resolution, and we need to ensure we are showing + // the results of the last request. + // In the future we could use AbortController to cancel previous + // requests, but we don't for now as it involves adding support + // for this to `core-data` package. + const lastRequest = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useEffect)(() => { + (async () => { + const key = JSON.stringify({ + category: category.name, + ...query + }); + lastRequest.current = key; + setIsLoading(true); + setMediaList([]); // Empty the previous results. + const _media = await category.fetch?.(query); + if (key === lastRequest.current) { + setMediaList(_media); + setIsLoading(false); } - } - }, - /** - * Clear all animations. For testing purposes. - * - * ☠️ Never call this from within the frameloop. - */ - clear() { - currentFrame = []; - startQueue.clear(); - } -}; -function flushStartQueue() { - startQueue.forEach(startSafely); - startQueue.clear(); - raf(advance); -} -function startSafely(animation) { - if (!currentFrame.includes(animation)) - startUnsafely(animation); -} -function startUnsafely(animation) { - currentFrame.splice( - findIndex(currentFrame, (other) => other.priority > animation.priority), - 0, - animation - ); + })(); + }, [category.name, ...Object.values(query)]); + return { + mediaList, + isLoading + }; } -function advance(dt) { - const nextFrame = prevFrame; - for (let i = 0; i < currentFrame.length; i++) { - const animation = currentFrame[i]; - priority = animation.priority; - if (!animation.idle) { - willAdvance(animation); - animation.advance(dt); - if (!animation.idle) { - nextFrame.push(animation); +function useMediaCategories(rootClientId) { + const [categories, setCategories] = (0,external_wp_element_namespaceObject.useState)([]); + const inserterMediaCategories = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getInserterMediaCategories(), []); + const { + canInsertImage, + canInsertVideo, + canInsertAudio + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + canInsertBlockType + } = select(store); + return { + canInsertImage: canInsertBlockType('core/image', rootClientId), + canInsertVideo: canInsertBlockType('core/video', rootClientId), + canInsertAudio: canInsertBlockType('core/audio', rootClientId) + }; + }, [rootClientId]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + (async () => { + const _categories = []; + // If `inserterMediaCategories` is not defined in + // block editor settings, do not show any media categories. + if (!inserterMediaCategories) { + return; } - } - } - priority = 0; - prevFrame = currentFrame; - prevFrame.length = 0; - currentFrame = nextFrame; - return currentFrame.length > 0; -} -function findIndex(arr, test) { - const index = arr.findIndex(test); - return index < 0 ? arr.length : index; + // Loop through categories to check if they have at least one media item. + const categoriesHaveMedia = new Map(await Promise.all(inserterMediaCategories.map(async category => { + // Some sources are external and we don't need to make a request. + if (category.isExternalResource) { + return [category.name, true]; + } + let results = []; + try { + results = await category.fetch({ + per_page: 1 + }); + } catch (e) { + // If the request fails, we shallow the error and just don't show + // the category, in order to not break the media tab. + } + return [category.name, !!results.length]; + }))); + // We need to filter out categories that don't have any media items or + // whose corresponding block type is not allowed to be inserted, based + // on the category's `mediaType`. + const canInsertMediaType = { + image: canInsertImage, + video: canInsertVideo, + audio: canInsertAudio + }; + inserterMediaCategories.forEach(category => { + if (canInsertMediaType[category.mediaType] && categoriesHaveMedia.get(category.name)) { + _categories.push(category); + } + }); + if (!!_categories.length) { + setCategories(_categories); + } + })(); + }, [canInsertImage, canInsertVideo, canInsertAudio, inserterMediaCategories]); + return categories; } -// src/clamp.ts -var clamp = (min, max, v) => Math.min(Math.max(v, min), max); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js -// src/colors.ts -var colors2 = { - transparent: 0, - aliceblue: 4042850303, - antiquewhite: 4209760255, - aqua: 16777215, - aquamarine: 2147472639, - azure: 4043309055, - beige: 4126530815, - bisque: 4293182719, - black: 255, - blanchedalmond: 4293643775, - blue: 65535, - blueviolet: 2318131967, - brown: 2771004159, - burlywood: 3736635391, - burntsienna: 3934150143, - cadetblue: 1604231423, - chartreuse: 2147418367, - chocolate: 3530104575, - coral: 4286533887, - cornflowerblue: 1687547391, - cornsilk: 4294499583, - crimson: 3692313855, - cyan: 16777215, - darkblue: 35839, - darkcyan: 9145343, - darkgoldenrod: 3095792639, - darkgray: 2846468607, - darkgreen: 6553855, - darkgrey: 2846468607, - darkkhaki: 3182914559, - darkmagenta: 2332068863, - darkolivegreen: 1433087999, - darkorange: 4287365375, - darkorchid: 2570243327, - darkred: 2332033279, - darksalmon: 3918953215, - darkseagreen: 2411499519, - darkslateblue: 1211993087, - darkslategray: 793726975, - darkslategrey: 793726975, - darkturquoise: 13554175, - darkviolet: 2483082239, - deeppink: 4279538687, - deepskyblue: 12582911, - dimgray: 1768516095, - dimgrey: 1768516095, - dodgerblue: 512819199, - firebrick: 2988581631, - floralwhite: 4294635775, - forestgreen: 579543807, - fuchsia: 4278255615, - gainsboro: 3705462015, - ghostwhite: 4177068031, - gold: 4292280575, - goldenrod: 3668254975, - gray: 2155905279, - green: 8388863, - greenyellow: 2919182335, - grey: 2155905279, - honeydew: 4043305215, - hotpink: 4285117695, - indianred: 3445382399, - indigo: 1258324735, - ivory: 4294963455, - khaki: 4041641215, - lavender: 3873897215, - lavenderblush: 4293981695, - lawngreen: 2096890111, - lemonchiffon: 4294626815, - lightblue: 2916673279, - lightcoral: 4034953471, - lightcyan: 3774873599, - lightgoldenrodyellow: 4210742015, - lightgray: 3553874943, - lightgreen: 2431553791, - lightgrey: 3553874943, - lightpink: 4290167295, - lightsalmon: 4288707327, - lightseagreen: 548580095, - lightskyblue: 2278488831, - lightslategray: 2005441023, - lightslategrey: 2005441023, - lightsteelblue: 2965692159, - lightyellow: 4294959359, - lime: 16711935, - limegreen: 852308735, - linen: 4210091775, - magenta: 4278255615, - maroon: 2147483903, - mediumaquamarine: 1724754687, - mediumblue: 52735, - mediumorchid: 3126187007, - mediumpurple: 2473647103, - mediumseagreen: 1018393087, - mediumslateblue: 2070474495, - mediumspringgreen: 16423679, - mediumturquoise: 1221709055, - mediumvioletred: 3340076543, - midnightblue: 421097727, - mintcream: 4127193855, - mistyrose: 4293190143, - moccasin: 4293178879, - navajowhite: 4292783615, - navy: 33023, - oldlace: 4260751103, - olive: 2155872511, - olivedrab: 1804477439, - orange: 4289003775, - orangered: 4282712319, - orchid: 3664828159, - palegoldenrod: 4008225535, - palegreen: 2566625535, - paleturquoise: 2951671551, - palevioletred: 3681588223, - papayawhip: 4293907967, - peachpuff: 4292524543, - peru: 3448061951, - pink: 4290825215, - plum: 3718307327, - powderblue: 2967529215, - purple: 2147516671, - rebeccapurple: 1714657791, - red: 4278190335, - rosybrown: 3163525119, - royalblue: 1097458175, - saddlebrown: 2336560127, - salmon: 4202722047, - sandybrown: 4104413439, - seagreen: 780883967, - seashell: 4294307583, - sienna: 2689740287, - silver: 3233857791, - skyblue: 2278484991, - slateblue: 1784335871, - slategray: 1887473919, - slategrey: 1887473919, - snow: 4294638335, - springgreen: 16744447, - steelblue: 1182971135, - tan: 3535047935, - teal: 8421631, - thistle: 3636451583, - tomato: 4284696575, - turquoise: 1088475391, - violet: 4001558271, - wheat: 4125012991, - white: 4294967295, - whitesmoke: 4126537215, - yellow: 4294902015, - yellowgreen: 2597139199 +/** + * WordPress dependencies + */ + +const external = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" +})); +/* harmony default export */ var library_external = (external); + +;// CONCATENATED MODULE: external ["wp","blob"] +var external_wp_blob_namespaceObject = window["wp"]["blob"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/utils.js + +/** + * WordPress dependencies + */ + +const mediaTypeTag = { + image: 'img', + video: 'video', + audio: 'audio' }; -// src/colorMatchers.ts -var NUMBER = "[-+]?\\d*\\.?\\d+"; -var PERCENTAGE = NUMBER + "%"; -function call(...parts) { - return "\\(\\s*(" + parts.join(")\\s*,\\s*(") + ")\\s*\\)"; -} -var rgb = new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER)); -var rgba = new RegExp("rgba" + call(NUMBER, NUMBER, NUMBER, NUMBER)); -var hsl = new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE)); -var hsla = new RegExp( - "hsla" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) -); -var hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; -var hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; -var hex6 = /^#([0-9a-fA-F]{6})$/; -var hex8 = /^#([0-9a-fA-F]{8})$/; +/** @typedef {import('./hooks').InserterMediaItem} InserterMediaItem */ -// src/normalizeColor.ts -function normalizeColor(color) { - let match; - if (typeof color === "number") { - return color >>> 0 === color && color >= 0 && color <= 4294967295 ? color : null; - } - if (match = hex6.exec(color)) - return parseInt(match[1] + "ff", 16) >>> 0; - if (colors && colors[color] !== void 0) { - return colors[color]; - } - if (match = rgb.exec(color)) { - return (parse255(match[1]) << 24 | // r - parse255(match[2]) << 16 | // g - parse255(match[3]) << 8 | // b - 255) >>> // a - 0; - } - if (match = rgba.exec(color)) { - return (parse255(match[1]) << 24 | // r - parse255(match[2]) << 16 | // g - parse255(match[3]) << 8 | // b - parse1(match[4])) >>> // a - 0; - } - if (match = hex3.exec(color)) { - return parseInt( - match[1] + match[1] + // r - match[2] + match[2] + // g - match[3] + match[3] + // b - "ff", - // a - 16 - ) >>> 0; - } - if (match = hex8.exec(color)) - return parseInt(match[1], 16) >>> 0; - if (match = hex4.exec(color)) { - return parseInt( - match[1] + match[1] + // r - match[2] + match[2] + // g - match[3] + match[3] + // b - match[4] + match[4], - // a - 16 - ) >>> 0; - } - if (match = hsl.exec(color)) { - return (hslToRgb( - parse360(match[1]), - // h - parsePercentage(match[2]), - // s - parsePercentage(match[3]) - // l - ) | 255) >>> // a - 0; - } - if (match = hsla.exec(color)) { - return (hslToRgb( - parse360(match[1]), - // h - parsePercentage(match[2]), - // s - parsePercentage(match[3]) - // l - ) | parse1(match[4])) >>> // a - 0; +/** + * Creates a block and a preview element from a media object. + * + * @param {InserterMediaItem} media The media object to create the block from. + * @param {('image'|'audio'|'video')} mediaType The media type to create the block for. + * @return {[WPBlock, JSX.Element]} An array containing the block and the preview element. + */ +function getBlockAndPreviewFromMedia(media, mediaType) { + // Add the common attributes between the different media types. + const attributes = { + id: media.id || undefined, + caption: media.caption || undefined + }; + const mediaSrc = media.url; + const alt = media.alt || undefined; + if (mediaType === 'image') { + attributes.url = mediaSrc; + attributes.alt = alt; + } else if (['video', 'audio'].includes(mediaType)) { + attributes.src = mediaSrc; } - return null; -} -function hue2rgb(p, q, t) { - if (t < 0) - t += 1; - if (t > 1) - t -= 1; - if (t < 1 / 6) - return p + (q - p) * 6 * t; - if (t < 1 / 2) - return q; - if (t < 2 / 3) - return p + (q - p) * (2 / 3 - t) * 6; - return p; + const PreviewTag = mediaTypeTag[mediaType]; + const preview = (0,external_wp_element_namespaceObject.createElement)(PreviewTag, { + src: media.previewUrl || mediaSrc, + alt: alt, + controls: mediaType === 'audio' ? true : undefined, + inert: "true", + onError: ({ + currentTarget + }) => { + // Fall back to the media source if the preview cannot be loaded. + if (currentTarget.src === media.previewUrl) { + currentTarget.src = mediaSrc; + } + } + }); + return [(0,external_wp_blocks_namespaceObject.createBlock)(`core/${mediaType}`, attributes), preview]; } -function hslToRgb(h, s, l) { - const q = l < 0.5 ? l * (1 + s) : l + s - l * s; - const p = 2 * l - q; - const r = hue2rgb(p, q, h + 1 / 3); - const g = hue2rgb(p, q, h); - const b = hue2rgb(p, q, h - 1 / 3); - return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8; + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-preview.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + + + + + +/** + * Internal dependencies + */ + + + +const ALLOWED_MEDIA_TYPES = ['image']; +const MAXIMUM_TITLE_LENGTH = 25; +const MEDIA_OPTIONS_POPOVER_PROPS = { + position: 'bottom left', + className: 'block-editor-inserter__media-list__item-preview-options__popover' +}; +function MediaPreviewOptions({ + category, + media +}) { + if (!category.getReportUrl) { + return null; + } + const reportUrl = category.getReportUrl(media); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + className: "block-editor-inserter__media-list__item-preview-options", + label: (0,external_wp_i18n_namespaceObject.__)('Options'), + popoverProps: MEDIA_OPTIONS_POPOVER_PROPS, + icon: more_vertical + }, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => window.open(reportUrl, '_blank').focus(), + icon: library_external + }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: The media type to report e.g: "image", "video", "audio" */ + (0,external_wp_i18n_namespaceObject.__)('Report %s'), category.mediaType)))); } -function parse255(str) { - const int = parseInt(str, 10); - if (int < 0) - return 0; - if (int > 255) - return 255; - return int; +function InsertExternalImageModal({ + onClose, + onSubmit +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: (0,external_wp_i18n_namespaceObject.__)('Insert external image'), + onRequestClose: onClose, + className: "block-editor-inserter-media-tab-media-preview-inserter-external-image-modal" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 3 + }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.')), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + className: "block-editor-block-lock-modal__actions", + justify: "flex-end", + expanded: false + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: onClose + }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "primary", + onClick: onSubmit + }, (0,external_wp_i18n_namespaceObject.__)('Insert'))))); } -function parse360(str) { - const int = parseFloat(str); - return (int % 360 + 360) % 360 / 360; +function MediaPreview({ + media, + onClick, + composite, + category +}) { + const [showExternalUploadModal, setShowExternalUploadModal] = (0,external_wp_element_namespaceObject.useState)(false); + const [isHovered, setIsHovered] = (0,external_wp_element_namespaceObject.useState)(false); + const [isInserting, setIsInserting] = (0,external_wp_element_namespaceObject.useState)(false); + const [block, preview] = (0,external_wp_element_namespaceObject.useMemo)(() => getBlockAndPreviewFromMedia(media, category.mediaType), [media, category.mediaType]); + const { + createErrorNotice, + createSuccessNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().mediaUpload, []); + const onMediaInsert = (0,external_wp_element_namespaceObject.useCallback)(previewBlock => { + // Prevent multiple uploads when we're in the process of inserting. + if (isInserting) { + return; + } + const clonedBlock = (0,external_wp_blocks_namespaceObject.cloneBlock)(previewBlock); + const { + id, + url, + caption + } = clonedBlock.attributes; + // Media item already exists in library, so just insert it. + if (!!id) { + onClick(clonedBlock); + return; + } + setIsInserting(true); + // Media item does not exist in library, so try to upload it. + // Fist fetch the image data. This may fail if the image host + // doesn't allow CORS with the domain. + // If this happens, we insert the image block using the external + // URL and let the user know about the possible implications. + window.fetch(url).then(response => response.blob()).then(blob => { + mediaUpload({ + filesList: [blob], + additionalData: { + caption + }, + onFileChange([img]) { + if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) { + return; + } + onClick({ + ...clonedBlock, + attributes: { + ...clonedBlock.attributes, + id: img.id, + url: img.url + } + }); + createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded and inserted.'), { + type: 'snackbar' + }); + setIsInserting(false); + }, + allowedTypes: ALLOWED_MEDIA_TYPES, + onError(message) { + createErrorNotice(message, { + type: 'snackbar' + }); + setIsInserting(false); + } + }); + }).catch(() => { + setShowExternalUploadModal(true); + setIsInserting(false); + }); + }, [isInserting, onClick, mediaUpload, createErrorNotice, createSuccessNotice]); + const title = media.title?.rendered || media.title; + let truncatedTitle; + if (title.length > MAXIMUM_TITLE_LENGTH) { + const omission = '...'; + truncatedTitle = title.slice(0, MAXIMUM_TITLE_LENGTH - omission.length) + omission; + } + const onMouseEnter = (0,external_wp_element_namespaceObject.useCallback)(() => setIsHovered(true), []); + const onMouseLeave = (0,external_wp_element_namespaceObject.useCallback)(() => setIsHovered(false), []); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(inserter_draggable_blocks, { + isEnabled: true, + blocks: [block] + }, ({ + draggable, + onDragStart, + onDragEnd + }) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-inserter__media-list__list-item', { + 'is-hovered': isHovered + }), + draggable: draggable, + onDragStart: onDragStart, + onDragEnd: onDragEnd + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: truncatedTitle || title + }, (0,external_wp_element_namespaceObject.createElement)("div", { + onMouseEnter: onMouseEnter, + onMouseLeave: onMouseLeave + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + role: "option", + as: "div", + ...composite, + className: "block-editor-inserter__media-list__item", + onClick: () => onMediaInsert(block), + "aria-label": title + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__media-list__item-preview" + }, preview, isInserting && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__media-list__item-preview-spinner" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)))), !isInserting && (0,external_wp_element_namespaceObject.createElement)(MediaPreviewOptions, { + category: category, + media: media + }))))), showExternalUploadModal && (0,external_wp_element_namespaceObject.createElement)(InsertExternalImageModal, { + onClose: () => setShowExternalUploadModal(false), + onSubmit: () => { + onClick((0,external_wp_blocks_namespaceObject.cloneBlock)(block)); + createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image inserted.'), { + type: 'snackbar' + }); + setShowExternalUploadModal(false); + } + })); } -function parse1(str) { - const num = parseFloat(str); - if (num < 0) - return 0; - if (num > 1) - return 255; - return Math.round(num * 255); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-list.js + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + +function MediaList({ + mediaList, + category, + onClick, + label = (0,external_wp_i18n_namespaceObject.__)('Media List') +}) { + const composite = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableComposite, { + ...composite, + role: "listbox", + className: "block-editor-inserter__media-list", + "aria-label": label + }, mediaList.map((media, index) => (0,external_wp_element_namespaceObject.createElement)(MediaPreview, { + key: media.id || media.sourceId || index, + media: media, + category: category, + onClick: onClick, + composite: composite + }))); } -function parsePercentage(str) { - const int = parseFloat(str); - if (int < 0) - return 0; - if (int > 100) - return 1; - return int / 100; +/* harmony default export */ var media_list = (MediaList); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-debounced-input.js +/** + * WordPress dependencies + */ + + +function useDebouncedInput(defaultValue = '') { + const [input, setInput] = (0,external_wp_element_namespaceObject.useState)(defaultValue); + const [debouncedInput, setDebouncedState] = (0,external_wp_element_namespaceObject.useState)(defaultValue); + const setDebouncedInput = (0,external_wp_compose_namespaceObject.useDebounce)(setDebouncedState, 250); + (0,external_wp_element_namespaceObject.useEffect)(() => { + setDebouncedInput(input); + }, [input]); + return [input, setInput, debouncedInput]; } -// src/colorToRgba.ts -function colorToRgba(input) { - let int32Color = normalizeColor(input); - if (int32Color === null) - return input; - int32Color = int32Color || 0; - const r = (int32Color & 4278190080) >>> 24; - const g = (int32Color & 16711680) >>> 16; - const b = (int32Color & 65280) >>> 8; - const a = (int32Color & 255) / 255; - return `rgba(${r}, ${g}, ${b}, ${a})`; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/no-results.js + +/** + * WordPress dependencies + */ + + +function InserterNoResults() { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__no-results" + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + className: "block-editor-inserter__no-results-icon", + icon: block_default + }), (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('No results found.'))); } +/* harmony default export */ var no_results = (InserterNoResults); -// src/createInterpolator.ts -var createInterpolator = (range, output, extrapolate) => { - if (is.fun(range)) { - return range; - } - if (is.arr(range)) { - return createInterpolator({ - range, - output, - extrapolate +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-panel.js + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + + +const INITIAL_MEDIA_ITEMS_PER_PAGE = 10; +function MediaCategoryDialog({ + rootClientId, + onInsert, + category +}) { + const container = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useEffect)(() => { + const timeout = setTimeout(() => { + const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); + firstTabbable?.focus(); }); - } - if (is.str(range.output[0])) { - return createStringInterpolator(range); - } - const config = range; - const outputRange = config.output; - const inputRange = config.range || [0, 1]; - const extrapolateLeft = config.extrapolateLeft || config.extrapolate || "extend"; - const extrapolateRight = config.extrapolateRight || config.extrapolate || "extend"; - const easing = config.easing || ((t) => t); - return (input) => { - const range2 = findRange(input, inputRange); - return interpolate( - input, - inputRange[range2], - inputRange[range2 + 1], - outputRange[range2], - outputRange[range2 + 1], - easing, - extrapolateLeft, - extrapolateRight, - config.map - ); - }; -}; -function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) { - let result = map ? map(input) : input; - if (result < inputMin) { - if (extrapolateLeft === "identity") - return result; - else if (extrapolateLeft === "clamp") - result = inputMin; - } - if (result > inputMax) { - if (extrapolateRight === "identity") - return result; - else if (extrapolateRight === "clamp") - result = inputMax; - } - if (outputMin === outputMax) - return outputMin; - if (inputMin === inputMax) - return input <= inputMin ? outputMin : outputMax; - if (inputMin === -Infinity) - result = -result; - else if (inputMax === Infinity) - result = result - inputMin; - else - result = (result - inputMin) / (inputMax - inputMin); - result = easing(result); - if (outputMin === -Infinity) - result = -result; - else if (outputMax === Infinity) - result = result + outputMin; - else - result = result * (outputMax - outputMin) + outputMin; - return result; + return () => clearTimeout(timeout); + }, [category]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: container, + className: "block-editor-inserter__media-dialog" + }, (0,external_wp_element_namespaceObject.createElement)(MediaCategoryPanel, { + rootClientId: rootClientId, + onInsert: onInsert, + category: category + })); } -function findRange(input, inputRange) { - for (var i = 1; i < inputRange.length - 1; ++i) - if (inputRange[i] >= input) - break; - return i - 1; +function MediaCategoryPanel({ + rootClientId, + onInsert, + category +}) { + const [search, setSearch, debouncedSearch] = useDebouncedInput(); + const { + mediaList, + isLoading + } = useMediaResults(category, { + per_page: !!debouncedSearch ? 20 : INITIAL_MEDIA_ITEMS_PER_PAGE, + search: debouncedSearch + }); + const baseCssClass = 'block-editor-inserter__media-panel'; + const searchLabel = category.labels.search_items || (0,external_wp_i18n_namespaceObject.__)('Search'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: baseCssClass + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SearchControl, { + className: `${baseCssClass}-search`, + onChange: setSearch, + value: search, + label: searchLabel, + placeholder: searchLabel + }), isLoading && (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseCssClass}-spinner` + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), !isLoading && !mediaList?.length && (0,external_wp_element_namespaceObject.createElement)(no_results, null), !isLoading && !!mediaList?.length && (0,external_wp_element_namespaceObject.createElement)(media_list, { + rootClientId: rootClientId, + onClick: onInsert, + mediaList: mediaList, + category: category + })); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/check.js +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + +function MediaUploadCheck({ + fallback = null, + children +}) { + const hasUploadPermissions = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return !!getSettings().mediaUpload; + }, []); + return hasUploadPermissions ? children : fallback; +} + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md + */ +/* harmony default export */ var check = (MediaUploadCheck); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/index.js +/** + * WordPress dependencies + */ + + +/** + * This is a placeholder for the media upload component necessary to make it possible to provide + * an integration with the core blocks that handle media files. By default it renders nothing but + * it provides a way to have it overridden with the `editor.MediaUpload` filter. + * + * @return {WPComponent} The component to be rendered. + */ +const MediaUpload = () => null; + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md + */ +/* harmony default export */ var media_upload = ((0,external_wp_components_namespaceObject.withFilters)('editor.MediaUpload')(MediaUpload)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-tab.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + + +/** + * Internal dependencies + */ + + + + + + +const media_tab_ALLOWED_MEDIA_TYPES = ['image', 'video', 'audio']; +function MediaTab({ + rootClientId, + selectedCategory, + onSelectCategory, + onInsert +}) { + const mediaCategories = useMediaCategories(rootClientId); + const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); + const baseCssClass = 'block-editor-inserter__media-tabs'; + const onSelectMedia = (0,external_wp_element_namespaceObject.useCallback)(media => { + if (!media?.url) { + return; + } + const [block] = getBlockAndPreviewFromMedia(media, media.type); + onInsert(block); + }, [onInsert]); + const mobileMediaCategories = (0,external_wp_element_namespaceObject.useMemo)(() => mediaCategories.map(mediaCategory => ({ + ...mediaCategory, + label: mediaCategory.labels.name + })), [mediaCategories]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, !isMobile && (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseCssClass}-container` + }, (0,external_wp_element_namespaceObject.createElement)("nav", { + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Media categories') + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { + role: "list", + className: baseCssClass + }, mediaCategories.map(mediaCategory => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItem, { + role: "listitem", + key: mediaCategory.name, + onClick: () => onSelectCategory(mediaCategory), + className: classnames_default()(`${baseCssClass}__media-category`, { + 'is-selected': selectedCategory === mediaCategory + }), + "aria-label": mediaCategory.labels.name, + "aria-current": mediaCategory === selectedCategory ? 'true' : undefined + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexBlock, null, mediaCategory.labels.name), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right + })))), (0,external_wp_element_namespaceObject.createElement)("div", { + role: "listitem" + }, (0,external_wp_element_namespaceObject.createElement)(check, null, (0,external_wp_element_namespaceObject.createElement)(media_upload, { + multiple: false, + onSelect: onSelectMedia, + allowedTypes: media_tab_ALLOWED_MEDIA_TYPES, + render: ({ + open + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + onClick: event => { + // Safari doesn't emit a focus event on button elements when + // clicked and we need to manually focus the button here. + // The reason is that core's Media Library modal explicitly triggers a + // focus event and therefore a `blur` event is triggered on a different + // element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget` + // attribute making the Inserter dialog to close. + event.target.focus(); + open(); + }, + className: "block-editor-inserter__media-library-button", + variant: "secondary", + "data-unstable-ignore-focus-outside-for-relatedtarget": ".media-modal" + }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library')) + })))))), isMobile && (0,external_wp_element_namespaceObject.createElement)(MobileTabNavigation, { + categories: mobileMediaCategories + }, category => (0,external_wp_element_namespaceObject.createElement)(MediaCategoryPanel, { + onInsert: onInsert, + rootClientId: rootClientId, + category: category + }))); } +/* harmony default export */ var media_tab = (MediaTab); -// src/easings.ts -var steps = (steps2, direction = "end") => (progress2) => { - progress2 = direction === "end" ? Math.min(progress2, 0.999) : Math.max(progress2, 1e-3); - const expanded = progress2 * steps2; - const rounded = direction === "end" ? Math.floor(expanded) : Math.ceil(expanded); - return clamp(0, 1, rounded / steps2); -}; -var c1 = 1.70158; -var c2 = c1 * 1.525; -var c3 = c1 + 1; -var c4 = 2 * Math.PI / 3; -var c5 = 2 * Math.PI / 4.5; -var bounceOut = (x) => { - const n1 = 7.5625; - const d1 = 2.75; - if (x < 1 / d1) { - return n1 * x * x; - } else if (x < 2 / d1) { - return n1 * (x -= 1.5 / d1) * x + 0.75; - } else if (x < 2.5 / d1) { - return n1 * (x -= 2.25 / d1) * x + 0.9375; - } else { - return n1 * (x -= 2.625 / d1) * x + 0.984375; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-menu-extension/index.js +/** + * WordPress dependencies + */ + +const { + Fill: __unstableInserterMenuExtension, + Slot +} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableInserterMenuExtension'); +__unstableInserterMenuExtension.Slot = Slot; +/* harmony default export */ var inserter_menu_extension = (__unstableInserterMenuExtension); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/order-inserter-block-items.js +/** @typedef {import('../store/selectors').WPEditorInserterItem} WPEditorInserterItem */ + +/** + * Helper function to order inserter block items according to a provided array of prioritized blocks. + * + * @param {WPEditorInserterItem[]} items The array of editor inserter block items to be sorted. + * @param {string[]} priority The array of block names to be prioritized. + * @return {WPEditorInserterItem[]} The sorted array of editor inserter block items. + */ +const orderInserterBlockItems = (items, priority) => { + if (!priority) { + return items; } -}; -var easings = { - linear: (x) => x, - easeInQuad: (x) => x * x, - easeOutQuad: (x) => 1 - (1 - x) * (1 - x), - easeInOutQuad: (x) => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2, - easeInCubic: (x) => x * x * x, - easeOutCubic: (x) => 1 - Math.pow(1 - x, 3), - easeInOutCubic: (x) => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2, - easeInQuart: (x) => x * x * x * x, - easeOutQuart: (x) => 1 - Math.pow(1 - x, 4), - easeInOutQuart: (x) => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2, - easeInQuint: (x) => x * x * x * x * x, - easeOutQuint: (x) => 1 - Math.pow(1 - x, 5), - easeInOutQuint: (x) => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2, - easeInSine: (x) => 1 - Math.cos(x * Math.PI / 2), - easeOutSine: (x) => Math.sin(x * Math.PI / 2), - easeInOutSine: (x) => -(Math.cos(Math.PI * x) - 1) / 2, - easeInExpo: (x) => x === 0 ? 0 : Math.pow(2, 10 * x - 10), - easeOutExpo: (x) => x === 1 ? 1 : 1 - Math.pow(2, -10 * x), - easeInOutExpo: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2, - easeInCirc: (x) => 1 - Math.sqrt(1 - Math.pow(x, 2)), - easeOutCirc: (x) => Math.sqrt(1 - Math.pow(x - 1, 2)), - easeInOutCirc: (x) => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2, - easeInBack: (x) => c3 * x * x * x - c1 * x * x, - easeOutBack: (x) => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2), - easeInOutBack: (x) => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2, - easeInElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4), - easeOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1, - easeInOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1, - easeInBounce: (x) => 1 - bounceOut(1 - x), - easeOutBounce: bounceOut, - easeInOutBounce: (x) => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2, - steps + items.sort(({ + id: aName + }, { + id: bName + }) => { + // Sort block items according to `priority`. + let aIndex = priority.indexOf(aName); + let bIndex = priority.indexOf(bName); + // All other block items should come after that. + if (aIndex < 0) aIndex = priority.length; + if (bIndex < 0) bIndex = priority.length; + return aIndex - bIndex; + }); + return items; }; -// src/fluids.ts -var $get = Symbol.for("FluidValue.get"); -var $observers = Symbol.for("FluidValue.observers"); -var hasFluidValue = (arg) => Boolean(arg && arg[$get]); -var getFluidValue = (arg) => arg && arg[$get] ? arg[$get]() : arg; -var getFluidObservers = (target) => target[$observers] || null; -function callFluidObserver(observer2, event) { - if (observer2.eventObserved) { - observer2.eventObserved(event); - } else { - observer2(event); - } -} -function callFluidObservers(target, event) { - const observers = target[$observers]; - if (observers) { - observers.forEach((observer2) => { - callFluidObserver(observer2, event); - }); - } -} -var FluidValue = class { - constructor(get) { - if (!get && !(get = this.get)) { - throw Error("Unknown getter"); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-results.js + +/** + * WordPress dependencies + */ + + + + + + + +/** + * Internal dependencies + */ + + + + + + + + + + + + + +const search_results_INITIAL_INSERTER_RESULTS = 9; +/** + * Shared reference to an empty array for cases where it is important to avoid + * returning a new array reference on every invocation and rerendering the component. + * + * @type {Array} + */ +const search_results_EMPTY_ARRAY = []; +function InserterSearchResults({ + filterValue, + onSelect, + onHover, + onHoverPattern, + rootClientId, + clientId, + isAppender, + __experimentalInsertionIndex, + maxBlockPatterns, + maxBlockTypes, + showBlockDirectory = false, + isDraggable = true, + shouldFocusBlock = true, + prioritizePatterns, + selectBlockOnInsert +}) { + const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500); + const { + prioritizedBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const blockListSettings = select(store).getBlockListSettings(rootClientId); + return { + prioritizedBlocks: blockListSettings?.prioritizedInserterBlocks || search_results_EMPTY_ARRAY + }; + }, [rootClientId]); + const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ + onSelect, + rootClientId, + clientId, + isAppender, + insertionIndex: __experimentalInsertionIndex, + shouldFocusBlock, + selectBlockOnInsert + }); + const [blockTypes, blockTypeCategories, blockTypeCollections, onSelectBlockType] = use_block_types_state(destinationRootClientId, onInsertBlocks); + const [patterns,, onClickPattern] = use_patterns_state(onInsertBlocks, destinationRootClientId); + const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (maxBlockPatterns === 0) { + return []; } - setFluidGetter(this, get); + const results = searchItems(patterns, filterValue); + return maxBlockPatterns !== undefined ? results.slice(0, maxBlockPatterns) : results; + }, [filterValue, patterns, maxBlockPatterns]); + let maxBlockTypesToShow = maxBlockTypes; + if (prioritizePatterns && filteredBlockPatterns.length > 2) { + maxBlockTypesToShow = 0; } -}; -$get, $observers; -var setFluidGetter = (target, get) => setHidden(target, $get, get); -function addFluidObserver(target, observer2) { - if (target[$get]) { - let observers = target[$observers]; - if (!observers) { - setHidden(target, $observers, observers = /* @__PURE__ */ new Set()); + const filteredBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (maxBlockTypesToShow === 0) { + return []; } - if (!observers.has(observer2)) { - observers.add(observer2); - if (target.observerAdded) { - target.observerAdded(observers.size, observer2); - } + const nonPatternBlockTypes = blockTypes.filter(blockType => blockType.name !== 'core/block'); + let orderedItems = orderBy(nonPatternBlockTypes, 'frecency', 'desc'); + if (!filterValue && prioritizedBlocks.length) { + orderedItems = orderInserterBlockItems(orderedItems, prioritizedBlocks); } - } - return observer2; + const results = searchBlockItems(orderedItems, blockTypeCategories, blockTypeCollections, filterValue); + return maxBlockTypesToShow !== undefined ? results.slice(0, maxBlockTypesToShow) : results; + }, [filterValue, blockTypes, blockTypeCategories, blockTypeCollections, maxBlockTypesToShow, prioritizedBlocks]); + + // Announce search results on change. + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!filterValue) { + return; + } + const count = filteredBlockTypes.length + filteredBlockPatterns.length; + const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of results. */ + (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', count), count); + debouncedSpeak(resultsFoundMessage); + }, [filterValue, debouncedSpeak, filteredBlockTypes, filteredBlockPatterns]); + const currentShownBlockTypes = (0,external_wp_compose_namespaceObject.useAsyncList)(filteredBlockTypes, { + step: search_results_INITIAL_INSERTER_RESULTS + }); + const currentShownPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(currentShownBlockTypes.length === filteredBlockTypes.length ? filteredBlockPatterns : search_results_EMPTY_ARRAY); + const hasItems = filteredBlockTypes.length > 0 || filteredBlockPatterns.length > 0; + const blocksUI = !!filteredBlockTypes.length && (0,external_wp_element_namespaceObject.createElement)(panel, { + title: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Blocks')) + }, (0,external_wp_element_namespaceObject.createElement)(block_types_list, { + items: currentShownBlockTypes, + onSelect: onSelectBlockType, + onHover: onHover, + label: (0,external_wp_i18n_namespaceObject.__)('Blocks'), + isDraggable: isDraggable + })); + const patternsUI = !!filteredBlockPatterns.length && (0,external_wp_element_namespaceObject.createElement)(panel, { + title: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Block patterns')) + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__quick-inserter-patterns" + }, (0,external_wp_element_namespaceObject.createElement)(block_patterns_list, { + shownPatterns: currentShownPatterns, + blockPatterns: filteredBlockPatterns, + onClickPattern: onClickPattern, + onHover: onHoverPattern, + isDraggable: isDraggable + }))); + return (0,external_wp_element_namespaceObject.createElement)(inserter_listbox, null, !showBlockDirectory && !hasItems && (0,external_wp_element_namespaceObject.createElement)(no_results, null), prioritizePatterns ? patternsUI : blocksUI, !!filteredBlockTypes.length && !!filteredBlockPatterns.length && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__quick-inserter-separator" + }), prioritizePatterns ? blocksUI : patternsUI, showBlockDirectory && (0,external_wp_element_namespaceObject.createElement)(inserter_menu_extension.Slot, { + fillProps: { + onSelect: onSelectBlockType, + onHover, + filterValue, + hasItems, + rootClientId: destinationRootClientId + } + }, fills => { + if (fills.length) { + return fills; + } + if (!hasItems) { + return (0,external_wp_element_namespaceObject.createElement)(no_results, null); + } + return null; + })); } -function removeFluidObserver(target, observer2) { - const observers = target[$observers]; - if (observers && observers.has(observer2)) { - const count = observers.size - 1; - if (count) { - observers.delete(observer2); - } else { - target[$observers] = null; +/* harmony default export */ var search_results = (InserterSearchResults); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tabs.js + +/** + * WordPress dependencies + */ + + + +const blocksTab = { + name: 'blocks', + /* translators: Blocks tab title in the block inserter. */ + title: (0,external_wp_i18n_namespaceObject.__)('Blocks') +}; +const patternsTab = { + name: 'patterns', + /* translators: Theme and Directory Patterns tab title in the block inserter. */ + title: (0,external_wp_i18n_namespaceObject.__)('Patterns') +}; +const mediaTab = { + name: 'media', + /* translators: Media tab title in the block inserter. */ + title: (0,external_wp_i18n_namespaceObject.__)('Media') +}; +function InserterTabs({ + children, + showPatterns = false, + showMedia = false, + onSelect, + prioritizePatterns +}) { + const tabs = (0,external_wp_element_namespaceObject.useMemo)(() => { + const tempTabs = []; + if (prioritizePatterns && showPatterns) { + tempTabs.push(patternsTab); + } + tempTabs.push(blocksTab); + if (!prioritizePatterns && showPatterns) { + tempTabs.push(patternsTab); + } + if (showMedia) { + tempTabs.push(mediaTab); + } + return tempTabs; + }, [prioritizePatterns, showPatterns, showMedia]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TabPanel, { + className: "block-editor-inserter__tabs", + tabs: tabs, + onSelect: onSelect + }, children); +} +/* harmony default export */ var tabs = (InserterTabs); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/menu.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + + + + + + + + +function InserterMenu({ + rootClientId, + clientId, + isAppender, + __experimentalInsertionIndex, + onSelect, + showInserterHelpPanel, + showMostUsedBlocks, + __experimentalFilterValue = '', + shouldFocusBlock = true, + prioritizePatterns +}, ref) { + const [filterValue, setFilterValue, delayedFilterValue] = useDebouncedInput(__experimentalFilterValue); + const [hoveredItem, setHoveredItem] = (0,external_wp_element_namespaceObject.useState)(null); + const [selectedPatternCategory, setSelectedPatternCategory] = (0,external_wp_element_namespaceObject.useState)(null); + const [patternFilter, setPatternFilter] = (0,external_wp_element_namespaceObject.useState)('all'); + const [selectedMediaCategory, setSelectedMediaCategory] = (0,external_wp_element_namespaceObject.useState)(null); + const [selectedTab, setSelectedTab] = (0,external_wp_element_namespaceObject.useState)(null); + const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = use_insertion_point({ + rootClientId, + clientId, + isAppender, + insertionIndex: __experimentalInsertionIndex, + shouldFocusBlock + }); + const { + showPatterns, + inserterItems + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __experimentalGetAllowedPatterns, + getInserterItems + } = select(store); + return { + showPatterns: !!__experimentalGetAllowedPatterns(destinationRootClientId).length, + inserterItems: getInserterItems(destinationRootClientId) + }; + }, [destinationRootClientId]); + const hasReusableBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => { + return inserterItems.some(({ + category + }) => category === 'reusable'); + }, [inserterItems]); + const mediaCategories = useMediaCategories(destinationRootClientId); + const showMedia = !!mediaCategories.length; + const onInsert = (0,external_wp_element_namespaceObject.useCallback)((blocks, meta, shouldForceFocusBlock) => { + onInsertBlocks(blocks, meta, shouldForceFocusBlock); + onSelect(); + }, [onInsertBlocks, onSelect]); + const onInsertPattern = (0,external_wp_element_namespaceObject.useCallback)((blocks, patternName) => { + onInsertBlocks(blocks, { + patternName + }); + onSelect(); + }, [onInsertBlocks, onSelect]); + const onHover = (0,external_wp_element_namespaceObject.useCallback)(item => { + onToggleInsertionPoint(!!item); + setHoveredItem(item); + }, [onToggleInsertionPoint, setHoveredItem]); + const onHoverPattern = (0,external_wp_element_namespaceObject.useCallback)(item => { + onToggleInsertionPoint(!!item); + }, [onToggleInsertionPoint]); + const onClickPatternCategory = (0,external_wp_element_namespaceObject.useCallback)((patternCategory, filter) => { + setSelectedPatternCategory(patternCategory); + setPatternFilter(filter); + }, [setSelectedPatternCategory]); + const blocksTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__block-list" + }, (0,external_wp_element_namespaceObject.createElement)(block_types_tab, { + rootClientId: destinationRootClientId, + onInsert: onInsert, + onHover: onHover, + showMostUsedBlocks: showMostUsedBlocks + })), showInserterHelpPanel && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__tips" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "h2" + }, (0,external_wp_i18n_namespaceObject.__)('A tip for using the block editor')), (0,external_wp_element_namespaceObject.createElement)(tips, null))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel]); + const patternsTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(block_patterns_tab, { + rootClientId: destinationRootClientId, + onInsert: onInsertPattern, + onSelectCategory: onClickPatternCategory, + selectedCategory: selectedPatternCategory + }), [destinationRootClientId, onInsertPattern, onClickPatternCategory, selectedPatternCategory]); + const mediaTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_element_namespaceObject.createElement)(media_tab, { + rootClientId: destinationRootClientId, + selectedCategory: selectedMediaCategory, + onSelectCategory: setSelectedMediaCategory, + onInsert: onInsert + }), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory]); + const getCurrentTab = (0,external_wp_element_namespaceObject.useCallback)(tab => { + if (tab.name === 'blocks') { + return blocksTab; + } else if (tab.name === 'patterns') { + return patternsTab; + } else if (tab.name === 'media') { + return mediaTab; + } + }, [blocksTab, patternsTab, mediaTab]); + const searchRef = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useImperativeHandle)(ref, () => ({ + focusSearch: () => { + searchRef.current.focus(); } - if (target.observerRemoved) { - target.observerRemoved(count, observer2); + })); + const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && selectedPatternCategory; + const showAsTabs = !delayedFilterValue && (showPatterns || hasReusableBlocks || showMedia); + const showMediaPanel = selectedTab === 'media' && !delayedFilterValue && selectedMediaCategory; + const handleSetSelectedTab = value => { + // If no longer on patterns tab remove the category setting. + if (value !== 'patterns') { + setSelectedPatternCategory(null); } - } + setSelectedTab(value); + }; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__menu" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-inserter__main-area', { + 'show-as-tabs': showAsTabs + }) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SearchControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-inserter__search", + onChange: value => { + if (hoveredItem) setHoveredItem(null); + setFilterValue(value); + }, + value: filterValue, + label: (0,external_wp_i18n_namespaceObject.__)('Search for blocks and patterns'), + placeholder: (0,external_wp_i18n_namespaceObject.__)('Search'), + ref: searchRef + }), !!delayedFilterValue && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__no-tab-container" + }, (0,external_wp_element_namespaceObject.createElement)(search_results, { + filterValue: delayedFilterValue, + onSelect: onSelect, + onHover: onHover, + onHoverPattern: onHoverPattern, + rootClientId: rootClientId, + clientId: clientId, + isAppender: isAppender, + __experimentalInsertionIndex: __experimentalInsertionIndex, + showBlockDirectory: true, + shouldFocusBlock: shouldFocusBlock + })), showAsTabs && (0,external_wp_element_namespaceObject.createElement)(tabs, { + showPatterns: showPatterns, + showReusableBlocks: hasReusableBlocks, + showMedia: showMedia, + prioritizePatterns: prioritizePatterns, + onSelect: handleSetSelectedTab + }, getCurrentTab), !delayedFilterValue && !showAsTabs && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__no-tab-container" + }, blocksTab)), showMediaPanel && (0,external_wp_element_namespaceObject.createElement)(MediaCategoryDialog, { + rootClientId: destinationRootClientId, + onInsert: onInsert, + category: selectedMediaCategory + }), showInserterHelpPanel && hoveredItem && (0,external_wp_element_namespaceObject.createElement)(preview_panel, { + item: hoveredItem + }), showPatternPanel && (0,external_wp_element_namespaceObject.createElement)(BlockPatternsCategoryDialog, { + rootClientId: destinationRootClientId, + onInsert: onInsertPattern, + onHover: onHoverPattern, + category: selectedPatternCategory, + patternFilter: patternFilter, + showTitlesAsTooltip: true + })); } -var setHidden = (target, key, value) => Object.defineProperty(target, key, { - value, - writable: true, - configurable: true -}); +/* harmony default export */ var menu = ((0,external_wp_element_namespaceObject.forwardRef)(InserterMenu)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/quick-inserter.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ -// src/regexs.ts -var numberRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; -var colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; -var unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, "i"); -var rgbaRegex = /rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi; -var cssVariableRegex = /var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/; -// src/variableToRgba.ts -var variableToRgba = (input) => { - const [token, fallback] = parseCSSVariable(input); - if (!token || isSSR()) { - return input; - } - const value = window.getComputedStyle(document.documentElement).getPropertyValue(token); - if (value) { - return value.trim(); - } else if (fallback && fallback.startsWith("--")) { - const value2 = window.getComputedStyle(document.documentElement).getPropertyValue(fallback); - if (value2) { - return value2; - } else { - return input; - } - } else if (fallback && cssVariableRegex.test(fallback)) { - return variableToRgba(fallback); - } else if (fallback) { - return fallback; - } - return input; -}; -var parseCSSVariable = (current) => { - const match = cssVariableRegex.exec(current); - if (!match) - return [,]; - const [, token, fallback] = match; - return [token, fallback]; -}; -// src/stringInterpolation.ts -var namedColorRegex; -var rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`; -var createStringInterpolator2 = (config) => { - if (!namedColorRegex) - namedColorRegex = colors ? ( - // match color names, ignore partial matches - new RegExp(`(${Object.keys(colors).join("|")})(?!\\w)`, "g") - ) : ( - // never match - /^\b$/ - ); - const output = config.output.map((value) => { - return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba); - }); - const keyframes = output.map((value) => value.match(numberRegex).map(Number)); - const outputRanges = keyframes[0].map( - (_, i) => keyframes.map((values) => { - if (!(i in values)) { - throw Error('The arity of each "output" value must be equal'); - } - return values[i]; - }) - ); - const interpolators = outputRanges.map( - (output2) => createInterpolator({ ...config, output: output2 }) - ); - return (input) => { - const missingUnit = !unitRegex.test(output[0]) && output.find((value) => unitRegex.test(value))?.replace(numberRegex, ""); - let i = 0; - return output[0].replace( - numberRegex, - () => `${interpolators[i++](input)}${missingUnit || ""}` - ).replace(rgbaRegex, rgbaRound); - }; -}; -// src/deprecations.ts -var react_spring_shared_modern_prefix = "react-spring: "; -var once = (fn) => { - const func = fn; - let called = false; - if (typeof func != "function") { - throw new TypeError(`${react_spring_shared_modern_prefix}once requires a function parameter`); - } - return (...args) => { - if (!called) { - func(...args); - called = true; - } - }; -}; -var warnInterpolate = once(console.warn); -function deprecateInterpolate() { - warnInterpolate( - `${react_spring_shared_modern_prefix}The "interpolate" function is deprecated in v9 (use "to" instead)` - ); -} -var warnDirectCall = once(console.warn); -function react_spring_shared_modern_deprecateDirectCall() { - warnDirectCall( - `${react_spring_shared_modern_prefix}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions` - ); -} -// src/isAnimatedString.ts -function isAnimatedString(value) { - return is.str(value) && (value[0] == "#" || /\d/.test(value) || // Do not identify a CSS variable as an AnimatedString if its SSR - !isSSR() && cssVariableRegex.test(value) || value in (colors || {})); -} +/** + * Internal dependencies + */ -// src/dom-events/resize/resizeElement.ts -var observer; -var resizeHandlers = /* @__PURE__ */ new WeakMap(); -var handleObservation = (entries) => entries.forEach(({ target, contentRect }) => { - return resizeHandlers.get(target)?.forEach((handler) => handler(contentRect)); -}); -function resizeElement(handler, target) { - if (!observer) { - if (typeof ResizeObserver !== "undefined") { - observer = new ResizeObserver(handleObservation); - } - } - let elementHandlers = resizeHandlers.get(target); - if (!elementHandlers) { - elementHandlers = /* @__PURE__ */ new Set(); - resizeHandlers.set(target, elementHandlers); - } - elementHandlers.add(handler); - if (observer) { - observer.observe(target); - } - return () => { - const elementHandlers2 = resizeHandlers.get(target); - if (!elementHandlers2) - return; - elementHandlers2.delete(handler); - if (!elementHandlers2.size && observer) { - observer.unobserve(target); + + + + +const SEARCH_THRESHOLD = 6; +const SHOWN_BLOCK_TYPES = 6; +const SHOWN_BLOCK_PATTERNS = 2; +const SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4; +function QuickInserter({ + onSelect, + rootClientId, + clientId, + isAppender, + prioritizePatterns, + selectBlockOnInsert +}) { + const [filterValue, setFilterValue] = (0,external_wp_element_namespaceObject.useState)(''); + const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ + onSelect, + rootClientId, + clientId, + isAppender, + selectBlockOnInsert + }); + const [blockTypes] = use_block_types_state(destinationRootClientId, onInsertBlocks); + const [patterns] = use_patterns_state(onInsertBlocks, destinationRootClientId); + const { + setInserterIsOpened, + insertionIndex + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings, + getBlockIndex, + getBlockCount + } = select(store); + const settings = getSettings(); + const index = getBlockIndex(clientId); + const blockCount = getBlockCount(); + return { + setInserterIsOpened: settings.__experimentalSetIsInserterOpened, + insertionIndex: index === -1 ? blockCount : index + }; + }, [clientId]); + const showPatterns = patterns.length && (!!filterValue || prioritizePatterns); + const showSearch = showPatterns && patterns.length > SEARCH_THRESHOLD || blockTypes.length > SEARCH_THRESHOLD; + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (setInserterIsOpened) { + setInserterIsOpened(false); } + }, [setInserterIsOpened]); + + // When clicking Browse All select the appropriate block so as + // the insertion point can work as expected. + const onBrowseAll = () => { + setInserterIsOpened({ + rootClientId, + insertionIndex, + filterValue + }); }; + let maxBlockPatterns = 0; + if (showPatterns) { + maxBlockPatterns = prioritizePatterns ? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION : SHOWN_BLOCK_PATTERNS; + } + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-inserter__quick-inserter', { + 'has-search': showSearch, + 'has-expand': setInserterIsOpened + }) + }, showSearch && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SearchControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-inserter__search", + value: filterValue, + onChange: value => { + setFilterValue(value); + }, + label: (0,external_wp_i18n_namespaceObject.__)('Search for blocks and patterns'), + placeholder: (0,external_wp_i18n_namespaceObject.__)('Search') + }), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inserter__quick-inserter-results" + }, (0,external_wp_element_namespaceObject.createElement)(search_results, { + filterValue: filterValue, + onSelect: onSelect, + rootClientId: rootClientId, + clientId: clientId, + isAppender: isAppender, + maxBlockPatterns: maxBlockPatterns, + maxBlockTypes: SHOWN_BLOCK_TYPES, + isDraggable: false, + prioritizePatterns: prioritizePatterns, + selectBlockOnInsert: selectBlockOnInsert + })), setInserterIsOpened && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-inserter__quick-inserter-expand", + onClick: onBrowseAll, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Browse all. This will open the main inserter panel in the editor toolbar.') + }, (0,external_wp_i18n_namespaceObject.__)('Browse all'))); } -// src/dom-events/resize/resizeWindow.ts -var listeners = /* @__PURE__ */ new Set(); -var cleanupWindowResizeHandler; -var createResizeHandler = () => { - const handleResize = () => { - listeners.forEach( - (callback) => callback({ - width: window.innerWidth, - height: window.innerHeight - }) - ); - }; - window.addEventListener("resize", handleResize); - return () => { - window.removeEventListener("resize", handleResize); - }; -}; -var resizeWindow = (callback) => { - listeners.add(callback); - if (!cleanupWindowResizeHandler) { - cleanupWindowResizeHandler = createResizeHandler(); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/index.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + + + + + +/** + * Internal dependencies + */ + + + +const defaultRenderToggle = ({ + onToggle, + disabled, + isOpen, + blockTitle, + hasSingleBlockType, + toggleProps = {}, + prioritizePatterns +}) => { + const { + as: Wrapper = external_wp_components_namespaceObject.Button, + label: labelProp, + onClick, + ...rest + } = toggleProps; + let label = labelProp; + if (!label && hasSingleBlockType) { + label = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: the name of the block when there is only one + (0,external_wp_i18n_namespaceObject._x)('Add %s', 'directly add the only allowed block'), blockTitle); + } else if (!label && prioritizePatterns) { + label = (0,external_wp_i18n_namespaceObject.__)('Add pattern'); + } else if (!label) { + label = (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'); } - return () => { - listeners.delete(callback); - if (!listeners.size && cleanupWindowResizeHandler) { - cleanupWindowResizeHandler(); - cleanupWindowResizeHandler = void 0; - } - }; -}; -// src/dom-events/resize/index.ts -var react_spring_shared_modern_onResize = (callback, { container = document.documentElement } = {}) => { - if (container === document.documentElement) { - return resizeWindow(callback); - } else { - return resizeElement(callback, container); + // Handle both onClick functions from the toggle and the parent component. + function handleClick(event) { + if (onToggle) { + onToggle(event); + } + if (onClick) { + onClick(event); + } } + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + icon: library_plus, + label: label, + tooltipPosition: "bottom", + onClick: handleClick, + className: "block-editor-inserter__toggle", + "aria-haspopup": !hasSingleBlockType ? 'true' : false, + "aria-expanded": !hasSingleBlockType ? isOpen : false, + disabled: disabled, + ...rest + }); }; +class PrivateInserter extends external_wp_element_namespaceObject.Component { + constructor() { + super(...arguments); + this.onToggle = this.onToggle.bind(this); + this.renderToggle = this.renderToggle.bind(this); + this.renderContent = this.renderContent.bind(this); + } + onToggle(isOpen) { + const { + onToggle + } = this.props; -// src/progress.ts -var progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min); - -// src/dom-events/scroll/ScrollHandler.ts -var SCROLL_KEYS = { - x: { - length: "Width", - position: "Left" - }, - y: { - length: "Height", - position: "Top" + // Surface toggle callback to parent component. + if (onToggle) { + onToggle(isOpen); + } } -}; -var ScrollHandler = class { - constructor(callback, container) { - this.createAxis = () => ({ - current: 0, - progress: 0, - scrollLength: 0 + + /** + * Render callback to display Dropdown toggle element. + * + * @param {Object} options + * @param {Function} options.onToggle Callback to invoke when toggle is + * pressed. + * @param {boolean} options.isOpen Whether dropdown is currently open. + * + * @return {WPElement} Dropdown toggle element. + */ + renderToggle({ + onToggle, + isOpen + }) { + const { + disabled, + blockTitle, + hasSingleBlockType, + directInsertBlock, + toggleProps, + hasItems, + renderToggle = defaultRenderToggle, + prioritizePatterns + } = this.props; + return renderToggle({ + onToggle, + isOpen, + disabled: disabled || !hasItems, + blockTitle, + hasSingleBlockType, + directInsertBlock, + toggleProps, + prioritizePatterns }); - this.updateAxis = (axisName) => { - const axis = this.info[axisName]; - const { length, position } = SCROLL_KEYS[axisName]; - axis.current = this.container[`scroll${position}`]; - axis.scrollLength = this.container["scroll" + length] - this.container["client" + length]; - axis.progress = progress(0, axis.scrollLength, axis.current); - }; - this.update = () => { - this.updateAxis("x"); - this.updateAxis("y"); - }; - this.sendEvent = () => { - this.callback(this.info); - }; - this.advance = () => { - this.update(); - this.sendEvent(); - }; - this.callback = callback; - this.container = container; - this.info = { - time: 0, - x: this.createAxis(), - y: this.createAxis() - }; } -}; -// src/dom-events/scroll/index.ts -var scrollListeners = /* @__PURE__ */ new WeakMap(); -var resizeListeners = /* @__PURE__ */ new WeakMap(); -var onScrollHandlers = /* @__PURE__ */ new WeakMap(); -var getTarget = (container) => container === document.documentElement ? window : container; -var react_spring_shared_modern_onScroll = (callback, { container = document.documentElement } = {}) => { - let containerHandlers = onScrollHandlers.get(container); - if (!containerHandlers) { - containerHandlers = /* @__PURE__ */ new Set(); - onScrollHandlers.set(container, containerHandlers); - } - const containerHandler = new ScrollHandler(callback, container); - containerHandlers.add(containerHandler); - if (!scrollListeners.has(container)) { - const listener = () => { - containerHandlers?.forEach((handler) => handler.advance()); - return true; - }; - scrollListeners.set(container, listener); - const target = getTarget(container); - window.addEventListener("resize", listener, { passive: true }); - if (container !== document.documentElement) { - resizeListeners.set(container, react_spring_shared_modern_onResize(listener, { container })); + /** + * Render callback to display Dropdown content element. + * + * @param {Object} options + * @param {Function} options.onClose Callback to invoke when dropdown is + * closed. + * + * @return {WPElement} Dropdown content element. + */ + renderContent({ + onClose + }) { + const { + rootClientId, + clientId, + isAppender, + showInserterHelpPanel, + // This prop is experimental to give some time for the quick inserter to mature + // Feel free to make them stable after a few releases. + __experimentalIsQuick: isQuick, + prioritizePatterns, + onSelectOrClose, + selectBlockOnInsert + } = this.props; + if (isQuick) { + return (0,external_wp_element_namespaceObject.createElement)(QuickInserter, { + onSelect: blocks => { + const firstBlock = Array.isArray(blocks) && blocks?.length ? blocks[0] : blocks; + if (onSelectOrClose && typeof onSelectOrClose === 'function') { + onSelectOrClose(firstBlock); + } + onClose(); + }, + rootClientId: rootClientId, + clientId: clientId, + isAppender: isAppender, + prioritizePatterns: prioritizePatterns, + selectBlockOnInsert: selectBlockOnInsert + }); } - target.addEventListener("scroll", listener, { passive: true }); + return (0,external_wp_element_namespaceObject.createElement)(menu, { + onSelect: () => { + onClose(); + }, + rootClientId: rootClientId, + clientId: clientId, + isAppender: isAppender, + showInserterHelpPanel: showInserterHelpPanel, + prioritizePatterns: prioritizePatterns + }); } - const animateScroll = scrollListeners.get(container); - raf(animateScroll); - return () => { - raf.cancel(animateScroll); - const containerHandlers2 = onScrollHandlers.get(container); - if (!containerHandlers2) - return; - containerHandlers2.delete(containerHandler); - if (containerHandlers2.size) - return; - const listener = scrollListeners.get(container); - scrollListeners.delete(container); - if (listener) { - getTarget(container).removeEventListener("scroll", listener); - window.removeEventListener("resize", listener); - resizeListeners.get(container)?.(); + render() { + const { + position, + hasSingleBlockType, + directInsertBlock, + insertOnlyAllowedBlock, + __experimentalIsQuick: isQuick, + onSelectOrClose + } = this.props; + if (hasSingleBlockType || directInsertBlock) { + return this.renderToggle({ + onToggle: insertOnlyAllowedBlock + }); } - }; -}; - -// src/hooks/useConstant.ts - -function react_spring_shared_modern_useConstant(init) { - const ref = useRef(null); - if (ref.current === null) { - ref.current = init(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + className: "block-editor-inserter", + contentClassName: classnames_default()('block-editor-inserter__popover', { + 'is-quick': isQuick + }), + popoverProps: { + position, + shift: true + }, + onToggle: this.onToggle, + expandOnMobile: true, + headerTitle: (0,external_wp_i18n_namespaceObject.__)('Add a block'), + renderToggle: this.renderToggle, + renderContent: this.renderContent, + onClose: onSelectOrClose + }); } - return ref.current; } +const ComposedPrivateInserter = (0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, { + clientId, + rootClientId, + shouldDirectInsert = true +}) => { + const { + getBlockRootClientId, + hasInserterItems, + getAllowedBlocks, + getDirectInsertBlock, + getSettings + } = select(store); + const { + getBlockVariations + } = select(external_wp_blocks_namespaceObject.store); + rootClientId = rootClientId || getBlockRootClientId(clientId) || undefined; + const allowedBlocks = getAllowedBlocks(rootClientId); + const directInsertBlock = shouldDirectInsert && getDirectInsertBlock(rootClientId); + const settings = getSettings(); + const hasSingleBlockType = allowedBlocks?.length === 1 && getBlockVariations(allowedBlocks[0].name, 'inserter')?.length === 0; + let allowedBlockType = false; + if (hasSingleBlockType) { + allowedBlockType = allowedBlocks[0]; + } + return { + hasItems: hasInserterItems(rootClientId), + hasSingleBlockType, + blockTitle: allowedBlockType ? allowedBlockType.title : '', + allowedBlockType, + directInsertBlock, + rootClientId, + prioritizePatterns: settings.__experimentalPreferPatternsOnRoot && !rootClientId + }; +}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, { + select +}) => { + return { + insertOnlyAllowedBlock() { + const { + rootClientId, + clientId, + isAppender, + hasSingleBlockType, + allowedBlockType, + directInsertBlock, + onSelectOrClose, + selectBlockOnInsert + } = ownProps; + if (!hasSingleBlockType && !directInsertBlock) { + return; + } + function getAdjacentBlockAttributes(attributesToCopy) { + const { + getBlock, + getPreviousBlockClientId + } = select(store); + if (!attributesToCopy || !clientId && !rootClientId) { + return {}; + } + const result = {}; + let adjacentAttributes = {}; -// src/hooks/useForceUpdate.ts - - -// src/hooks/useIsMounted.ts + // If there is no clientId, then attempt to get attributes + // from the last block within innerBlocks of the root block. + if (!clientId) { + const parentBlock = getBlock(rootClientId); + if (parentBlock?.innerBlocks?.length) { + const lastInnerBlock = parentBlock.innerBlocks[parentBlock.innerBlocks.length - 1]; + if (directInsertBlock && directInsertBlock?.name === lastInnerBlock.name) { + adjacentAttributes = lastInnerBlock.attributes; + } + } + } else { + // Otherwise, attempt to get attributes from the + // previous block relative to the current clientId. + const currentBlock = getBlock(clientId); + const previousBlock = getBlock(getPreviousBlockClientId(clientId)); + if (currentBlock?.name === previousBlock?.name) { + adjacentAttributes = previousBlock?.attributes || {}; + } + } + // Copy over only those attributes flagged to be copied. + attributesToCopy.forEach(attribute => { + if (adjacentAttributes.hasOwnProperty(attribute)) { + result[attribute] = adjacentAttributes[attribute]; + } + }); + return result; + } + function getInsertionIndex() { + const { + getBlockIndex, + getBlockSelectionEnd, + getBlockOrder, + getBlockRootClientId + } = select(store); -// src/hooks/useIsomorphicLayoutEffect.ts + // If the clientId is defined, we insert at the position of the block. + if (clientId) { + return getBlockIndex(clientId); + } -var react_spring_shared_modern_useIsomorphicLayoutEffect = isSSR() ? external_React_.useEffect : external_React_.useLayoutEffect; + // If there a selected block, we insert after the selected block. + const end = getBlockSelectionEnd(); + if (!isAppender && end && getBlockRootClientId(end) === rootClientId) { + return getBlockIndex(end) + 1; + } -// src/hooks/useIsMounted.ts -var useIsMounted = () => { - const isMounted = (0,external_React_.useRef)(false); - react_spring_shared_modern_useIsomorphicLayoutEffect(() => { - isMounted.current = true; - return () => { - isMounted.current = false; - }; - }, []); - return isMounted; -}; + // Otherwise, we insert at the end of the current rootClientId. + return getBlockOrder(rootClientId).length; + } + const { + insertBlock + } = dispatch(store); + let blockToInsert; -// src/hooks/useForceUpdate.ts -function react_spring_shared_modern_useForceUpdate() { - const update2 = (0,external_React_.useState)()[1]; - const isMounted = useIsMounted(); - return () => { - if (isMounted.current) { - update2(Math.random()); + // Attempt to augment the directInsertBlock with attributes from an adjacent block. + // This ensures styling from nearby blocks is preserved in the newly inserted block. + // See: https://github.com/WordPress/gutenberg/issues/37904 + if (directInsertBlock) { + const newAttributes = getAdjacentBlockAttributes(directInsertBlock.attributesToCopy); + blockToInsert = (0,external_wp_blocks_namespaceObject.createBlock)(directInsertBlock.name, { + ...(directInsertBlock.attributes || {}), + ...newAttributes + }); + } else { + blockToInsert = (0,external_wp_blocks_namespaceObject.createBlock)(allowedBlockType.name); + } + insertBlock(blockToInsert, getInsertionIndex(), rootClientId, selectBlockOnInsert); + if (onSelectOrClose) { + onSelectOrClose({ + clientId: blockToInsert?.clientId + }); + } + const message = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: the name of the block that has been added + (0,external_wp_i18n_namespaceObject.__)('%s block added'), allowedBlockType.title); + (0,external_wp_a11y_namespaceObject.speak)(message); } }; -} - -// src/hooks/useMemoOne.ts - -function useMemoOne(getResult, inputs) { - const [initial] = (0,external_React_.useState)( - () => ({ - inputs, - result: getResult() - }) - ); - const committed = (0,external_React_.useRef)(); - const prevCache = committed.current; - let cache = prevCache; - if (cache) { - const useCache = Boolean( - inputs && cache.inputs && areInputsEqual(inputs, cache.inputs) - ); - if (!useCache) { - cache = { - inputs, - result: getResult() - }; - } - } else { - cache = initial; - } - (0,external_React_.useEffect)(() => { - committed.current = cache; - if (prevCache == initial) { - initial.inputs = initial.result = void 0; - } - }, [cache]); - return cache.result; -} -function areInputsEqual(next, prev) { - if (next.length !== prev.length) { - return false; - } - for (let i = 0; i < next.length; i++) { - if (next[i] !== prev[i]) { - return false; - } - } - return true; -} - -// src/hooks/useOnce.ts - -var react_spring_shared_modern_useOnce = (effect) => (0,external_React_.useEffect)(effect, emptyDeps); -var emptyDeps = []; - -// src/hooks/usePrev.ts - -function react_spring_shared_modern_usePrev(value) { - const prevRef = useRef4(); - useEffect4(() => { - prevRef.current = value; +}), +// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as +// a way to detect the global Inserter. +(0,external_wp_compose_namespaceObject.ifCondition)(({ + hasItems, + isAppender, + rootClientId, + clientId +}) => hasItems || !isAppender && !rootClientId && !clientId)])(PrivateInserter); +const Inserter = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + return (0,external_wp_element_namespaceObject.createElement)(ComposedPrivateInserter, { + ref: ref, + ...props }); - return prevRef.current; -} - -// src/hooks/useReducedMotion.ts +}); +/* harmony default export */ var inserter = (Inserter); -var useReducedMotion = () => { - const [reducedMotion, setReducedMotion] = useState3(null); - react_spring_shared_modern_useIsomorphicLayoutEffect(() => { - const mql = window.matchMedia("(prefers-reduced-motion)"); - const handleMediaChange = (e) => { - setReducedMotion(e.matches); - react_spring_shared_modern_assign({ - skipAnimation: e.matches - }); - }; - handleMediaChange(mql); - mql.addEventListener("change", handleMediaChange); - return () => { - mql.removeEventListener("change", handleMediaChange); - }; - }, []); - return reducedMotion; -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-block-appender/index.js -;// CONCATENATED MODULE: ./node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs -// src/Animated.ts +/** + * External dependencies + */ -var $node = Symbol.for("Animated:node"); -var isAnimated = (value) => !!value && value[$node] === value; -var getAnimated = (owner) => owner && owner[$node]; -var setAnimated = (owner, node) => defineHidden(owner, $node, node); -var getPayload = (owner) => owner && owner[$node] && owner[$node].getPayload(); -var Animated = class { - constructor() { - setAnimated(this, this); - } - /** Get every `AnimatedValue` used by this node. */ - getPayload() { - return this.payload || []; - } -}; -// src/AnimatedValue.ts +/** + * WordPress dependencies + */ -var AnimatedValue = class extends Animated { - constructor(_value) { - super(); - this._value = _value; - this.done = true; - this.durationProgress = 0; - if (is.num(this._value)) { - this.lastPosition = this._value; - } - } - /** @internal */ - static create(value) { - return new AnimatedValue(value); - } - getPayload() { - return [this]; - } - getValue() { - return this._value; - } - setValue(value, step) { - if (is.num(value)) { - this.lastPosition = value; - if (step) { - value = Math.round(value / step) * step; - if (this.done) { - this.lastPosition = value; - } - } - } - if (this._value === value) { - return false; - } - this._value = value; - return true; - } - reset() { - const { done } = this; - this.done = false; - if (is.num(this._value)) { - this.elapsedTime = 0; - this.durationProgress = 0; - this.lastPosition = this._value; - if (done) - this.lastVelocity = null; - this.v0 = null; - } - } -}; -// src/AnimatedString.ts -var AnimatedString = class extends AnimatedValue { - constructor(value) { - super(0); - this._string = null; - this._toString = createInterpolator({ - output: [value, value] - }); - } - /** @internal */ - static create(value) { - return new AnimatedString(value); - } - getValue() { - const value = this._string; - return value == null ? this._string = this._toString(this._value) : value; - } - setValue(value) { - if (is.str(value)) { - if (value == this._string) { - return false; - } - this._string = value; - this._value = 1; - } else if (super.setValue(value)) { - this._string = null; - } else { - return false; - } - return true; - } - reset(goal) { - if (goal) { - this._toString = createInterpolator({ - output: [this.getValue(), goal] - }); - } - this._value = 0; - super.reset(); - } -}; -// src/AnimatedArray.ts -// src/AnimatedObject.ts +/** + * Internal dependencies + */ -// src/context.ts -var TreeContext = { dependencies: null }; -// src/AnimatedObject.ts -var AnimatedObject = class extends Animated { - constructor(source) { - super(); - this.source = source; - this.setValue(source); +/** + * Zero width non-breaking space, used as padding for the paragraph when it is + * empty. + */ +const ZWNBSP = '\ufeff'; +function DefaultBlockAppender({ + isLocked, + onAppend, + showPrompt, + placeholder, + rootClientId +}) { + if (isLocked) { + return null; } - getValue(animated) { - const values = {}; - eachProp(this.source, (source, key) => { - if (isAnimated(source)) { - values[key] = source.getValue(animated); - } else if (hasFluidValue(source)) { - values[key] = getFluidValue(source); - } else if (!animated) { - values[key] = source; + const value = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(placeholder) || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + "data-root-client-id": rootClientId || '', + className: classnames_default()('block-editor-default-block-appender', { + 'has-visible-prompt': showPrompt + }) + }, (0,external_wp_element_namespaceObject.createElement)("p", { + tabIndex: "0" + // We want this element to be styled as a paragraph by themes. + // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role + , + role: "button", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Add default block') + // A wrapping container for this one already has the wp-block className. + , + className: "block-editor-default-block-appender__content", + onKeyDown: event => { + if (external_wp_keycodes_namespaceObject.ENTER === event.keyCode || external_wp_keycodes_namespaceObject.SPACE === event.keyCode) { + onAppend(); + } + }, + onClick: () => onAppend(), + onFocus: () => { + if (showPrompt) { + onAppend(); } - }); - return values; - } - /** Replace the raw object data */ - setValue(source) { - this.source = source; - this.payload = this._makePayload(source); - } - reset() { - if (this.payload) { - react_spring_shared_modern_each(this.payload, (node) => node.reset()); - } - } - /** Create a payload set. */ - _makePayload(source) { - if (source) { - const payload = /* @__PURE__ */ new Set(); - eachProp(source, this._addToPayload, payload); - return Array.from(payload); - } - } - /** Add to a payload set. */ - _addToPayload(source) { - if (TreeContext.dependencies && hasFluidValue(source)) { - TreeContext.dependencies.add(source); - } - const payload = getPayload(source); - if (payload) { - react_spring_shared_modern_each(payload, (node) => this.add(node)); } - } -}; - -// src/AnimatedArray.ts -var AnimatedArray = class extends AnimatedObject { - constructor(source) { - super(source); - } - /** @internal */ - static create(source) { - return new AnimatedArray(source); - } - getValue() { - return this.source.map((node) => node.getValue()); - } - setValue(source) { - const payload = this.getPayload(); - if (source.length == payload.length) { - return payload.map((node, i) => node.setValue(source[i])).some(Boolean); + }, showPrompt ? value : ZWNBSP), (0,external_wp_element_namespaceObject.createElement)(inserter, { + rootClientId: rootClientId, + position: "bottom right", + isAppender: true, + __experimentalIsQuick: true + })); +} +/* harmony default export */ var default_block_appender = ((0,external_wp_compose_namespaceObject.compose)((0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => { + const { + getBlockCount, + getSettings, + getTemplateLock + } = select(store); + const isEmpty = !getBlockCount(ownProps.rootClientId); + const { + bodyPlaceholder + } = getSettings(); + return { + showPrompt: isEmpty, + isLocked: !!getTemplateLock(ownProps.rootClientId), + placeholder: bodyPlaceholder + }; +}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps) => { + const { + insertDefaultBlock, + startTyping + } = dispatch(store); + return { + onAppend() { + const { + rootClientId + } = ownProps; + insertDefaultBlock(undefined, rootClientId); + startTyping(); } - super.setValue(source.map(makeAnimated)); - return true; - } -}; -function makeAnimated(value) { - const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue; - return nodeType.create(value); -} + }; +}))(DefaultBlockAppender)); -// src/getAnimatedType.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/button-block-appender/index.js -function getAnimatedType(value) { - const parentNode = getAnimated(value); - return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue; -} +/** + * External dependencies + */ -// src/createHost.ts +/** + * WordPress dependencies + */ -// src/withAnimated.tsx -var withAnimated = (Component, host) => { - const hasInstance = ( - // Function components must use "forwardRef" to avoid being - // re-rendered on every animation frame. - !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent - ); - return (0,external_React_.forwardRef)((givenProps, givenRef) => { - const instanceRef = (0,external_React_.useRef)(null); - const ref = hasInstance && // eslint-disable-next-line react-hooks/rules-of-hooks - (0,external_React_.useCallback)( - (value) => { - instanceRef.current = updateRef(givenRef, value); - }, - [givenRef] - ); - const [props, deps] = getAnimatedState(givenProps, host); - const forceUpdate = react_spring_shared_modern_useForceUpdate(); - const callback = () => { - const instance = instanceRef.current; - if (hasInstance && !instance) { - return; + + +/** + * Internal dependencies + */ + +function ButtonBlockAppender({ + rootClientId, + className, + onFocus, + tabIndex +}, ref) { + return (0,external_wp_element_namespaceObject.createElement)(inserter, { + position: "bottom center", + rootClientId: rootClientId, + __experimentalIsQuick: true, + renderToggle: ({ + onToggle, + disabled, + isOpen, + blockTitle, + hasSingleBlockType + }) => { + let label; + if (hasSingleBlockType) { + label = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: the name of the block when there is only one + (0,external_wp_i18n_namespaceObject._x)('Add %s', 'directly add the only allowed block'), blockTitle); + } else { + label = (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'); } - const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false; - if (didUpdate === false) { - forceUpdate(); + const isToggleButton = !hasSingleBlockType; + let inserterButton = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ref: ref, + onFocus: onFocus, + tabIndex: tabIndex, + className: classnames_default()(className, 'block-editor-button-block-appender'), + onClick: onToggle, + "aria-haspopup": isToggleButton ? 'true' : undefined, + "aria-expanded": isToggleButton ? isOpen : undefined, + disabled: disabled, + label: label + }, !hasSingleBlockType && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "span" + }, label), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_plus + })); + if (isToggleButton || hasSingleBlockType) { + inserterButton = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: label + }, inserterButton); } - }; - const observer = new PropsObserver(callback, deps); - const observerRef = (0,external_React_.useRef)(); - react_spring_shared_modern_useIsomorphicLayoutEffect(() => { - observerRef.current = observer; - react_spring_shared_modern_each(deps, (dep) => addFluidObserver(dep, observer)); - return () => { - if (observerRef.current) { - react_spring_shared_modern_each( - observerRef.current.deps, - (dep) => removeFluidObserver(dep, observerRef.current) - ); - raf.cancel(observerRef.current.update); - } - }; - }); - (0,external_React_.useEffect)(callback, []); - react_spring_shared_modern_useOnce(() => () => { - const observer2 = observerRef.current; - react_spring_shared_modern_each(observer2.deps, (dep) => removeFluidObserver(dep, observer2)); - }); - const usedProps = host.getComponentProps(props.getValue()); - return /* @__PURE__ */ external_React_.createElement(Component, { ...usedProps, ref }); + return inserterButton; + }, + isAppender: true }); -}; -var PropsObserver = class { - constructor(update, deps) { - this.update = update; - this.deps = deps; - } - eventObserved(event) { - if (event.type == "change") { - raf.write(this.update); - } - } -}; -function getAnimatedState(props, host) { - const dependencies = /* @__PURE__ */ new Set(); - TreeContext.dependencies = dependencies; - if (props.style) - props = { - ...props, - style: host.createAnimatedStyle(props.style) - }; - props = new AnimatedObject(props); - TreeContext.dependencies = null; - return [props, dependencies]; -} -function updateRef(ref, value) { - if (ref) { - if (is.fun(ref)) - ref(value); - else - ref.current = value; - } - return value; } -// src/createHost.ts -var cacheKey = Symbol.for("AnimatedComponent"); -var createHost = (components, { - applyAnimatedValues = () => false, - createAnimatedStyle = (style) => new AnimatedObject(style), - getComponentProps = (props) => props -} = {}) => { - const hostConfig = { - applyAnimatedValues, - createAnimatedStyle, - getComponentProps - }; - const animated = (Component) => { - const displayName = getDisplayName(Component) || "Anonymous"; - if (is.str(Component)) { - Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig)); - } else { - Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig)); - } - Component.displayName = `Animated(${displayName})`; - return Component; - }; - eachProp(components, (Component, key) => { - if (is.arr(components)) { - key = getDisplayName(Component); - } - animated[key] = animated(Component); +/** + * Use `ButtonBlockAppender` instead. + * + * @deprecated + */ +const ButtonBlockerAppender = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + external_wp_deprecated_default()(`wp.blockEditor.ButtonBlockerAppender`, { + alternative: 'wp.blockEditor.ButtonBlockAppender', + since: '5.9' }); - return { - animated - }; -}; -var getDisplayName = (arg) => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null; + return ButtonBlockAppender(props, ref); +}); -;// CONCATENATED MODULE: ./node_modules/@react-spring/core/dist/react-spring_core.modern.mjs -// src/hooks/useChain.ts +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/button-block-appender/README.md + */ +/* harmony default export */ var button_block_appender = ((0,external_wp_element_namespaceObject.forwardRef)(ButtonBlockAppender)); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list-appender/index.js -// src/helpers.ts +/** + * External dependencies + */ -function callProp(value, ...args) { - return is.fun(value) ? value(...args) : value; -} -var matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key))); -var resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop; -var getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : void 0; -var noopTransform = (value) => value; -var getDefaultProps = (props, transform = noopTransform) => { - let keys = DEFAULT_PROPS; - if (props.default && props.default !== true) { - props = props.default; - keys = Object.keys(props); - } - const defaults2 = {}; - for (const key of keys) { - const value = transform(props[key], key); - if (!is.und(value)) { - defaults2[key] = value; - } + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +function DefaultAppender({ + rootClientId +}) { + const canInsertDefaultBlock = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).canInsertBlockType((0,external_wp_blocks_namespaceObject.getDefaultBlockName)(), rootClientId)); + if (canInsertDefaultBlock) { + // Render the default block appender if the context supports use + // of the default appender. + return (0,external_wp_element_namespaceObject.createElement)(default_block_appender, { + rootClientId: rootClientId + }); } - return defaults2; -}; -var DEFAULT_PROPS = [ - "config", - "onProps", - "onStart", - "onChange", - "onPause", - "onResume", - "onRest" -]; -var RESERVED_PROPS = { - config: 1, - from: 1, - to: 1, - ref: 1, - loop: 1, - reset: 1, - pause: 1, - cancel: 1, - reverse: 1, - immediate: 1, - default: 1, - delay: 1, - onProps: 1, - onStart: 1, - onChange: 1, - onPause: 1, - onResume: 1, - onRest: 1, - onResolve: 1, - // Transition props - items: 1, - trail: 1, - sort: 1, - expires: 1, - initial: 1, - enter: 1, - update: 1, - leave: 1, - children: 1, - onDestroyed: 1, - // Internal props - keys: 1, - callId: 1, - parentId: 1 -}; -function getForwardProps(props) { - const forward = {}; - let count = 0; - eachProp(props, (value, prop) => { - if (!RESERVED_PROPS[prop]) { - forward[prop] = value; - count++; - } + + // Fallback in case the default block can't be inserted. + return (0,external_wp_element_namespaceObject.createElement)(button_block_appender, { + rootClientId: rootClientId, + className: "block-list-appender__toggle" }); - if (count) { - return forward; - } -} -function inferTo(props) { - const to2 = getForwardProps(props); - if (to2) { - const out = { to: to2 }; - eachProp(props, (val, key) => key in to2 || (out[key] = val)); - return out; - } - return { ...props }; -} -function computeGoal(value) { - value = getFluidValue(value); - return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? globals_exports.createStringInterpolator({ - range: [0, 1], - output: [value, value] - })(1) : value; } -function hasProps(props) { - for (const _ in props) +function useAppender(rootClientId, CustomAppender) { + const isVisible = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getTemplateLock, + getSelectedBlockClientId, + __unstableGetEditorMode, + getBlockEditingMode + } = select(store); + if (CustomAppender === false) { + return false; + } + if (!CustomAppender) { + const selectedBlockClientId = getSelectedBlockClientId(); + const isParentSelected = rootClientId === selectedBlockClientId || !rootClientId && !selectedBlockClientId; + if (!isParentSelected) { + return false; + } + } + if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled' || __unstableGetEditorMode() === 'zoom-out') { + return false; + } return true; - return false; -} -function isAsyncTo(to2) { - return is.fun(to2) || is.arr(to2) && is.obj(to2[0]); -} -function detachRefs(ctrl, ref) { - ctrl.ref?.delete(ctrl); - ref?.delete(ctrl); + }, [rootClientId, CustomAppender]); + if (!isVisible) { + return null; + } + return CustomAppender ? (0,external_wp_element_namespaceObject.createElement)(CustomAppender, null) : (0,external_wp_element_namespaceObject.createElement)(DefaultAppender, { + rootClientId: rootClientId + }); } -function replaceRef(ctrl, ref) { - if (ref && ctrl.ref !== ref) { - ctrl.ref?.delete(ctrl); - ref.add(ctrl); - ctrl.ref = ref; +function BlockListAppender({ + rootClientId, + renderAppender, + className, + tagName: TagName = 'div' +}) { + const appender = useAppender(rootClientId, renderAppender); + const isDragOver = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockInsertionPoint, + isBlockInsertionPointVisible, + getBlockCount + } = select(store); + const insertionPoint = getBlockInsertionPoint(); + // Ideally we should also check for `isDragging` but currently it + // requires a lot more setup. We can revisit this once we refactor + // the DnD utility hooks. + return isBlockInsertionPointVisible() && rootClientId === insertionPoint?.rootClientId && getBlockCount(rootClientId) === 0; + }, [rootClientId]); + if (!appender) { + return null; } + return (0,external_wp_element_namespaceObject.createElement)(TagName + // A `tabIndex` is used on the wrapping `div` element in order to + // force a focus event to occur when an appender `button` element + // is clicked. In some browsers (Firefox, Safari), button clicks do + // not emit a focus event, which could cause this event to propagate + // unexpectedly. The `tabIndex` ensures that the interaction is + // captured as a focus, without also adding an extra tab stop. + // + // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus + , { + tabIndex: -1, + className: classnames_default()('block-list-appender wp-block', className, { + 'is-drag-over': isDragOver + }) + // Needed in case the whole editor is content editable (for multi + // selection). It fixes an edge case where ArrowDown and ArrowRight + // should collapse the selection to the end of that selection and + // not into the appender. + , + contentEditable: false + // The appender exists to let you add the first Paragraph before + // any is inserted. To that end, this appender should visually be + // presented as a block. That means theme CSS should style it as if + // it were an empty paragraph block. That means a `wp-block` class to + // ensure the width is correct, and a [data-block] attribute to ensure + // the correct margin is applied, especially for classic themes which + // have commonly targeted that attribute for margins. + , + "data-block": true + }, appender); } +/* harmony default export */ var block_list_appender = (BlockListAppender); -// src/hooks/useChain.ts -function useChain(refs, timeSteps, timeFrame = 1e3) { - useIsomorphicLayoutEffect(() => { - if (timeSteps) { - let prevDelay = 0; - each(refs, (ref, i) => { - const controllers = ref.current; - if (controllers.length) { - let delay = timeFrame * timeSteps[i]; - if (isNaN(delay)) - delay = prevDelay; - else - prevDelay = delay; - each(controllers, (ctrl) => { - each(ctrl.queue, (props) => { - const memoizedDelayProp = props.delay; - props.delay = (key) => delay + callProp(memoizedDelayProp || 0, key); - }); - }); - ref.start(); - } - }); - } else { - let p = Promise.resolve(); - each(refs, (ref) => { - const controllers = ref.current; - if (controllers.length) { - const queues = controllers.map((ctrl) => { - const q = ctrl.queue; - ctrl.queue = []; - return q; - }); - p = p.then(() => { - each( - controllers, - (ctrl, i) => each(queues[i] || [], (update2) => ctrl.queue.push(update2)) - ); - return Promise.all(ref.start()); - }); - } - }); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/use-popover-scroll.js +/** + * WordPress dependencies + */ + + +/** + * Allow scrolling "through" popovers over the canvas. This is only called for + * as long as the pointer is over a popover. Do not use React events because it + * will bubble through portals. + * + * @param {Object} scrollableRef + */ +function usePopoverScroll(scrollableRef) { + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (!scrollableRef) { + return; } - }); + function onWheel(event) { + const { + deltaX, + deltaY + } = event; + scrollableRef.current.scrollBy(deltaX, deltaY); + } + // Tell the browser that we do not call event.preventDefault + // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners + const options = { + passive: true + }; + node.addEventListener('wheel', onWheel, options); + return () => { + node.removeEventListener('wheel', onWheel, options); + }; + }, [scrollableRef]); } +/* harmony default export */ var use_popover_scroll = (usePopoverScroll); -// src/hooks/useSpring.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/inbetween.js + +/** + * External dependencies + */ -// src/hooks/useSprings.ts +/** + * WordPress dependencies + */ -// src/SpringValue.ts +/** + * Internal dependencies + */ -// src/AnimationConfig.ts -// src/constants.ts -var config = { - default: { tension: 170, friction: 26 }, - gentle: { tension: 120, friction: 14 }, - wobbly: { tension: 180, friction: 12 }, - stiff: { tension: 210, friction: 20 }, - slow: { tension: 280, friction: 60 }, - molasses: { tension: 280, friction: 120 } -}; +const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER; +const InsertionPointOpenRef = (0,external_wp_element_namespaceObject.createContext)(); +function BlockPopoverInbetween({ + previousClientId, + nextClientId, + children, + __unstablePopoverSlot, + __unstableContentRef, + ...props +}) { + // This is a temporary hack to get the inbetween inserter to recompute properly. + const [popoverRecomputeCounter, forcePopoverRecompute] = (0,external_wp_element_namespaceObject.useReducer)( + // Module is there to make sure that the counter doesn't overflow. + s => (s + 1) % MAX_POPOVER_RECOMPUTE_COUNTER, 0); + const { + orientation, + rootClientId, + isVisible + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockListSettings, + getBlockRootClientId, + isBlockVisible + } = select(store); + const _rootClientId = getBlockRootClientId(previousClientId !== null && previousClientId !== void 0 ? previousClientId : nextClientId); + return { + orientation: getBlockListSettings(_rootClientId)?.orientation || 'vertical', + rootClientId: _rootClientId, + isVisible: isBlockVisible(previousClientId) && isBlockVisible(nextClientId) + }; + }, [previousClientId, nextClientId]); + const previousElement = useBlockElement(previousClientId); + const nextElement = useBlockElement(nextClientId); + const isVertical = orientation === 'vertical'; + const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { + if ( + // popoverRecomputeCounter is by definition always equal or greater than 0. + // This check is only there to satisfy the correctness of the + // exhaustive-deps rule for the `useMemo` hook. + popoverRecomputeCounter < 0 || !previousElement && !nextElement || !isVisible) { + return undefined; + } + const contextElement = previousElement || nextElement; + return { + contextElement, + getBoundingClientRect() { + const previousRect = previousElement ? previousElement.getBoundingClientRect() : null; + const nextRect = nextElement ? nextElement.getBoundingClientRect() : null; + let left = 0; + let top = 0; + let width = 0; + let height = 0; + if (isVertical) { + // vertical + top = previousRect ? previousRect.bottom : nextRect.top; + width = previousRect ? previousRect.width : nextRect.width; + height = nextRect && previousRect ? nextRect.top - previousRect.bottom : 0; + left = previousRect ? previousRect.left : nextRect.left; + } else { + top = previousRect ? previousRect.top : nextRect.top; + height = previousRect ? previousRect.height : nextRect.height; + if ((0,external_wp_i18n_namespaceObject.isRTL)()) { + // non vertical, rtl + left = nextRect ? nextRect.right : previousRect.left; + width = previousRect && nextRect ? previousRect.left - nextRect.right : 0; + } else { + // non vertical, ltr + left = previousRect ? previousRect.right : nextRect.left; + width = previousRect && nextRect ? nextRect.left - previousRect.right : 0; + } + } + return new window.DOMRect(left, top, width, height); + } + }; + }, [previousElement, nextElement, popoverRecomputeCounter, isVertical, isVisible]); + const popoverScrollRef = use_popover_scroll(__unstableContentRef); -// src/AnimationConfig.ts -var defaults = { - ...config.default, - mass: 1, - damping: 1, - easing: easings.linear, - clamp: false -}; -var AnimationConfig = class { - constructor() { - /** - * The initial velocity of one or more values. - * - * @default 0 - */ - this.velocity = 0; - Object.assign(this, defaults); - } -}; -function mergeConfig(config2, newConfig, defaultConfig) { - if (defaultConfig) { - defaultConfig = { ...defaultConfig }; - sanitizeConfig(defaultConfig, newConfig); - newConfig = { ...defaultConfig, ...newConfig }; - } - sanitizeConfig(config2, newConfig); - Object.assign(config2, newConfig); - for (const key in defaults) { - if (config2[key] == null) { - config2[key] = defaults[key]; + // This is only needed for a smooth transition when moving blocks. + // When blocks are moved up/down, their position can be set by + // updating the `transform` property manually (i.e. without using CSS + // transitions or animations). The animation, which can also scroll the block + // editor, can sometimes cause the position of the Popover to get out of sync. + // A MutationObserver is therefore used to make sure that changes to the + // selectedElement's attribute (i.e. `transform`) can be tracked and used to + // trigger the Popover to rerender. + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!previousElement) { + return; } - } - let { frequency, damping } = config2; - const { mass } = config2; - if (!is.und(frequency)) { - if (frequency < 0.01) - frequency = 0.01; - if (damping < 0) - damping = 0; - config2.tension = Math.pow(2 * Math.PI / frequency, 2) * mass; - config2.friction = 4 * Math.PI * damping * mass / frequency; - } - return config2; -} -function sanitizeConfig(config2, props) { - if (!is.und(props.decay)) { - config2.duration = void 0; - } else { - const isTensionConfig = !is.und(props.tension) || !is.und(props.friction); - if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) { - config2.duration = void 0; - config2.decay = void 0; + const observer = new window.MutationObserver(forcePopoverRecompute); + observer.observe(previousElement, { + attributes: true + }); + return () => { + observer.disconnect(); + }; + }, [previousElement]); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!nextElement) { + return; } - if (isTensionConfig) { - config2.frequency = void 0; + const observer = new window.MutationObserver(forcePopoverRecompute); + observer.observe(nextElement, { + attributes: true + }); + return () => { + observer.disconnect(); + }; + }, [nextElement]); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!previousElement) { + return; } + previousElement.ownerDocument.defaultView.addEventListener('resize', forcePopoverRecompute); + return () => { + previousElement.ownerDocument.defaultView?.removeEventListener('resize', forcePopoverRecompute); + }; + }, [previousElement]); + + // If there's either a previous or a next element, show the inbetween popover. + // Note that drag and drop uses the inbetween popover to show the drop indicator + // before the first block and after the last block. + if (!previousElement && !nextElement || !isVisible) { + return null; } + + /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ + // While ideally it would be enough to capture the + // bubbling focus event from the Inserter, due to the + // characteristics of click focusing of `button`s in + // Firefox and Safari, it is not reliable. + // + // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + ref: popoverScrollRef, + animate: false, + anchor: popoverAnchor, + focusOnMount: false + // Render in the old slot if needed for backward compatibility, + // otherwise render in place (not in the default popover slot). + , + __unstableSlotName: __unstablePopoverSlot, + inline: !__unstablePopoverSlot + // Forces a remount of the popover when its position changes + // This makes sure the popover doesn't animate from its previous position. + , + key: nextClientId + '--' + rootClientId, + ...props, + className: classnames_default()('block-editor-block-popover', 'block-editor-block-popover__inbetween', props.className), + resize: false, + flip: false, + placement: "overlay", + variant: "unstyled" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-popover__inbetween-container" + }, children)); + /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ } -// src/Animation.ts -var emptyArray = []; -var Animation = class { - constructor() { - this.changed = false; - this.values = emptyArray; - this.toValues = null; - this.fromValues = emptyArray; - this.config = new AnimationConfig(); - this.immediate = false; - } -}; +/* harmony default export */ var inbetween = (BlockPopoverInbetween); -// src/scheduleProps.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/index.js -function scheduleProps(callId, { key, props, defaultProps, state, actions }) { - return new Promise((resolve, reject) => { - let delay; - let timeout; - let cancel = matchProp(props.cancel ?? defaultProps?.cancel, key); - if (cancel) { - onStart(); - } else { - if (!is.und(props.pause)) { - state.paused = matchProp(props.pause, key); - } - let pause = defaultProps?.pause; - if (pause !== true) { - pause = state.paused || matchProp(pause, key); - } - delay = callProp(props.delay || 0, key); - if (pause) { - state.resumeQueue.add(onResume); - actions.pause(); - } else { - actions.resume(); - onResume(); - } - } - function onPause() { - state.resumeQueue.add(onResume); - state.timeouts.delete(timeout); - timeout.cancel(); - delay = timeout.time - raf.now(); - } - function onResume() { - if (delay > 0 && !globals_exports.skipAnimation) { - state.delayed = true; - timeout = raf.setTimeout(onStart, delay); - state.pauseQueue.add(onPause); - state.timeouts.add(timeout); - } else { - onStart(); - } - } - function onStart() { - if (state.delayed) { - state.delayed = false; - } - state.pauseQueue.delete(onPause); - state.timeouts.delete(timeout); - if (callId <= (state.cancelId || 0)) { - cancel = true; - } - try { - actions.start({ ...props, callId, cancel }, resolve); - } catch (err) { - reject(err); - } - } - }); -} +/** + * External dependencies + */ -// src/runAsync.ts +/** + * WordPress dependencies + */ -// src/AnimationResult.ts -var getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some((result) => result.cancelled) ? getCancelledResult(target.get()) : results.every((result) => result.noop) ? getNoopResult(target.get()) : getFinishedResult( - target.get(), - results.every((result) => result.finished) -); -var getNoopResult = (value) => ({ - value, - noop: true, - finished: true, - cancelled: false -}); -var getFinishedResult = (value, finished, cancelled = false) => ({ - value, - finished, - cancelled -}); -var getCancelledResult = (value) => ({ - value, - cancelled: true, - finished: false -}); -// src/runAsync.ts -function runAsync(to2, props, state, target) { - const { callId, parentId, onRest } = props; - const { asyncTo: prevTo, promise: prevPromise } = state; - if (!parentId && to2 === prevTo && !props.reset) { - return prevPromise; - } - return state.promise = (async () => { - state.asyncId = callId; - state.asyncTo = to2; - const defaultProps = getDefaultProps( - props, - (value, key) => ( - // The `onRest` prop is only called when the `runAsync` promise is resolved. - key === "onRest" ? void 0 : value - ) - ); - let preventBail; - let bail; - const bailPromise = new Promise( - (resolve, reject) => (preventBail = resolve, bail = reject) - ); - const bailIfEnded = (bailSignal) => { - const bailResult = ( - // The `cancel` prop or `stop` method was used. - callId <= (state.cancelId || 0) && getCancelledResult(target) || // The async `to` prop was replaced. - callId !== state.asyncId && getFinishedResult(target, false) - ); - if (bailResult) { - bailSignal.result = bailResult; - bail(bailSignal); - throw bailSignal; - } - }; - const animate = (arg1, arg2) => { - const bailSignal = new BailSignal(); - const skipAnimationSignal = new SkipAnimationSignal(); - return (async () => { - if (globals_exports.skipAnimation) { - stopAsync(state); - skipAnimationSignal.result = getFinishedResult(target, false); - bail(skipAnimationSignal); - throw skipAnimationSignal; - } - bailIfEnded(bailSignal); - const props2 = is.obj(arg1) ? { ...arg1 } : { ...arg2, to: arg1 }; - props2.parentId = callId; - eachProp(defaultProps, (value, key) => { - if (is.und(props2[key])) { - props2[key] = value; - } - }); - const result2 = await target.start(props2); - bailIfEnded(bailSignal); - if (state.paused) { - await new Promise((resume) => { - state.resumeQueue.add(resume); - }); - } - return result2; - })(); - }; - let result; - if (globals_exports.skipAnimation) { - stopAsync(state); - return getFinishedResult(target, false); + + +/** + * Internal dependencies + */ + + +const block_popover_MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER; +function BlockPopover({ + clientId, + bottomClientId, + children, + __unstableRefreshSize, + __unstableCoverTarget = false, + __unstablePopoverSlot, + __unstableContentRef, + shift = true, + ...props +}, ref) { + const selectedElement = useBlockElement(clientId); + const lastSelectedElement = useBlockElement(bottomClientId !== null && bottomClientId !== void 0 ? bottomClientId : clientId); + const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, use_popover_scroll(__unstableContentRef)]); + const [popoverDimensionsRecomputeCounter, forceRecomputePopoverDimensions] = (0,external_wp_element_namespaceObject.useReducer)( + // Module is there to make sure that the counter doesn't overflow. + s => (s + 1) % block_popover_MAX_POPOVER_RECOMPUTE_COUNTER, 0); + + // When blocks are moved up/down, they are animated to their new position by + // updating the `transform` property manually (i.e. without using CSS + // transitions or animations). The animation, which can also scroll the block + // editor, can sometimes cause the position of the Popover to get out of sync. + // A MutationObserver is therefore used to make sure that changes to the + // selectedElement's attribute (i.e. `transform`) can be tracked and used to + // trigger the Popover to rerender. + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!selectedElement) { + return; } - try { - let animating; - if (is.arr(to2)) { - animating = (async (queue) => { - for (const props2 of queue) { - await animate(props2); - } - })(to2); - } else { - animating = Promise.resolve(to2(animate, target.stop.bind(target))); - } - await Promise.all([animating.then(preventBail), bailPromise]); - result = getFinishedResult(target.get(), true, false); - } catch (err) { - if (err instanceof BailSignal) { - result = err.result; - } else if (err instanceof SkipAnimationSignal) { - result = err.result; - } else { - throw err; - } - } finally { - if (callId == state.asyncId) { - state.asyncId = parentId; - state.asyncTo = parentId ? prevTo : void 0; - state.promise = parentId ? prevPromise : void 0; - } + const observer = new window.MutationObserver(forceRecomputePopoverDimensions); + observer.observe(selectedElement, { + attributes: true + }); + return () => { + observer.disconnect(); + }; + }, [selectedElement]); + const style = (0,external_wp_element_namespaceObject.useMemo)(() => { + if ( + // popoverDimensionsRecomputeCounter is by definition always equal or greater + // than 0. This check is only there to satisfy the correctness of the + // exhaustive-deps rule for the `useMemo` hook. + popoverDimensionsRecomputeCounter < 0 || !selectedElement || lastSelectedElement !== selectedElement) { + return {}; } - if (is.fun(onRest)) { - raf.batchedUpdates(() => { - onRest(result, target, target.item); - }); + return { + position: 'absolute', + width: selectedElement.offsetWidth, + height: selectedElement.offsetHeight + }; + }, [selectedElement, lastSelectedElement, __unstableRefreshSize, popoverDimensionsRecomputeCounter]); + const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { + if ( + // popoverDimensionsRecomputeCounter is by definition always equal or greater + // than 0. This check is only there to satisfy the correctness of the + // exhaustive-deps rule for the `useMemo` hook. + popoverDimensionsRecomputeCounter < 0 || !selectedElement || bottomClientId && !lastSelectedElement) { + return undefined; } - return result; - })(); -} -function stopAsync(state, cancelId) { - flush(state.timeouts, (t) => t.cancel()); - state.pauseQueue.clear(); - state.resumeQueue.clear(); - state.asyncId = state.asyncTo = state.promise = void 0; - if (cancelId) - state.cancelId = cancelId; -} -var BailSignal = class extends Error { - constructor() { - super( - "An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise." - ); - } -}; -var SkipAnimationSignal = class extends Error { - constructor() { - super("SkipAnimationSignal"); + return { + getBoundingClientRect() { + var _lastSelectedBCR$left, _lastSelectedBCR$top, _lastSelectedBCR$righ, _lastSelectedBCR$bott; + const selectedBCR = selectedElement.getBoundingClientRect(); + const lastSelectedBCR = lastSelectedElement?.getBoundingClientRect(); + + // Get the biggest rectangle that encompasses completely the currently + // selected element and the last selected element: + // - for top/left coordinates, use the smaller numbers + // - for the bottom/right coordinates, use the largest numbers + const left = Math.min(selectedBCR.left, (_lastSelectedBCR$left = lastSelectedBCR?.left) !== null && _lastSelectedBCR$left !== void 0 ? _lastSelectedBCR$left : Infinity); + const top = Math.min(selectedBCR.top, (_lastSelectedBCR$top = lastSelectedBCR?.top) !== null && _lastSelectedBCR$top !== void 0 ? _lastSelectedBCR$top : Infinity); + const right = Math.max(selectedBCR.right, (_lastSelectedBCR$righ = lastSelectedBCR.right) !== null && _lastSelectedBCR$righ !== void 0 ? _lastSelectedBCR$righ : -Infinity); + const bottom = Math.max(selectedBCR.bottom, (_lastSelectedBCR$bott = lastSelectedBCR.bottom) !== null && _lastSelectedBCR$bott !== void 0 ? _lastSelectedBCR$bott : -Infinity); + const width = right - left; + const height = bottom - top; + return new window.DOMRect(left, top, width, height); + }, + contextElement: selectedElement + }; + }, [bottomClientId, lastSelectedElement, selectedElement, popoverDimensionsRecomputeCounter]); + if (!selectedElement || bottomClientId && !lastSelectedElement) { + return null; } -}; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + ref: mergedRefs, + animate: false, + focusOnMount: false, + anchor: popoverAnchor + // Render in the old slot if needed for backward compatibility, + // otherwise render in place (not in the default popover slot). + , + __unstableSlotName: __unstablePopoverSlot, + inline: !__unstablePopoverSlot, + placement: "top-start", + resize: false, + flip: false, + shift: shift, + ...props, + className: classnames_default()('block-editor-block-popover', props.className), + variant: "unstyled" + }, __unstableCoverTarget && (0,external_wp_element_namespaceObject.createElement)("div", { + style: style + }, children), !__unstableCoverTarget && children); +} +/* harmony default export */ var block_popover = ((0,external_wp_element_namespaceObject.forwardRef)(BlockPopover)); -// src/FrameValue.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/drop-zone.js +/** + * WordPress dependencies + */ -var isFrameValue = (value) => value instanceof FrameValue; -var nextId = 1; -var FrameValue = class extends FluidValue { - constructor() { - super(...arguments); - this.id = nextId++; - this._priority = 0; - } - get priority() { - return this._priority; - } - set priority(priority) { - if (this._priority != priority) { - this._priority = priority; - this._onPriorityChange(priority); - } - } - /** Get the current value */ - get() { - const node = getAnimated(this); - return node && node.getValue(); - } - /** Create a spring that maps our value to another value */ - to(...args) { - return globals_exports.to(this, args); - } - /** @deprecated Use the `to` method instead. */ - interpolate(...args) { - deprecateInterpolate(); - return globals_exports.to(this, args); - } - toJSON() { - return this.get(); - } - observerAdded(count) { - if (count == 1) - this._attach(); - } - observerRemoved(count) { - if (count == 0) - this._detach(); - } - /** Called when the first child is added. */ - _attach() { - } - /** Called when the last child is removed. */ - _detach() { - } - /** Tell our children about our new value */ - _onChange(value, idle = false) { - callFluidObservers(this, { - type: "change", - parent: this, - value, - idle - }); - } - /** Tell our children about our new priority */ - _onPriorityChange(priority) { - if (!this.idle) { - frameLoop.sort(this); - } - callFluidObservers(this, { - type: "priority", - parent: this, - priority - }); + + + +/** + * Internal dependencies + */ + + +const animateVariants = { + hide: { + opacity: 0, + scaleY: 0.75 + }, + show: { + opacity: 1, + scaleY: 1 + }, + exit: { + opacity: 0, + scaleY: 0.9 } }; +function BlockDropZonePopover({ + __unstablePopoverSlot, + __unstableContentRef +}) { + const { + clientId + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockOrder, + getBlockInsertionPoint + } = select(store); + const insertionPoint = getBlockInsertionPoint(); + const order = getBlockOrder(insertionPoint.rootClientId); + if (!order.length) { + return {}; + } + return { + clientId: order[insertionPoint.index] + }; + }, []); + const reducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { + clientId: clientId, + __unstableCoverTarget: true, + __unstablePopoverSlot: __unstablePopoverSlot, + __unstableContentRef: __unstableContentRef, + className: "block-editor-block-popover__drop-zone" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { + "data-testid": "block-popover-drop-zone", + initial: reducedMotion ? animateVariants.show : animateVariants.hide, + animate: animateVariants.show, + exit: reducedMotion ? animateVariants.show : animateVariants.exit, + className: "block-editor-block-popover__drop-zone-foreground" + })); +} +/* harmony default export */ var drop_zone = (BlockDropZonePopover); -// src/SpringPhase.ts -var $P = Symbol.for("SpringPhase"); -var HAS_ANIMATED = 1; -var IS_ANIMATING = 2; -var IS_PAUSED = 4; -var hasAnimated = (target) => (target[$P] & HAS_ANIMATED) > 0; -var isAnimating = (target) => (target[$P] & IS_ANIMATING) > 0; -var isPaused = (target) => (target[$P] & IS_PAUSED) > 0; -var setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING; -var setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/insertion-point.js -// src/SpringValue.ts -var SpringValue = class extends FrameValue { - constructor(arg1, arg2) { - super(); - /** The animation state */ - this.animation = new Animation(); - /** Some props have customizable default values */ - this.defaultProps = {}; - /** The state for `runAsync` calls */ - this._state = { - paused: false, - delayed: false, - pauseQueue: /* @__PURE__ */ new Set(), - resumeQueue: /* @__PURE__ */ new Set(), - timeouts: /* @__PURE__ */ new Set() +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + + +const insertion_point_InsertionPointOpenRef = (0,external_wp_element_namespaceObject.createContext)(); +function InbetweenInsertionPointPopover({ + __unstablePopoverSlot, + __unstableContentRef +}) { + const { + selectBlock, + hideInsertionPoint + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const openRef = (0,external_wp_element_namespaceObject.useContext)(insertion_point_InsertionPointOpenRef); + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const { + orientation, + previousClientId, + nextClientId, + rootClientId, + isInserterShown, + isDistractionFree, + isNavigationMode + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockOrder, + getBlockListSettings, + getBlockInsertionPoint, + isBlockBeingDragged, + getPreviousBlockClientId, + getNextBlockClientId, + getSettings, + isNavigationMode: _isNavigationMode + } = select(store); + const insertionPoint = getBlockInsertionPoint(); + const order = getBlockOrder(insertionPoint.rootClientId); + if (!order.length) { + return {}; + } + let _previousClientId = order[insertionPoint.index - 1]; + let _nextClientId = order[insertionPoint.index]; + while (isBlockBeingDragged(_previousClientId)) { + _previousClientId = getPreviousBlockClientId(_previousClientId); + } + while (isBlockBeingDragged(_nextClientId)) { + _nextClientId = getNextBlockClientId(_nextClientId); + } + const settings = getSettings(); + return { + previousClientId: _previousClientId, + nextClientId: _nextClientId, + orientation: getBlockListSettings(insertionPoint.rootClientId)?.orientation || 'vertical', + rootClientId: insertionPoint.rootClientId, + isNavigationMode: _isNavigationMode(), + isDistractionFree: settings.isDistractionFree, + isInserterShown: insertionPoint?.__unstableWithInserter }; - /** The promise resolvers of pending `start` calls */ - this._pendingCalls = /* @__PURE__ */ new Set(); - /** The counter for tracking `scheduleProps` calls */ - this._lastCallId = 0; - /** The last `scheduleProps` call that changed the `to` prop */ - this._lastToId = 0; - this._memoizedDuration = 0; - if (!is.und(arg1) || !is.und(arg2)) { - const props = is.obj(arg1) ? { ...arg1 } : { ...arg2, from: arg1 }; - if (is.und(props.default)) { - props.default = true; - } - this.start(props); + }, []); + const disableMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); + function onClick(event) { + if (event.target === ref.current && nextClientId) { + selectBlock(nextClientId, -1); } } - /** Equals true when not advancing on each frame. */ - get idle() { - return !(isAnimating(this) || this._state.asyncTo) || isPaused(this); - } - get goal() { - return getFluidValue(this.animation.to); - } - get velocity() { - const node = getAnimated(this); - return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map((node2) => node2.lastVelocity || 0); + function maybeHideInserterPoint(event) { + // Only hide the inserter if it's triggered on the wrapper, + // and the inserter is not open. + if (event.target === ref.current && !openRef.current) { + hideInsertionPoint(); + } } - /** - * When true, this value has been animated at least once. - */ - get hasAnimated() { - return hasAnimated(this); + function onFocus(event) { + // Only handle click on the wrapper specifically, and not an event + // bubbled from the inserter itself. + if (event.target !== ref.current) { + openRef.current = true; + } } - /** - * When true, this value has an unfinished animation, - * which is either active or paused. - */ - get isAnimating() { - return isAnimating(this); + const lineVariants = { + // Initial position starts from the center and invisible. + start: { + opacity: 0, + scale: 0 + }, + // The line expands to fill the container. If the inserter is visible it + // is delayed so it appears orchestrated. + rest: { + opacity: 1, + scale: 1, + transition: { + delay: isInserterShown ? 0.5 : 0, + type: 'tween' + } + }, + hover: { + opacity: 1, + scale: 1, + transition: { + delay: 0.5, + type: 'tween' + } + } + }; + const inserterVariants = { + start: { + scale: disableMotion ? 1 : 0 + }, + rest: { + scale: 1, + transition: { + delay: 0.4, + type: 'tween' + } + } + }; + if (isDistractionFree && !isNavigationMode) { + return null; } - /** - * When true, all current and future animations are paused. - */ - get isPaused() { - return isPaused(this); + const className = classnames_default()('block-editor-block-list__insertion-point', 'is-' + orientation); + return (0,external_wp_element_namespaceObject.createElement)(inbetween, { + previousClientId: previousClientId, + nextClientId: nextClientId, + __unstablePopoverSlot: __unstablePopoverSlot, + __unstableContentRef: __unstableContentRef + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { + layout: !disableMotion, + initial: disableMotion ? 'rest' : 'start', + animate: "rest", + whileHover: "hover", + whileTap: "pressed", + exit: "start", + ref: ref, + tabIndex: -1, + onClick: onClick, + onFocus: onFocus, + className: classnames_default()(className, { + 'is-with-inserter': isInserterShown + }), + onHoverEnd: maybeHideInserterPoint + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { + variants: lineVariants, + className: "block-editor-block-list__insertion-point-indicator", + "data-testid": "block-list-insertion-point-indicator" + }), isInserterShown && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { + variants: inserterVariants, + className: classnames_default()('block-editor-block-list__insertion-point-inserter') + }, (0,external_wp_element_namespaceObject.createElement)(inserter, { + position: "bottom center", + clientId: nextClientId, + rootClientId: rootClientId, + __experimentalIsQuick: true, + onToggle: isOpen => { + openRef.current = isOpen; + }, + onSelectOrClose: () => { + openRef.current = false; + } + })))); +} +function InsertionPoint(props) { + const { + insertionPoint, + isVisible, + isBlockListEmpty + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockInsertionPoint, + isBlockInsertionPointVisible, + getBlockCount + } = select(store); + const blockInsertionPoint = getBlockInsertionPoint(); + return { + insertionPoint: blockInsertionPoint, + isVisible: isBlockInsertionPointVisible(), + isBlockListEmpty: getBlockCount(blockInsertionPoint?.rootClientId) === 0 + }; + }, []); + if (!isVisible || + // Don't render the insertion point if the block list is empty. + // The insertion point will be represented by the appender instead. + isBlockListEmpty) { + return null; } + /** - * - * + * Render a popover that overlays the block when the desired operation is to replace it. + * Otherwise, render a popover in between blocks for the indication of inserting between them. */ - get isDelayed() { - return this._state.delayed; - } - /** Advance the current animation by a number of milliseconds */ - advance(dt) { - let idle = true; - let changed = false; - const anim = this.animation; - let { toValues } = anim; - const { config: config2 } = anim; - const payload = getPayload(anim.to); - if (!payload && hasFluidValue(anim.to)) { - toValues = toArray(getFluidValue(anim.to)); + return insertionPoint.operation === 'replace' ? (0,external_wp_element_namespaceObject.createElement)(drop_zone + // Force remount to trigger the animation. + , { + key: `${insertionPoint.rootClientId}-${insertionPoint.index}`, + ...props + }) : (0,external_wp_element_namespaceObject.createElement)(InbetweenInsertionPointPopover, { + ...props + }); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-in-between-inserter.js +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +function useInBetweenInserter() { + const openRef = (0,external_wp_element_namespaceObject.useContext)(insertion_point_InsertionPointOpenRef); + const isInBetweenInserterDisabled = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().isDistractionFree || select(store).__unstableGetEditorMode() === 'zoom-out', []); + const { + getBlockListSettings, + getBlockIndex, + isMultiSelecting, + getSelectedBlockClientIds, + getTemplateLock, + __unstableIsWithinBlockOverlay, + getBlockEditingMode + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + showInsertionPoint, + hideInsertionPoint + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (isInBetweenInserterDisabled) { + return; } - anim.values.forEach((node2, i) => { - if (node2.done) + function onMouseMove(event) { + if (openRef.current) { return; - const to2 = ( - // Animated strings always go from 0 to 1. - node2.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i] - ); - let finished = anim.immediate; - let position = to2; - if (!finished) { - position = node2.lastPosition; - if (config2.tension <= 0) { - node2.done = true; + } + + // Ignore text nodes sometimes detected in FireFox. + if (event.target.nodeType === event.target.TEXT_NODE) { + return; + } + if (isMultiSelecting()) { + return; + } + if (!event.target.classList.contains('block-editor-block-list__layout')) { + hideInsertionPoint(); + return; + } + let rootClientId; + if (!event.target.classList.contains('is-root-container')) { + const blockElement = !!event.target.getAttribute('data-block') ? event.target : event.target.closest('[data-block]'); + rootClientId = blockElement.getAttribute('data-block'); + } + if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled') { + return; + } + const orientation = getBlockListSettings(rootClientId)?.orientation || 'vertical'; + const offsetTop = event.clientY; + const offsetLeft = event.clientX; + const children = Array.from(event.target.children); + let element = children.find(blockEl => { + const blockElRect = blockEl.getBoundingClientRect(); + return blockEl.classList.contains('wp-block') && orientation === 'vertical' && blockElRect.top > offsetTop || blockEl.classList.contains('wp-block') && orientation === 'horizontal' && ((0,external_wp_i18n_namespaceObject.isRTL)() ? blockElRect.right < offsetLeft : blockElRect.left > offsetLeft); + }); + if (!element) { + hideInsertionPoint(); + return; + } + + // The block may be in an alignment wrapper, so check the first direct + // child if the element has no ID. + if (!element.id) { + element = element.firstElementChild; + if (!element) { + hideInsertionPoint(); return; } - let elapsed = node2.elapsedTime += dt; - const from = anim.fromValues[i]; - const v0 = node2.v0 != null ? node2.v0 : node2.v0 = is.arr(config2.velocity) ? config2.velocity[i] : config2.velocity; - let velocity; - const precision = config2.precision || (from == to2 ? 5e-3 : Math.min(1, Math.abs(to2 - from) * 1e-3)); - if (!is.und(config2.duration)) { - let p = 1; - if (config2.duration > 0) { - if (this._memoizedDuration !== config2.duration) { - this._memoizedDuration = config2.duration; - if (node2.durationProgress > 0) { - node2.elapsedTime = config2.duration * node2.durationProgress; - elapsed = node2.elapsedTime += dt; - } - } - p = (config2.progress || 0) + elapsed / this._memoizedDuration; - p = p > 1 ? 1 : p < 0 ? 0 : p; - node2.durationProgress = p; - } - position = from + config2.easing(p) * (to2 - from); - velocity = (position - node2.lastPosition) / dt; - finished = p == 1; - } else if (config2.decay) { - const decay = config2.decay === true ? 0.998 : config2.decay; - const e = Math.exp(-(1 - decay) * elapsed); - position = from + v0 / (1 - decay) * (1 - e); - finished = Math.abs(node2.lastPosition - position) <= precision; - velocity = v0 * e; - } else { - velocity = node2.lastVelocity == null ? v0 : node2.lastVelocity; - const restVelocity = config2.restVelocity || precision / 10; - const bounceFactor = config2.clamp ? 0 : config2.bounce; - const canBounce = !is.und(bounceFactor); - const isGrowing = from == to2 ? node2.v0 > 0 : from < to2; - let isMoving; - let isBouncing = false; - const step = 1; - const numSteps = Math.ceil(dt / step); - for (let n = 0; n < numSteps; ++n) { - isMoving = Math.abs(velocity) > restVelocity; - if (!isMoving) { - finished = Math.abs(to2 - position) <= precision; - if (finished) { - break; - } - } - if (canBounce) { - isBouncing = position == to2 || position > to2 == isGrowing; - if (isBouncing) { - velocity = -velocity * bounceFactor; - position = to2; - } - } - const springForce = -config2.tension * 1e-6 * (position - to2); - const dampingForce = -config2.friction * 1e-3 * velocity; - const acceleration = (springForce + dampingForce) / config2.mass; - velocity = velocity + acceleration * step; - position = position + velocity * step; - } - } - node2.lastVelocity = velocity; - if (Number.isNaN(position)) { - console.warn(`Got NaN while animating:`, this); - finished = true; - } } - if (payload && !payload[i].done) { - finished = false; + + // Don't show the insertion point if a parent block has an "overlay" + // See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337 + const clientId = element.id.slice('block-'.length); + if (!clientId || __unstableIsWithinBlockOverlay(clientId)) { + return; } - if (finished) { - node2.done = true; - } else { - idle = false; + + // Don't show the inserter when hovering above (conflicts with + // block toolbar) or inside selected block(s). + if (getSelectedBlockClientIds().includes(clientId)) { + return; } - if (node2.setValue(position, config2.round)) { - changed = true; + const elementRect = element.getBoundingClientRect(); + if (orientation === 'horizontal' && (event.clientY > elementRect.bottom || event.clientY < elementRect.top) || orientation === 'vertical' && (event.clientX > elementRect.right || event.clientX < elementRect.left)) { + hideInsertionPoint(); + return; } - }); - const node = getAnimated(this); - const currVal = node.getValue(); - if (idle) { - const finalVal = getFluidValue(anim.to); - if ((currVal !== finalVal || changed) && !config2.decay) { - node.setValue(finalVal); - this._onChange(finalVal); - } else if (changed && config2.decay) { - this._onChange(currVal); + const index = getBlockIndex(clientId); + + // Don't show the in-between inserter before the first block in + // the list (preserves the original behaviour). + if (index === 0) { + hideInsertionPoint(); + return; } - this._stop(); - } else if (changed) { - this._onChange(currVal); - } - } - /** Set the current value, while stopping the current animation */ - set(value) { - raf.batchedUpdates(() => { - this._stop(); - this._focus(value); - this._set(value); - }); - return this; - } - /** - * Freeze the active animation in time, as well as any updates merged - * before `resume` is called. - */ - pause() { - this._update({ pause: true }); - } - /** Resume the animation if paused. */ - resume() { - this._update({ pause: false }); - } - /** Skip to the end of the current animation. */ - finish() { - if (isAnimating(this)) { - const { to: to2, config: config2 } = this.animation; - raf.batchedUpdates(() => { - this._onStart(); - if (!config2.decay) { - this._set(to2, false); - } - this._stop(); + showInsertionPoint(rootClientId, index, { + __unstableWithInserter: true }); } - return this; - } - /** Push props into the pending queue. */ - update(props) { - const queue = this.queue || (this.queue = []); - queue.push(props); - return this; + node.addEventListener('mousemove', onMouseMove); + return () => { + node.removeEventListener('mousemove', onMouseMove); + }; + }, [openRef, getBlockListSettings, getBlockIndex, isMultiSelecting, showInsertionPoint, hideInsertionPoint, getSelectedBlockClientIds, isInBetweenInserterDisabled]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/with-client-id.js + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + +const withClientId = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { + const { + clientId + } = useBlockEditContext(); + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...props, + clientId: clientId + }); +}, 'withClientId'); +/* harmony default export */ var with_client_id = (withClientId); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/button-block-appender.js + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +const button_block_appender_ButtonBlockAppender = ({ + clientId, + showSeparator, + isFloating, + onAddBlock, + isToggle +}) => { + return (0,external_wp_element_namespaceObject.createElement)(button_block_appender, { + className: classnames_default()({ + 'block-list-appender__toggle': isToggle + }), + rootClientId: clientId, + showSeparator: showSeparator, + isFloating: isFloating, + onAddBlock: onAddBlock + }); +}; +/* harmony default export */ var inner_blocks_button_block_appender = (with_client_id(button_block_appender_ButtonBlockAppender)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/default-block-appender.js + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + + +const default_block_appender_DefaultBlockAppender = ({ + clientId +}) => { + return (0,external_wp_element_namespaceObject.createElement)(default_block_appender, { + rootClientId: clientId + }); +}; +/* harmony default export */ var inner_blocks_default_block_appender = ((0,external_wp_compose_namespaceObject.compose)([with_client_id, (0,external_wp_data_namespaceObject.withSelect)((select, { + clientId +}) => { + const { + getBlockOrder + } = select(store); + const blockClientIds = getBlockOrder(clientId); + return { + lastBlockClientId: blockClientIds[blockClientIds.length - 1] + }; +})])(default_block_appender_DefaultBlockAppender)); + +;// CONCATENATED MODULE: external ["wp","isShallowEqual"] +var external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"]; +var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-nested-settings-update.js +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + +/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */ + +const pendingSettingsUpdates = new WeakMap(); +function useShallowMemo(value) { + const [prevValue, setPrevValue] = (0,external_wp_element_namespaceObject.useState)(value); + if (!external_wp_isShallowEqual_default()(prevValue, value)) { + setPrevValue(value); } - start(to2, arg2) { - let queue; - if (!is.und(to2)) { - queue = [is.obj(to2) ? to2 : { ...arg2, to: to2 }]; + return prevValue; +} + +/** + * This hook is a side effect which updates the block-editor store when changes + * happen to inner block settings. The given props are transformed into a + * settings object, and if that is different from the current settings object in + * the block-editor store, then the store is updated with the new settings which + * came from props. + * + * @param {string} clientId The client ID of the block to update. + * @param {string[]} allowedBlocks An array of block names which are permitted + * in inner blocks. + * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}. + * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ]. + * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender. + * + * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead. + * + * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead. + * + * @param {string} [templateLock] The template lock specified for the inner + * blocks component. (e.g. "all") + * @param {boolean} captureToolbars Whether or children toolbars should be shown + * in the inner blocks component rather than on + * the child block. + * @param {string} orientation The direction in which the block + * should face. + * @param {Object} layout The layout object for the block container. + */ +function useNestedSettingsUpdate(clientId, allowedBlocks, prioritizedInserterBlocks, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, templateLock, captureToolbars, orientation, layout) { + const { + updateBlockListSettings + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const { + parentLock + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const rootClientId = select(store).getBlockRootClientId(clientId); + return { + parentLock: select(store).getTemplateLock(rootClientId) + }; + }, [clientId]); + + // Implementors often pass a new array on every render, + // and the contents of the arrays are just strings, so the entire array + // can be passed as dependencies but We need to include the length of the array, + // otherwise if the arrays change length but the first elements are equal the comparison, + // does not works as expected. + const _allowedBlocks = useShallowMemo(allowedBlocks); + const _prioritizedInserterBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => prioritizedInserterBlocks, + // eslint-disable-next-line react-hooks/exhaustive-deps + prioritizedInserterBlocks); + const _templateLock = templateLock === undefined || parentLock === 'contentOnly' ? parentLock : templateLock; + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + const newSettings = { + allowedBlocks: _allowedBlocks, + prioritizedInserterBlocks: _prioritizedInserterBlocks, + templateLock: _templateLock + }; + + // These values are not defined for RN, so only include them if they + // are defined. + if (captureToolbars !== undefined) { + newSettings.__experimentalCaptureToolbars = captureToolbars; + } + + // Orientation depends on layout, + // ideally the separate orientation prop should be deprecated. + if (orientation !== undefined) { + newSettings.orientation = orientation; } else { - queue = this.queue || []; - this.queue = []; + const layoutType = getLayoutType(layout?.type); + newSettings.orientation = layoutType.getOrientation(layout); } - return Promise.all( - queue.map((props) => { - const up = this._update(props); - return up; - }) - ).then((results) => getCombinedResult(this, results)); - } - /** - * Stop the current animation, and cancel any delayed updates. - * - * Pass `true` to call `onRest` with `cancelled: true`. - */ - stop(cancel) { - const { to: to2 } = this.animation; - this._focus(this.get()); - stopAsync(this._state, cancel && this._lastCallId); - raf.batchedUpdates(() => this._stop(to2, cancel)); - return this; - } - /** Restart the animation. */ - reset() { - this._update({ reset: true }); - } - /** @internal */ - eventObserved(event) { - if (event.type == "change") { - this._start(); - } else if (event.type == "priority") { - this.priority = event.priority + 1; + if (__experimentalDefaultBlock !== undefined) { + external_wp_deprecated_default()('__experimentalDefaultBlock', { + alternative: 'defaultBlock', + since: '6.3', + version: '6.4' + }); + newSettings.defaultBlock = __experimentalDefaultBlock; } - } - /** - * Parse the `to` and `from` range from the given `props` object. - * - * This also ensures the initial value is available to animated components - * during the render phase. - */ - _prepareNode(props) { - const key = this.key || ""; - let { to: to2, from } = props; - to2 = is.obj(to2) ? to2[key] : to2; - if (to2 == null || isAsyncTo(to2)) { - to2 = void 0; + if (defaultBlock !== undefined) { + newSettings.defaultBlock = defaultBlock; + } + if (__experimentalDirectInsert !== undefined) { + external_wp_deprecated_default()('__experimentalDirectInsert', { + alternative: 'directInsert', + since: '6.3', + version: '6.4' + }); + newSettings.directInsert = __experimentalDirectInsert; + } + if (directInsert !== undefined) { + newSettings.directInsert = directInsert; + } + + // Batch updates to block list settings to avoid triggering cascading renders + // for each container block included in a tree and optimize initial render. + // To avoid triggering updateBlockListSettings for each container block + // causing X re-renderings for X container blocks, + // we batch all the updatedBlockListSettings in a single "data" batch + // which results in a single re-render. + if (!pendingSettingsUpdates.get(registry)) { + pendingSettingsUpdates.set(registry, []); + } + pendingSettingsUpdates.get(registry).push([clientId, newSettings]); + window.queueMicrotask(() => { + if (pendingSettingsUpdates.get(registry)?.length) { + registry.batch(() => { + pendingSettingsUpdates.get(registry).forEach(args => { + updateBlockListSettings(...args); + }); + pendingSettingsUpdates.set(registry, []); + }); + } + }); + }, [clientId, _allowedBlocks, _prioritizedInserterBlocks, _templateLock, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, captureToolbars, orientation, updateBlockListSettings, layout, registry]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-inner-block-template-sync.js +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + +/** + * Internal dependencies + */ + + +/** + * This hook makes sure that a block's inner blocks stay in sync with the given + * block "template". The template is a block hierarchy to which inner blocks must + * conform. If the blocks get "out of sync" with the template and the template + * is meant to be locked (e.g. templateLock = "all" or templateLock = "contentOnly"), + * then we replace the inner blocks with the correct value after synchronizing it with the template. + * + * @param {string} clientId The block client ID. + * @param {Object} template The template to match. + * @param {string} templateLock The template lock state for the inner blocks. For + * example, if the template lock is set to "all", + * then the inner blocks will stay in sync with the + * template. If not defined or set to false, then + * the inner blocks will not be synchronized with + * the given template. + * @param {boolean} templateInsertUpdatesSelection Whether or not to update the + * block-editor selection state when inner blocks + * are replaced after template synchronization. + */ +function useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection) { + const { + getBlocks, + getSelectedBlocksInitialCaretPosition, + isBlockSelected + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + replaceInnerBlocks, + __unstableMarkNextChangeAsNotPersistent + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + innerBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => ({ + innerBlocks: select(store).getBlocks(clientId) + }), [clientId]); + + // Maintain a reference to the previous value so we can do a deep equality check. + const existingTemplate = (0,external_wp_element_namespaceObject.useRef)(null); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + let isCancelled = false; + + // There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate + // The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization), + // we need to schedule this one in a microtask as well. + // Example: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter. + window.queueMicrotask(() => { + if (isCancelled) { + return; + } + + // Only synchronize innerBlocks with template if innerBlocks are empty + // or a locking "all" or "contentOnly" exists directly on the block. + const currentInnerBlocks = getBlocks(clientId); + const shouldApplyTemplate = currentInnerBlocks.length === 0 || templateLock === 'all' || templateLock === 'contentOnly'; + const hasTemplateChanged = !es6_default()(template, existingTemplate.current); + if (!shouldApplyTemplate || !hasTemplateChanged) { + return; + } + existingTemplate.current = template; + const nextBlocks = (0,external_wp_blocks_namespaceObject.synchronizeBlocksWithTemplate)(currentInnerBlocks, template); + if (!es6_default()(nextBlocks, currentInnerBlocks)) { + __unstableMarkNextChangeAsNotPersistent(); + replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0 && isBlockSelected(clientId), + // This ensures the "initialPosition" doesn't change when applying the template + // If we're supposed to focus the block, we'll focus the first inner block + // otherwise, we won't apply any auto-focus. + // This ensures for instance that the focus stays in the inserter when inserting the "buttons" block. + getSelectedBlocksInitialCaretPosition()); + } + }); + return () => { + isCancelled = true; + }; + }, [innerBlocks, template, templateLock, clientId]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-block-context.js +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + +/** + * Returns a context object for a given block. + * + * @param {string} clientId The block client ID. + * + * @return {Record} Context value. + */ +function useBlockContext(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const block = select(store).getBlock(clientId); + if (!block) { + return undefined; } - from = is.obj(from) ? from[key] : from; - if (from == null) { - from = void 0; + const blockType = select(external_wp_blocks_namespaceObject.store).getBlockType(block.name); + if (!blockType) { + return undefined; } - const range = { to: to2, from }; - if (!hasAnimated(this)) { - if (props.reverse) - [to2, from] = [from, to2]; - from = getFluidValue(from); - if (!is.und(from)) { - this._set(from); - } else if (!getAnimated(this)) { - this._set(to2); - } + if (Object.keys(blockType.providesContext).length === 0) { + return undefined; } - return range; + return Object.fromEntries(Object.entries(blockType.providesContext).map(([contextName, attributeName]) => [contextName, block.attributes[attributeName]])); + }, [clientId]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-on-block-drop/index.js +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */ +/** @typedef {import('./types').WPDropOperation} WPDropOperation */ + +/** + * Retrieve the data for a block drop event. + * + * @param {WPSyntheticEvent} event The drop event. + * + * @return {Object} An object with block drag and drop data. + */ +function parseDropEvent(event) { + let result = { + srcRootClientId: null, + srcClientIds: null, + srcIndex: null, + type: null, + blocks: null + }; + if (!event.dataTransfer) { + return result; } - /** Every update is processed by this method before merging. */ - _update({ ...props }, isLoop) { - const { key, defaultProps } = this; - if (props.default) - Object.assign( - defaultProps, - getDefaultProps( - props, - (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value - ) - ); - mergeActiveFn(this, props, "onProps"); - sendEvent(this, "onProps", props, this); - const range = this._prepareNode(props); - if (Object.isFrozen(this)) { - throw Error( - "Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?" - ); + try { + result = Object.assign(result, JSON.parse(event.dataTransfer.getData('wp-blocks'))); + } catch (err) { + return result; + } + return result; +} + +/** + * A function that returns an event handler function for block drop events. + * + * @param {string} targetRootClientId The root client id where the block(s) will be inserted. + * @param {number} targetBlockIndex The index where the block(s) will be inserted. + * @param {Function} getBlockIndex A function that gets the index of a block. + * @param {Function} getClientIdsOfDescendants A function that gets the client ids of descendant blocks. + * @param {Function} moveBlocks A function that moves blocks. + * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. + * @param {Function} clearSelectedBlock A function that clears block selection. + * @return {Function} The event handler for a block drop event. + */ +function onBlockDrop(targetRootClientId, targetBlockIndex, getBlockIndex, getClientIdsOfDescendants, moveBlocks, insertOrReplaceBlocks, clearSelectedBlock) { + return event => { + const { + srcRootClientId: sourceRootClientId, + srcClientIds: sourceClientIds, + type: dropType, + blocks + } = parseDropEvent(event); + + // If the user is inserting a block. + if (dropType === 'inserter') { + clearSelectedBlock(); + const blocksToInsert = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); + insertOrReplaceBlocks(blocksToInsert, true, null); } - const state = this._state; - return scheduleProps(++this._lastCallId, { - key, - props, - defaultProps, - state, - actions: { - pause: () => { - if (!isPaused(this)) { - setPausedBit(this, true); - flushCalls(state.pauseQueue); - sendEvent( - this, - "onPause", - getFinishedResult(this, checkFinished(this, this.animation.to)), - this - ); - } - }, - resume: () => { - if (isPaused(this)) { - setPausedBit(this, false); - if (isAnimating(this)) { - this._resume(); - } - flushCalls(state.resumeQueue); - sendEvent( - this, - "onResume", - getFinishedResult(this, checkFinished(this, this.animation.to)), - this - ); - } - }, - start: this._merge.bind(this, range) + + // If the user is moving a block. + if (dropType === 'block') { + const sourceBlockIndex = getBlockIndex(sourceClientIds[0]); + + // If the user is dropping to the same position, return early. + if (sourceRootClientId === targetRootClientId && sourceBlockIndex === targetBlockIndex) { + return; } - }).then((result) => { - if (props.loop && result.finished && !(isLoop && result.noop)) { - const nextProps = createLoopUpdate(props); - if (nextProps) { - return this._update(nextProps, true); - } + + // If the user is attempting to drop a block within its own + // nested blocks, return early as this would create infinite + // recursion. + if (sourceClientIds.includes(targetRootClientId) || getClientIdsOfDescendants(sourceClientIds).some(id => id === targetRootClientId)) { + return; } - return result; - }); - } - /** Merge props into the current animation */ - _merge(range, props, resolve) { - if (props.cancel) { - this.stop(true); - return resolve(getCancelledResult(this)); + const isAtSameLevel = sourceRootClientId === targetRootClientId; + const draggedBlockCount = sourceClientIds.length; + + // If the block is kept at the same level and moved downwards, + // subtract to take into account that the blocks being dragged + // were removed from the block list above the insertion point. + const insertIndex = isAtSameLevel && sourceBlockIndex < targetBlockIndex ? targetBlockIndex - draggedBlockCount : targetBlockIndex; + moveBlocks(sourceClientIds, sourceRootClientId, insertIndex); } - const hasToProp = !is.und(range.to); - const hasFromProp = !is.und(range.from); - if (hasToProp || hasFromProp) { - if (props.callId > this._lastToId) { - this._lastToId = props.callId; - } else { - return resolve(getCancelledResult(this)); - } + }; +} + +/** + * A function that returns an event handler function for block-related file drop events. + * + * @param {string} targetRootClientId The root client id where the block(s) will be inserted. + * @param {number} targetBlockIndex The index where the block(s) will be inserted. + * @param {boolean} hasUploadPermissions Whether the user has upload permissions. + * @param {Function} updateBlockAttributes A function that updates a block's attributes. + * @param {Function} canInsertBlockType A function that returns checks whether a block type can be inserted. + * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. + * + * @return {Function} The event handler for a block-related file drop event. + */ +function onFilesDrop(targetRootClientId, targetBlockIndex, hasUploadPermissions, updateBlockAttributes, canInsertBlockType, insertOrReplaceBlocks) { + return files => { + if (!hasUploadPermissions) { + return; } - const { key, defaultProps, animation: anim } = this; - const { to: prevTo, from: prevFrom } = anim; - let { to: to2 = prevTo, from = prevFrom } = range; - if (hasFromProp && !hasToProp && (!props.default || is.und(to2))) { - to2 = from; + const transformation = (0,external_wp_blocks_namespaceObject.findTransform)((0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'), transform => transform.type === 'files' && canInsertBlockType(transform.blockName, targetRootClientId) && transform.isMatch(files)); + if (transformation) { + const blocks = transformation.transform(files, updateBlockAttributes); + insertOrReplaceBlocks(blocks); } - if (props.reverse) - [to2, from] = [from, to2]; - const hasFromChanged = !isEqual(from, prevFrom); - if (hasFromChanged) { - anim.from = from; + }; +} + +/** + * A function that returns an event handler function for block-related HTML drop events. + * + * @param {string} targetRootClientId The root client id where the block(s) will be inserted. + * @param {number} targetBlockIndex The index where the block(s) will be inserted. + * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. + * + * @return {Function} The event handler for a block-related HTML drop event. + */ +function onHTMLDrop(targetRootClientId, targetBlockIndex, insertOrReplaceBlocks) { + return HTML => { + const blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ + HTML, + mode: 'BLOCKS' + }); + if (blocks.length) { + insertOrReplaceBlocks(blocks); } - from = getFluidValue(from); - const hasToChanged = !isEqual(to2, prevTo); - if (hasToChanged) { - this._focus(to2); + }; +} + +/** + * A React hook for handling block drop events. + * + * @param {string} targetRootClientId The root client id where the block(s) will be inserted. + * @param {number} targetBlockIndex The index where the block(s) will be inserted. + * @param {Object} options The optional options. + * @param {WPDropOperation} [options.operation] The type of operation to perform on drop. Could be `insert` or `replace` for now. + * + * @return {Function} A function to be passed to the onDrop handler. + */ +function useOnBlockDrop(targetRootClientId, targetBlockIndex, options = {}) { + const { + operation = 'insert' + } = options; + const hasUploadPermissions = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().mediaUpload, []); + const { + canInsertBlockType, + getBlockIndex, + getClientIdsOfDescendants, + getBlockOrder, + getBlocksByClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + insertBlocks, + moveBlocksToPosition, + updateBlockAttributes, + clearSelectedBlock, + replaceBlocks, + removeBlocks + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const insertOrReplaceBlocks = (0,external_wp_element_namespaceObject.useCallback)((blocks, updateSelection = true, initialPosition = 0) => { + if (operation === 'replace') { + const clientIds = getBlockOrder(targetRootClientId); + const clientId = clientIds[targetBlockIndex]; + replaceBlocks(clientId, blocks, undefined, initialPosition); + } else { + insertBlocks(blocks, targetBlockIndex, targetRootClientId, updateSelection, initialPosition); } - const hasAsyncTo = isAsyncTo(props.to); - const { config: config2 } = anim; - const { decay, velocity } = config2; - if (hasToProp || hasFromProp) { - config2.velocity = 0; + }, [operation, getBlockOrder, insertBlocks, replaceBlocks, targetBlockIndex, targetRootClientId]); + const moveBlocks = (0,external_wp_element_namespaceObject.useCallback)((sourceClientIds, sourceRootClientId, insertIndex) => { + if (operation === 'replace') { + const sourceBlocks = getBlocksByClientId(sourceClientIds); + const targetBlockClientIds = getBlockOrder(targetRootClientId); + const targetBlockClientId = targetBlockClientIds[targetBlockIndex]; + registry.batch(() => { + // Remove the source blocks. + removeBlocks(sourceClientIds, false); + // Replace the target block with the source blocks. + replaceBlocks(targetBlockClientId, sourceBlocks, undefined, 0); + }); + } else { + moveBlocksToPosition(sourceClientIds, sourceRootClientId, targetRootClientId, insertIndex); } - if (props.config && !hasAsyncTo) { - mergeConfig( - config2, - callProp(props.config, key), - // Avoid calling the same "config" prop twice. - props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0 - ); + }, [operation, getBlockOrder, getBlocksByClientId, insertBlocks, moveBlocksToPosition, removeBlocks, targetBlockIndex, targetRootClientId]); + const _onDrop = onBlockDrop(targetRootClientId, targetBlockIndex, getBlockIndex, getClientIdsOfDescendants, moveBlocks, insertOrReplaceBlocks, clearSelectedBlock); + const _onFilesDrop = onFilesDrop(targetRootClientId, targetBlockIndex, hasUploadPermissions, updateBlockAttributes, canInsertBlockType, insertOrReplaceBlocks); + const _onHTMLDrop = onHTMLDrop(targetRootClientId, targetBlockIndex, insertOrReplaceBlocks); + return event => { + const files = (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(event.dataTransfer); + const html = event.dataTransfer.getData('text/html'); + + /** + * From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML. + * The order of the checks is important to recognise the HTML drop. + */ + if (html) { + _onHTMLDrop(html); + } else if (files.length) { + _onFilesDrop(files); + } else { + _onDrop(event); } - let node = getAnimated(this); - if (!node || is.und(to2)) { - return resolve(getFinishedResult(this, true)); + }; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/math.js +/** + * A string representing the name of an edge. + * + * @typedef {'top'|'right'|'bottom'|'left'} WPEdgeName + */ + +/** + * @typedef {Object} WPPoint + * @property {number} x The horizontal position. + * @property {number} y The vertical position. + */ + +/** + * Given a point, a DOMRect and the name of an edge, returns the distance to + * that edge of the rect. + * + * This function works for edges that are horizontal or vertical (e.g. not + * rotated), the following terms are used so that the function works in both + * orientations: + * + * - Forward, meaning the axis running horizontally when an edge is vertical + * and vertically when an edge is horizontal. + * - Lateral, meaning the axis running vertically when an edge is vertical + * and horizontally when an edge is horizontal. + * + * @param {WPPoint} point The point to measure distance from. + * @param {DOMRect} rect A DOM Rect containing edge positions. + * @param {WPEdgeName} edge The edge to measure to. + */ +function getDistanceFromPointToEdge(point, rect, edge) { + const isHorizontal = edge === 'top' || edge === 'bottom'; + const { + x, + y + } = point; + const pointLateralPosition = isHorizontal ? x : y; + const pointForwardPosition = isHorizontal ? y : x; + const edgeStart = isHorizontal ? rect.left : rect.top; + const edgeEnd = isHorizontal ? rect.right : rect.bottom; + const edgeForwardPosition = rect[edge]; + + // Measure the straight line distance to the edge of the rect, when the + // point is adjacent to the edge. + // Else, if the point is positioned diagonally to the edge of the rect, + // measure diagonally to the nearest corner that the edge meets. + let edgeLateralPosition; + if (pointLateralPosition >= edgeStart && pointLateralPosition <= edgeEnd) { + edgeLateralPosition = pointLateralPosition; + } else if (pointLateralPosition < edgeEnd) { + edgeLateralPosition = edgeStart; + } else { + edgeLateralPosition = edgeEnd; + } + return Math.sqrt((pointLateralPosition - edgeLateralPosition) ** 2 + (pointForwardPosition - edgeForwardPosition) ** 2); +} + +/** + * Given a point, a DOMRect and a list of allowed edges returns the name of and + * distance to the nearest edge. + * + * @param {WPPoint} point The point to measure distance from. + * @param {DOMRect} rect A DOM Rect containing edge positions. + * @param {WPEdgeName[]} allowedEdges A list of the edges included in the + * calculation. Defaults to all edges. + * + * @return {[number, string]} An array where the first value is the distance + * and a second is the edge name. + */ +function getDistanceToNearestEdge(point, rect, allowedEdges = ['top', 'bottom', 'left', 'right']) { + let candidateDistance; + let candidateEdge; + allowedEdges.forEach(edge => { + const distance = getDistanceFromPointToEdge(point, rect, edge); + if (candidateDistance === undefined || distance < candidateDistance) { + candidateDistance = distance; + candidateEdge = edge; } - const reset = ( - // When `reset` is undefined, the `from` prop implies `reset: true`, - // except for declarative updates. When `reset` is defined, there - // must exist a value to animate from. - is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key) - ); - const value = reset ? from : this.get(); - const goal = computeGoal(to2); - const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal); - const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key)); - if (hasToChanged) { - const nodeType = getAnimatedType(to2); - if (nodeType !== node.constructor) { - if (immediate) { - node = this._set(goal); - } else - throw Error( - `Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the "to" prop suggests` - ); - } + }); + return [candidateDistance, candidateEdge]; +} + +/** + * Is the point contained by the rectangle. + * + * @param {WPPoint} point The point. + * @param {DOMRect} rect The rectangle. + * + * @return {boolean} True if the point is contained by the rectangle, false otherwise. + */ +function isPointContainedByRect(point, rect) { + return rect.left <= point.x && rect.right >= point.x && rect.top <= point.y && rect.bottom >= point.y; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-drop-zone/index.js +/** + * WordPress dependencies + */ + + + + + + +/** + * Internal dependencies + */ + + + + +/** @typedef {import('../../utils/math').WPPoint} WPPoint */ +/** @typedef {import('../use-on-block-drop/types').WPDropOperation} WPDropOperation */ + +/** + * The orientation of a block list. + * + * @typedef {'horizontal'|'vertical'|undefined} WPBlockListOrientation + */ + +/** + * The insert position when dropping a block. + * + * @typedef {'before'|'after'} WPInsertPosition + */ + +/** + * @typedef {Object} WPBlockData + * @property {boolean} isUnmodifiedDefaultBlock Is the block unmodified default block. + * @property {() => DOMRect} getBoundingClientRect Get the bounding client rect of the block. + * @property {number} blockIndex The index of the block. + */ + +/** + * Get the drop target position from a given drop point and the orientation. + * + * @param {WPBlockData[]} blocksData The block data list. + * @param {WPPoint} position The position of the item being dragged. + * @param {WPBlockListOrientation} orientation The orientation of the block list. + * @return {[number, WPDropOperation]} The drop target position. + */ +function getDropTargetPosition(blocksData, position, orientation = 'vertical') { + const allowedEdges = orientation === 'horizontal' ? ['left', 'right'] : ['top', 'bottom']; + const isRightToLeft = (0,external_wp_i18n_namespaceObject.isRTL)(); + let nearestIndex = 0; + let insertPosition = 'before'; + let minDistance = Infinity; + blocksData.forEach(({ + isUnmodifiedDefaultBlock, + getBoundingClientRect, + blockIndex + }) => { + const rect = getBoundingClientRect(); + let [distance, edge] = getDistanceToNearestEdge(position, rect, allowedEdges); + // Prioritize the element if the point is inside of an unmodified default block. + if (isUnmodifiedDefaultBlock && isPointContainedByRect(position, rect)) { + distance = 0; } - const goalType = node.constructor; - let started = hasFluidValue(to2); - let finished = false; - if (!started) { - const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged; - if (hasToChanged || hasValueChanged) { - finished = isEqual(computeGoal(value), goal); - started = !finished; - } - if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config2.decay, decay) || !isEqual(config2.velocity, velocity)) { - started = true; - } + if (distance < minDistance) { + // Where the dropped block will be inserted on the nearest block. + insertPosition = edge === 'bottom' || !isRightToLeft && edge === 'right' || isRightToLeft && edge === 'left' ? 'after' : 'before'; + + // Update the currently known best candidate. + minDistance = distance; + nearestIndex = blockIndex; } - if (finished && isAnimating(this)) { - if (anim.changed && !reset) { - started = true; - } else if (!started) { - this._stop(prevTo); - } + }); + const adjacentIndex = nearestIndex + (insertPosition === 'after' ? 1 : -1); + const isNearestBlockUnmodifiedDefaultBlock = !!blocksData[nearestIndex]?.isUnmodifiedDefaultBlock; + const isAdjacentBlockUnmodifiedDefaultBlock = !!blocksData[adjacentIndex]?.isUnmodifiedDefaultBlock; + + // If both blocks are not unmodified default blocks then just insert between them. + if (!isNearestBlockUnmodifiedDefaultBlock && !isAdjacentBlockUnmodifiedDefaultBlock) { + // If the user is dropping to the trailing edge of the block + // add 1 to the index to represent dragging after. + const insertionIndex = insertPosition === 'after' ? nearestIndex + 1 : nearestIndex; + return [insertionIndex, 'insert']; + } + + // Otherwise, replace the nearest unmodified default block. + return [isNearestBlockUnmodifiedDefaultBlock ? nearestIndex : adjacentIndex, 'replace']; +} + +/** + * @typedef {Object} WPBlockDropZoneConfig + * @property {string} rootClientId The root client id for the block list. + */ + +/** + * A React hook that can be used to make a block list handle drag and drop. + * + * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone. + */ +function useBlockDropZone({ + // An undefined value represents a top-level block. Default to an empty + // string for this so that `targetRootClientId` can be easily compared to + // values returned by the `getRootBlockClientId` selector, which also uses + // an empty string to represent top-level blocks. + rootClientId: targetRootClientId = '' +} = {}) { + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const [dropTarget, setDropTarget] = (0,external_wp_element_namespaceObject.useState)({ + index: null, + operation: 'insert' + }); + const isDisabled = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __unstableIsWithinBlockOverlay, + __unstableHasActiveBlockOverlayActive, + getBlockEditingMode + } = select(store); + const blockEditingMode = getBlockEditingMode(targetRootClientId); + return blockEditingMode !== 'default' || __unstableHasActiveBlockOverlayActive(targetRootClientId) || __unstableIsWithinBlockOverlay(targetRootClientId); + }, [targetRootClientId]); + const { + getBlockListSettings, + getBlocks, + getBlockIndex + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + showInsertionPoint, + hideInsertionPoint + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const onBlockDrop = useOnBlockDrop(targetRootClientId, dropTarget.index, { + operation: dropTarget.operation + }); + const throttled = (0,external_wp_compose_namespaceObject.useThrottle)((0,external_wp_element_namespaceObject.useCallback)((event, ownerDocument) => { + const blocks = getBlocks(targetRootClientId); + + // The block list is empty, don't show the insertion point but still allow dropping. + if (blocks.length === 0) { + registry.batch(() => { + setDropTarget({ + index: 0, + operation: 'insert' + }); + showInsertionPoint(targetRootClientId, 0, { + operation: 'insert' + }); + }); + return; } - if (!hasAsyncTo) { - if (started || hasFluidValue(prevTo)) { - anim.values = node.getPayload(); - anim.toValues = hasFluidValue(to2) ? null : goalType == AnimatedString ? [1] : toArray(goal); - } - if (anim.immediate != immediate) { - anim.immediate = immediate; - if (!immediate && !reset) { - this._set(prevTo); - } - } - if (started) { - const { onRest } = anim; - react_spring_shared_modern_each(ACTIVE_EVENTS, (type) => mergeActiveFn(this, props, type)); - const result = getFinishedResult(this, checkFinished(this, prevTo)); - flushCalls(this._pendingCalls, result); - this._pendingCalls.add(resolve); - if (anim.changed) - raf.batchedUpdates(() => { - anim.changed = !reset; - onRest?.(result, this); - if (reset) { - callProp(defaultProps.onRest, result); - } else { - anim.onStart?.(result, this); - } - }); - } + const blocksData = blocks.map(block => { + const clientId = block.clientId; + return { + isUnmodifiedDefaultBlock: (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(block), + getBoundingClientRect: () => ownerDocument.getElementById(`block-${clientId}`).getBoundingClientRect(), + blockIndex: getBlockIndex(clientId) + }; + }); + const [targetIndex, operation] = getDropTargetPosition(blocksData, { + x: event.clientX, + y: event.clientY + }, getBlockListSettings(targetRootClientId)?.orientation); + registry.batch(() => { + setDropTarget({ + index: targetIndex, + operation + }); + showInsertionPoint(targetRootClientId, targetIndex, { + operation + }); + }); + }, [getBlocks, targetRootClientId, getBlockListSettings, registry, showInsertionPoint, getBlockIndex]), 200); + return (0,external_wp_compose_namespaceObject.__experimentalUseDropZone)({ + isDisabled, + onDrop: onBlockDrop, + onDragOver(event) { + // `currentTarget` is only available while the event is being + // handled, so get it now and pass it to the thottled function. + // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget + throttled(event, event.currentTarget.ownerDocument); + }, + onDragLeave() { + throttled.cancel(); + hideInsertionPoint(); + }, + onDragEnd() { + throttled.cancel(); + hideInsertionPoint(); } - if (reset) { - this._set(value); + }); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/index.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + + + + + + + + + + +const EMPTY_OBJECT = {}; + +/** + * InnerBlocks is a component which allows a single block to have multiple blocks + * as children. The UncontrolledInnerBlocks component is used whenever the inner + * blocks are not controlled by another entity. In other words, it is normally + * used for inner blocks in the post editor + * + * @param {Object} props The component props. + */ +function UncontrolledInnerBlocks(props) { + const { + clientId, + allowedBlocks, + prioritizedInserterBlocks, + defaultBlock, + directInsert, + __experimentalDefaultBlock, + __experimentalDirectInsert, + template, + templateLock, + wrapperRef, + templateInsertUpdatesSelection, + __experimentalCaptureToolbars: captureToolbars, + __experimentalAppenderTagName, + renderAppender, + orientation, + placeholder, + layout + } = props; + useNestedSettingsUpdate(clientId, allowedBlocks, prioritizedInserterBlocks, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, templateLock, captureToolbars, orientation, layout); + useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection); + const context = useBlockContext(clientId); + const name = (0,external_wp_data_namespaceObject.useSelect)(select => { + return select(store).getBlock(clientId)?.name; + }, [clientId]); + const defaultLayoutBlockSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'layout') || (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, '__experimentalLayout') || EMPTY_OBJECT; + const { + allowSizingOnChildren = false + } = defaultLayoutBlockSupport; + const defaultLayout = use_setting_useSetting('layout') || EMPTY_OBJECT; + const usedLayout = layout || defaultLayoutBlockSupport; + const memoedLayout = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + // Default layout will know about any content/wide size defined by the theme. + ...defaultLayout, + ...usedLayout, + ...(allowSizingOnChildren && { + allowSizingOnChildren: true + }) + }), [defaultLayout, usedLayout, allowSizingOnChildren]); + + // This component needs to always be synchronous as it's the one changing + // the async mode depending on the block selection. + return (0,external_wp_element_namespaceObject.createElement)(BlockContextProvider, { + value: context + }, (0,external_wp_element_namespaceObject.createElement)(BlockListItems, { + rootClientId: clientId, + renderAppender: renderAppender, + __experimentalAppenderTagName: __experimentalAppenderTagName, + layout: memoedLayout, + wrapperRef: wrapperRef, + placeholder: placeholder + })); +} + +/** + * The controlled inner blocks component wraps the uncontrolled inner blocks + * component with the blockSync hook. This keeps the innerBlocks of the block in + * the block-editor store in sync with the blocks of the controlling entity. An + * example of an inner block controller is a template part block, which provides + * its own blocks from the template part entity data source. + * + * @param {Object} props The component props. + */ +function ControlledInnerBlocks(props) { + useBlockSync(props); + return (0,external_wp_element_namespaceObject.createElement)(UncontrolledInnerBlocks, { + ...props + }); +} +const ForwardedInnerBlocks = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + const innerBlocksProps = useInnerBlocksProps({ + ref + }, props); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inner-blocks" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + ...innerBlocksProps + })); +}); + +/** + * This hook is used to lightly mark an element as an inner blocks wrapper + * element. Call this hook and pass the returned props to the element to mark as + * an inner blocks wrapper, automatically rendering inner blocks as children. If + * you define a ref for the element, it is important to pass the ref to this + * hook, which the hook in turn will pass to the component through the props it + * returns. Optionally, you can also pass any other props through this hook, and + * they will be merged and returned. + * + * @param {Object} props Optional. Props to pass to the element. Must contain + * the ref if one is defined. + * @param {Object} options Optional. Inner blocks options. + * + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md + */ +function useInnerBlocksProps(props = {}, options = {}) { + const { + __unstableDisableLayoutClassNames, + __unstableDisableDropZone + } = options; + const { + clientId, + layout = null, + __unstableLayoutClassNames: layoutClassNames = '' + } = useBlockEditContext(); + const isSmallScreen = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); + const { + __experimentalCaptureToolbars, + hasOverlay + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + if (!clientId) { + return {}; } - if (hasAsyncTo) { - resolve(runAsync(props.to, props, this._state, this)); - } else if (started) { - this._start(); - } else if (isAnimating(this) && !hasToChanged) { - this._pendingCalls.add(resolve); - } else { - resolve(getNoopResult(value)); + const { + getBlockName, + isBlockSelected, + hasSelectedInnerBlock, + __unstableGetEditorMode + } = select(store); + const blockName = getBlockName(clientId); + const enableClickThrough = __unstableGetEditorMode() === 'navigation' || isSmallScreen; + return { + __experimentalCaptureToolbars: select(external_wp_blocks_namespaceObject.store).hasBlockSupport(blockName, '__experimentalExposeControlsToChildren', false), + hasOverlay: blockName !== 'core/template' && !isBlockSelected(clientId) && !hasSelectedInnerBlock(clientId, true) && enableClickThrough + }; + }, [clientId, isSmallScreen]); + const blockDropZoneRef = useBlockDropZone({ + rootClientId: clientId + }); + const ref = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, __unstableDisableDropZone ? null : blockDropZoneRef]); + const innerBlocksProps = { + __experimentalCaptureToolbars, + layout, + ...options + }; + const InnerBlocks = innerBlocksProps.value && innerBlocksProps.onChange ? ControlledInnerBlocks : UncontrolledInnerBlocks; + return { + ...props, + ref, + className: classnames_default()(props.className, 'block-editor-block-list__layout', __unstableDisableLayoutClassNames ? '' : layoutClassNames, { + 'has-overlay': hasOverlay + }), + children: clientId ? (0,external_wp_element_namespaceObject.createElement)(InnerBlocks, { + ...innerBlocksProps, + clientId: clientId + }) : (0,external_wp_element_namespaceObject.createElement)(BlockListItems, { + ...options + }) + }; +} +useInnerBlocksProps.save = external_wp_blocks_namespaceObject.__unstableGetInnerBlocksProps; + +// Expose default appender placeholders as components. +ForwardedInnerBlocks.DefaultBlockAppender = inner_blocks_default_block_appender; +ForwardedInnerBlocks.ButtonBlockAppender = inner_blocks_button_block_appender; +ForwardedInnerBlocks.Content = () => useInnerBlocksProps.save().children; + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md + */ +/* harmony default export */ var inner_blocks = (ForwardedInnerBlocks); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/observe-typing/index.js + +/** + * WordPress dependencies + */ + + + + + +/** + * Internal dependencies + */ + + +/** + * Set of key codes upon which typing is to be initiated on a keydown event. + * + * @type {Set} + */ +const KEY_DOWN_ELIGIBLE_KEY_CODES = new Set([external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.RIGHT, external_wp_keycodes_namespaceObject.DOWN, external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.ENTER, external_wp_keycodes_namespaceObject.BACKSPACE]); + +/** + * Returns true if a given keydown event can be inferred as intent to start + * typing, or false otherwise. A keydown is considered eligible if it is a + * text navigation without shift active. + * + * @param {KeyboardEvent} event Keydown event to test. + * + * @return {boolean} Whether event is eligible to start typing. + */ +function isKeyDownEligibleForStartTyping(event) { + const { + keyCode, + shiftKey + } = event; + return !shiftKey && KEY_DOWN_ELIGIBLE_KEY_CODES.has(keyCode); +} + +/** + * Removes the `isTyping` flag when the mouse moves in the document of the given + * element. + */ +function useMouseMoveTypingReset() { + const isTyping = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isTyping(), []); + const { + stopTyping + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + if (!isTyping) { + return; } - } - /** Update the `animation.to` value, which might be a `FluidValue` */ - _focus(value) { - const anim = this.animation; - if (value !== anim.to) { - if (getFluidObservers(this)) { - this._detach(); - } - anim.to = value; - if (getFluidObservers(this)) { - this._attach(); + const { + ownerDocument + } = node; + let lastClientX; + let lastClientY; + + /** + * On mouse move, unset typing flag if user has moved cursor. + * + * @param {MouseEvent} event Mousemove event. + */ + function stopTypingOnMouseMove(event) { + const { + clientX, + clientY + } = event; + + // We need to check that the mouse really moved because Safari + // triggers mousemove events when shift or ctrl are pressed. + if (lastClientX && lastClientY && (lastClientX !== clientX || lastClientY !== clientY)) { + stopTyping(); } + lastClientX = clientX; + lastClientY = clientY; } - } - _attach() { - let priority = 0; - const { to: to2 } = this.animation; - if (hasFluidValue(to2)) { - addFluidObserver(to2, this); - if (isFrameValue(to2)) { - priority = to2.priority + 1; + ownerDocument.addEventListener('mousemove', stopTypingOnMouseMove); + return () => { + ownerDocument.removeEventListener('mousemove', stopTypingOnMouseMove); + }; + }, [isTyping, stopTyping]); +} + +/** + * Sets and removes the `isTyping` flag based on user actions: + * + * - Sets the flag if the user types within the given element. + * - Removes the flag when the user selects some text, focusses a non-text + * field, presses ESC or TAB, or moves the mouse in the document. + */ +function useTypingObserver() { + const { + isTyping, + hasInlineToolbar + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + isTyping: _isTyping, + getSettings + } = select(store); + return { + isTyping: _isTyping(), + hasInlineToolbar: getSettings().hasInlineToolbar + }; + }, []); + const { + startTyping, + stopTyping + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const ref1 = useMouseMoveTypingReset(); + const ref2 = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + const { + ownerDocument + } = node; + const { + defaultView + } = ownerDocument; + const selection = defaultView.getSelection(); + + // Listeners to stop typing should only be added when typing. + // Listeners to start typing should only be added when not typing. + if (isTyping) { + let timerId; + + /** + * Stops typing when focus transitions to a non-text field element. + * + * @param {FocusEvent} event Focus event. + */ + function stopTypingOnNonTextField(event) { + const { + target + } = event; + + // Since focus to a non-text field via arrow key will trigger + // before the keydown event, wait until after current stack + // before evaluating whether typing is to be stopped. Otherwise, + // typing will re-start. + timerId = defaultView.setTimeout(() => { + if (!(0,external_wp_dom_namespaceObject.isTextField)(target)) { + stopTyping(); + } + }); } - } - this.priority = priority; - } - _detach() { - const { to: to2 } = this.animation; - if (hasFluidValue(to2)) { - removeFluidObserver(to2, this); - } - } - /** - * Update the current value from outside the frameloop, - * and return the `Animated` node. - */ - _set(arg, idle = true) { - const value = getFluidValue(arg); - if (!is.und(value)) { - const oldNode = getAnimated(this); - if (!oldNode || !isEqual(value, oldNode.getValue())) { - const nodeType = getAnimatedType(value); - if (!oldNode || oldNode.constructor != nodeType) { - setAnimated(this, nodeType.create(value)); - } else { - oldNode.setValue(value); + + /** + * Unsets typing flag if user presses Escape while typing flag is + * active. + * + * @param {KeyboardEvent} event Keypress or keydown event to + * interpret. + */ + function stopTypingOnEscapeKey(event) { + const { + keyCode + } = event; + if (keyCode === external_wp_keycodes_namespaceObject.ESCAPE || keyCode === external_wp_keycodes_namespaceObject.TAB) { + stopTyping(); } - if (oldNode) { - raf.batchedUpdates(() => { - this._onChange(value, idle); - }); + } + + /** + * On selection change, unset typing flag if user has made an + * uncollapsed (shift) selection. + */ + function stopTypingOnSelectionUncollapse() { + if (!selection.isCollapsed) { + stopTyping(); } } - } - return getAnimated(this); - } - _onStart() { - const anim = this.animation; - if (!anim.changed) { - anim.changed = true; - sendEvent( - this, - "onStart", - getFinishedResult(this, checkFinished(this, anim.to)), - this - ); - } - } - _onChange(value, idle) { - if (!idle) { - this._onStart(); - callProp(this.animation.onChange, value, this); - } - callProp(this.defaultProps.onChange, value, this); - super._onChange(value, idle); - } - // This method resets the animation state (even if already animating) to - // ensure the latest from/to range is used, and it also ensures this spring - // is added to the frameloop. - _start() { - const anim = this.animation; - getAnimated(this).reset(getFluidValue(anim.to)); - if (!anim.immediate) { - anim.fromValues = anim.values.map((node) => node.lastPosition); - } - if (!isAnimating(this)) { - setActiveBit(this, true); - if (!isPaused(this)) { - this._resume(); + node.addEventListener('focus', stopTypingOnNonTextField); + node.addEventListener('keydown', stopTypingOnEscapeKey); + if (!hasInlineToolbar) { + ownerDocument.addEventListener('selectionchange', stopTypingOnSelectionUncollapse); } + return () => { + defaultView.clearTimeout(timerId); + node.removeEventListener('focus', stopTypingOnNonTextField); + node.removeEventListener('keydown', stopTypingOnEscapeKey); + ownerDocument.removeEventListener('selectionchange', stopTypingOnSelectionUncollapse); + }; } - } - _resume() { - if (globals_exports.skipAnimation) { - this.finish(); - } else { - frameLoop.start(this); - } - } - /** - * Exit the frameloop and notify `onRest` listeners. - * - * Always wrap `_stop` calls with `batchedUpdates`. - */ - _stop(goal, cancel) { - if (isAnimating(this)) { - setActiveBit(this, false); - const anim = this.animation; - react_spring_shared_modern_each(anim.values, (node) => { - node.done = true; - }); - if (anim.toValues) { - anim.onChange = anim.onPause = anim.onResume = void 0; + + /** + * Handles a keypress or keydown event to infer intention to start + * typing. + * + * @param {KeyboardEvent} event Keypress or keydown event to interpret. + */ + function startTypingInTextField(event) { + const { + type, + target + } = event; + + // Abort early if already typing, or key press is incurred outside a + // text field (e.g. arrow-ing through toolbar buttons). + // Ignore typing if outside the current DOM container + if (!(0,external_wp_dom_namespaceObject.isTextField)(target) || !node.contains(target)) { + return; } - callFluidObservers(this, { - type: "idle", - parent: this - }); - const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal ?? anim.to)); - flushCalls(this._pendingCalls, result); - if (anim.changed) { - anim.changed = false; - sendEvent(this, "onRest", result, this); + + // Special-case keydown because certain keys do not emit a keypress + // event. Conversely avoid keydown as the canonical event since + // there are many keydown which are explicitly not targeted for + // typing. + if (type === 'keydown' && !isKeyDownEligibleForStartTyping(event)) { + return; } + startTyping(); } - } -}; -function checkFinished(target, to2) { - const goal = computeGoal(to2); - const value = computeGoal(target.get()); - return isEqual(value, goal); + node.addEventListener('keypress', startTypingInTextField); + node.addEventListener('keydown', startTypingInTextField); + return () => { + node.removeEventListener('keypress', startTypingInTextField); + node.removeEventListener('keydown', startTypingInTextField); + }; + }, [isTyping, hasInlineToolbar, startTyping, stopTyping]); + return (0,external_wp_compose_namespaceObject.useMergeRefs)([ref1, ref2]); } -function createLoopUpdate(props, loop = props.loop, to2 = props.to) { - const loopRet = callProp(loop); - if (loopRet) { - const overrides = loopRet !== true && inferTo(loopRet); - const reverse = (overrides || props).reverse; - const reset = !overrides || overrides.reset; - return createUpdate({ - ...props, - loop, - // Avoid updating default props when looping. - default: false, - // Never loop the `pause` prop. - pause: void 0, - // For the "reverse" prop to loop as expected, the "to" prop - // must be undefined. The "reverse" prop is ignored when the - // "to" prop is an array or function. - to: !reverse || isAsyncTo(to2) ? to2 : void 0, - // Ignore the "from" prop except on reset. - from: reset ? props.from : void 0, - reset, - // The "loop" prop can return a "useSpring" props object to - // override any of the original props. - ...overrides - }); - } +function ObserveTyping({ + children +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: useTypingObserver() + }, children); } -function createUpdate(props) { - const { to: to2, from } = props = inferTo(props); - const keys = /* @__PURE__ */ new Set(); - if (is.obj(to2)) - findDefined(to2, keys); - if (is.obj(from)) - findDefined(from, keys); - props.keys = keys.size ? Array.from(keys) : null; - return props; + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/observe-typing/README.md + */ +/* harmony default export */ var observe_typing = (ObserveTyping); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/index.js + +/** + * External dependencies + */ + + +/** + * WordPress dependencies + */ + + + + +/** + * Internal dependencies + */ + + + + + + + + + +const elementContext = (0,external_wp_element_namespaceObject.createContext)(); +const block_list_IntersectionObserver = (0,external_wp_element_namespaceObject.createContext)(); +const pendingBlockVisibilityUpdatesPerRegistry = new WeakMap(); +function Root({ + className, + ...settings +}) { + const [element, setElement] = (0,external_wp_element_namespaceObject.useState)(); + const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); + const { + isOutlineMode, + isFocusMode, + editorMode + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings, + __unstableGetEditorMode + } = select(store); + const { + outlineMode, + focusMode + } = getSettings(); + return { + isOutlineMode: outlineMode, + isFocusMode: focusMode, + editorMode: __unstableGetEditorMode() + }; + }, []); + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const { + setBlockVisibility + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const delayedBlockVisibilityUpdates = (0,external_wp_compose_namespaceObject.useDebounce)((0,external_wp_element_namespaceObject.useCallback)(() => { + const updates = {}; + pendingBlockVisibilityUpdatesPerRegistry.get(registry).forEach(([id, isIntersecting]) => { + updates[id] = isIntersecting; + }); + setBlockVisibility(updates); + }, [registry]), 300, { + trailing: true + }); + const intersectionObserver = (0,external_wp_element_namespaceObject.useMemo)(() => { + const { + IntersectionObserver: Observer + } = window; + if (!Observer) { + return; + } + return new Observer(entries => { + if (!pendingBlockVisibilityUpdatesPerRegistry.get(registry)) { + pendingBlockVisibilityUpdatesPerRegistry.set(registry, []); + } + for (const entry of entries) { + const clientId = entry.target.getAttribute('data-block'); + pendingBlockVisibilityUpdatesPerRegistry.get(registry).push([clientId, entry.isIntersecting]); + } + delayedBlockVisibilityUpdates(); + }); + }, []); + const innerBlocksProps = useInnerBlocksProps({ + ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([useBlockSelectionClearer(), useInBetweenInserter(), useTypingObserver()]), + className: classnames_default()('is-root-container', className, { + 'is-outline-mode': isOutlineMode, + 'is-focus-mode': isFocusMode && isLargeViewport, + 'is-navigate-mode': editorMode === 'navigation' + }) + }, settings); + return (0,external_wp_element_namespaceObject.createElement)(elementContext.Provider, { + value: element + }, (0,external_wp_element_namespaceObject.createElement)(block_list_IntersectionObserver.Provider, { + value: intersectionObserver + }, (0,external_wp_element_namespaceObject.createElement)("div", { + ...innerBlocksProps + }), (0,external_wp_element_namespaceObject.createElement)("div", { + ref: setElement + }))); } -function declareUpdate(props) { - const update2 = createUpdate(props); - if (is5.und(update2.default)) { - update2.default = getDefaultProps(update2); - } - return update2; +function BlockList(settings) { + return (0,external_wp_element_namespaceObject.createElement)(Provider, { + value: DEFAULT_BLOCK_EDIT_CONTEXT + }, (0,external_wp_element_namespaceObject.createElement)(Root, { + ...settings + })); } -function findDefined(values, keys) { - eachProp(values, (value, key) => value != null && keys.add(key)); +BlockList.__unstableElementContext = elementContext; +function Items({ + placeholder, + rootClientId, + renderAppender, + __experimentalAppenderTagName, + layout = defaultLayout +}) { + const { + order, + selectedBlocks, + visibleBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockOrder, + getSelectedBlockClientIds, + __unstableGetVisibleBlocks + } = select(store); + return { + order: getBlockOrder(rootClientId), + selectedBlocks: getSelectedBlockClientIds(), + visibleBlocks: __unstableGetVisibleBlocks() + }; + }, [rootClientId]); + return (0,external_wp_element_namespaceObject.createElement)(LayoutProvider, { + value: layout + }, order.map(clientId => (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { + key: clientId, + value: + // Only provide data asynchronously if the block is + // not visible and not selected. + !visibleBlocks.has(clientId) && !selectedBlocks.includes(clientId) + }, (0,external_wp_element_namespaceObject.createElement)(block, { + rootClientId: rootClientId, + clientId: clientId + }))), order.length < 1 && placeholder, (0,external_wp_element_namespaceObject.createElement)(block_list_appender, { + tagName: __experimentalAppenderTagName, + rootClientId: rootClientId, + renderAppender: renderAppender + })); } -var ACTIVE_EVENTS = [ - "onStart", - "onRest", - "onChange", - "onPause", - "onResume" -]; -function mergeActiveFn(target, props, type) { - target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : void 0; +function BlockListItems(props) { + // This component needs to always be synchronous as it's the one changing + // the async mode depending on the block selection. + return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { + value: false + }, (0,external_wp_element_namespaceObject.createElement)(Items, { + ...props + })); } -function sendEvent(target, type, ...args) { - target.animation[type]?.(...args); - target.defaultProps[type]?.(...args); + +;// CONCATENATED MODULE: external ["wp","url"] +var external_wp_url_namespaceObject = window["wp"]["url"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js + +/** + * WordPress dependencies + */ + +const media = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7 6.5 4 2.5-4 2.5z" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + fillRule: "evenodd", + clipRule: "evenodd", + d: "m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z" +})); +/* harmony default export */ var library_media = (media); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js + +/** + * WordPress dependencies + */ + +const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z" +})); +/* harmony default export */ var library_upload = (upload); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js + +/** + * WordPress dependencies + */ + +const postFeaturedImage = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z" +})); +/* harmony default export */ var post_featured_image = (postFeaturedImage); + +;// CONCATENATED MODULE: external ["wp","preferences"] +var external_wp_preferences_namespaceObject = window["wp"]["preferences"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js + +/** + * WordPress dependencies + */ + +const keyboardReturn = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "-2 -2 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z" +})); +/* harmony default export */ var keyboard_return = (keyboardReturn); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js + +/** + * WordPress dependencies + */ + +const chevronLeftSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z" +})); +/* harmony default export */ var chevron_left_small = (chevronLeftSmall); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js + +/** + * WordPress dependencies + */ + +const chevronRightSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z" +})); +/* harmony default export */ var chevron_right_small = (chevronRightSmall); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings-drawer.js + +/** + * WordPress dependencies + */ + + + + + +function LinkSettingsDrawer({ + children, + settingsOpen, + setSettingsOpen +}) { + const prefersReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); + const MaybeAnimatePresence = prefersReducedMotion ? external_wp_element_namespaceObject.Fragment : external_wp_components_namespaceObject.__unstableAnimatePresence; + const MaybeMotionDiv = prefersReducedMotion ? 'div' : external_wp_components_namespaceObject.__unstableMotion.div; + const id = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkSettingsDrawer); + const settingsDrawerId = `link-control-settings-drawer-${id}`; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-link-control__drawer-toggle", + "aria-expanded": settingsOpen, + onClick: () => setSettingsOpen(!settingsOpen), + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left_small : chevron_right_small, + "aria-controls": settingsDrawerId + }, (0,external_wp_i18n_namespaceObject._x)('Advanced', 'Additional link settings')), (0,external_wp_element_namespaceObject.createElement)(MaybeAnimatePresence, null, settingsOpen && (0,external_wp_element_namespaceObject.createElement)(MaybeMotionDiv, { + className: "block-editor-link-control__drawer", + hidden: !settingsOpen, + id: settingsDrawerId, + initial: "collapsed", + animate: "open", + exit: "collapsed", + variants: { + open: { + opacity: 1, + height: 'auto' + }, + collapsed: { + opacity: 0, + height: 0 + } + }, + transition: { + duration: 0.1 + } + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__drawer-inner" + }, children)))); } +/* harmony default export */ var settings_drawer = (LinkSettingsDrawer); + +// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js +var dom_scroll_into_view_lib = __webpack_require__(5425); +var lib_default = /*#__PURE__*/__webpack_require__.n(dom_scroll_into_view_lib); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/index.js + +/** + * External dependencies + */ + + + +/** + * WordPress dependencies + */ + -// src/Controller.ts -var BATCHED_EVENTS = ["onStart", "onChange", "onRest"]; -var nextId2 = 1; -var Controller = class { - constructor(props, flush3) { - this.id = nextId2++; - /** The animated values */ - this.springs = {}; - /** The queue of props passed to the `update` method. */ - this.queue = []; - /** The counter for tracking `scheduleProps` calls */ - this._lastAsyncId = 0; - /** The values currently being animated */ - this._active = /* @__PURE__ */ new Set(); - /** The values that changed recently */ - this._changed = /* @__PURE__ */ new Set(); - /** Equals false when `onStart` listeners can be called */ - this._started = false; - /** State used by the `runAsync` function */ - this._state = { - paused: false, - pauseQueue: /* @__PURE__ */ new Set(), - resumeQueue: /* @__PURE__ */ new Set(), - timeouts: /* @__PURE__ */ new Set() - }; - /** The event queues that are flushed once per frame maximum */ - this._events = { - onStart: /* @__PURE__ */ new Map(), - onChange: /* @__PURE__ */ new Map(), - onRest: /* @__PURE__ */ new Map() + + + + + + +/** + * Internal dependencies + */ + + +/** + * Whether the argument is a function. + * + * @param {*} maybeFunc The argument to check. + * @return {boolean} True if the argument is a function, false otherwise. + */ +function isFunction(maybeFunc) { + return typeof maybeFunc === 'function'; +} +class URLInput extends external_wp_element_namespaceObject.Component { + constructor(props) { + super(props); + this.onChange = this.onChange.bind(this); + this.onFocus = this.onFocus.bind(this); + this.onKeyDown = this.onKeyDown.bind(this); + this.selectLink = this.selectLink.bind(this); + this.handleOnClick = this.handleOnClick.bind(this); + this.bindSuggestionNode = this.bindSuggestionNode.bind(this); + this.autocompleteRef = props.autocompleteRef || (0,external_wp_element_namespaceObject.createRef)(); + this.inputRef = (0,external_wp_element_namespaceObject.createRef)(); + this.updateSuggestions = (0,external_wp_compose_namespaceObject.debounce)(this.updateSuggestions.bind(this), 200); + this.suggestionNodes = []; + this.suggestionsRequest = null; + this.state = { + suggestions: [], + showSuggestions: false, + isUpdatingSuggestions: false, + suggestionsValue: null, + selectedSuggestion: null, + suggestionsListboxId: '', + suggestionOptionIdPrefix: '' }; - this._onFrame = this._onFrame.bind(this); - if (flush3) { - this._flush = flush3; - } - if (props) { - this.start({ default: true, ...props }); - } - } - /** - * Equals `true` when no spring values are in the frameloop, and - * no async animation is currently active. - */ - get idle() { - return !this._state.asyncTo && Object.values(this.springs).every((spring) => { - return spring.idle && !spring.isDelayed && !spring.isPaused; - }); - } - get item() { - return this._item; - } - set item(item) { - this._item = item; - } - /** Get the current values of our springs */ - get() { - const values = {}; - this.each((spring, key) => values[key] = spring.get()); - return values; } - /** Set the current values without animating. */ - set(values) { - for (const key in values) { - const value = values[key]; - if (!is.und(value)) { - this.springs[key].set(value); + componentDidUpdate(prevProps) { + const { + showSuggestions, + selectedSuggestion + } = this.state; + const { + value, + __experimentalShowInitialSuggestions = false + } = this.props; + + // Only have to worry about scrolling selected suggestion into view + // when already expanded. + if (showSuggestions && selectedSuggestion !== null && this.suggestionNodes[selectedSuggestion] && !this.scrollingIntoView) { + this.scrollingIntoView = true; + lib_default()(this.suggestionNodes[selectedSuggestion], this.autocompleteRef.current, { + onlyScrollIfNeeded: true + }); + this.props.setTimeout(() => { + this.scrollingIntoView = false; + }, 100); + } + + // Update suggestions when the value changes. + if (prevProps.value !== value && !this.props.disableSuggestions && !this.state.isUpdatingSuggestions) { + if (value?.length) { + // If the new value is not empty we need to update with suggestions for it. + this.updateSuggestions(value); + } else if (__experimentalShowInitialSuggestions) { + // If the new value is empty and we can show initial suggestions, then show initial suggestions. + this.updateSuggestions(); } } } - /** Push an update onto the queue of each value. */ - update(props) { - if (props) { - this.queue.push(createUpdate(props)); + componentDidMount() { + if (this.shouldShowInitialSuggestions()) { + this.updateSuggestions(); } - return this; } - /** - * Start the queued animations for every spring, and resolve the returned - * promise once all queued animations have finished or been cancelled. - * - * When you pass a queue (instead of nothing), that queue is used instead of - * the queued animations added with the `update` method, which are left alone. - */ - start(props) { - let { queue } = this; - if (props) { - queue = toArray(props).map(createUpdate); - } else { - this.queue = []; - } - if (this._flush) { - return this._flush(this, queue); - } - prepareKeys(this, queue); - return flushUpdateQueue(this, queue); + componentWillUnmount() { + this.suggestionsRequest?.cancel?.(); + this.suggestionsRequest = null; } - /** @internal */ - stop(arg, keys) { - if (arg !== !!arg) { - keys = arg; - } - if (keys) { - const springs = this.springs; - react_spring_shared_modern_each(toArray(keys), (key) => springs[key].stop(!!arg)); - } else { - stopAsync(this._state, this._lastAsyncId); - this.each((spring) => spring.stop(!!arg)); - } - return this; + bindSuggestionNode(index) { + return ref => { + this.suggestionNodes[index] = ref; + }; } - /** Freeze the active animation in time */ - pause(keys) { - if (is.und(keys)) { - this.start({ pause: true }); - } else { - const springs = this.springs; - react_spring_shared_modern_each(toArray(keys), (key) => springs[key].pause()); - } - return this; + shouldShowInitialSuggestions() { + const { + __experimentalShowInitialSuggestions = false, + value + } = this.props; + return __experimentalShowInitialSuggestions && !(value && value.length); } - /** Resume the animation if paused. */ - resume(keys) { - if (is.und(keys)) { - this.start({ pause: false }); - } else { - const springs = this.springs; - react_spring_shared_modern_each(toArray(keys), (key) => springs[key].resume()); + updateSuggestions(value = '') { + const { + __experimentalFetchLinkSuggestions: fetchLinkSuggestions, + __experimentalHandleURLSuggestions: handleURLSuggestions + } = this.props; + if (!fetchLinkSuggestions) { + return; } - return this; - } - /** Call a function once per spring value */ - each(iterator) { - eachProp(this.springs, iterator); - } - /** @internal Called at the end of every animation frame */ - _onFrame() { - const { onStart, onChange, onRest } = this._events; - const active = this._active.size > 0; - const changed = this._changed.size > 0; - if (active && !this._started || changed && !this._started) { - this._started = true; - flush(onStart, ([onStart2, result]) => { - result.value = this.get(); - onStart2(result, this, this._item); + + // Initial suggestions may only show if there is no value + // (note: this includes whitespace). + const isInitialSuggestions = !value?.length; + + // Trim only now we've determined whether or not it originally had a "length" + // (even if that value was all whitespace). + value = value.trim(); + + // Allow a suggestions request if: + // - there are at least 2 characters in the search input (except manual searches where + // search input length is not required to trigger a fetch) + // - this is a direct entry (eg: a URL) + if (!isInitialSuggestions && (value.length < 2 || !handleURLSuggestions && (0,external_wp_url_namespaceObject.isURL)(value))) { + this.suggestionsRequest?.cancel?.(); + this.suggestionsRequest = null; + this.setState({ + suggestions: [], + showSuggestions: false, + suggestionsValue: value, + selectedSuggestion: null, + loading: false }); + return; } - const idle = !active && this._started; - const values = changed || idle && onRest.size ? this.get() : null; - if (changed && onChange.size) { - flush(onChange, ([onChange2, result]) => { - result.value = values; - onChange2(result, this, this._item); + this.setState({ + isUpdatingSuggestions: true, + selectedSuggestion: null, + loading: true + }); + const request = fetchLinkSuggestions(value, { + isInitialSuggestions + }); + request.then(suggestions => { + // A fetch Promise doesn't have an abort option. It's mimicked by + // comparing the request reference in on the instance, which is + // reset or deleted on subsequent requests or unmounting. + if (this.suggestionsRequest !== request) { + return; + } + this.setState({ + suggestions, + isUpdatingSuggestions: false, + suggestionsValue: value, + loading: false, + showSuggestions: !!suggestions.length }); - } - if (idle) { - this._started = false; - flush(onRest, ([onRest2, result]) => { - result.value = values; - onRest2(result, this, this._item); + if (!!suggestions.length) { + this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of results. */ + (0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', suggestions.length), suggestions.length), 'assertive'); + } else { + this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.__)('No results.'), 'assertive'); + } + }).catch(() => { + if (this.suggestionsRequest !== request) { + return; + } + this.setState({ + isUpdatingSuggestions: false, + loading: false }); + }); + + // Note that this assignment is handled *before* the async search request + // as a Promise always resolves on the next tick of the event loop. + this.suggestionsRequest = request; + } + onChange(event) { + this.props.onChange(event.target.value); + } + onFocus() { + const { + suggestions + } = this.state; + const { + disableSuggestions, + value + } = this.props; + + // When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value + // Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons) + if (value && !disableSuggestions && !this.state.isUpdatingSuggestions && !(suggestions && suggestions.length)) { + // Ensure the suggestions are updated with the current input value. + this.updateSuggestions(value); } } - /** @internal */ - eventObserved(event) { - if (event.type == "change") { - this._changed.add(event.parent); - if (!event.idle) { - this._active.add(event.parent); + onKeyDown(event) { + this.props.onKeyDown?.(event); + const { + showSuggestions, + selectedSuggestion, + suggestions, + loading + } = this.state; + + // If the suggestions are not shown or loading, we shouldn't handle the arrow keys + // We shouldn't preventDefault to allow block arrow keys navigation. + if (!showSuggestions || !suggestions.length || loading) { + // In the Windows version of Firefox the up and down arrows don't move the caret + // within an input field like they do for Mac Firefox/Chrome/Safari. This causes + // a form of focus trapping that is disruptive to the user experience. This disruption + // only happens if the caret is not in the first or last position in the text input. + // See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747 + switch (event.keyCode) { + // When UP is pressed, if the caret is at the start of the text, move it to the 0 + // position. + case external_wp_keycodes_namespaceObject.UP: + { + if (0 !== event.target.selectionStart) { + event.preventDefault(); + + // Set the input caret to position 0. + event.target.setSelectionRange(0, 0); + } + break; + } + // When DOWN is pressed, if the caret is not at the end of the text, move it to the + // last position. + case external_wp_keycodes_namespaceObject.DOWN: + { + if (this.props.value.length !== event.target.selectionStart) { + event.preventDefault(); + + // Set the input caret to the last position. + event.target.setSelectionRange(this.props.value.length, this.props.value.length); + } + break; + } + + // Submitting while loading should trigger onSubmit. + case external_wp_keycodes_namespaceObject.ENTER: + { + if (this.props.onSubmit) { + event.preventDefault(); + this.props.onSubmit(null, event); + } + break; + } } - } else if (event.type == "idle") { - this._active.delete(event.parent); - } else return; - raf.onFrame(this._onFrame); - } -}; -function flushUpdateQueue(ctrl, queue) { - return Promise.all(queue.map((props) => flushUpdate(ctrl, props))).then( - (results) => getCombinedResult(ctrl, results) - ); -} -async function flushUpdate(ctrl, props, isLoop) { - const { keys, to: to2, from, loop, onRest, onResolve } = props; - const defaults2 = is.obj(props.default) && props.default; - if (loop) { - props.loop = false; - } - if (to2 === false) - props.to = null; - if (from === false) - props.from = null; - const asyncTo = is.arr(to2) || is.fun(to2) ? to2 : void 0; - if (asyncTo) { - props.to = void 0; - props.onRest = void 0; - if (defaults2) { - defaults2.onRest = void 0; } - } else { - react_spring_shared_modern_each(BATCHED_EVENTS, (key) => { - const handler = props[key]; - if (is.fun(handler)) { - const queue = ctrl["_events"][key]; - props[key] = ({ finished, cancelled }) => { - const result2 = queue.get(handler); - if (result2) { - if (!finished) - result2.finished = false; - if (cancelled) - result2.cancelled = true; - } else { - queue.set(handler, { - value: null, - finished: finished || false, - cancelled: cancelled || false - }); + const suggestion = this.state.suggestions[this.state.selectedSuggestion]; + switch (event.keyCode) { + case external_wp_keycodes_namespaceObject.UP: + { + event.preventDefault(); + const previousIndex = !selectedSuggestion ? suggestions.length - 1 : selectedSuggestion - 1; + this.setState({ + selectedSuggestion: previousIndex + }); + break; + } + case external_wp_keycodes_namespaceObject.DOWN: + { + event.preventDefault(); + const nextIndex = selectedSuggestion === null || selectedSuggestion === suggestions.length - 1 ? 0 : selectedSuggestion + 1; + this.setState({ + selectedSuggestion: nextIndex + }); + break; + } + case external_wp_keycodes_namespaceObject.TAB: + { + if (this.state.selectedSuggestion !== null) { + this.selectLink(suggestion); + // Announce a link has been selected when tabbing away from the input field. + this.props.speak((0,external_wp_i18n_namespaceObject.__)('Link selected.')); } - }; - if (defaults2) { - defaults2[key] = props[key]; + break; } - } - }); - } - const state = ctrl["_state"]; - if (props.pause === !state.paused) { - state.paused = props.pause; - flushCalls(props.pause ? state.pauseQueue : state.resumeQueue); - } else if (state.paused) { - props.pause = true; - } - const promises = (keys || Object.keys(ctrl.springs)).map( - (key) => ctrl.springs[key].start(props) - ); - const cancel = props.cancel === true || getDefaultProp(props, "cancel") === true; - if (asyncTo || cancel && state.asyncId) { - promises.push( - scheduleProps(++ctrl["_lastAsyncId"], { - props, - state, - actions: { - pause: react_spring_shared_modern_noop, - resume: react_spring_shared_modern_noop, - start(props2, resolve) { - if (cancel) { - stopAsync(state, ctrl["_lastAsyncId"]); - resolve(getCancelledResult(ctrl)); - } else { - props2.onRest = onRest; - resolve( - runAsync( - asyncTo, - props2, - state, - ctrl - ) - ); + case external_wp_keycodes_namespaceObject.ENTER: + { + event.preventDefault(); + if (this.state.selectedSuggestion !== null) { + this.selectLink(suggestion); + if (this.props.onSubmit) { + this.props.onSubmit(suggestion, event); } + } else if (this.props.onSubmit) { + this.props.onSubmit(null, event); } + break; } - }) - ); + } } - if (state.paused) { - await new Promise((resume) => { - state.resumeQueue.add(resume); + selectLink(suggestion) { + this.props.onChange(suggestion.url, suggestion); + this.setState({ + selectedSuggestion: null, + showSuggestions: false }); } - const result = getCombinedResult(ctrl, await Promise.all(promises)); - if (loop && result.finished && !(isLoop && result.noop)) { - const nextProps = createLoopUpdate(props, loop, to2); - if (nextProps) { - prepareKeys(ctrl, [nextProps]); - return flushUpdate(ctrl, nextProps, true); + handleOnClick(suggestion) { + this.selectLink(suggestion); + // Move focus to the input field when a link suggestion is clicked. + this.inputRef.current.focus(); + } + static getDerivedStateFromProps({ + value, + instanceId, + disableSuggestions, + __experimentalShowInitialSuggestions = false + }, { + showSuggestions + }) { + let shouldShowSuggestions = showSuggestions; + const hasValue = value && value.length; + if (!__experimentalShowInitialSuggestions && !hasValue) { + shouldShowSuggestions = false; + } + if (disableSuggestions === true) { + shouldShowSuggestions = false; } + return { + showSuggestions: shouldShowSuggestions, + suggestionsListboxId: `block-editor-url-input-suggestions-${instanceId}`, + suggestionOptionIdPrefix: `block-editor-url-input-suggestion-${instanceId}` + }; } - if (onResolve) { - raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item)); + render() { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, this.renderControl(), this.renderSuggestions()); } - return result; -} -function getSprings(ctrl, props) { - const springs = { ...ctrl.springs }; - if (props) { - each3(toArray3(props), (props2) => { - if (is6.und(props2.keys)) { - props2 = createUpdate(props2); - } - if (!is6.obj(props2.to)) { - props2 = { ...props2, to: void 0 }; - } - prepareSprings(springs, props2, (key) => { - return createSpring(key); + renderControl() { + const { + /** Start opting into the new margin-free styles that will become the default in a future version. */ + __nextHasNoMarginBottom = false, + label = null, + className, + isFullWidth, + instanceId, + placeholder = (0,external_wp_i18n_namespaceObject.__)('Paste URL or type to search'), + __experimentalRenderControl: renderControl, + value = '', + hideLabelFromVision = false + } = this.props; + const { + loading, + showSuggestions, + selectedSuggestion, + suggestionsListboxId, + suggestionOptionIdPrefix + } = this.state; + const inputId = `url-input-control-${instanceId}`; + const controlProps = { + id: inputId, + // Passes attribute to label for the for attribute + label, + className: classnames_default()('block-editor-url-input', className, { + 'is-full-width': isFullWidth + }), + hideLabelFromVision + }; + const inputProps = { + id: inputId, + value, + required: true, + className: 'block-editor-url-input__input', + type: 'text', + onChange: this.onChange, + onFocus: this.onFocus, + placeholder, + onKeyDown: this.onKeyDown, + role: 'combobox', + 'aria-label': label ? undefined : (0,external_wp_i18n_namespaceObject.__)('URL'), + // Ensure input always has an accessible label + 'aria-expanded': showSuggestions, + 'aria-autocomplete': 'list', + 'aria-owns': suggestionsListboxId, + 'aria-activedescendant': selectedSuggestion !== null ? `${suggestionOptionIdPrefix}-${selectedSuggestion}` : undefined, + ref: this.inputRef + }; + if (renderControl) { + return renderControl(controlProps, inputProps, loading); + } + if (!__nextHasNoMarginBottom) { + external_wp_deprecated_default()('Bottom margin styles for wp.blockEditor.URLInput', { + since: '6.2', + version: '6.5', + hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version' }); - }); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { + __nextHasNoMarginBottom: __nextHasNoMarginBottom, + ...controlProps + }, (0,external_wp_element_namespaceObject.createElement)("input", { + ...inputProps + }), loading && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); } - setSprings(ctrl, springs); - return springs; -} -function setSprings(ctrl, springs) { - eachProp4(springs, (spring, key) => { - if (!ctrl.springs[key]) { - ctrl.springs[key] = spring; - addFluidObserver2(spring, ctrl); + renderSuggestions() { + const { + className, + __experimentalRenderSuggestions: renderSuggestions + } = this.props; + const { + showSuggestions, + suggestions, + suggestionsValue, + selectedSuggestion, + suggestionsListboxId, + suggestionOptionIdPrefix, + loading + } = this.state; + if (!showSuggestions || suggestions.length === 0) { + return null; } - }); -} -function createSpring(key, observer) { - const spring = new SpringValue(); - spring.key = key; - if (observer) { - addFluidObserver(spring, observer); + const suggestionsListProps = { + id: suggestionsListboxId, + ref: this.autocompleteRef, + role: 'listbox' + }; + const buildSuggestionItemProps = (suggestion, index) => { + return { + role: 'option', + tabIndex: '-1', + id: `${suggestionOptionIdPrefix}-${index}`, + ref: this.bindSuggestionNode(index), + 'aria-selected': index === selectedSuggestion ? true : undefined + }; + }; + if (isFunction(renderSuggestions)) { + return renderSuggestions({ + suggestions, + selectedSuggestion, + suggestionsListProps, + buildSuggestionItemProps, + isLoading: loading, + handleSuggestionClick: this.handleOnClick, + isInitialSuggestions: !suggestionsValue?.length, + currentInputValue: suggestionsValue + }); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + placement: "bottom", + focusOnMount: false + }, (0,external_wp_element_namespaceObject.createElement)("div", { + ...suggestionsListProps, + className: classnames_default()('block-editor-url-input__suggestions', `${className}__suggestions`) + }, suggestions.map((suggestion, index) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...buildSuggestionItemProps(suggestion, index), + key: suggestion.id, + className: classnames_default()('block-editor-url-input__suggestion', { + 'is-selected': index === selectedSuggestion + }), + onClick: () => this.handleOnClick(suggestion) + }, suggestion.title)))); } - return spring; } -function prepareSprings(springs, props, create) { - if (props.keys) { - react_spring_shared_modern_each(props.keys, (key) => { - const spring = springs[key] || (springs[key] = create(key)); - spring["_prepareNode"](props); - }); + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md + */ +/* harmony default export */ var url_input = ((0,external_wp_compose_namespaceObject.compose)(external_wp_compose_namespaceObject.withSafeTimeout, external_wp_components_namespaceObject.withSpokenMessages, external_wp_compose_namespaceObject.withInstanceId, (0,external_wp_data_namespaceObject.withSelect)((select, props) => { + // If a link suggestions handler is already provided then + // bail. + if (isFunction(props.__experimentalFetchLinkSuggestions)) { + return; } -} -function prepareKeys(ctrl, queue) { - react_spring_shared_modern_each(queue, (props) => { - prepareSprings(ctrl.springs, props, (key) => { - return createSpring(key, ctrl); - }); - }); -} + const { + getSettings + } = select(store); + return { + __experimentalFetchLinkSuggestions: getSettings().__experimentalFetchLinkSuggestions + }; +}))(URLInput)); -// src/SpringContext.tsx +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-create-button.js +/** + * WordPress dependencies + */ -var SpringContext = ({ - children, - ...props -}) => { - const inherited = (0,external_React_.useContext)(ctx); - const pause = props.pause || !!inherited.pause, immediate = props.immediate || !!inherited.immediate; - props = useMemoOne(() => ({ pause, immediate }), [pause, immediate]); - const { Provider } = ctx; - return /* @__PURE__ */ external_React_.createElement(Provider, { value: props }, children); -}; -var ctx = makeContext(SpringContext, {}); -SpringContext.Provider = ctx.Provider; -SpringContext.Consumer = ctx.Consumer; -function makeContext(target, init) { - Object.assign(target, external_React_.createContext(init)); - target.Provider._context = target; - target.Consumer._context = target; - return target; -} -// src/SpringRef.ts -var SpringRef = () => { - const current = []; - const SpringRef2 = function(props) { - deprecateDirectCall(); - const results = []; - each4(current, (ctrl, i) => { - if (is7.und(props)) { - results.push(ctrl.start()); - } else { - const update2 = _getProps(props, ctrl, i); - if (update2) { - results.push(ctrl.start(update2)); - } - } - }); - return results; - }; - SpringRef2.current = current; - SpringRef2.add = function(ctrl) { - if (!current.includes(ctrl)) { - current.push(ctrl); - } - }; - SpringRef2.delete = function(ctrl) { - const i = current.indexOf(ctrl); - if (~i) - current.splice(i, 1); - }; - SpringRef2.pause = function() { - each4(current, (ctrl) => ctrl.pause(...arguments)); - return this; - }; - SpringRef2.resume = function() { - each4(current, (ctrl) => ctrl.resume(...arguments)); - return this; - }; - SpringRef2.set = function(values) { - each4(current, (ctrl, i) => { - const update2 = is7.fun(values) ? values(i, ctrl) : values; - if (update2) { - ctrl.set(update2); - } - }); - }; - SpringRef2.start = function(props) { - const results = []; - each4(current, (ctrl, i) => { - if (is7.und(props)) { - results.push(ctrl.start()); - } else { - const update2 = this._getProps(props, ctrl, i); - if (update2) { - results.push(ctrl.start(update2)); - } - } +const LinkControlSearchCreate = ({ + searchTerm, + onClick, + itemProps, + buttonText +}) => { + if (!searchTerm) { + return null; + } + let text; + if (buttonText) { + text = typeof buttonText === 'function' ? buttonText(searchTerm) : buttonText; + } else { + text = (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: search term. */ + (0,external_wp_i18n_namespaceObject.__)('Create: %s'), searchTerm), { + mark: (0,external_wp_element_namespaceObject.createElement)("mark", null) }); - return results; - }; - SpringRef2.stop = function() { - each4(current, (ctrl) => ctrl.stop(...arguments)); - return this; - }; - SpringRef2.update = function(props) { - each4(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i))); - return this; - }; - const _getProps = function(arg, ctrl, index) { - return is7.fun(arg) ? arg(index, ctrl) : arg; - }; - SpringRef2._getProps = _getProps; - return SpringRef2; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + ...itemProps, + iconPosition: "left", + icon: library_plus, + className: "block-editor-link-control__search-item", + onClick: onClick + }, text); }; +/* harmony default export */ var search_create_button = (LinkControlSearchCreate); -// src/hooks/useSprings.ts -function useSprings(length, props, deps) { - const propsFn = is8.fun(props) && props; - if (propsFn && !deps) - deps = []; - const ref = useMemo( - () => propsFn || arguments.length == 3 ? SpringRef() : void 0, - [] - ); - const layoutId = useRef(0); - const forceUpdate = useForceUpdate(); - const state = useMemo( - () => ({ - ctrls: [], - queue: [], - flush(ctrl, updates2) { - const springs2 = getSprings(ctrl, updates2); - const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs2).some((key) => !ctrl.springs[key]); - return canFlushSync ? flushUpdateQueue(ctrl, updates2) : new Promise((resolve) => { - setSprings(ctrl, springs2); - state.queue.push(() => { - resolve(flushUpdateQueue(ctrl, updates2)); - }); - forceUpdate(); - }); - } - }), - [] - ); - const ctrls = useRef([...state.ctrls]); - const updates = []; - const prevLength = usePrev(length) || 0; - useMemo(() => { - each5(ctrls.current.slice(length, prevLength), (ctrl) => { - detachRefs(ctrl, ref); - ctrl.stop(true); - }); - ctrls.current.length = length; - declareUpdates(prevLength, length); - }, [length]); - useMemo(() => { - declareUpdates(0, Math.min(prevLength, length)); - }, deps); - function declareUpdates(startIndex, endIndex) { - for (let i = startIndex; i < endIndex; i++) { - const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush)); - const update2 = propsFn ? propsFn(i, ctrl) : props[i]; - if (update2) { - updates[i] = declareUpdate(update2); - } - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js + +/** + * WordPress dependencies + */ + +const postList = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 11h2V9H7v2zm0 4h2v-2H7v2zm3-4h7V9h-7v2zm0 4h7v-2h-7v2z" +})); +/* harmony default export */ var post_list = (postList); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js + +/** + * WordPress dependencies + */ + +const page = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7 5.5h10a.5.5 0 01.5.5v12a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM17 4H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2zm-1 3.75H8v1.5h8v-1.5zM8 11h8v1.5H8V11zm6 3.25H8v1.5h6v-1.5z" +})); +/* harmony default export */ var library_page = (page); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js + +/** + * WordPress dependencies + */ + +const tag = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20.1 11.2l-6.7-6.7c-.1-.1-.3-.2-.5-.2H5c-.4-.1-.8.3-.8.7v7.8c0 .2.1.4.2.5l6.7 6.7c.2.2.5.4.7.5s.6.2.9.2c.3 0 .6-.1.9-.2.3-.1.5-.3.8-.5l5.6-5.6c.4-.4.7-1 .7-1.6.1-.6-.2-1.2-.6-1.6zM19 13.4L13.4 19c-.1.1-.2.1-.3.2-.2.1-.4.1-.6 0-.1 0-.2-.1-.3-.2l-6.5-6.5V5.8h6.8l6.5 6.5c.2.2.2.4.2.6 0 .1 0 .3-.2.5zM9 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z" +})); +/* harmony default export */ var library_tag = (tag); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js + +/** + * WordPress dependencies + */ + +const category = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z", + fillRule: "evenodd", + clipRule: "evenodd" +})); +/* harmony default export */ var library_category = (category); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js + +/** + * WordPress dependencies + */ + +const file = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5z" +})); +/* harmony default export */ var library_file = (file); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/globe.js + +/** + * WordPress dependencies + */ + +const globe = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12 3.3c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8s-4-8.8-8.8-8.8zm6.5 5.5h-2.6C15.4 7.3 14.8 6 14 5c2 .6 3.6 2 4.5 3.8zm.7 3.2c0 .6-.1 1.2-.2 1.8h-2.9c.1-.6.1-1.2.1-1.8s-.1-1.2-.1-1.8H19c.2.6.2 1.2.2 1.8zM12 18.7c-1-.7-1.8-1.9-2.3-3.5h4.6c-.5 1.6-1.3 2.9-2.3 3.5zm-2.6-4.9c-.1-.6-.1-1.1-.1-1.8 0-.6.1-1.2.1-1.8h5.2c.1.6.1 1.1.1 1.8s-.1 1.2-.1 1.8H9.4zM4.8 12c0-.6.1-1.2.2-1.8h2.9c-.1.6-.1 1.2-.1 1.8 0 .6.1 1.2.1 1.8H5c-.2-.6-.2-1.2-.2-1.8zM12 5.3c1 .7 1.8 1.9 2.3 3.5H9.7c.5-1.6 1.3-2.9 2.3-3.5zM10 5c-.8 1-1.4 2.3-1.8 3.8H5.5C6.4 7 8 5.6 10 5zM5.5 15.3h2.6c.4 1.5 1 2.8 1.8 3.7-1.8-.6-3.5-2-4.4-3.7zM14 19c.8-1 1.4-2.2 1.8-3.7h2.6C17.6 17 16 18.4 14 19z" +})); +/* harmony default export */ var library_globe = (globe); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-item.js + +/** + * WordPress dependencies + */ + + + + + + +const ICONS_MAP = { + post: post_list, + page: library_page, + post_tag: library_tag, + category: library_category, + attachment: library_file +}; +function SearchItemIcon({ + isURL, + suggestion +}) { + let icon = null; + if (isURL) { + icon = library_globe; + } else if (suggestion.type in ICONS_MAP) { + icon = ICONS_MAP[suggestion.type]; } - const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i])); - const context = useContext2(SpringContext); - const prevContext = usePrev(context); - const hasContext = context !== prevContext && hasProps(context); - useIsomorphicLayoutEffect2(() => { - layoutId.current++; - state.ctrls = ctrls.current; - const { queue } = state; - if (queue.length) { - state.queue = []; - each5(queue, (cb) => cb()); - } - each5(ctrls.current, (ctrl, i) => { - ref?.add(ctrl); - if (hasContext) { - ctrl.start({ default: context }); - } - const update2 = updates[i]; - if (update2) { - replaceRef(ctrl, update2.ref); - if (ctrl.ref) { - ctrl.queue.push(update2); - } else { - ctrl.start(update2); - } - } + if (icon) { + return (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + className: "block-editor-link-control__search-item-icon", + icon: icon }); - }); - useOnce(() => () => { - each5(state.ctrls, (ctrl) => ctrl.stop(true)); - }); - const values = springs.map((x) => ({ ...x })); - return ref ? [values, ref] : values; + } + return null; +} + +/** + * Adds a leading slash to a url if it doesn't already have one. + * @param {string} url the url to add a leading slash to. + * @return {string} the url with a leading slash. + */ +function addLeadingSlash(url) { + const trimmedURL = url?.trim(); + if (!trimmedURL?.length) return url; + return url?.replace(/^\/?/, '/'); +} +function removeTrailingSlash(url) { + const trimmedURL = url?.trim(); + if (!trimmedURL?.length) return url; + return url?.replace(/\/$/, ''); +} +const partialRight = (fn, ...partialArgs) => (...args) => fn(...args, ...partialArgs); +const defaultTo = d => v => { + return v === null || v === undefined || v !== v ? d : v; +}; + +/** + * Prepares a URL for display in the UI. + * - decodes the URL. + * - filters it (removes protocol, www, etc.). + * - truncates it if necessary. + * - adds a leading slash. + * @param {string} url the url. + * @return {string} the processed url to display. + */ +function getURLForDisplay(url) { + if (!url) return url; + return (0,external_wp_compose_namespaceObject.pipe)(external_wp_url_namespaceObject.safeDecodeURI, external_wp_url_namespaceObject.getPath, defaultTo(''), partialRight(external_wp_url_namespaceObject.filterURLForDisplay, 24), removeTrailingSlash, addLeadingSlash)(url); } +const LinkControlSearchItem = ({ + itemProps, + suggestion, + searchTerm, + onClick, + isURL = false, + shouldShowType = false +}) => { + const info = isURL ? (0,external_wp_i18n_namespaceObject.__)('Press ENTER to add this link') : getURLForDisplay(suggestion.url); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + ...itemProps, + info: info, + iconPosition: "left", + icon: (0,external_wp_element_namespaceObject.createElement)(SearchItemIcon, { + suggestion: suggestion, + isURL: isURL + }), + onClick: onClick, + shortcut: shouldShowType && getVisualTypeName(suggestion), + className: "block-editor-link-control__search-item" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextHighlight + // The component expects a plain text string. + , { + text: (0,external_wp_dom_namespaceObject.__unstableStripHTML)(suggestion.title), + highlight: searchTerm + })); +}; +function getVisualTypeName(suggestion) { + if (suggestion.isFrontPage) { + return 'front page'; + } -// src/hooks/useSpring.ts -function useSpring(props, deps) { - const isFn = is9.fun(props); - const [[values], ref] = useSprings( - 1, - isFn ? props : [props], - isFn ? deps || [] : deps - ); - return isFn || arguments.length == 2 ? [values, ref] : values; + // Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label. + return suggestion.type === 'post_tag' ? 'tag' : suggestion.type; } +/* harmony default export */ var search_item = (LinkControlSearchItem); -// src/hooks/useSpringRef.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/constants.js +/** + * WordPress dependencies + */ -var initSpringRef = () => SpringRef(); -var useSpringRef = () => useState(initSpringRef)[0]; -// src/hooks/useSpringValue.ts +// Used as a unique identifier for the "Create" option within search results. +// Used to help distinguish the "Create" suggestion within the search results in +// order to handle it as a unique case. +const CREATE_TYPE = '__CREATE__'; +const TEL_TYPE = 'tel'; +const URL_TYPE = 'link'; +const MAILTO_TYPE = 'mailto'; +const INTERNAL_TYPE = 'internal'; +const LINK_ENTRY_TYPES = [URL_TYPE, MAILTO_TYPE, TEL_TYPE, INTERNAL_TYPE]; +const DEFAULT_LINK_SETTINGS = [{ + id: 'opensInNewTab', + title: (0,external_wp_i18n_namespaceObject.__)('Open in new tab') +}]; -var useSpringValue = (initial, props) => { - const springValue = useConstant(() => new SpringValue(initial, props)); - useOnce2(() => () => { - springValue.stop(); - }); - return springValue; -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-results.js -// src/hooks/useTrail.ts +/** + * WordPress dependencies + */ -function useTrail(length, propsArg, deps) { - const propsFn = is10.fun(propsArg) && propsArg; - if (propsFn && !deps) - deps = []; - let reverse = true; - let passedRef = void 0; - const result = useSprings( - length, - (i, ctrl) => { - const props = propsFn ? propsFn(i, ctrl) : propsArg; - passedRef = props.ref; - reverse = reverse && props.reverse; - return props; - }, - // Ensure the props function is called when no deps exist. - // This works around the 3 argument rule. - deps || [{}] - ); - useIsomorphicLayoutEffect3(() => { - each6(result[1].current, (ctrl, i) => { - const parent = result[1].current[i + (reverse ? 1 : -1)]; - replaceRef(ctrl, passedRef); - if (ctrl.ref) { - if (parent) { - ctrl.update({ to: parent.springs }); - } - return; - } - if (parent) { - ctrl.start({ to: parent.springs }); - } else { - ctrl.start(); - } - }); - }, deps); - if (propsFn || arguments.length == 3) { - const ref = passedRef ?? result[1]; - ref["_getProps"] = (propsArg2, ctrl, i) => { - const props = is10.fun(propsArg2) ? propsArg2(i, ctrl) : propsArg2; - if (props) { - const parent = ref.current[i + (props.reverse ? 1 : -1)]; - if (parent) - props.to = parent.springs; - return props; - } - }; - return result; - } - return result[0]; -} -// src/hooks/useTransition.tsx +/** + * External dependencies + */ -function useTransition(data, props, deps) { - const propsFn = is11.fun(props) && props; - const { - reset, - sort, - trail = 0, - expires = true, - exitBeforeEnter = false, - onDestroyed, - ref: propsRef, - config: propsConfig - } = propsFn ? propsFn() : props; - const ref = useMemo2( - () => propsFn || arguments.length == 3 ? SpringRef() : void 0, - [] - ); - const items = toArray4(data); - const transitions = []; - const usedTransitions = useRef2(null); - const prevTransitions = reset ? null : usedTransitions.current; - useIsomorphicLayoutEffect4(() => { - usedTransitions.current = transitions; - }); - useOnce3(() => { - each7(transitions, (t) => { - ref?.add(t.ctrl); - t.ctrl.ref = ref; - }); - return () => { - each7(usedTransitions.current, (t) => { - if (t.expired) { - clearTimeout(t.expirationId); - } - detachRefs(t.ctrl, ref); - t.ctrl.stop(true); - }); - }; - }); - const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions); - const expired = reset && usedTransitions.current || []; - useIsomorphicLayoutEffect4( - () => each7(expired, ({ ctrl, item, key }) => { - detachRefs(ctrl, ref); - callProp(onDestroyed, item, key); - }) - ); - const reused = []; - if (prevTransitions) - each7(prevTransitions, (t, i) => { - if (t.expired) { - clearTimeout(t.expirationId); - expired.push(t); - } else { - i = reused[i] = keys.indexOf(t.key); - if (~i) - transitions[i] = t; - } - }); - each7(items, (item, i) => { - if (!transitions[i]) { - transitions[i] = { - key: keys[i], - item, - phase: "mount" /* MOUNT */, - ctrl: new Controller() - }; - transitions[i].ctrl.item = item; - } - }); - if (reused.length) { - let i = -1; - const { leave } = propsFn ? propsFn() : props; - each7(reused, (keyIndex, prevIndex) => { - const t = prevTransitions[prevIndex]; - if (~keyIndex) { - i = transitions.indexOf(t); - transitions[i] = { ...t, item: items[keyIndex] }; - } else if (leave) { - transitions.splice(++i, 0, t); - } - }); - } - if (is11.fun(sort)) { - transitions.sort((a, b) => sort(a.item, b.item)); - } - let delay = -trail; - const forceUpdate = useForceUpdate2(); - const defaultProps = getDefaultProps(props); - const changes = /* @__PURE__ */ new Map(); - const exitingTransitions = useRef2(/* @__PURE__ */ new Map()); - const forceChange = useRef2(false); - each7(transitions, (t, i) => { - const key = t.key; - const prevPhase = t.phase; - const p = propsFn ? propsFn() : props; - let to2; - let phase; - const propsDelay = callProp(p.delay || 0, key); - if (prevPhase == "mount" /* MOUNT */) { - to2 = p.enter; - phase = "enter" /* ENTER */; - } else { - const isLeave = keys.indexOf(key) < 0; - if (prevPhase != "leave" /* LEAVE */) { - if (isLeave) { - to2 = p.leave; - phase = "leave" /* LEAVE */; - } else if (to2 = p.update) { - phase = "update" /* UPDATE */; - } else - return; - } else if (!isLeave) { - to2 = p.enter; - phase = "enter" /* ENTER */; - } else - return; - } - to2 = callProp(to2, t.item, i); - to2 = is11.obj(to2) ? inferTo(to2) : { to: to2 }; - if (!to2.config) { - const config2 = propsConfig || defaultProps.config; - to2.config = callProp(config2, t.item, i, phase); - } - delay += trail; - const payload = { - ...defaultProps, - // we need to add our props.delay value you here. - delay: propsDelay + delay, - ref: propsRef, - immediate: p.immediate, - // This prevents implied resets. - reset: false, - // Merge any phase-specific props. - ...to2 - }; - if (phase == "enter" /* ENTER */ && is11.und(payload.from)) { - const p2 = propsFn ? propsFn() : props; - const from = is11.und(p2.initial) || prevTransitions ? p2.from : p2.initial; - payload.from = callProp(from, t.item, i); - } - const { onResolve } = payload; - payload.onResolve = (result) => { - callProp(onResolve, result); - const transitions2 = usedTransitions.current; - const t2 = transitions2.find((t3) => t3.key === key); - if (!t2) - return; - if (result.cancelled && t2.phase != "update" /* UPDATE */) { - return; - } - if (t2.ctrl.idle) { - const idle = transitions2.every((t3) => t3.ctrl.idle); - if (t2.phase == "leave" /* LEAVE */) { - const expiry = callProp(expires, t2.item); - if (expiry !== false) { - const expiryMs = expiry === true ? 0 : expiry; - t2.expired = true; - if (!idle && expiryMs > 0) { - if (expiryMs <= 2147483647) - t2.expirationId = setTimeout(forceUpdate, expiryMs); - return; - } - } - } - if (idle && transitions2.some((t3) => t3.expired)) { - exitingTransitions.current.delete(t2); - if (exitBeforeEnter) { - forceChange.current = true; - } - forceUpdate(); - } - } - }; - const springs = getSprings(t.ctrl, payload); - if (phase === "leave" /* LEAVE */ && exitBeforeEnter) { - exitingTransitions.current.set(t, { phase, springs, payload }); - } else { - changes.set(t, { phase, springs, payload }); - } +/** + * Internal dependencies + */ + + + +function LinkControlSearchResults({ + instanceId, + withCreateSuggestion, + currentInputValue, + handleSuggestionClick, + suggestionsListProps, + buildSuggestionItemProps, + suggestions, + selectedSuggestion, + isLoading, + isInitialSuggestions, + createSuggestionButtonText, + suggestionsQuery +}) { + const resultsListClasses = classnames_default()('block-editor-link-control__search-results', { + 'is-loading': isLoading }); - const context = useContext3(SpringContext); - const prevContext = usePrev2(context); - const hasContext = context !== prevContext && hasProps(context); - useIsomorphicLayoutEffect4(() => { - if (hasContext) { - each7(transitions, (t) => { - t.ctrl.start({ default: context }); + const isSingleDirectEntryResult = suggestions.length === 1 && LINK_ENTRY_TYPES.includes(suggestions[0].type); + const shouldShowCreateSuggestion = withCreateSuggestion && !isSingleDirectEntryResult && !isInitialSuggestions; + // If the query has a specified type, then we can skip showing them in the result. See #24839. + const shouldShowSuggestionsTypes = !suggestionsQuery?.type; + + // According to guidelines aria-label should be added if the label + // itself is not visible. + // See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role + const searchResultsLabelId = `block-editor-link-control-search-results-label-${instanceId}`; + const labelText = isInitialSuggestions ? (0,external_wp_i18n_namespaceObject.__)('Suggestions') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: search term. */ + (0,external_wp_i18n_namespaceObject.__)('Search results for "%s"'), currentInputValue); + const searchResultsLabel = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: searchResultsLabelId + }, labelText); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-results-wrapper" + }, searchResultsLabel, (0,external_wp_element_namespaceObject.createElement)("div", { + ...suggestionsListProps, + className: resultsListClasses, + "aria-labelledby": searchResultsLabelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, suggestions.map((suggestion, index) => { + if (shouldShowCreateSuggestion && CREATE_TYPE === suggestion.type) { + return (0,external_wp_element_namespaceObject.createElement)(search_create_button, { + searchTerm: currentInputValue, + buttonText: createSuggestionButtonText, + onClick: () => handleSuggestionClick(suggestion) + // Intentionally only using `type` here as + // the constant is enough to uniquely + // identify the single "CREATE" suggestion. + , + key: suggestion.type, + itemProps: buildSuggestionItemProps(suggestion, index), + isSelected: index === selectedSuggestion }); } - }, [context]); - each7(changes, (_, t) => { - if (exitingTransitions.current.size) { - const ind = transitions.findIndex((state) => state.key === t.key); - transitions.splice(ind, 1); + + // If we're not handling "Create" suggestions above then + // we don't want them in the main results so exit early. + if (CREATE_TYPE === suggestion.type) { + return null; } - }); - useIsomorphicLayoutEffect4( - () => { - each7( - exitingTransitions.current.size ? exitingTransitions.current : changes, - ({ phase, payload }, t) => { - const { ctrl } = t; - t.phase = phase; - ref?.add(ctrl); - if (hasContext && phase == "enter" /* ENTER */) { - ctrl.start({ default: context }); - } - if (payload) { - replaceRef(ctrl, payload.ref); - if ((ctrl.ref || ref) && !forceChange.current) { - ctrl.update(payload); - } else { - ctrl.start(payload); - if (forceChange.current) { - forceChange.current = false; - } - } - } - } - ); - }, - reset ? void 0 : deps - ); - const renderTransitions = (render) => /* @__PURE__ */ React2.createElement(React2.Fragment, null, transitions.map((t, i) => { - const { springs } = changes.get(t) || t.ctrl; - const elem = render({ ...springs }, t.item, t, i); - return elem && elem.type ? /* @__PURE__ */ React2.createElement( - elem.type, - { - ...elem.props, - key: is11.str(t.key) || is11.num(t.key) ? t.key : t.ctrl.id, - ref: elem.ref - } - ) : elem; - })); - return ref ? [renderTransitions, ref] : renderTransitions; -} -var nextKey = 1; -function getKeys(items, { key, keys = key }, prevTransitions) { - if (keys === null) { - const reused = /* @__PURE__ */ new Set(); - return items.map((item) => { - const t = prevTransitions && prevTransitions.find( - (t2) => t2.item === item && t2.phase !== "leave" /* LEAVE */ && !reused.has(t2) - ); - if (t) { - reused.add(t); - return t.key; - } - return nextKey++; + return (0,external_wp_element_namespaceObject.createElement)(search_item, { + key: `${suggestion.id}-${suggestion.type}`, + itemProps: buildSuggestionItemProps(suggestion, index), + suggestion: suggestion, + index: index, + onClick: () => { + handleSuggestionClick(suggestion); + }, + isSelected: index === selectedSuggestion, + isURL: LINK_ENTRY_TYPES.includes(suggestion.type), + searchTerm: currentInputValue, + shouldShowType: shouldShowSuggestionsTypes, + isFrontPage: suggestion?.isFrontPage }); + })))); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/is-url-like.js +/** + * WordPress dependencies + */ + + +/** + * Determines whether a given value could be a URL. Note this does not + * guarantee the value is a URL only that it looks like it might be one. For + * example, just because a string has `www.` in it doesn't make it a URL, + * but it does make it highly likely that it will be so in the context of + * creating a link it makes sense to treat it like one. + * + * @param {string} val the candidate for being URL-like (or not). + * + * @return {boolean} whether or not the value is potentially a URL. + */ +function isURLLike(val) { + const hasSpaces = val.includes(' '); + if (hasSpaces) { + return false; } - return is11.und(keys) ? items : is11.fun(keys) ? items.map(keys) : toArray4(keys); + const protocol = (0,external_wp_url_namespaceObject.getProtocol)(val); + const protocolIsValid = (0,external_wp_url_namespaceObject.isValidProtocol)(protocol); + const mayBeTLD = hasPossibleTLD(val); + const isWWW = val?.startsWith('www.'); + const isInternal = val?.startsWith('#') && (0,external_wp_url_namespaceObject.isValidFragment)(val); + return protocolIsValid || isWWW || isInternal || mayBeTLD; } -// src/hooks/useScroll.ts +/** + * Checks if a given URL has a valid Top-Level Domain (TLD). + * + * @param {string} url - The URL to check. + * @param {number} maxLength - The maximum length of the TLD. + * @return {boolean} Returns true if the URL has a valid TLD, false otherwise. + */ +function hasPossibleTLD(url, maxLength = 6) { + // Clean the URL by removing anything after the first occurrence of "?" or "#". + const cleanedURL = url.split(/[?#]/)[0]; -var useScroll = ({ - container, - ...springOptions -} = {}) => { - const [scrollValues, api] = useSpring( - () => ({ - scrollX: 0, - scrollY: 0, - scrollXProgress: 0, - scrollYProgress: 0, - ...springOptions - }), - [] - ); - useIsomorphicLayoutEffect5(() => { - const cleanupScroll = onScroll( - ({ x, y }) => { - api.start({ - scrollX: x.current, - scrollXProgress: x.progress, - scrollY: y.current, - scrollYProgress: y.progress - }); - }, - { container: container?.current || void 0 } - ); - return () => { - each8(Object.values(scrollValues), (value) => value.stop()); - cleanupScroll(); - }; - }, []); - return scrollValues; -}; + // Regular expression explanation: + // - (?<=\S) : Positive lookbehind assertion to ensure there is at least one non-whitespace character before the TLD + // - \. : Matches a literal dot (.) + // - [a-zA-Z_]{2,maxLength} : Matches 2 to maxLength letters or underscores, representing the TLD + // - (?:\/|$) : Non-capturing group that matches either a forward slash (/) or the end of the string + const regex = new RegExp(`(?<=\\S)\\.(?:[a-zA-Z_]{2,${maxLength}})(?:\\/|$)`); + return regex.test(cleanedURL); +} -// src/hooks/useResize.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-search-handler.js +/** + * WordPress dependencies + */ -var useResize = ({ - container, - ...springOptions -}) => { - const [sizeValues, api] = useSpring( - () => ({ - width: 0, - height: 0, - ...springOptions - }), - [] - ); - useIsomorphicLayoutEffect6(() => { - const cleanupScroll = onResize( - ({ width, height }) => { - api.start({ - width, - height, - immediate: sizeValues.width.get() === 0 || sizeValues.height.get() === 0 - }); - }, - { container: container?.current || void 0 } - ); - return () => { - each9(Object.values(sizeValues), (value) => value.stop()); - cleanupScroll(); - }; - }, []); - return sizeValues; + + + +/** + * Internal dependencies + */ + + + +const handleNoop = () => Promise.resolve([]); +const handleDirectEntry = val => { + let type = URL_TYPE; + const protocol = (0,external_wp_url_namespaceObject.getProtocol)(val) || ''; + if (protocol.includes('mailto')) { + type = MAILTO_TYPE; + } + if (protocol.includes('tel')) { + type = TEL_TYPE; + } + if (val?.startsWith('#')) { + type = INTERNAL_TYPE; + } + return Promise.resolve([{ + id: val, + title: val, + url: type === 'URL' ? (0,external_wp_url_namespaceObject.prependHTTP)(val) : val, + type + }]); }; +const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions, withCreateSuggestion, pageOnFront) => { + const { + isInitialSuggestions + } = suggestionsQuery; + const results = await fetchSearchSuggestions(val, suggestionsQuery); -// src/hooks/useInView.ts + // Identify front page and update type to match. + results.map(result => { + if (Number(result.id) === pageOnFront) { + result.isFrontPage = true; + return result; + } + return result; + }); + // If displaying initial suggestions just return plain results. + if (isInitialSuggestions) { + return results; + } -var defaultThresholdOptions = { - any: 0, - all: 1 + // Here we append a faux suggestion to represent a "CREATE" option. This + // is detected in the rendering of the search results and handled as a + // special case. This is currently necessary because the suggestions + // dropdown will only appear if there are valid suggestions and + // therefore unless the create option is a suggestion it will not + // display in scenarios where there are no results returned from the + // API. In addition promoting CREATE to a first class suggestion affords + // the a11y benefits afforded by `URLInput` to all suggestions (eg: + // keyboard handling, ARIA roles...etc). + // + // Note also that the value of the `title` and `url` properties must correspond + // to the text value of the ``. This is because `title` is used + // when creating the suggestion. Similarly `url` is used when using keyboard to select + // the suggestion (the `onSubmit` handler falls-back to `url`). + return isURLLike(val) || !withCreateSuggestion ? results : results.concat({ + // the `id` prop is intentionally ommitted here because it + // is never exposed as part of the component's public API. + // see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316. + title: val, + // Must match the existing ``s text value. + url: val, + // Must match the existing ``s text value. + type: CREATE_TYPE + }); }; -function useInView(props, args) { - const [isInView, setIsInView] = useState2(false); - const ref = useRef3(); - const propsFn = is12.fun(props) && props; - const springsProps = propsFn ? propsFn() : {}; - const { to: to2 = {}, from = {}, ...restSpringProps } = springsProps; - const intersectionArguments = propsFn ? args : props; - const [springs, api] = useSpring(() => ({ from, ...restSpringProps }), []); - useIsomorphicLayoutEffect7(() => { - const element = ref.current; +function useSearchHandler(suggestionsQuery, allowDirectEntry, withCreateSuggestion, withURLSuggestion) { + const { + fetchSearchSuggestions, + pageOnFront + } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - root, - once, - amount = "any", - ...restArgs - } = intersectionArguments ?? {}; - if (!element || once && isInView || typeof IntersectionObserver === "undefined") - return; - const activeIntersections = /* @__PURE__ */ new WeakMap(); - const onEnter = () => { - if (to2) { - api.start(to2); - } - setIsInView(true); - const cleanup = () => { - if (from) { - api.start(from); - } - setIsInView(false); - }; - return once ? void 0 : cleanup; - }; - const handleIntersection = (entries) => { - entries.forEach((entry) => { - const onLeave = activeIntersections.get(entry.target); - if (entry.isIntersecting === Boolean(onLeave)) { - return; - } - if (entry.isIntersecting) { - const newOnLeave = onEnter(); - if (is12.fun(newOnLeave)) { - activeIntersections.set(entry.target, newOnLeave); - } else { - observer.unobserve(entry.target); - } - } else if (onLeave) { - onLeave(); - activeIntersections.delete(entry.target); - } - }); + getSettings + } = select(store); + return { + pageOnFront: getSettings().pageOnFront, + fetchSearchSuggestions: getSettings().__experimentalFetchLinkSuggestions }; - const observer = new IntersectionObserver(handleIntersection, { - root: root && root.current || void 0, - threshold: typeof amount === "number" || Array.isArray(amount) ? amount : defaultThresholdOptions[amount], - ...restArgs - }); - observer.observe(element); - return () => observer.unobserve(element); - }, [intersectionArguments]); - if (propsFn) { - return [ref, springs]; - } - return [ref, isInView]; + }, []); + const directEntryHandler = allowDirectEntry ? handleDirectEntry : handleNoop; + return (0,external_wp_element_namespaceObject.useCallback)((val, { + isInitialSuggestions + }) => { + return isURLLike(val) ? directEntryHandler(val, { + isInitialSuggestions + }) : handleEntitySearch(val, { + ...suggestionsQuery, + isInitialSuggestions + }, fetchSearchSuggestions, withCreateSuggestion, withURLSuggestion, pageOnFront); + }, [directEntryHandler, fetchSearchSuggestions, pageOnFront, suggestionsQuery, withCreateSuggestion, withURLSuggestion]); } -// src/components/Spring.tsx -function Spring({ children, ...props }) { - return children(useSpring(props)); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-input.js -// src/components/Trail.tsx +/** + * External dependencies + */ -function Trail({ - items, - children, - ...props -}) { - const trails = useTrail(items.length, props); - return items.map((item, index) => { - const result = children(item, index); - return is13.fun(result) ? result(trails[index]) : result; - }); -} +/** + * WordPress dependencies + */ -// src/components/Transition.tsx -function Transition({ - items, - children, - ...props -}) { - return useTransition(items, props)(children); -} -// src/interpolate.ts -// src/Interpolation.ts +/** + * Internal dependencies + */ -var Interpolation = class extends FrameValue { - constructor(source, args) { - super(); - this.source = source; - /** Equals false when in the frameloop */ - this.idle = true; - /** The inputs which are currently animating */ - this._active = /* @__PURE__ */ new Set(); - this.calc = createInterpolator(...args); - const value = this._get(); - const nodeType = getAnimatedType(value); - setAnimated(this, nodeType.create(value)); - } - advance(_dt) { - const value = this._get(); - const oldValue = this.get(); - if (!isEqual(value, oldValue)) { - getAnimated(this).setValue(value); - this._onChange(value, this.idle); - } - if (!this.idle && checkIdle(this._active)) { - becomeIdle(this); - } - } - _get() { - const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source)); - return this.calc(...inputs); - } - _start() { - if (this.idle && !checkIdle(this._active)) { - this.idle = false; - react_spring_shared_modern_each(getPayload(this), (node) => { - node.done = false; - }); - if (globals_exports.skipAnimation) { - raf.batchedUpdates(() => this.advance()); - becomeIdle(this); - } else { - frameLoop.start(this); + + + +// Must be a function as otherwise URLInput will default +// to the fetchLinkSuggestions passed in block editor settings +// which will cause an unintended http request. +const noopSearchHandler = () => Promise.resolve([]); +const search_input_noop = () => {}; +const LinkControlSearchInput = (0,external_wp_element_namespaceObject.forwardRef)(({ + value, + children, + currentLink = {}, + className = null, + placeholder = null, + withCreateSuggestion = false, + onCreateSuggestion = search_input_noop, + onChange = search_input_noop, + onSelect = search_input_noop, + showSuggestions = true, + renderSuggestions = props => (0,external_wp_element_namespaceObject.createElement)(LinkControlSearchResults, { + ...props + }), + fetchSuggestions = null, + allowDirectEntry = true, + showInitialSuggestions = false, + suggestionsQuery = {}, + withURLSuggestion = true, + createSuggestionButtonText, + hideLabelFromVision = false +}, ref) => { + const genericSearchHandler = useSearchHandler(suggestionsQuery, allowDirectEntry, withCreateSuggestion, withURLSuggestion); + const searchHandler = showSuggestions ? fetchSuggestions || genericSearchHandler : noopSearchHandler; + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkControlSearchInput); + const [focusedSuggestion, setFocusedSuggestion] = (0,external_wp_element_namespaceObject.useState)(); + + /** + * Handles the user moving between different suggestions. Does not handle + * choosing an individual item. + * + * @param {string} selection the url of the selected suggestion. + * @param {Object} suggestion the suggestion object. + */ + const onInputChange = (selection, suggestion) => { + onChange(selection); + setFocusedSuggestion(suggestion); + }; + const handleRenderSuggestions = props => renderSuggestions({ + ...props, + instanceId, + withCreateSuggestion, + createSuggestionButtonText, + suggestionsQuery, + handleSuggestionClick: suggestion => { + if (props.handleSuggestionClick) { + props.handleSuggestionClick(suggestion); } + onSuggestionSelected(suggestion); } - } - // Observe our sources only when we're observed. - _attach() { - let priority = 1; - react_spring_shared_modern_each(toArray(this.source), (source) => { - if (hasFluidValue(source)) { - addFluidObserver(source, this); - } - if (isFrameValue(source)) { - if (!source.idle) { - this._active.add(source); + }); + const onSuggestionSelected = async selectedSuggestion => { + let suggestion = selectedSuggestion; + if (CREATE_TYPE === selectedSuggestion.type) { + // Create a new page and call onSelect with the output from the onCreateSuggestion callback. + try { + suggestion = await onCreateSuggestion(selectedSuggestion.title); + if (suggestion?.url) { + onSelect(suggestion); } - priority = Math.max(priority, source.priority + 1); - } - }); - this.priority = priority; - this._start(); - } - // Stop observing our sources once we have no observers. - _detach() { - react_spring_shared_modern_each(toArray(this.source), (source) => { - if (hasFluidValue(source)) { - removeFluidObserver(source, this); - } - }); - this._active.clear(); - becomeIdle(this); - } - /** @internal */ - eventObserved(event) { - if (event.type == "change") { - if (event.idle) { - this.advance(); + } catch (e) {} + return; + } + if (allowDirectEntry || suggestion && Object.keys(suggestion).length >= 1) { + const { + id, + url, + ...restLinkProps + } = currentLink !== null && currentLink !== void 0 ? currentLink : {}; + onSelect( + // Some direct entries don't have types or IDs, and we still need to clear the previous ones. + { + ...restLinkProps, + ...suggestion + }, suggestion); + } + }; + const inputClasses = classnames_default()(className, { + // 'has-no-label': ! hideLabelFromVision, + }); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-input-container" + }, (0,external_wp_element_namespaceObject.createElement)(url_input, { + disableSuggestions: currentLink?.url === value, + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Link'), + hideLabelFromVision: hideLabelFromVision, + className: inputClasses, + value: value, + onChange: onInputChange, + placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : (0,external_wp_i18n_namespaceObject.__)('Search or type url'), + __experimentalRenderSuggestions: showSuggestions ? handleRenderSuggestions : null, + __experimentalFetchLinkSuggestions: searchHandler, + __experimentalHandleURLSuggestions: true, + __experimentalShowInitialSuggestions: showInitialSuggestions, + onSubmit: (suggestion, event) => { + const hasSuggestion = suggestion || focusedSuggestion; + + // If there is no suggestion and the value (ie: any manually entered URL) is empty + // then don't allow submission otherwise we get empty links. + if (!hasSuggestion && !value?.trim()?.length) { + event.preventDefault(); } else { - this._active.add(event.parent); - this._start(); + onSuggestionSelected(hasSuggestion || { + url: value + }); } - } else if (event.type == "idle") { - this._active.delete(event.parent); - } else if (event.type == "priority") { - this.priority = toArray(this.source).reduce( - (highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), - 0 - ); - } - } -}; -function isIdle(source) { - return source.idle !== false; -} -function checkIdle(active) { - return !active.size || Array.from(active).every(isIdle); -} -function becomeIdle(self) { - if (!self.idle) { - self.idle = true; - react_spring_shared_modern_each(getPayload(self), (node) => { - node.done = true; - }); - callFluidObservers(self, { - type: "idle", - parent: self - }); + }, + ref: ref + }), children); +}); +/* harmony default export */ var search_input = (LinkControlSearchInput); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/info.js + +/** + * WordPress dependencies + */ + +const info = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z" +})); +/* harmony default export */ var library_info = (info); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js + +/** + * WordPress dependencies + */ + +const pencil = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z" +})); +/* harmony default export */ var library_pencil = (pencil); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js +/** + * Internal dependencies + */ + + +/* harmony default export */ var library_edit = (library_pencil); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js + +/** + * WordPress dependencies + */ + +const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z" +})); +/* harmony default export */ var link_off = (linkOff); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/viewer-slot.js +/** + * WordPress dependencies + */ + +const { + Slot: ViewerSlot, + Fill: ViewerFill +} = (0,external_wp_components_namespaceObject.createSlotFill)('BlockEditorLinkControlViewer'); + +/* harmony default export */ var viewer_slot = ((/* unused pure expression or super */ null && (ViewerSlot))); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-rich-url-data.js +/** + * Internal dependencies + */ + + +/** + * WordPress dependencies + */ + + +function use_rich_url_data_reducer(state, action) { + switch (action.type) { + case 'RESOLVED': + return { + ...state, + isFetching: false, + richData: action.richData + }; + case 'ERROR': + return { + ...state, + isFetching: false, + richData: null + }; + case 'LOADING': + return { + ...state, + isFetching: true + }; + default: + throw new Error(`Unexpected action type ${action.type}`); } } +function useRemoteUrlData(url) { + const [state, dispatch] = (0,external_wp_element_namespaceObject.useReducer)(use_rich_url_data_reducer, { + richData: null, + isFetching: false + }); + const { + fetchRichUrlData + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return { + fetchRichUrlData: getSettings().__experimentalFetchRichUrlData + }; + }, []); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // Only make the request if we have an actual URL + // and the fetching util is available. In some editors + // there may not be such a util. + if (url?.length && fetchRichUrlData && typeof AbortController !== 'undefined') { + dispatch({ + type: 'LOADING' + }); + const controller = new window.AbortController(); + const signal = controller.signal; + fetchRichUrlData(url, { + signal + }).then(urlData => { + dispatch({ + type: 'RESOLVED', + richData: urlData + }); + }).catch(() => { + // Avoid setting state on unmounted component + if (!signal.aborted) { + dispatch({ + type: 'ERROR' + }); + } + }); + // Cleanup: when the URL changes the abort the current request. + return () => { + controller.abort(); + }; + } + }, [url]); + return state; +} +/* harmony default export */ var use_rich_url_data = (useRemoteUrlData); -// src/interpolate.ts -var react_spring_core_modern_to = (source, ...args) => new Interpolation(source, args); -var react_spring_core_modern_interpolate = (source, ...args) => (deprecateInterpolate2(), new Interpolation(source, args)); - -// src/globals.ts +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/link-preview.js -globals_exports.assign({ - createStringInterpolator: createStringInterpolator2, - to: (source, args) => new Interpolation(source, args) -}); -var react_spring_core_modern_update = frameLoop.advance; +/** + * External dependencies + */ -// src/index.ts +/** + * WordPress dependencies + */ -;// CONCATENATED MODULE: external "ReactDOM" -var external_ReactDOM_namespaceObject = window["ReactDOM"]; -;// CONCATENATED MODULE: ./node_modules/@react-spring/web/dist/react-spring_web.modern.mjs -// src/index.ts +/** + * Internal dependencies + */ -// src/applyAnimatedValues.ts -var isCustomPropRE = /^--/; -function dangerousStyleValue(name, value) { - if (value == null || typeof value === "boolean" || value === "") - return ""; - if (typeof value === "number" && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) - return value + "px"; - return ("" + value).trim(); -} -var attributeCache = {}; -function applyAnimatedValues(instance, props) { - if (!instance.nodeType || !instance.setAttribute) { - return false; - } - const isFilterElement = instance.nodeName === "filter" || instance.parentNode && instance.parentNode.nodeName === "filter"; - const { style, children, scrollTop, scrollLeft, viewBox, ...attributes } = props; - const values = Object.values(attributes); - const names = Object.keys(attributes).map( - (name) => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace( - /([A-Z])/g, - // Attributes are written in dash case - (n) => "-" + n.toLowerCase() - )) - ); - if (children !== void 0) { - instance.textContent = children; - } - for (const name in style) { - if (style.hasOwnProperty(name)) { - const value = dangerousStyleValue(name, style[name]); - if (isCustomPropRE.test(name)) { - instance.style.setProperty(name, value); - } else { - instance.style[name] = value; - } - } - } - names.forEach((name, i) => { - instance.setAttribute(name, values[i]); - }); - if (scrollTop !== void 0) { - instance.scrollTop = scrollTop; - } - if (scrollLeft !== void 0) { - instance.scrollLeft = scrollLeft; - } - if (viewBox !== void 0) { - instance.setAttribute("viewBox", viewBox); - } -} -var isUnitlessNumber = { - animationIterationCount: true, - borderImageOutset: true, - borderImageSlice: true, - borderImageWidth: true, - boxFlex: true, - boxFlexGroup: true, - boxOrdinalGroup: true, - columnCount: true, - columns: true, - flex: true, - flexGrow: true, - flexPositive: true, - flexShrink: true, - flexNegative: true, - flexOrder: true, - gridRow: true, - gridRowEnd: true, - gridRowSpan: true, - gridRowStart: true, - gridColumn: true, - gridColumnEnd: true, - gridColumnSpan: true, - gridColumnStart: true, - fontWeight: true, - lineClamp: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - tabSize: true, - widows: true, - zIndex: true, - zoom: true, - // SVG-related properties - fillOpacity: true, - floodOpacity: true, - stopOpacity: true, - strokeDasharray: true, - strokeDashoffset: true, - strokeMiterlimit: true, - strokeOpacity: true, - strokeWidth: true -}; -var prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1); -var prefixes = ["Webkit", "Ms", "Moz", "O"]; -isUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => { - prefixes.forEach((prefix) => acc[prefixKey(prefix, prop)] = acc[prop]); - return acc; -}, isUnitlessNumber); -// src/AnimatedStyle.ts +function LinkPreview({ + value, + onEditClick, + hasRichPreviews = false, + hasUnlinkControl = false, + onRemove, + additionalControls +}) { + // Avoid fetching if rich previews are not desired. + const showRichPreviews = hasRichPreviews ? value?.url : null; + const { + richData, + isFetching + } = use_rich_url_data(showRichPreviews); + // Rich data may be an empty object so test for that. + const hasRichData = richData && Object.keys(richData).length; + const displayURL = value && (0,external_wp_url_namespaceObject.filterURLForDisplay)((0,external_wp_url_namespaceObject.safeDecodeURI)(value.url), 16) || ''; -var domTransforms = /^(matrix|translate|scale|rotate|skew)/; -var pxTransforms = /^(translate)/; -var degTransforms = /^(rotate|skew)/; -var addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value; -var isValueIdentity = (value, id) => is.arr(value) ? value.every((v) => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id; -var AnimatedStyle = class extends AnimatedObject { - constructor({ x, y, z, ...style }) { - const inputs = []; - const transforms = []; - if (x || y || z) { - inputs.push([x || 0, y || 0, z || 0]); - transforms.push((xyz) => [ - `translate3d(${xyz.map((v) => addUnit(v, "px")).join(",")})`, - // prettier-ignore - isValueIdentity(xyz, 0) - ]); - } - eachProp(style, (value, key) => { - if (key === "transform") { - inputs.push([value || ""]); - transforms.push((transform) => [transform, transform === ""]); - } else if (domTransforms.test(key)) { - delete style[key]; - if (is.und(value)) - return; - const unit = pxTransforms.test(key) ? "px" : degTransforms.test(key) ? "deg" : ""; - inputs.push(toArray(value)); - transforms.push( - key === "rotate3d" ? ([x2, y2, z2, deg]) => [ - `rotate3d(${x2},${y2},${z2},${addUnit(deg, unit)})`, - isValueIdentity(deg, 0) - ] : (input) => [ - `${key}(${input.map((v) => addUnit(v, unit)).join(",")})`, - isValueIdentity(input, key.startsWith("scale") ? 1 : 0) - ] - ); - } + // url can be undefined if the href attribute is unset + const isEmptyURL = !value?.url?.length; + const displayTitle = !isEmptyURL && (0,external_wp_dom_namespaceObject.__unstableStripHTML)(richData?.title || value?.title || displayURL); + let icon; + if (richData?.icon) { + icon = (0,external_wp_element_namespaceObject.createElement)("img", { + src: richData?.icon, + alt: "" }); - if (inputs.length) { - style.transform = new FluidTransform(inputs, transforms); - } - super(style); - } -}; -var FluidTransform = class extends FluidValue { - constructor(inputs, transforms) { - super(); - this.inputs = inputs; - this.transforms = transforms; - this._value = null; - } - get() { - return this._value || (this._value = this._get()); - } - _get() { - let transform = ""; - let identity = true; - react_spring_shared_modern_each(this.inputs, (input, i) => { - const arg1 = getFluidValue(input[0]); - const [t, id] = this.transforms[i]( - is.arr(arg1) ? arg1 : input.map(getFluidValue) - ); - transform += " " + t; - identity = identity && id; + } else if (isEmptyURL) { + icon = (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_info, + size: 32 + }); + } else { + icon = (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_globe }); - return identity ? "none" : transform; - } - // Start observing our inputs once we have an observer. - observerAdded(count) { - if (count == 1) - react_spring_shared_modern_each( - this.inputs, - (input) => react_spring_shared_modern_each( - input, - (value) => hasFluidValue(value) && addFluidObserver(value, this) - ) - ); - } - // Stop observing our inputs once we have no observers. - observerRemoved(count) { - if (count == 0) - react_spring_shared_modern_each( - this.inputs, - (input) => react_spring_shared_modern_each( - input, - (value) => hasFluidValue(value) && removeFluidObserver(value, this) - ) - ); - } - eventObserved(event) { - if (event.type == "change") { - this._value = null; - } - callFluidObservers(this, event); } -}; - -// src/primitives.ts -var primitives = [ - "a", - "abbr", - "address", - "area", - "article", - "aside", - "audio", - "b", - "base", - "bdi", - "bdo", - "big", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "cite", - "code", - "col", - "colgroup", - "data", - "datalist", - "dd", - "del", - "details", - "dfn", - "dialog", - "div", - "dl", - "dt", - "em", - "embed", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "hgroup", - "hr", - "html", - "i", - "iframe", - "img", - "input", - "ins", - "kbd", - "keygen", - "label", - "legend", - "li", - "link", - "main", - "map", - "mark", - "menu", - "menuitem", - "meta", - "meter", - "nav", - "noscript", - "object", - "ol", - "optgroup", - "option", - "output", - "p", - "param", - "picture", - "pre", - "progress", - "q", - "rp", - "rt", - "ruby", - "s", - "samp", - "script", - "section", - "select", - "small", - "source", - "span", - "strong", - "style", - "sub", - "summary", - "sup", - "table", - "tbody", - "td", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "tr", - "track", - "u", - "ul", - "var", - "video", - "wbr", - // SVG - "circle", - "clipPath", - "defs", - "ellipse", - "foreignObject", - "g", - "image", - "line", - "linearGradient", - "mask", - "path", - "pattern", - "polygon", - "polyline", - "radialGradient", - "rect", - "stop", - "svg", - "text", - "tspan" -]; - -// src/index.ts + return (0,external_wp_element_namespaceObject.createElement)("div", { + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Currently selected'), + className: classnames_default()('block-editor-link-control__search-item', { + 'is-current': true, + 'is-rich': hasRichData, + 'is-fetching': !!isFetching, + 'is-preview': true, + 'is-error': isEmptyURL, + 'is-url-title': displayTitle === displayURL + }) + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-item-top" + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-link-control__search-item-header" + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: classnames_default()('block-editor-link-control__search-item-icon', { + 'is-image': richData?.icon + }) + }, icon), (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-link-control__search-item-details" + }, !isEmptyURL ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + className: "block-editor-link-control__search-item-title", + href: value.url + }, displayTitle), value?.url && displayTitle !== displayURL && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-link-control__search-item-info" + }, displayURL)) : (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-link-control__search-item-error-notice" + }, (0,external_wp_i18n_namespaceObject.__)('Link is empty')))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: library_edit, + label: (0,external_wp_i18n_namespaceObject.__)('Edit'), + className: "block-editor-link-control__search-item-action", + onClick: onEditClick, + iconSize: 24 + }), hasUnlinkControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: link_off, + label: (0,external_wp_i18n_namespaceObject.__)('Unlink'), + className: "block-editor-link-control__search-item-action block-editor-link-control__unlink", + onClick: onRemove, + iconSize: 24 + }), (0,external_wp_element_namespaceObject.createElement)(ViewerSlot, { + fillProps: value + })), !!(hasRichData && (richData?.image || richData?.description) || isFetching) && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-item-bottom" + }, (richData?.image || isFetching) && (0,external_wp_element_namespaceObject.createElement)("div", { + "aria-hidden": !richData?.image, + className: classnames_default()('block-editor-link-control__search-item-image', { + 'is-placeholder': !richData?.image + }) + }, richData?.image && (0,external_wp_element_namespaceObject.createElement)("img", { + src: richData?.image, + alt: "" + })), (richData?.description || isFetching) && (0,external_wp_element_namespaceObject.createElement)("div", { + "aria-hidden": !richData?.description, + className: classnames_default()('block-editor-link-control__search-item-description', { + 'is-placeholder': !richData?.description + }) + }, richData?.description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, { + truncate: true, + numberOfLines: "2" + }, richData.description))), additionalControls && additionalControls()); +} -globals_exports.assign({ - batchedUpdates: external_ReactDOM_namespaceObject.unstable_batchedUpdates, - createStringInterpolator: createStringInterpolator2, - colors: colors2 -}); -var host = createHost(primitives, { - applyAnimatedValues, - createAnimatedStyle: (style) => new AnimatedStyle(style), - // eslint-disable-next-line @typescript-eslint/no-unused-vars - getComponentProps: ({ scrollTop, scrollLeft, ...props }) => props -}); -var animated = host.animated; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-moving-animation/index.js /** - * External dependencies + * WordPress dependencies */ +const settings_noop = () => {}; +const LinkControlSettings = ({ + value, + onChange = settings_noop, + settings +}) => { + if (!settings || !settings.length) { + return null; + } + const handleSettingChange = setting => newValue => { + onChange({ + ...value, + [setting.id]: newValue + }); + }; + const theSettings = settings.map(setting => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CheckboxControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-link-control__setting", + key: setting.id, + label: setting.title, + onChange: handleSettingChange(setting), + checked: value ? !!value[setting.id] : false, + help: setting?.help + })); + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-link-control__settings" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Currently selected link settings')), theSettings); +}; +/* harmony default export */ var link_control_settings = (LinkControlSettings); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-create-page.js /** * WordPress dependencies */ +function useCreatePage(handleCreatePage) { + const cancelableCreateSuggestion = (0,external_wp_element_namespaceObject.useRef)(); + const [isCreatingPage, setIsCreatingPage] = (0,external_wp_element_namespaceObject.useState)(false); + const [errorMessage, setErrorMessage] = (0,external_wp_element_namespaceObject.useState)(null); + const createPage = async function (suggestionTitle) { + setIsCreatingPage(true); + setErrorMessage(null); + try { + // Make cancellable in order that we can avoid setting State + // if the component unmounts during the call to `createSuggestion` + cancelableCreateSuggestion.current = makeCancelable( + // Using Promise.resolve to allow createSuggestion to return a + // non-Promise based value. + Promise.resolve(handleCreatePage(suggestionTitle))); + return await cancelableCreateSuggestion.current.promise; + } catch (error) { + if (error && error.isCanceled) { + return; // bail if canceled to avoid setting state + } + setErrorMessage(error.message || (0,external_wp_i18n_namespaceObject.__)('An unknown error occurred during creation. Please try again.')); + throw error; + } finally { + setIsCreatingPage(false); + } + }; -/** - * Internal dependencies - */ - + /** + * Handles cancelling any pending Promises that have been made cancelable. + */ + (0,external_wp_element_namespaceObject.useEffect)(() => { + return () => { + // componentDidUnmount + if (cancelableCreateSuggestion.current) { + cancelableCreateSuggestion.current.cancel(); + } + }; + }, []); + return { + createPage, + isCreatingPage, + errorMessage + }; +} /** - * If the block count exceeds the threshold, we disable the reordering animation - * to avoid laginess. + * Creates a wrapper around a promise which allows it to be programmatically + * cancelled. + * See: https://reactjs.org/blog/2015/12/16/ismounted-antipattern.html + * + * @param {Promise} promise the Promise to make cancelable */ -const BLOCK_ANIMATION_THRESHOLD = 200; -function getAbsolutePosition(element) { +const makeCancelable = promise => { + let hasCanceled_ = false; + const wrappedPromise = new Promise((resolve, reject) => { + promise.then(val => hasCanceled_ ? reject({ + isCanceled: true + }) : resolve(val), error => hasCanceled_ ? reject({ + isCanceled: true + }) : reject(error)); + }); return { - top: element.offsetTop, - left: element.offsetLeft + promise: wrappedPromise, + cancel() { + hasCanceled_ = true; + } }; -} +}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/use-internal-value.js /** - * Hook used to compute the styles required to move a div into a new position. - * - * The way this animation works is the following: - * - It first renders the element as if there was no animation. - * - It takes a snapshot of the position of the block to use it - * as a destination point for the animation. - * - It restores the element to the previous position using a CSS transform - * - It uses the "resetAnimation" flag to reset the animation - * from the beginning in order to animate to the new destination point. - * - * @param {Object} $1 Options - * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes. - * @param {string} $1.clientId + * WordPress dependencies */ -function useMovingAnimation({ - triggerAnimationOnChange, - clientId -}) { - const ref = (0,external_wp_element_namespaceObject.useRef)(); - const { - isTyping, - getGlobalBlockCount, - isBlockSelected, - isFirstMultiSelectedBlock, - isBlockMultiSelected, - isAncestorMultiSelected - } = (0,external_wp_data_namespaceObject.useSelect)(store); - // Whenever the trigger changes, we need to take a snapshot of the current - // position of the block to use it as a destination point for the animation. - const { - previous, - prevRect - } = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - previous: ref.current && getAbsolutePosition(ref.current), - prevRect: ref.current && ref.current.getBoundingClientRect() - }), - // eslint-disable-next-line react-hooks/exhaustive-deps - [triggerAnimationOnChange]); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!previous || !ref.current) { - return; - } - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(ref.current); - const isSelected = isBlockSelected(clientId); - const adjustScrolling = isSelected || isFirstMultiSelectedBlock(clientId); - function preserveScrollPosition() { - if (adjustScrolling && prevRect) { - const blockRect = ref.current.getBoundingClientRect(); - const diff = blockRect.top - prevRect.top; - if (diff) { - scrollContainer.scrollTop += diff; - } - } - } +function useInternalValue(value) { + const [internalValue, setInternalValue] = (0,external_wp_element_namespaceObject.useState)(value || {}); - // We disable the animation if the user has a preference for reduced - // motion, if the user is typing (insertion by Enter), or if the block - // count exceeds the threshold (insertion caused all the blocks that - // follow to animate). - // To do: consider enableing the _moving_ animation even for large - // posts, while only disabling the _insertion_ animation? - const disableAnimation = window.matchMedia('(prefers-reduced-motion: reduce)').matches || isTyping() || getGlobalBlockCount() > BLOCK_ANIMATION_THRESHOLD; - if (disableAnimation) { - // If the animation is disabled and the scroll needs to be adjusted, - // just move directly to the final scroll position. - preserveScrollPosition(); - return; - } - const isPartOfSelection = isSelected || isBlockMultiSelected(clientId) || isAncestorMultiSelected(clientId); - // Make sure the other blocks move under the selected block(s). - const zIndex = isPartOfSelection ? '1' : ''; - const controller = new Controller({ - x: 0, - y: 0, - config: { - mass: 5, - tension: 2000, - friction: 200 - }, - onChange({ - value - }) { - if (!ref.current) { - return; - } - let { - x, - y - } = value; - x = Math.round(x); - y = Math.round(y); - const finishedMoving = x === 0 && y === 0; - ref.current.style.transformOrigin = 'center center'; - ref.current.style.transform = finishedMoving ? null // Set to `null` to explicitly remove the transform. - : `translate3d(${x}px,${y}px,0)`; - ref.current.style.zIndex = zIndex; - preserveScrollPosition(); + // If the value prop changes, update the internal state. + (0,external_wp_element_namespaceObject.useEffect)(() => { + setInternalValue(prevValue => { + if (value && value !== prevValue) { + return value; } + return prevValue; }); - ref.current.style.transform = undefined; - const destination = getAbsolutePosition(ref.current); - const x = Math.round(previous.left - destination.left); - const y = Math.round(previous.top - destination.top); - controller.start({ - x: 0, - y: 0, - from: { - x, - y + }, [value]); + const setInternalURLInputValue = nextValue => { + setInternalValue({ + ...internalValue, + url: nextValue + }); + }; + const setInternalTextInputValue = nextValue => { + setInternalValue({ + ...internalValue, + title: nextValue + }); + }; + const createSetInternalSettingValueHandler = settingsKeys => nextValue => { + // Only apply settings values which are defined in the settings prop. + const settingsUpdates = Object.keys(nextValue).reduce((acc, key) => { + if (settingsKeys.includes(key)) { + acc[key] = nextValue[key]; } + return acc; + }, {}); + setInternalValue({ + ...internalValue, + ...settingsUpdates }); - return () => { - controller.stop(); - }; - }, [previous, prevRect, clientId, isTyping, getGlobalBlockCount, isBlockSelected, isFirstMultiSelectedBlock, isBlockMultiSelected, isAncestorMultiSelected]); - return ref; + }; + return [internalValue, setInternalValue, setInternalURLInputValue, setInternalTextInputValue, createSetInternalSettingValueHandler]; } -/* harmony default export */ var use_moving_animation = (useMovingAnimation); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/private-block-context.js -/** - * WordPress dependencies - */ - -const PrivateBlockContext = (0,external_wp_element_namespaceObject.createContext)({}); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/dom.js -const BLOCK_SELECTOR = '.block-editor-block-list__block'; -const APPENDER_SELECTOR = '.block-list-appender'; -const BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender'; -/** - * Returns true if two elements are contained within the same block. - * - * @param {Element} a First element. - * @param {Element} b Second element. - * - * @return {boolean} Whether elements are in the same block. - */ -function isInSameBlock(a, b) { - return a.closest(BLOCK_SELECTOR) === b.closest(BLOCK_SELECTOR); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/index.js /** - * Returns true if an element is considered part of the block and not its inner - * blocks or appender. - * - * @param {Element} blockElement Block container element. - * @param {Element} element Element. - * - * @return {boolean} Whether an element is considered part of the block and not - * its inner blocks or appender. + * External dependencies */ -function isInsideRootBlock(blockElement, element) { - const parentBlock = element.closest([BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS].join(',')); - return parentBlock === blockElement; -} -/** - * Finds the block client ID given any DOM node inside the block. - * - * @param {Node?} node DOM node. - * - * @return {string|undefined} Client ID or undefined if the node is not part of - * a block. - */ -function getBlockClientId(node) { - while (node && node.nodeType !== node.ELEMENT_NODE) { - node = node.parentNode; - } - if (!node) { - return; - } - const elementNode = /** @type {Element} */node; - const blockNode = elementNode.closest(BLOCK_SELECTOR); - if (!blockNode) { - return; - } - return blockNode.id.slice('block-'.length); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-focus-first-element.js /** * WordPress dependencies */ @@ -41035,337 +34601,389 @@ function getBlockClientId(node) { -/** - * Internal dependencies - */ -/** @typedef {import('@wordpress/element').RefObject} RefObject */ + + /** - * Transitions focus to the block or inner tabbable when the block becomes - * selected and an initial position is set. - * - * @param {string} clientId Block client ID. - * - * @return {RefObject} React ref with the block element. + * Internal dependencies */ -function useFocusFirstElement({ - clientId, - initialPosition -}) { - const ref = (0,external_wp_element_namespaceObject.useRef)(); - const { - isBlockSelected, - isMultiSelecting - } = (0,external_wp_data_namespaceObject.useSelect)(store); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // Check if the block is still selected at the time this effect runs. - if (!isBlockSelected(clientId) || isMultiSelecting()) { - return; - } - if (initialPosition === undefined || initialPosition === null) { - return; - } - if (!ref.current) { - return; - } - const { - ownerDocument - } = ref.current; - // Do not focus the block if it already contains the active element. - if (isInsideRootBlock(ref.current, ownerDocument.activeElement)) { - return; - } - // Find all tabbables within node. - const textInputs = external_wp_dom_namespaceObject.focus.tabbable.find(ref.current).filter(node => (0,external_wp_dom_namespaceObject.isTextField)(node)); - // If reversed (e.g. merge via backspace), use the last in the set of - // tabbables. - const isReverse = -1 === initialPosition; - const target = textInputs[isReverse ? textInputs.length - 1 : 0] || ref.current; - if (!isInsideRootBlock(ref.current, target)) { - ref.current.focus(); - return; - } - // Check to see if element is focussable before a generic caret insert. - if (!ref.current.getAttribute('contenteditable')) { - const focusElement = external_wp_dom_namespaceObject.focus.tabbable.findNext(ref.current); - // Make sure focusElement is valid, contained in the same block, and a form field. - if (focusElement && isInsideRootBlock(ref.current, focusElement) && (0,external_wp_dom_namespaceObject.isFormElement)(focusElement)) { - focusElement.focus(); - return; - } - } - (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(target, isReverse); - }, [initialPosition, clientId]); - return ref; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-is-hovered.js -/** - * WordPress dependencies - */ -function listener(event) { - if (event.defaultPrevented) { - return; - } - const action = event.type === 'mouseover' ? 'add' : 'remove'; - event.preventDefault(); - event.currentTarget.classList[action]('is-hovered'); -} -/* - * Adds `is-hovered` class when the block is hovered and in navigation or - * outline mode. - */ -function useIsHovered({ - isEnabled -}) { - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (isEnabled) { - node.addEventListener('mouseout', listener); - node.addEventListener('mouseover', listener); - return () => { - node.removeEventListener('mouseout', listener); - node.removeEventListener('mouseover', listener); - // Remove class in case it lingers. - node.classList.remove('is-hovered'); - }; - } - }, [isEnabled]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-focus-handler.js /** - * WordPress dependencies + * Default properties associated with a link control value. + * + * @typedef WPLinkControlDefaultValue + * + * @property {string} url Link URL. + * @property {string=} title Link title. + * @property {boolean=} opensInNewTab Whether link should open in a new browser + * tab. This value is only assigned if not + * providing a custom `settings` prop. */ - - +/* eslint-disable jsdoc/valid-types */ /** - * Internal dependencies + * Custom settings values associated with a link. + * + * @typedef {{[setting:string]:any}} WPLinkControlSettingsValue */ - - +/* eslint-enable */ /** - * Selects the block if it receives focus. + * Custom settings values associated with a link. * - * @param {string} clientId Block client ID. + * @typedef WPLinkControlSetting + * + * @property {string} id Identifier to use as property for setting value. + * @property {string} title Human-readable label to show in user interface. */ -function useFocusHandler(clientId) { - const { - isBlockSelected - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - selectBlock, - selectionChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - /** - * Marks the block as selected when focused and not already - * selected. This specifically handles the case where block does not - * set focus on its own (via `setFocus`), typically if there is no - * focusable input in the block. - * - * @param {FocusEvent} event Focus event. - */ - function onFocus(event) { - // When the whole editor is editable, let writing flow handle - // selection. - if (node.parentElement.closest('[contenteditable="true"]')) { - return; - } - - // Check synchronously because a non-selected block might be - // getting data through `useSelect` asynchronously. - if (isBlockSelected(clientId)) { - // Potentially change selection away from rich text. - if (!event.target.isContentEditable) { - selectionChange(clientId); - } - return; - } - // If an inner block is focussed, that block is resposible for - // setting the selected block. - if (!isInsideRootBlock(node, event.target)) { - return; - } - selectBlock(clientId); - } - node.addEventListener('focusin', onFocus); - return () => { - node.removeEventListener('focusin', onFocus); - }; - }, [isBlockSelected, selectBlock]); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js /** - * WordPress dependencies + * Properties associated with a link control value, composed as a union of the + * default properties and any custom settings values. + * + * @typedef {WPLinkControlDefaultValue&WPLinkControlSettingsValue} WPLinkControlValue */ +/** @typedef {(nextValue:WPLinkControlValue)=>void} WPLinkControlOnChangeProp */ +/** + * Properties associated with a search suggestion used within the LinkControl. + * + * @typedef WPLinkControlSuggestion + * + * @property {string} id Identifier to use to uniquely identify the suggestion. + * @property {string} type Identifies the type of the suggestion (eg: `post`, + * `page`, `url`...etc) + * @property {string} title Human-readable label to show in user interface. + * @property {string} url A URL for the suggestion. + */ - +/** @typedef {(title:string)=>WPLinkControlSuggestion} WPLinkControlCreateSuggestionProp */ /** - * Internal dependencies + * @typedef WPLinkControlProps + * + * @property {(WPLinkControlSetting[])=} settings An array of settings objects. Each object will used to + * render a `ToggleControl` for that setting. + * @property {boolean=} forceIsEditingLink If passed as either `true` or `false`, controls the + * internal editing state of the component to respective + * show or not show the URL input field. + * @property {WPLinkControlValue=} value Current link value. + * @property {WPLinkControlOnChangeProp=} onChange Value change handler, called with the updated value if + * the user selects a new link or updates settings. + * @property {boolean=} noDirectEntry Whether to allow turning a URL-like search query directly into a link. + * @property {boolean=} showSuggestions Whether to present suggestions when typing the URL. + * @property {boolean=} showInitialSuggestions Whether to present initial suggestions immediately. + * @property {boolean=} withCreateSuggestion Whether to allow creation of link value from suggestion. + * @property {Object=} suggestionsQuery Query parameters to pass along to wp.blockEditor.__experimentalFetchLinkSuggestions. + * @property {boolean=} noURLSuggestion Whether to add a fallback suggestion which treats the search query as a URL. + * @property {boolean=} hasTextControl Whether to add a text field to the UI to update the value.title. + * @property {string|Function|undefined} createSuggestionButtonText The text to use in the button that calls createSuggestion. + * @property {Function} renderControlBottom Optional controls to be rendered at the bottom of the component. */ +const link_control_noop = () => {}; +const PREFERENCE_SCOPE = 'core/block-editor'; +const PREFERENCE_KEY = 'linkControlSettingsDrawer'; /** - * Adds block behaviour: - * - Removes the block on BACKSPACE. - * - Inserts a default block on ENTER. - * - Disables dragging of block contents. + * Renders a link control. A link control is a controlled input which maintains + * a value associated with a link (HTML anchor element) and relevant settings + * for how that link is expected to behave. * - * @param {string} clientId Block client ID. + * @param {WPLinkControlProps} props Component props. */ -function useEventHandlers({ - clientId, - isSelected +function LinkControl({ + searchInputPlaceholder, + value, + settings = DEFAULT_LINK_SETTINGS, + onChange = link_control_noop, + onRemove, + onCancel, + noDirectEntry = false, + showSuggestions = true, + showInitialSuggestions, + forceIsEditingLink, + createSuggestion, + withCreateSuggestion, + inputValue: propInputValue = '', + suggestionsQuery = {}, + noURLSuggestion = false, + createSuggestionButtonText, + hasRichPreviews = false, + hasTextControl = false, + renderControlBottom = null }) { + if (withCreateSuggestion === undefined && createSuggestion) { + withCreateSuggestion = true; + } + const [settingsOpen, setSettingsOpen] = (0,external_wp_element_namespaceObject.useState)(false); const { - getBlockRootClientId, - getBlockIndex - } = (0,external_wp_data_namespaceObject.useSelect)(store); + advancedSettingsPreference + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + var _prefsStore$get; + const prefsStore = select(external_wp_preferences_namespaceObject.store); + return { + advancedSettingsPreference: (_prefsStore$get = prefsStore.get(PREFERENCE_SCOPE, PREFERENCE_KEY)) !== null && _prefsStore$get !== void 0 ? _prefsStore$get : false + }; + }, []); const { - insertDefaultBlock, - removeBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (!isSelected) { + set: setPreference + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); + + /** + * Sets the open/closed state of the Advanced Settings Drawer, + * optionlly persisting the state to the user's preferences. + * + * Note that Block Editor components can be consumed by non-WordPress + * environments which may not have preferences setup. + * Therefore a local state is also used as a fallback. + * + * @param {boolean} prefVal the open/closed state of the Advanced Settings Drawer. + */ + const setSettingsOpenWithPreference = prefVal => { + if (setPreference) { + setPreference(PREFERENCE_SCOPE, PREFERENCE_KEY, prefVal); + } + setSettingsOpen(prefVal); + }; + + // Block Editor components can be consumed by non-WordPress environments + // which may not have these preferences setup. + // Therefore a local state is used as a fallback. + const isSettingsOpen = advancedSettingsPreference || settingsOpen; + const isMounting = (0,external_wp_element_namespaceObject.useRef)(true); + const wrapperNode = (0,external_wp_element_namespaceObject.useRef)(); + const textInputRef = (0,external_wp_element_namespaceObject.useRef)(); + const isEndingEditWithFocus = (0,external_wp_element_namespaceObject.useRef)(false); + const settingsKeys = settings.map(({ + id + }) => id); + const [internalControlValue, setInternalControlValue, setInternalURLInputValue, setInternalTextInputValue, createSetInternalSettingValueHandler] = useInternalValue(value); + const valueHasChanges = value && !(0,external_wp_isShallowEqual_namespaceObject.isShallowEqualObjects)(internalControlValue, value); + const [isEditingLink, setIsEditingLink] = (0,external_wp_element_namespaceObject.useState)(forceIsEditingLink !== undefined ? forceIsEditingLink : !value || !value.url); + const { + createPage, + isCreatingPage, + errorMessage + } = useCreatePage(createSuggestion); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (forceIsEditingLink === undefined) { + return; + } + setIsEditingLink(forceIsEditingLink); + }, [forceIsEditingLink]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // We don't auto focus into the Link UI on mount + // because otherwise using the keyboard to select text + // *within* the link format is not possible. + if (isMounting.current) { + isMounting.current = false; return; } - /** - * Interprets keydown event intent to remove or insert after block if - * key event occurs on wrapper node. This can occur when the block has - * no text fields of its own, particularly after initial insertion, to - * allow for easy deletion and continuous writing flow to add additional - * content. - * - * @param {KeyboardEvent} event Keydown event. - */ - function onKeyDown(event) { - const { - keyCode, - target - } = event; - if (keyCode !== external_wp_keycodes_namespaceObject.ENTER && keyCode !== external_wp_keycodes_namespaceObject.BACKSPACE && keyCode !== external_wp_keycodes_namespaceObject.DELETE) { - return; - } - if (target !== node || (0,external_wp_dom_namespaceObject.isTextField)(target)) { - return; - } - event.preventDefault(); - if (keyCode === external_wp_keycodes_namespaceObject.ENTER) { - insertDefaultBlock({}, getBlockRootClientId(clientId), getBlockIndex(clientId) + 1); - } else { - removeBlock(clientId); + // Scenario - when: + // - switching between editable and non editable LinkControl + // - clicking on a link + // ...then move focus to the *first* element to avoid focus loss + // and to ensure focus is *within* the Link UI. + const nextFocusTarget = external_wp_dom_namespaceObject.focus.focusable.find(wrapperNode.current)[0] || wrapperNode.current; + nextFocusTarget.focus(); + isEndingEditWithFocus.current = false; + }, [isEditingLink, isCreatingPage]); + const hasLinkValue = value?.url?.trim()?.length > 0; + + /** + * Cancels editing state and marks that focus may need to be restored after + * the next render, if focus was within the wrapper when editing finished. + */ + const stopEditing = () => { + isEndingEditWithFocus.current = !!wrapperNode.current?.contains(wrapperNode.current.ownerDocument.activeElement); + setIsEditingLink(false); + }; + const handleSelectSuggestion = updatedValue => { + // Suggestions may contains "settings" values (e.g. `opensInNewTab`) + // which should not overide any existing settings values set by the + // user. This filters out any settings values from the suggestion. + const nonSettingsChanges = Object.keys(updatedValue).reduce((acc, key) => { + if (!settingsKeys.includes(key)) { + acc[key] = updatedValue[key]; } + return acc; + }, {}); + onChange({ + ...internalControlValue, + ...nonSettingsChanges, + // As title is not a setting, it must be manually applied + // in such a way as to preserve the users changes over + // any "title" value provided by the "suggestion". + title: internalControlValue?.title || updatedValue?.title + }); + stopEditing(); + }; + const handleSubmit = () => { + if (valueHasChanges) { + // Submit the original value with new stored values applied + // on top. URL is a special case as it may also be a prop. + onChange({ + ...value, + ...internalControlValue, + url: currentUrlInputValue + }); } - - /** - * Prevents default dragging behavior within a block. To do: we must - * handle this in the future and clean up the drag target. - * - * @param {DragEvent} event Drag event. - */ - function onDragStart(event) { + stopEditing(); + }; + const handleSubmitWithEnter = event => { + const { + keyCode + } = event; + if (keyCode === external_wp_keycodes_namespaceObject.ENTER && !currentInputIsEmpty // Disallow submitting empty values. + ) { event.preventDefault(); + handleSubmit(); } - node.addEventListener('keydown', onKeyDown); - node.addEventListener('dragstart', onDragStart); - return () => { - node.removeEventListener('keydown', onKeyDown); - node.removeEventListener('dragstart', onDragStart); - }; - }, [clientId, isSelected, getBlockRootClientId, getBlockIndex, insertDefaultBlock, removeBlock]); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-nav-mode-exit.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - + }; + const resetInternalValues = () => { + setInternalControlValue(value); + }; + const handleCancel = event => { + event.preventDefault(); + event.stopPropagation(); -/** - * Allows navigation mode to be exited by clicking in the selected block. - * - * @param {string} clientId Block client ID. - */ -function useNavModeExit(clientId) { - const { - isNavigationMode, - isBlockSelected - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - setNavigationMode, - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onMouseDown(event) { - // Don't select a block if it's already handled by a child - // block. - if (isNavigationMode() && !event.defaultPrevented) { - // Prevent focus from moving to the block. - event.preventDefault(); + // Ensure that any unsubmitted input changes are reset. + resetInternalValues(); + if (hasLinkValue) { + // If there is a link then exist editing mode and show preview. + stopEditing(); + } else { + // If there is no link value, then remove the link entirely. + onRemove?.(); + } + onCancel?.(); + }; + const currentUrlInputValue = propInputValue || internalControlValue?.url || ''; + const currentInputIsEmpty = !currentUrlInputValue?.trim()?.length; + const shownUnlinkControl = onRemove && value && !isEditingLink && !isCreatingPage; + const showActions = isEditingLink && hasLinkValue; - // When clicking on a selected block, exit navigation mode. - if (isBlockSelected(clientId)) { - setNavigationMode(false); - } else { - selectBlock(clientId); - } + // Only show text control once a URL value has been committed + // and it isn't just empty whitespace. + // See https://github.com/WordPress/gutenberg/pull/33849/#issuecomment-932194927. + const showTextControl = hasLinkValue && hasTextControl; + const isEditing = (isEditingLink || !value) && !isCreatingPage; + const isDisabled = !valueHasChanges || currentInputIsEmpty; + const showSettings = !!settings?.length && isEditingLink && hasLinkValue; + return (0,external_wp_element_namespaceObject.createElement)("div", { + tabIndex: -1, + ref: wrapperNode, + className: "block-editor-link-control" + }, isCreatingPage && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__loading" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null), " ", (0,external_wp_i18n_namespaceObject.__)('Creating'), "\u2026"), isEditing && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()({ + 'block-editor-link-control__search-input-wrapper': true, + 'has-text-control': showTextControl, + 'has-actions': showActions + }) + }, showTextControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + ref: textInputRef, + className: "block-editor-link-control__field block-editor-link-control__text-content", + label: (0,external_wp_i18n_namespaceObject.__)('Text'), + value: internalControlValue?.title, + onChange: setInternalTextInputValue, + onKeyDown: handleSubmitWithEnter, + size: "__unstable-large" + }), (0,external_wp_element_namespaceObject.createElement)(search_input, { + currentLink: value, + className: "block-editor-link-control__field block-editor-link-control__search-input", + placeholder: searchInputPlaceholder, + value: currentUrlInputValue, + withCreateSuggestion: withCreateSuggestion, + onCreateSuggestion: createPage, + onChange: setInternalURLInputValue, + onSelect: handleSelectSuggestion, + showInitialSuggestions: showInitialSuggestions, + allowDirectEntry: !noDirectEntry, + showSuggestions: showSuggestions, + suggestionsQuery: suggestionsQuery, + withURLSuggestion: !noURLSuggestion, + createSuggestionButtonText: createSuggestionButtonText, + hideLabelFromVision: !showTextControl + }), !showActions && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-enter" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + onClick: isDisabled ? link_control_noop : handleSubmit, + label: (0,external_wp_i18n_namespaceObject.__)('Submit'), + icon: keyboard_return, + className: "block-editor-link-control__search-submit", + "aria-disabled": isDisabled + }))), errorMessage && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { + className: "block-editor-link-control__search-error", + status: "error", + isDismissible: false + }, errorMessage)), value && !isEditingLink && !isCreatingPage && (0,external_wp_element_namespaceObject.createElement)(LinkPreview, { + key: value?.url // force remount when URL changes to avoid race conditions for rich previews + , + value: value, + onEditClick: () => setIsEditingLink(true), + hasRichPreviews: hasRichPreviews, + hasUnlinkControl: shownUnlinkControl, + additionalControls: () => { + // Expose the "Opens in new tab" settings in the preview + // as it is the most common setting to change. + if (settings?.find(setting => setting.id === 'opensInNewTab')) { + return (0,external_wp_element_namespaceObject.createElement)(link_control_settings, { + value: internalControlValue, + settings: settings?.filter(({ + id + }) => id === 'opensInNewTab'), + onChange: onChange + }); } + }, + onRemove: () => { + onRemove(); + setIsEditingLink(true); } - node.addEventListener('mousedown', onMouseDown); - return () => { - node.removeEventListener('mousedown', onMouseDown); - }; - }, [clientId, isNavigationMode, isBlockSelected, setNavigationMode]); + }), showSettings && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__tools" + }, !currentInputIsEmpty && (0,external_wp_element_namespaceObject.createElement)(settings_drawer, { + settingsOpen: isSettingsOpen, + setSettingsOpen: setSettingsOpenWithPreference + }, (0,external_wp_element_namespaceObject.createElement)(link_control_settings, { + value: internalControlValue, + settings: settings, + onChange: createSetInternalSettingValueHandler(settingsKeys) + }))), showActions && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-link-control__search-actions" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "primary", + onClick: isDisabled ? link_control_noop : handleSubmit, + className: "block-editor-link-control__search-submit", + "aria-disabled": isDisabled + }, (0,external_wp_i18n_namespaceObject.__)('Save')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: handleCancel + }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), renderControlBottom && renderControlBottom()); } +LinkControl.ViewerFill = ViewerFill; +LinkControl.DEFAULT_LINK_SETTINGS = DEFAULT_LINK_SETTINGS; +/* harmony default export */ var link_control = (LinkControl); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/use-intersection-observer.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - -function useIntersectionObserver() { - const observer = (0,external_wp_element_namespaceObject.useContext)(block_list_IntersectionObserver); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (observer) { - observer.observe(node); - return () => { - observer.unobserve(node); - }; - } - }, [observer]); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-replace-flow/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-block-props/index.js /** * External dependencies */ @@ -41380,161 +34998,197 @@ function useIntersectionObserver() { -/** - * Internal dependencies - */ - - - +/** + * Internal dependencies + */ -/** - * This hook is used to lightly mark an element as a block element. The element - * should be the outermost element of a block. Call this hook and pass the - * returned props to the element to mark as a block. If you define a ref for the - * element, it is important to pass the ref to this hook, which the hook in turn - * will pass to the component through the props it returns. Optionally, you can - * also pass any other props through this hook, and they will be merged and - * returned. - * - * Use of this hook on the outermost element of a block is required if using API >= v2. - * - * @example - * ```js - * import { useBlockProps } from '@wordpress/block-editor'; - * - * export default function Edit() { - * - * const blockProps = useBlockProps( - * className: 'my-custom-class', - * style: { - * color: '#222222', - * backgroundColor: '#eeeeee' - * } - * ) - * - * return ( - *
- * - *
- * ) - * } - * - * ``` - * - * - * @param {Object} props Optional. Props to pass to the element. Must contain - * the ref if one is defined. - * @param {Object} options Options for internal use only. - * @param {boolean} options.__unstableIsHtml - * - * @return {Object} Props to pass to the element to mark as a block. - */ -function use_block_props_useBlockProps(props = {}, { - __unstableIsHtml -} = {}) { - const { - clientId, - className, - wrapperProps = {}, - isAligned, - index, - mode, - name, - blockApiVersion, - blockTitle, - isSelected, - isSubtreeDisabled, - isOutlineEnabled, - hasOverlay, - initialPosition, - blockEditingMode, - isHighlighted, - isMultiSelected, - isPartiallySelected, - isReusable, - isDragging, - hasChildSelected, - removeOutline, - isBlockMovingMode, - canInsertMovingBlock, - isEditingDisabled, - isTemporarilyEditingAsBlocks, - defaultClassName - } = (0,external_wp_element_namespaceObject.useContext)(PrivateBlockContext); - // translators: %s: Type of block (i.e. Text, Image etc) - const blockLabel = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Block: %s'), blockTitle); - const htmlSuffix = mode === 'html' && !__unstableIsHtml ? '-visual' : ''; - const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, useFocusFirstElement({ - clientId, - initialPosition - }), useBlockRefProvider(clientId), useFocusHandler(clientId), useEventHandlers({ - clientId, - isSelected - }), useNavModeExit(clientId), useIsHovered({ - isEnabled: isOutlineEnabled - }), useIntersectionObserver(), use_moving_animation({ - triggerAnimationOnChange: index, - clientId - }), (0,external_wp_compose_namespaceObject.useDisabled)({ - isDisabled: !hasOverlay - })]); - const blockEditContext = useBlockEditContext(); - // Ensures it warns only inside the `edit` implementation for the block. - if (blockApiVersion < 2 && clientId === blockEditContext.clientId) { - true ? external_wp_warning_default()(`Block type "${name}" must support API version 2 or higher to work correctly with "useBlockProps" method.`) : 0; - } - return { - tabIndex: blockEditingMode === 'disabled' ? -1 : 0, - ...wrapperProps, - ...props, - ref: mergedRefs, - id: `block-${clientId}${htmlSuffix}`, - role: 'document', - 'aria-label': blockLabel, - 'data-block': clientId, - 'data-type': name, - 'data-title': blockTitle, - inert: isSubtreeDisabled ? 'true' : undefined, - className: classnames_default()('block-editor-block-list__block', { - // The wp-block className is important for editor styles. - 'wp-block': !isAligned, - 'has-block-overlay': hasOverlay, - 'is-selected': isSelected, - 'is-highlighted': isHighlighted, - 'is-multi-selected': isMultiSelected, - 'is-partially-selected': isPartiallySelected, - 'is-reusable': isReusable, - 'is-dragging': isDragging, - 'has-child-selected': hasChildSelected, - 'remove-outline': removeOutline, - 'is-block-moving-mode': isBlockMovingMode, - 'can-insert-moving-block': canInsertMovingBlock, - 'is-editing-disabled': isEditingDisabled, - 'is-content-locked-temporarily-editing-as-blocks': isTemporarilyEditingAsBlocks - }, className, props.className, wrapperProps.className, defaultClassName), - style: { - ...wrapperProps.style, - ...props.style +const media_replace_flow_noop = () => {}; +let uniqueId = 0; +const MediaReplaceFlow = ({ + mediaURL, + mediaId, + mediaIds, + allowedTypes, + accept, + onError, + onSelect, + onSelectURL, + onToggleFeaturedImage, + useFeaturedImage, + onFilesUpload = media_replace_flow_noop, + name = (0,external_wp_i18n_namespaceObject.__)('Replace'), + createNotice, + removeNotice, + children, + multiple = false, + addToGallery, + handleUpload = true, + popoverProps +}) => { + const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { + return select(store).getSettings().mediaUpload; + }, []); + const canUpload = !!mediaUpload; + const editMediaButtonRef = (0,external_wp_element_namespaceObject.useRef)(); + const errorNoticeID = `block-editor/media-replace-flow/error-notice/${++uniqueId}`; + const onUploadError = message => { + const safeMessage = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(message); + if (onError) { + onError(safeMessage); + return; + } + // We need to set a timeout for showing the notice + // so that VoiceOver and possibly other screen readers + // can announce the error afer the toolbar button + // regains focus once the upload dialog closes. + // Otherwise VO simply skips over the notice and announces + // the focused element and the open menu. + setTimeout(() => { + createNotice('error', safeMessage, { + speak: true, + id: errorNoticeID, + isDismissible: true + }); + }, 1000); + }; + const selectMedia = (media, closeMenu) => { + if (useFeaturedImage && onToggleFeaturedImage) { + onToggleFeaturedImage(); } + closeMenu(); + // Calling `onSelect` after the state update since it might unmount the component. + onSelect(media); + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('The media file has been replaced')); + removeNotice(errorNoticeID); }; -} + const uploadFiles = (event, closeMenu) => { + const files = event.target.files; + if (!handleUpload) { + closeMenu(); + return onSelect(files); + } + onFilesUpload(files); + mediaUpload({ + allowedTypes, + filesList: files, + onFileChange: ([media]) => { + selectMedia(media, closeMenu); + }, + onError: onUploadError + }); + }; + const openOnArrowDown = event => { + if (event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { + event.preventDefault(); + event.target.click(); + } + }; + const onlyAllowsImages = () => { + if (!allowedTypes || allowedTypes.length === 0) { + return false; + } + return allowedTypes.every(allowedType => allowedType === 'image' || allowedType.startsWith('image/')); + }; + const gallery = multiple && onlyAllowsImages(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: popoverProps, + contentClassName: "block-editor-media-replace-flow__options", + renderToggle: ({ + isOpen, + onToggle + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + ref: editMediaButtonRef, + "aria-expanded": isOpen, + "aria-haspopup": "true", + onClick: onToggle, + onKeyDown: openOnArrowDown + }, name), + renderContent: ({ + onClose + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, { + className: "block-editor-media-replace-flow__media-upload-menu" + }, (0,external_wp_element_namespaceObject.createElement)(check, null, (0,external_wp_element_namespaceObject.createElement)(media_upload, { + gallery: gallery, + addToGallery: addToGallery, + multiple: multiple, + value: multiple ? mediaIds : mediaId, + onSelect: media => selectMedia(media, onClose), + allowedTypes: allowedTypes, + render: ({ + open + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + icon: library_media, + onClick: open + }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library')) + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, { + onChange: event => { + uploadFiles(event, onClose); + }, + accept: accept, + multiple: !!multiple, + render: ({ + openFileDialog + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + icon: library_upload, + onClick: () => { + openFileDialog(); + } + }, (0,external_wp_i18n_namespaceObject.__)('Upload')); + } + })), onToggleFeaturedImage && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + icon: post_featured_image, + onClick: onToggleFeaturedImage, + isPressed: useFeaturedImage + }, (0,external_wp_i18n_namespaceObject.__)('Use featured image')), children), onSelectURL && + // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions + (0,external_wp_element_namespaceObject.createElement)("form", { + className: classnames_default()('block-editor-media-flow__url-input', { + 'has-siblings': canUpload || onToggleFeaturedImage + }) + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-media-replace-flow__image-url-label" + }, (0,external_wp_i18n_namespaceObject.__)('Current media URL:')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: mediaURL + }, (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(link_control, { + value: { + url: mediaURL + }, + settings: [], + showSuggestions: false, + onChange: ({ + url + }) => { + onSelectURL(url); + editMediaButtonRef.current.focus(); + } + }))))) + }); +}; /** - * Call within a save function to get the props for the block wrapper. - * - * @param {Object} props Optional. Props to pass to the element. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-replace-flow/README.md */ -use_block_props_useBlockProps.save = external_wp_blocks_namespaceObject.__unstableGetBlockProps; +/* harmony default export */ var media_replace_flow = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withDispatch)(dispatch => { + const { + createNotice, + removeNotice + } = dispatch(external_wp_notices_namespaceObject.store); + return { + createNotice, + removeNotice + }; +}), (0,external_wp_components_namespaceObject.withFilters)('editor.MediaReplaceFlow')])(MediaReplaceFlow)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/background.js /** * External dependencies @@ -41551,1150 +35205,522 @@ use_block_props_useBlockProps.save = external_wp_blocks_namespaceObject.__unstab -/** - * Internal dependencies - */ - +/** + * Internal dependencies + */ +const BACKGROUND_SUPPORT_KEY = 'background'; +const IMAGE_BACKGROUND_TYPE = 'image'; +/** + * Checks if there is a current value in the background image block support + * attributes. + * + * @param {Object} props Block props. + * @return {boolean} Whether or not the block has a background image value set. + */ +function hasBackgroundImageValue(props) { + const hasValue = !!props.attributes.style?.background?.backgroundImage?.id || !!props.attributes.style?.background?.backgroundImage?.url; + return hasValue; +} /** - * Merges wrapper props with special handling for classNames and styles. + * Determine whether there is block support for background. * - * @param {Object} propsA - * @param {Object} propsB + * @param {string} blockName Block name. + * @param {string} feature Background image feature to check for. * - * @return {Object} Merged props. + * @return {boolean} Whether there is support. */ -function mergeWrapperProps(propsA, propsB) { - const newProps = { - ...propsA, - ...propsB - }; - - // May be set to undefined, so check if the property is set! - if (propsA?.hasOwnProperty('className') && propsB?.hasOwnProperty('className')) { - newProps.className = classnames_default()(propsA.className, propsB.className); +function hasBackgroundSupport(blockName, feature = 'any') { + if (external_wp_element_namespaceObject.Platform.OS !== 'web') { + return false; } - if (propsA?.hasOwnProperty('style') && propsB?.hasOwnProperty('style')) { - newProps.style = { - ...propsA.style, - ...propsB.style - }; + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, BACKGROUND_SUPPORT_KEY); + if (support === true) { + return true; } - return newProps; + if (feature === 'any') { + return !!support?.backgroundImage; + } + return !!support?.[feature]; } -function Block({ - children, - isHtml, - ...props + +/** + * Resets the background image block support attributes. This can be used when disabling + * the background image controls for a block via a `ToolsPanel`. + * + * @param {Object} props Block props. + * @param {Object} props.attributes Block's attributes. + * @param {Object} props.setAttributes Function to set block's attributes. + */ +function resetBackgroundImage({ + attributes = {}, + setAttributes }) { - return (0,external_React_.createElement)("div", { - ...use_block_props_useBlockProps(props, { - __unstableIsHtml: isHtml + const { + style = {} + } = attributes; + setAttributes({ + style: utils_cleanEmptyObject({ + ...style, + background: { + ...style?.background, + backgroundImage: undefined + } }) - }, children); + }); } -function BlockListBlock({ - block: { - __unstableBlockSource - }, - mode, - isLocked, - canRemove, - clientId, - isSelected, - isSelectionEnabled, - className, - __unstableLayoutClassNames: layoutClassNames, - name, - isValid, - attributes, - wrapperProps, - setAttributes, - onReplace, - onInsertBlocksAfter, - onMerge, - toggleSelection +function InspectorImagePreview({ + label, + filename, + url: imgUrl }) { - var _wrapperProps; + const imgLabel = label || (0,external_wp_url_namespaceObject.getFilename)(imgUrl); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { + as: "span" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start", + as: "span" + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: classnames_default()('block-editor-hooks__background__inspector-image-indicator-wrapper', { + 'has-image': imgUrl + }), + "aria-hidden": true + }, imgUrl && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-hooks__background__inspector-image-indicator", + style: { + backgroundImage: `url(${imgUrl})` + } + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + as: "span" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { + numberOfLines: 1, + className: "block-editor-hooks__background__inspector-media-replace-title" + }, imgLabel), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "span" + }, filename ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: file name */ + (0,external_wp_i18n_namespaceObject.__)('Selected image: %s'), filename) : (0,external_wp_i18n_namespaceObject.__)('No image selected'))))); +} +function BackgroundImagePanelItem(props) { const { - mayDisplayControls, - mayDisplayParentControls, - themeSupportsLayout, - ...context - } = (0,external_wp_element_namespaceObject.useContext)(PrivateBlockContext); + attributes, + clientId, + setAttributes + } = props; const { - removeBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const onRemove = (0,external_wp_element_namespaceObject.useCallback)(() => removeBlock(clientId), [clientId]); - const parentLayout = useLayout() || {}; - - // We wrap the BlockEdit component in a div that hides it when editing in - // HTML mode. This allows us to render all of the ancillary pieces - // (InspectorControls, etc.) which are inside `BlockEdit` but not - // `BlockHTML`, even in HTML mode. - let blockEdit = (0,external_React_.createElement)(BlockEdit, { - name: name, - isSelected: isSelected, - attributes: attributes, - setAttributes: setAttributes, - insertBlocksAfter: isLocked ? undefined : onInsertBlocksAfter, - onReplace: canRemove ? onReplace : undefined, - onRemove: canRemove ? onRemove : undefined, - mergeBlocks: canRemove ? onMerge : undefined, - clientId: clientId, - isSelectionEnabled: isSelectionEnabled, - toggleSelection: toggleSelection, - __unstableLayoutClassNames: layoutClassNames, - __unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined, - mayDisplayControls: mayDisplayControls, - mayDisplayParentControls: mayDisplayParentControls, - blockEditingMode: context.blockEditingMode + id, + title, + url + } = attributes.style?.background?.backgroundImage || {}; + const replaceContainerRef = (0,external_wp_element_namespaceObject.useRef)(); + const { + mediaUpload + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + return { + mediaUpload: select(store).getSettings().mediaUpload + }; }); - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - - // Determine whether the block has props to apply to the wrapper. - if (blockType?.getEditWrapperProps) { - wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes)); - } - const isAligned = wrapperProps && !!wrapperProps['data-align'] && !themeSupportsLayout; - - // Support for sticky position in classic themes with alignment wrappers. - - const isSticky = className?.includes('is-position-sticky'); - - // For aligned blocks, provide a wrapper element so the block can be - // positioned relative to the block column. - // This is only kept for classic themes that don't support layout - // Historically we used to rely on extra divs and data-align to - // provide the alignments styles in the editor. - // Due to the differences between frontend and backend, we migrated - // to the layout feature, and we're now aligning the markup of frontend - // and backend. - if (isAligned) { - blockEdit = (0,external_React_.createElement)("div", { - className: classnames_default()('wp-block', isSticky && className), - "data-align": wrapperProps['data-align'] - }, blockEdit); - } - let block; - if (!isValid) { - const saveContent = __unstableBlockSource ? (0,external_wp_blocks_namespaceObject.serializeRawBlock)(__unstableBlockSource) : (0,external_wp_blocks_namespaceObject.getSaveContent)(blockType, attributes); - block = (0,external_React_.createElement)(Block, { - className: "has-warning" - }, (0,external_React_.createElement)(BlockInvalidWarning, { - clientId: clientId - }), (0,external_React_.createElement)(external_wp_element_namespaceObject.RawHTML, null, (0,external_wp_dom_namespaceObject.safeHTML)(saveContent))); - } else if (mode === 'html') { - // Render blockEdit so the inspector controls don't disappear. - // See #8969. - block = (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - style: { - display: 'none' - } - }, blockEdit), (0,external_React_.createElement)(Block, { - isHtml: true - }, (0,external_React_.createElement)(block_html, { - clientId: clientId - }))); - } else if (blockType?.apiVersion > 1) { - block = blockEdit; - } else { - block = (0,external_React_.createElement)(Block, null, blockEdit); - } const { - 'data-align': dataAlign, - ...restWrapperProps - } = (_wrapperProps = wrapperProps) !== null && _wrapperProps !== void 0 ? _wrapperProps : {}; - restWrapperProps.className = classnames_default()(restWrapperProps.className, dataAlign && themeSupportsLayout && `align${dataAlign}`, !(dataAlign && isSticky) && className); - - // We set a new context with the adjusted and filtered wrapperProps (through - // `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have - // access to. - return (0,external_React_.createElement)(PrivateBlockContext.Provider, { - value: { - wrapperProps: restWrapperProps, - isAligned, - ...context + createErrorNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + const onUploadError = message => { + createErrorNotice(message, { + type: 'snackbar' + }); + }; + const onSelectMedia = media => { + if (!media || !media.url) { + const newStyle = { + ...attributes.style, + background: { + ...attributes.style?.background, + backgroundImage: undefined + } + }; + const newAttributes = { + style: utils_cleanEmptyObject(newStyle) + }; + setAttributes(newAttributes); + return; + } + if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) { + return; } - }, (0,external_React_.createElement)(block_crash_boundary, { - fallback: (0,external_React_.createElement)(Block, { - className: "has-warning" - }, (0,external_React_.createElement)(block_crash_warning, null)) - }, block)); -} -const applyWithDispatch = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, registry) => { - const { - updateBlockAttributes, - insertBlocks, - mergeBlocks, - replaceBlocks, - toggleSelection, - __unstableMarkLastChangeAsPersistent, - moveBlocksToPosition, - removeBlock - } = dispatch(store); - - // Do not add new properties here, use `useDispatch` instead to avoid - // leaking new props to the public API (editor.BlockListBlock filter). - return { - setAttributes(newAttributes) { - const { - getMultiSelectedBlockClientIds - } = registry.select(store); - const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(); - const { - clientId - } = ownProps; - const clientIds = multiSelectedBlockClientIds.length ? multiSelectedBlockClientIds : [clientId]; - updateBlockAttributes(clientIds, newAttributes); - }, - onInsertBlocks(blocks, index) { - const { - rootClientId - } = ownProps; - insertBlocks(blocks, index, rootClientId); - }, - onInsertBlocksAfter(blocks) { - const { - clientId, - rootClientId - } = ownProps; - const { - getBlockIndex - } = registry.select(store); - const index = getBlockIndex(clientId); - insertBlocks(blocks, index + 1, rootClientId); - }, - onMerge(forward) { - const { - clientId, - rootClientId - } = ownProps; - const { - getPreviousBlockClientId, - getNextBlockClientId, - getBlock, - getBlockAttributes, - getBlockName, - getBlockOrder, - getBlockIndex, - getBlockRootClientId, - canInsertBlockType - } = registry.select(store); - /** - * Moves the block with clientId up one level. If the block type - * cannot be inserted at the new location, it will be attempted to - * convert to the default block type. - * - * @param {string} _clientId The block to move. - * @param {boolean} changeSelection Whether to change the selection - * to the moved block. - */ - function moveFirstItemUp(_clientId, changeSelection = true) { - const targetRootClientId = getBlockRootClientId(_clientId); - const blockOrder = getBlockOrder(_clientId); - const [firstClientId] = blockOrder; - if (blockOrder.length === 1 && (0,external_wp_blocks_namespaceObject.isUnmodifiedBlock)(getBlock(firstClientId))) { - removeBlock(_clientId); - } else { - registry.batch(() => { - if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) { - moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId)); - } else { - const replacement = (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(firstClientId), (0,external_wp_blocks_namespaceObject.getDefaultBlockName)()); - if (replacement && replacement.length) { - insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection); - removeBlock(firstClientId, false); - } - } - if (!getBlockOrder(_clientId).length && (0,external_wp_blocks_namespaceObject.isUnmodifiedBlock)(getBlock(_clientId))) { - removeBlock(_clientId, false); - } - }); + // For media selections originated from a file upload. + if (media.media_type && media.media_type !== IMAGE_BACKGROUND_TYPE || !media.media_type && media.type && media.type !== IMAGE_BACKGROUND_TYPE) { + onUploadError((0,external_wp_i18n_namespaceObject.__)('Only images can be used as a background image.')); + return; + } + const newStyle = { + ...attributes.style, + background: { + ...attributes.style?.background, + backgroundImage: { + url: media.url, + id: media.id, + source: 'file', + title: media.title || undefined } } - - // For `Delete` or forward merge, we should do the exact same thing - // as `Backspace`, but from the other block. - if (forward) { - if (rootClientId) { - const nextRootClientId = getNextBlockClientId(rootClientId); - if (nextRootClientId) { - // If there is a block that follows with the same parent - // block name and the same attributes, merge the inner - // blocks. - if (getBlockName(rootClientId) === getBlockName(nextRootClientId)) { - const rootAttributes = getBlockAttributes(rootClientId); - const previousRootAttributes = getBlockAttributes(nextRootClientId); - if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { - registry.batch(() => { - moveBlocksToPosition(getBlockOrder(nextRootClientId), nextRootClientId, rootClientId); - removeBlock(nextRootClientId, false); - }); - return; - } - } else { - mergeBlocks(rootClientId, nextRootClientId); - return; - } - } - } - const nextBlockClientId = getNextBlockClientId(clientId); - if (!nextBlockClientId) { + }; + const newAttributes = { + style: utils_cleanEmptyObject(newStyle) + }; + setAttributes(newAttributes); + }; + const onFilesDrop = filesList => { + mediaUpload({ + allowedTypes: ['image'], + filesList, + onFileChange([image]) { + if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) { return; } - if (getBlockOrder(nextBlockClientId).length) { - moveFirstItemUp(nextBlockClientId, false); - } else { - mergeBlocks(clientId, nextBlockClientId); - } - } else { - const previousBlockClientId = getPreviousBlockClientId(clientId); - if (previousBlockClientId) { - mergeBlocks(previousBlockClientId, clientId); - } else if (rootClientId) { - const previousRootClientId = getPreviousBlockClientId(rootClientId); - - // If there is a preceding block with the same parent block - // name and the same attributes, merge the inner blocks. - if (previousRootClientId && getBlockName(rootClientId) === getBlockName(previousRootClientId)) { - const rootAttributes = getBlockAttributes(rootClientId); - const previousRootAttributes = getBlockAttributes(previousRootClientId); - if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) { - registry.batch(() => { - moveBlocksToPosition(getBlockOrder(rootClientId), rootClientId, previousRootClientId); - removeBlock(rootClientId, false); - }); - return; - } - } - moveFirstItemUp(rootClientId); - } else { - removeBlock(clientId); - } - } - }, - onReplace(blocks, indexToSelect, initialPosition) { - if (blocks.length && !(0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(blocks[blocks.length - 1])) { - __unstableMarkLastChangeAsPersistent(); - } - //Unsynced patterns are nested in an array so we need to flatten them. - const replacementBlocks = blocks?.length === 1 && Array.isArray(blocks[0]) ? blocks[0] : blocks; - replaceBlocks([ownProps.clientId], replacementBlocks, indexToSelect, initialPosition); - }, - toggleSelection(selectionEnabled) { - toggleSelection(selectionEnabled); - } - }; -}); - -// This component is used by the BlockListBlockProvider component below. It will -// add the props necessary for the `editor.BlockListBlock` filters. -BlockListBlock = (0,external_wp_compose_namespaceObject.compose)(applyWithDispatch, (0,external_wp_components_namespaceObject.withFilters)('editor.BlockListBlock'))(BlockListBlock); - -// This component provides all the information we need through a single store -// subscription (useSelect mapping). Only the necessary props are passed down -// to the BlockListBlock component, which is a filtered component, so these -// props are public API. To avoid adding to the public API, we use a private -// context to pass the rest of the information to the filtered BlockListBlock -// component, and useBlockProps. -function BlockListBlockProvider(props) { - const { - clientId, - rootClientId - } = props; - const selectedProps = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - isBlockSelected, - getBlockMode, - isSelectionEnabled, - getTemplateLock, - __unstableGetBlockWithoutInnerBlocks, - canRemoveBlock, - canMoveBlock, - getSettings, - __unstableGetTemporarilyEditingAsBlocks, - getBlockEditingMode, - getBlockName, - isFirstMultiSelectedBlock, - getMultiSelectedBlockClientIds, - hasSelectedInnerBlock, - getBlockIndex, - isTyping, - isBlockMultiSelected, - isBlockSubtreeDisabled, - isBlockHighlighted, - __unstableIsFullySelected, - __unstableSelectionHasUnmergeableBlock, - isBlockBeingDragged, - hasBlockMovingClientId, - canInsertBlockType, - getBlockRootClientId, - __unstableHasActiveBlockOverlayActive, - __unstableGetEditorMode, - getSelectedBlocksInitialCaretPosition - } = unlock(select(store)); - const block = __unstableGetBlockWithoutInnerBlocks(clientId); - - // This is a temporary fix. - // This function should never be called when a block is not - // present in the state. It happens now because the order in - // withSelect rendering is not correct. - if (!block) { - return; - } - const { - hasBlockSupport: _hasBlockSupport, - getActiveBlockVariation - } = select(external_wp_blocks_namespaceObject.store); - const _isSelected = isBlockSelected(clientId); - const templateLock = getTemplateLock(rootClientId); - const canRemove = canRemoveBlock(clientId, rootClientId); - const canMove = canMoveBlock(clientId, rootClientId); - const { - name: blockName, - attributes, - isValid - } = block; - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); - const match = getActiveBlockVariation(blockName, attributes); - const { - outlineMode, - supportsLayout - } = getSettings(); - const isMultiSelected = isBlockMultiSelected(clientId); - const checkDeep = true; - const isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep); - const typing = isTyping(); - const hasLightBlockWrapper = blockType?.apiVersion > 1; - const movingClientId = hasBlockMovingClientId(); - return { - mode: getBlockMode(clientId), - isSelectionEnabled: isSelectionEnabled(), - isLocked: !!templateLock, - canRemove, - canMove, - // Users of the editor.BlockListBlock filter used to be able to - // access the block prop. - // Ideally these blocks would rely on the clientId prop only. - // This is kept for backward compatibility reasons. - block, - name: blockName, - attributes, - isValid, - isSelected: _isSelected, - themeSupportsLayout: supportsLayout, - isTemporarilyEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === clientId, - blockEditingMode: getBlockEditingMode(clientId), - mayDisplayControls: _isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === blockName), - mayDisplayParentControls: _hasBlockSupport(getBlockName(clientId), '__experimentalExposeControlsToChildren', false) && hasSelectedInnerBlock(clientId), - index: getBlockIndex(clientId), - blockApiVersion: blockType?.apiVersion || 1, - blockTitle: match?.title || blockType?.title, - isSubtreeDisabled: isBlockSubtreeDisabled(clientId), - isOutlineEnabled: outlineMode, - hasOverlay: __unstableHasActiveBlockOverlayActive(clientId), - initialPosition: _isSelected && __unstableGetEditorMode() === 'edit' ? getSelectedBlocksInitialCaretPosition() : undefined, - isHighlighted: isBlockHighlighted(clientId), - isMultiSelected, - isPartiallySelected: isMultiSelected && !__unstableIsFullySelected() && !__unstableSelectionHasUnmergeableBlock(), - isReusable: (0,external_wp_blocks_namespaceObject.isReusableBlock)(blockType), - isDragging: isBlockBeingDragged(clientId), - hasChildSelected: isAncestorOfSelectedBlock, - removeOutline: _isSelected && outlineMode && typing, - isBlockMovingMode: !!movingClientId, - canInsertMovingBlock: movingClientId && canInsertBlockType(getBlockName(movingClientId), getBlockRootClientId(clientId)), - isEditingDisabled: getBlockEditingMode(clientId) === 'disabled', - className: hasLightBlockWrapper ? attributes.className : undefined, - defaultClassName: hasLightBlockWrapper ? (0,external_wp_blocks_namespaceObject.getBlockDefaultClassName)(blockName) : undefined + onSelectMedia(image); + }, + onError: onUploadError + }); + }; + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + style: { + ...previousValue.style, + background: undefined + } }; - }, [clientId, rootClientId]); - const { - mode, - isSelectionEnabled, - isLocked, - canRemove, - canMove, - block, - name, - attributes, - isValid, - isSelected, - themeSupportsLayout, - isTemporarilyEditingAsBlocks, - blockEditingMode, - mayDisplayControls, - mayDisplayParentControls, - index, - blockApiVersion, - blockTitle, - isSubtreeDisabled, - isOutlineEnabled, - hasOverlay, - initialPosition, - isHighlighted, - isMultiSelected, - isPartiallySelected, - isReusable, - isDragging, - hasChildSelected, - removeOutline, - isBlockMovingMode, - canInsertMovingBlock, - isEditingDisabled, - className, - defaultClassName - } = selectedProps; - - // Block is sometimes not mounted at the right time, causing it be - // undefined see issue for more info - // https://github.com/WordPress/gutenberg/issues/17013 - if (!selectedProps) { + }, []); + const hasValue = hasBackgroundImageValue(props); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + hasValue: () => hasValue, + label: (0,external_wp_i18n_namespaceObject.__)('Background image'), + onDeselect: () => resetBackgroundImage(props), + isShownByDefault: true, + resetAllFilter: resetAllFilter, + panelId: clientId + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-hooks__background__inspector-media-replace-container", + ref: replaceContainerRef + }, (0,external_wp_element_namespaceObject.createElement)(media_replace_flow, { + mediaId: id, + mediaURL: url, + allowedTypes: [IMAGE_BACKGROUND_TYPE], + accept: "image/*", + onSelect: onSelectMedia, + name: (0,external_wp_element_namespaceObject.createElement)(InspectorImagePreview, { + label: (0,external_wp_i18n_namespaceObject.__)('Background image'), + filename: title, + url: url + }), + variant: "secondary" + }, hasValue && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + const [toggleButton] = external_wp_dom_namespaceObject.focus.tabbable.find(replaceContainerRef.current); + // Focus the toggle button and close the dropdown menu. + // This ensures similar behaviour as to selecting an image, where the dropdown is + // closed and focus is redirected to the dropdown toggle button. + toggleButton?.focus(); + toggleButton?.click(); + resetBackgroundImage(props); + } + }, (0,external_wp_i18n_namespaceObject.__)('Reset '))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropZone, { + onFilesDrop: onFilesDrop, + label: (0,external_wp_i18n_namespaceObject.__)('Drop to upload') + }))); +} +function BackgroundImagePanel(props) { + const isBackgroundImageSupported = use_setting_useSetting('background.backgroundImage') && hasBackgroundSupport(props.name, 'backgroundImage'); + if (!isBackgroundImageSupported) { return null; } - const privateContext = { - clientId, - className, - index, - mode, - name, - blockApiVersion, - blockTitle, - isSelected, - isSubtreeDisabled, - isOutlineEnabled, - hasOverlay, - initialPosition, - blockEditingMode, - isHighlighted, - isMultiSelected, - isPartiallySelected, - isReusable, - isDragging, - hasChildSelected, - removeOutline, - isBlockMovingMode, - canInsertMovingBlock, - isEditingDisabled, - isTemporarilyEditingAsBlocks, - defaultClassName, - mayDisplayControls, - mayDisplayParentControls, - themeSupportsLayout - }; - - // Here we separate between the props passed to BlockListBlock and any other - // information we selected for internal use. BlockListBlock is a filtered - // component and thus ALL the props are PUBLIC API. - - // Note that the context value doesn't have to be memoized in this case - // because when it changes, this component will be re-rendered anyway, and - // none of the consumers (BlockListBlock and useBlockProps) are memoized or - // "pure". This is different from the public BlockEditContext, where - // consumers might be memoized or "pure". - return (0,external_React_.createElement)(PrivateBlockContext.Provider, { - value: privateContext - }, (0,external_React_.createElement)(BlockListBlock, { - ...props, - mode, - isSelectionEnabled, - isLocked, - canRemove, - canMove, - // Users of the editor.BlockListBlock filter used to be able - // to access the block prop. Ideally these blocks would rely - // on the clientId prop only. This is kept for backward - // compatibility reasons. - block, - name, - attributes, - isValid, - isSelected + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "background" + }, isBackgroundImageSupported && (0,external_wp_element_namespaceObject.createElement)(BackgroundImagePanelItem, { + ...props })); } -/* harmony default export */ var block_list_block = ((0,external_wp_element_namespaceObject.memo)(BlockListBlockProvider)); - -;// CONCATENATED MODULE: external ["wp","htmlEntities"] -var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tips.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/utils.js /** - * WordPress dependencies + * External dependencies */ -const globalTips = [(0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('While writing, you can press / to quickly insert new blocks.'), { - kbd: (0,external_React_.createElement)("kbd", null) -}), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Indent a list by pressing space at the beginning of a line.'), { - kbd: (0,external_React_.createElement)("kbd", null) -}), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Outdent a list by pressing backspace at the beginning of a line.'), { - kbd: (0,external_React_.createElement)("kbd", null) -}), (0,external_wp_i18n_namespaceObject.__)('Drag files into the editor to automatically insert media blocks.'), (0,external_wp_i18n_namespaceObject.__)("Change a block's type by pressing the block icon on the toolbar.")]; -function Tips() { - const [randomIndex] = (0,external_wp_element_namespaceObject.useState)( - // Disable Reason: I'm not generating an HTML id. - // eslint-disable-next-line no-restricted-syntax - Math.floor(Math.random() * globalTips.length)); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Tip, null, globalTips[randomIndex]); -} -/* harmony default export */ var tips = (Tips); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js - -/** - * WordPress dependencies - */ - -const chevronRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" -})); -/* harmony default export */ var chevron_right = (chevronRight); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js /** - * WordPress dependencies + * Internal dependencies */ -const chevronLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" -})); -/* harmony default export */ var chevron_left = (chevronLeft); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-card/index.js +k([names, a11y]); /** - * External dependencies + * Provided an array of color objects as set by the theme or by the editor defaults, + * and the values of the defined color or custom color returns a color object describing the color. + * + * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. + * @param {?string} definedColor A string containing the color slug. + * @param {?string} customColor A string containing the customColor value. + * + * @return {?Object} If definedColor is passed and the name is found in colors, + * the color object exactly as set by the theme or editor defaults is returned. + * Otherwise, an object that just sets the color is defined. */ - +const getColorObjectByAttributeValues = (colors, definedColor, customColor) => { + if (definedColor) { + const colorObj = colors?.find(color => color.slug === definedColor); + if (colorObj) { + return colorObj; + } + } + return { + color: customColor + }; +}; /** - * WordPress dependencies + * Provided an array of color objects as set by the theme or by the editor defaults, and a color value returns the color object matching that value or undefined. + * + * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. + * @param {?string} colorValue A string containing the color value. + * + * @return {?Object} Color object included in the colors array whose color property equals colorValue. + * Returns undefined if no color object matches this requirement. */ - - - - - +const getColorObjectByColorValue = (colors, colorValue) => { + return colors?.find(color => color.color === colorValue); +}; /** - * Internal dependencies + * Returns a class based on the context a color is being used and its slug. + * + * @param {string} colorContextName Context/place where color is being used e.g: background, text etc... + * @param {string} colorSlug Slug of the color. + * + * @return {?string} String with the class corresponding to the color in the provided context. + * Returns undefined if either colorContextName or colorSlug are not provided. */ - - -function BlockCard({ - title, - icon, - description, - blockType, - className -}) { - if (blockType) { - external_wp_deprecated_default()('`blockType` property in `BlockCard component`', { - since: '5.7', - alternative: '`title, icon and description` properties' - }); - ({ - title, - icon, - description - } = blockType); +function getColorClassName(colorContextName, colorSlug) { + if (!colorContextName || !colorSlug) { + return undefined; } - const { - parentNavBlockClientId - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectedBlockClientId, - getBlockParentsByBlockName - } = select(store); - const _selectedBlockClientId = getSelectedBlockClientId(); - return { - parentNavBlockClientId: getBlockParentsByBlockName(_selectedBlockClientId, 'core/navigation', true)[0] - }; - }, []); - const { - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-block-card', className) - }, parentNavBlockClientId && - // This is only used by the Navigation block for now. It's not ideal having Navigation block specific code here. - (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - onClick: () => selectBlock(parentNavBlockClientId), - label: (0,external_wp_i18n_namespaceObject.__)('Go to parent Navigation block'), - style: - // TODO: This style override is also used in ToolsPanelHeader. - // It should be supported out-of-the-box by Button. - { - minWidth: 24, - padding: 0 - }, - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left, - size: "small" - }), (0,external_React_.createElement)(block_icon, { - icon: icon, - showColors: true - }), (0,external_React_.createElement)("div", { - className: "block-editor-block-card__content" - }, (0,external_React_.createElement)("h2", { - className: "block-editor-block-card__title" - }, title), description && (0,external_React_.createElement)("span", { - className: "block-editor-block-card__description" - }, description))); + return `has-${kebabCase(colorSlug)}-${colorContextName}`; } -/* harmony default export */ var block_card = (BlockCard); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/with-registry-provider.js - -/** - * WordPress dependencies - */ - - - /** - * Internal dependencies + * Given an array of color objects and a color value returns the color value of the most readable color in the array. + * + * @param {Array} colors Array of color objects as set by the theme or by the editor defaults. + * @param {?string} colorValue A string containing the color value. + * + * @return {string} String with the color value of the most readable color. */ +function getMostReadableColor(colors, colorValue) { + const colordColor = w(colorValue); + const getColorContrast = ({ + color + }) => colordColor.contrast(color); + const maxContrast = Math.max(...colors.map(getColorContrast)); + return colors.find(color => getColorContrast(color) === maxContrast).color; +} - -const withRegistryProvider = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => { - return (0,external_wp_data_namespaceObject.withRegistry)(({ - useSubRegistry = true, - registry, - ...props - }) => { - if (!useSubRegistry) { - return (0,external_React_.createElement)(WrappedComponent, { - registry: registry, - ...props - }); - } - const [subRegistry, setSubRegistry] = (0,external_wp_element_namespaceObject.useState)(null); - (0,external_wp_element_namespaceObject.useEffect)(() => { - const newRegistry = (0,external_wp_data_namespaceObject.createRegistry)({}, registry); - newRegistry.registerStore(STORE_NAME, storeConfig); - setSubRegistry(newRegistry); - }, [registry]); - if (!subRegistry) { - return null; - } - return (0,external_React_.createElement)(external_wp_data_namespaceObject.RegistryProvider, { - value: subRegistry - }, (0,external_React_.createElement)(WrappedComponent, { - registry: subRegistry, - ...props - })); - }); -}, 'withRegistryProvider'); -/* harmony default export */ var with_registry_provider = (withRegistryProvider); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/use-block-sync.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js /** * WordPress dependencies */ - /** * Internal dependencies */ -const use_block_sync_noop = () => {}; - -/** - * A function to call when the block value has been updated in the block-editor - * store. - * - * @callback onBlockUpdate - * @param {Object[]} blocks The updated blocks. - * @param {Object} options The updated block options, such as selectionStart - * and selectionEnd. - */ - /** - * useBlockSync is a side effect which handles bidirectional sync between the - * block-editor store and a controlling data source which provides blocks. This - * is most commonly used by the BlockEditorProvider to synchronize the contents - * of the block-editor store with the root entity, like a post. - * - * Another example would be the template part block, which provides blocks from - * a separate entity data source than a root entity. This hook syncs edits to - * the template part in the block editor back to the entity and vice-versa. + * Retrieves color and gradient related settings. * - * Here are some of its basic functions: - * - Initalizes the block-editor store for the given clientID to the blocks - * given via props. - * - Adds incoming changes (like undo) to the block-editor store. - * - Adds outgoing changes (like editing content) to the controlling entity, - * determining if a change should be considered persistent or not. - * - Handles edge cases and race conditions which occur in those operations. - * - Ignores changes which happen to other entities (like nested inner block - * controllers. - * - Passes selection state from the block-editor store to the controlling entity. + * The arrays for colors and gradients are made up of color palettes from each + * origin i.e. "Core", "Theme", and "User". * - * @param {Object} props Props for the block sync hook - * @param {string} props.clientId The client ID of the inner block controller. - * If none is passed, then it is assumed to be a - * root controller rather than an inner block - * controller. - * @param {Object[]} props.value The control value for the blocks. This value - * is used to initalize the block-editor store - * and for resetting the blocks to incoming - * changes like undo. - * @param {Object} props.selection The selection state responsible to restore the selection on undo/redo. - * @param {onBlockUpdate} props.onChange Function to call when a persistent - * change has been made in the block-editor blocks - * for the given clientId. For example, after - * this function is called, an entity is marked - * dirty because it has changes to save. - * @param {onBlockUpdate} props.onInput Function to call when a non-persistent - * change has been made in the block-editor blocks - * for the given clientId. When this is called, - * controlling sources do not become dirty. + * @return {Object} Color and gradient related settings. */ -function useBlockSync({ - clientId = null, - value: controlledBlocks, - selection: controlledSelection, - onChange = use_block_sync_noop, - onInput = use_block_sync_noop -}) { - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - const { - resetBlocks, - resetSelection, - replaceInnerBlocks, - setHasControlledInnerBlocks, - __unstableMarkNextChangeAsNotPersistent - } = registry.dispatch(store); - const { - getBlockName, - getBlocks, - getSelectionStart, - getSelectionEnd - } = registry.select(store); - const isControlled = (0,external_wp_data_namespaceObject.useSelect)(select => { - return !clientId || select(store).areInnerBlocksControlled(clientId); - }, [clientId]); - const pendingChanges = (0,external_wp_element_namespaceObject.useRef)({ - incoming: null, - outgoing: [] - }); - const subscribed = (0,external_wp_element_namespaceObject.useRef)(false); - const setControlledBlocks = () => { - if (!controlledBlocks) { - return; +function useMultipleOriginColorsAndGradients() { + const colorGradientSettings = { + disableCustomColors: !use_setting_useSetting('color.custom'), + disableCustomGradients: !use_setting_useSetting('color.customGradient') + }; + const customColors = use_setting_useSetting('color.palette.custom'); + const themeColors = use_setting_useSetting('color.palette.theme'); + const defaultColors = use_setting_useSetting('color.palette.default'); + const shouldDisplayDefaultColors = use_setting_useSetting('color.defaultPalette'); + colorGradientSettings.colors = (0,external_wp_element_namespaceObject.useMemo)(() => { + const result = []; + if (themeColors && themeColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), + colors: themeColors + }); } - - // We don't need to persist this change because we only replace - // controlled inner blocks when the change was caused by an entity, - // and so it would already be persisted. - __unstableMarkNextChangeAsNotPersistent(); - if (clientId) { - // It is important to batch here because otherwise, - // as soon as `setHasControlledInnerBlocks` is called - // the effect to restore might be triggered - // before the actual blocks get set properly in state. - registry.batch(() => { - setHasControlledInnerBlocks(clientId, true); - const storeBlocks = controlledBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); - if (subscribed.current) { - pendingChanges.current.incoming = storeBlocks; - } - __unstableMarkNextChangeAsNotPersistent(); - replaceInnerBlocks(clientId, storeBlocks); + if (shouldDisplayDefaultColors && defaultColors && defaultColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), + colors: defaultColors }); - } else { - if (subscribed.current) { - pendingChanges.current.incoming = controlledBlocks; - } - resetBlocks(controlledBlocks); } - }; - - // Clean up the changes made by setControlledBlocks() when the component - // containing useBlockSync() unmounts. - const unsetControlledBlocks = () => { - __unstableMarkNextChangeAsNotPersistent(); - if (clientId) { - setHasControlledInnerBlocks(clientId, false); - __unstableMarkNextChangeAsNotPersistent(); - replaceInnerBlocks(clientId, []); - } else { - resetBlocks([]); + if (customColors && customColors.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette comes from the theme.'), + colors: customColors + }); } - }; - - // Add a subscription to the block-editor registry to detect when changes - // have been made. This lets us inform the data source of changes. This - // is an effect so that the subscriber can run synchronously without - // waiting for React renders for changes. - const onInputRef = (0,external_wp_element_namespaceObject.useRef)(onInput); - const onChangeRef = (0,external_wp_element_namespaceObject.useRef)(onChange); - (0,external_wp_element_namespaceObject.useEffect)(() => { - onInputRef.current = onInput; - onChangeRef.current = onChange; - }, [onInput, onChange]); - - // Determine if blocks need to be reset when they change. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (pendingChanges.current.outgoing.includes(controlledBlocks)) { - // Skip block reset if the value matches expected outbound sync - // triggered by this component by a preceding change detection. - // Only skip if the value matches expectation, since a reset should - // still occur if the value is modified (not equal by reference), - // to allow that the consumer may apply modifications to reflect - // back on the editor. - if (pendingChanges.current.outgoing[pendingChanges.current.outgoing.length - 1] === controlledBlocks) { - pendingChanges.current.outgoing = []; - } - } else if (getBlocks(clientId) !== controlledBlocks) { - // Reset changing value in all other cases than the sync described - // above. Since this can be reached in an update following an out- - // bound sync, unset the outbound value to avoid considering it in - // subsequent renders. - pendingChanges.current.outgoing = []; - setControlledBlocks(); - if (controlledSelection) { - resetSelection(controlledSelection.selectionStart, controlledSelection.selectionEnd, controlledSelection.initialPosition); - } + return result; + }, [defaultColors, themeColors, customColors, shouldDisplayDefaultColors]); + const customGradients = use_setting_useSetting('color.gradients.custom'); + const themeGradients = use_setting_useSetting('color.gradients.theme'); + const defaultGradients = use_setting_useSetting('color.gradients.default'); + const shouldDisplayDefaultGradients = use_setting_useSetting('color.defaultGradients'); + colorGradientSettings.gradients = (0,external_wp_element_namespaceObject.useMemo)(() => { + const result = []; + if (themeGradients && themeGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Theme', 'Indicates this palette comes from the theme.'), + gradients: themeGradients + }); } - }, [controlledBlocks, clientId]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // When the block becomes uncontrolled, it means its inner state has been reset - // we need to take the blocks again from the external value property. - if (!isControlled) { - pendingChanges.current.outgoing = []; - setControlledBlocks(); + if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Default', 'Indicates this palette comes from WordPress.'), + gradients: defaultGradients + }); } - }, [isControlled]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - const { - getSelectedBlocksInitialCaretPosition, - isLastBlockChangePersistent, - __unstableIsLastBlockChangeIgnored, - areInnerBlocksControlled - } = registry.select(store); - let blocks = getBlocks(clientId); - let isPersistent = isLastBlockChangePersistent(); - let previousAreBlocksDifferent = false; - subscribed.current = true; - const unsubscribe = registry.subscribe(() => { - // Sometimes, when changing block lists, lingering subscriptions - // might trigger before they are cleaned up. If the block for which - // the subscription runs is no longer in the store, this would clear - // its parent entity's block list. To avoid this, we bail out if - // the subscription is triggering for a block (`clientId !== null`) - // and its block name can't be found because it's not on the list. - // (`getBlockName( clientId ) === null`). - if (clientId !== null && getBlockName(clientId) === null) return; + if (customGradients && customGradients.length) { + result.push({ + name: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Indicates this palette is created by the user.'), + gradients: customGradients + }); + } + return result; + }, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]); + colorGradientSettings.hasColorsOrGradients = !!colorGradientSettings.colors.length || !!colorGradientSettings.gradients.length; + return colorGradientSettings; +} - // When RESET_BLOCKS on parent blocks get called, the controlled blocks - // can reset to uncontrolled, in these situations, it means we need to populate - // the blocks again from the external blocks (the value property here) - // and we should stop triggering onChange - const isStillControlled = !clientId || areInnerBlocksControlled(clientId); - if (!isStillControlled) { - return; - } - const newIsPersistent = isLastBlockChangePersistent(); - const newBlocks = getBlocks(clientId); - const areBlocksDifferent = newBlocks !== blocks; - blocks = newBlocks; - if (areBlocksDifferent && (pendingChanges.current.incoming || __unstableIsLastBlockChangeIgnored())) { - pendingChanges.current.incoming = null; - isPersistent = newIsPersistent; - return; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/utils.js +/** + * WordPress dependencies + */ - // Since we often dispatch an action to mark the previous action as - // persistent, we need to make sure that the blocks changed on the - // previous action before committing the change. - const didPersistenceChange = previousAreBlocksDifferent && !areBlocksDifferent && newIsPersistent && !isPersistent; - if (areBlocksDifferent || didPersistenceChange) { - isPersistent = newIsPersistent; - // We know that onChange/onInput will update controlledBlocks. - // We need to be aware that it was caused by an outgoing change - // so that we do not treat it as an incoming change later on, - // which would cause a block reset. - pendingChanges.current.outgoing.push(blocks); - // Inform the controlling entity that changes have been made to - // the block-editor store they should be aware about. - const updateParent = isPersistent ? onChangeRef.current : onInputRef.current; - const undoIgnore = undoIgnoreBlocks.has(blocks); - if (undoIgnore) { - undoIgnoreBlocks.delete(blocks); - } - updateParent(blocks, { - selection: { - selectionStart: getSelectionStart(), - selectionEnd: getSelectionEnd(), - initialPosition: getSelectedBlocksInitialCaretPosition() - }, - undoIgnore - }); - } - previousAreBlocksDifferent = areBlocksDifferent; - }, store); - return () => { - subscribed.current = false; - unsubscribe(); - }; - }, [registry, clientId]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - return () => { - unsetControlledBlocks(); - }; - }, []); +/** + * Gets the (non-undefined) item with the highest occurrence within an array + * Based in part on: https://stackoverflow.com/a/20762713 + * + * Undefined values are always sorted to the end by `sort`, so this function + * returns the first element, to always prioritize real values over undefined + * values. + * + * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description + * + * @param {Array} inputArray Array of items to check. + * @return {any} The item with the most occurrences. + */ +function utils_mode(inputArray) { + const arr = [...inputArray]; + return arr.sort((a, b) => inputArray.filter(v => v === b).length - inputArray.filter(v => v === a).length).shift(); } -;// CONCATENATED MODULE: external ["wp","keyboardShortcuts"] -var external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/keyboard-shortcuts/index.js /** - * WordPress dependencies + * Returns the most common CSS unit from the current CSS unit selections. + * + * - If a single flat border radius is set, its unit will be used + * - If individual corner selections, the most common of those will be used + * - Failing any unit selections a default of 'px' is returned. + * + * @param {Object} selectedUnits Unit selections for flat radius & each corner. + * @return {string} Most common CSS unit from current selections. Default: `px`. */ +function getAllUnit(selectedUnits = {}) { + const { + flat, + ...cornerUnits + } = selectedUnits; + return flat || utils_mode(Object.values(cornerUnits).filter(Boolean)) || 'px'; +} +/** + * Gets the 'all' input value and unit from values data. + * + * @param {Object|string} values Radius values. + * @return {string} A value + unit for the 'all' input. + */ +function getAllValue(values = {}) { + /** + * Border radius support was originally a single pixel value. + * + * To maintain backwards compatibility treat this case as the all value. + */ + if (typeof values === 'string') { + return values; + } + const parsedQuantitiesAndUnits = Object.values(values).map(value => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value)); + const allValues = parsedQuantitiesAndUnits.map(value => { + var _value$; + return (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : ''; + }); + const allUnits = parsedQuantitiesAndUnits.map(value => value[1]); + const value = allValues.every(v => v === allValues[0]) ? allValues[0] : ''; + const unit = utils_mode(allUnits); + const allValue = value === 0 || value ? `${value}${unit}` : undefined; + return allValue; +} +/** + * Checks to determine if values are mixed. + * + * @param {Object} values Radius values. + * @return {boolean} Whether values are mixed. + */ +function hasMixedValues(values = {}) { + const allValue = getAllValue(values); + const isMixed = typeof values === 'string' ? false : isNaN(parseFloat(allValue)); + return isMixed; +} +/** + * Checks to determine if values are defined. + * + * @param {Object} values Radius values. + * @return {boolean} Whether values are mixed. + */ +function hasDefinedValues(values) { + if (!values) { + return false; + } -function KeyboardShortcuts() { - return null; -} -function KeyboardShortcutsRegister() { - // Registering the shortcuts. - const { - registerShortcut - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store); - (0,external_wp_element_namespaceObject.useEffect)(() => { - registerShortcut({ - name: 'core/block-editor/duplicate', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Duplicate the selected block(s).'), - keyCombination: { - modifier: 'primaryShift', - character: 'd' - } - }); - registerShortcut({ - name: 'core/block-editor/remove', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Remove the selected block(s).'), - keyCombination: { - modifier: 'access', - character: 'z' - } - }); - registerShortcut({ - name: 'core/block-editor/insert-before', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Insert a new block before the selected block(s).'), - keyCombination: { - modifier: 'primaryAlt', - character: 't' - } - }); - registerShortcut({ - name: 'core/block-editor/insert-after', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Insert a new block after the selected block(s).'), - keyCombination: { - modifier: 'primaryAlt', - character: 'y' - } - }); - registerShortcut({ - name: 'core/block-editor/delete-multi-selection', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Delete selection.'), - keyCombination: { - character: 'del' - }, - aliases: [{ - character: 'backspace' - }] - }); - registerShortcut({ - name: 'core/block-editor/select-all', - category: 'selection', - description: (0,external_wp_i18n_namespaceObject.__)('Select all text when typing. Press again to select all blocks.'), - keyCombination: { - modifier: 'primary', - character: 'a' - } - }); - registerShortcut({ - name: 'core/block-editor/unselect', - category: 'selection', - description: (0,external_wp_i18n_namespaceObject.__)('Clear selection.'), - keyCombination: { - character: 'escape' - } - }); - registerShortcut({ - name: 'core/block-editor/multi-text-selection', - category: 'selection', - description: (0,external_wp_i18n_namespaceObject.__)('Select text across multiple blocks.'), - keyCombination: { - modifier: 'shift', - character: 'arrow' - } - }); - registerShortcut({ - name: 'core/block-editor/focus-toolbar', - category: 'global', - description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the nearest toolbar.'), - keyCombination: { - modifier: 'alt', - character: 'F10' - } - }); - registerShortcut({ - name: 'core/block-editor/move-up', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Move the selected block(s) up.'), - keyCombination: { - modifier: 'secondary', - character: 't' - } - }); - registerShortcut({ - name: 'core/block-editor/move-down', - category: 'block', - description: (0,external_wp_i18n_namespaceObject.__)('Move the selected block(s) down.'), - keyCombination: { - modifier: 'secondary', - character: 'y' - } - }); - }, [registerShortcut]); - return null; + // A string value represents a shorthand value. + if (typeof values === 'string') { + return true; + } + + // An object represents longhand border radius values, if any are set + // flag values as being defined. + const filteredValues = Object.values(values).filter(value => { + return !!value || value === 0; + }); + return !!filteredValues.length; } -KeyboardShortcuts.Register = KeyboardShortcutsRegister; -/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/all-input-control.js /** * WordPress dependencies @@ -42702,53 +35728,171 @@ KeyboardShortcuts.Register = KeyboardShortcutsRegister; - /** * Internal dependencies */ +function AllInputControl({ + onChange, + selectedUnits, + setSelectedUnits, + values, + ...props +}) { + let allValue = getAllValue(values); + if (allValue === undefined) { + // If we don't have any value set the unit to any current selection + // or the most common unit from the individual radii values. + allValue = getAllUnit(selectedUnits); + } + const hasValues = hasDefinedValues(values); + const isMixed = hasValues && hasMixedValues(values); + const allPlaceholder = isMixed ? (0,external_wp_i18n_namespaceObject.__)('Mixed') : null; + // Filter out CSS-unit-only values to prevent invalid styles. + const handleOnChange = next => { + const isNumeric = !isNaN(parseFloat(next)); + const nextValue = isNumeric ? next : undefined; + onChange(nextValue); + }; + // Store current unit selection for use as fallback for individual + // radii controls. + const handleOnUnitChange = unit => { + setSelectedUnits({ + topLeft: unit, + topRight: unit, + bottomLeft: unit, + bottomRight: unit + }); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + ...props, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Border radius'), + disableUnits: isMixed, + isOnly: true, + value: allValue, + onChange: handleOnChange, + onUnitChange: handleOnUnitChange, + placeholder: allPlaceholder, + size: '__unstable-large' + }); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/input-controls.js +/** + * WordPress dependencies + */ -/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */ +const CORNERS = { + topLeft: (0,external_wp_i18n_namespaceObject.__)('Top left'), + topRight: (0,external_wp_i18n_namespaceObject.__)('Top right'), + bottomLeft: (0,external_wp_i18n_namespaceObject.__)('Bottom left'), + bottomRight: (0,external_wp_i18n_namespaceObject.__)('Bottom right') +}; +function BoxInputControls({ + onChange, + selectedUnits, + setSelectedUnits, + values: valuesProp, + ...props +}) { + const createHandleOnChange = corner => next => { + if (!onChange) { + return; + } -const ExperimentalBlockEditorProvider = with_registry_provider(props => { - const { - children, - settings, - stripExperimentalSettings = false - } = props; - const { - __experimentalUpdateSettings - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - (0,external_wp_element_namespaceObject.useEffect)(() => { - __experimentalUpdateSettings({ - ...settings, - __internalIsInitialized: true - }, { - stripExperimentalSettings, - reset: true + // Filter out CSS-unit-only values to prevent invalid styles. + const isNumeric = !isNaN(parseFloat(next)); + const nextValue = isNumeric ? next : undefined; + onChange({ + ...values, + [corner]: nextValue }); - }, [settings, stripExperimentalSettings, __experimentalUpdateSettings]); + }; + const createHandleOnUnitChange = side => next => { + const newUnits = { + ...selectedUnits + }; + newUnits[side] = next; + setSelectedUnits(newUnits); + }; - // Syncs the entity provider with changes in the block-editor store. - useBlockSync(props); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.SlotFillProvider, { - passthrough: true - }, !settings.__unstableIsPreviewMode && (0,external_React_.createElement)(keyboard_shortcuts.Register, null), (0,external_React_.createElement)(BlockRefsProvider, null, children)); -}); -const BlockEditorProvider = props => { - return (0,external_React_.createElement)(ExperimentalBlockEditorProvider, { + // For shorthand style & backwards compatibility, handle flat string value. + const values = typeof valuesProp !== 'string' ? valuesProp : { + topLeft: valuesProp, + topRight: valuesProp, + bottomLeft: valuesProp, + bottomRight: valuesProp + }; + + // Controls are wrapped in tooltips as visible labels aren't desired here. + // Tooltip rendering also requires the UnitControl to be wrapped. See: + // https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026 + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "components-border-radius-control__input-controls-wrapper" + }, Object.entries(CORNERS).map(([corner, label]) => { + const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values[corner]); + const computedUnit = values[corner] ? parsedUnit : selectedUnits[corner] || selectedUnits.flat; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: label, + placement: "top", + key: corner + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "components-border-radius-control__tooltip-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + ...props, + "aria-label": label, + value: [parsedQuantity, computedUnit].join(''), + onChange: createHandleOnChange(corner), + onUnitChange: createHandleOnUnitChange(corner), + size: '__unstable-large' + }))); + })); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js + +/** + * WordPress dependencies + */ + +const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z" +})); +/* harmony default export */ var library_link = (link_link); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/linked-button.js + +/** + * WordPress dependencies + */ + + + +function LinkedButton({ + isLinked, + ...props +}) { + const label = isLinked ? (0,external_wp_i18n_namespaceObject.__)('Unlink radii') : (0,external_wp_i18n_namespaceObject.__)('Link radii'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: label + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { ...props, - stripExperimentalSettings: true - }, props.children); -}; -/* harmony default export */ var provider = (BlockEditorProvider); + className: "component-border-radius-control__linked-button", + isSmall: true, + icon: isLinked ? library_link : link_off, + iconSize: 24, + "aria-label": label + })); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-selection-clearer/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/border-radius-control/index.js /** * WordPress dependencies @@ -42756,142 +35900,310 @@ const BlockEditorProvider = props => { + /** * Internal dependencies */ + + + +const border_radius_control_DEFAULT_VALUES = { + topLeft: undefined, + topRight: undefined, + bottomLeft: undefined, + bottomRight: undefined +}; +const MIN_BORDER_RADIUS_VALUE = 0; +const MAX_BORDER_RADIUS_VALUES = { + px: 100, + em: 20, + rem: 20 +}; + /** - * Pass the returned ref callback to an element that should clear block - * selection. Selection will only be cleared if the element is clicked directly, - * not if a child element is clicked. + * Control to display border radius options. * - * @return {import('react').RefCallback} Ref callback. + * @param {Object} props Component props. + * @param {Function} props.onChange Callback to handle onChange. + * @param {Object} props.values Border radius values. + * + * @return {WPElement} Custom border radius control. */ -function useBlockSelectionClearer() { - const { - getSettings, - hasSelectedBlock, - hasMultiSelection - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - clearSelectedBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - clearBlockSelection: isEnabled - } = getSettings(); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (!isEnabled) { - return; - } - function onMouseDown(event) { - if (!hasSelectedBlock() && !hasMultiSelection()) { - return; - } +function BorderRadiusControl({ + onChange, + values +}) { + const [isLinked, setIsLinked] = (0,external_wp_element_namespaceObject.useState)(!hasDefinedValues(values) || !hasMixedValues(values)); - // Only handle clicks on the element, not the children. - if (event.target !== node) { - return; - } - clearSelectedBlock(); - } - node.addEventListener('mousedown', onMouseDown); - return () => { - node.removeEventListener('mousedown', onMouseDown); - }; - }, [hasSelectedBlock, hasMultiSelection, clearSelectedBlock, isEnabled]); -} -function BlockSelectionClearer(props) { - return (0,external_React_.createElement)("div", { - ref: useBlockSelectionClearer(), - ...props + // Tracking selected units via internal state allows filtering of CSS unit + // only values from being saved while maintaining preexisting unit selection + // behaviour. Filtering CSS unit only values prevents invalid style values. + const [selectedUnits, setSelectedUnits] = (0,external_wp_element_namespaceObject.useState)({ + flat: typeof values === 'string' ? (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values)[1] : undefined, + topLeft: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.topLeft)[1], + topRight: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.topRight)[1], + bottomLeft: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomLeft)[1], + bottomRight: (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomRight)[1] + }); + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['px', 'em', 'rem'] }); + const unit = getAllUnit(selectedUnits); + const unitConfig = units && units.find(item => item.value === unit); + const step = unitConfig?.step || 1; + const [allValue] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(getAllValue(values)); + const toggleLinked = () => setIsLinked(!isLinked); + const handleSliderChange = next => { + onChange(next !== undefined ? `${next}${unit}` : undefined); + }; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "components-border-radius-control" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Radius')), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "components-border-radius-control__wrapper" + }, isLinked ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AllInputControl, { + className: "components-border-radius-control__unit-control", + values: values, + min: MIN_BORDER_RADIUS_VALUE, + onChange: onChange, + selectedUnits: selectedUnits, + setSelectedUnits: setSelectedUnits, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Border radius'), + hideLabelFromVision: true, + className: "components-border-radius-control__range-control", + value: allValue !== null && allValue !== void 0 ? allValue : '', + min: MIN_BORDER_RADIUS_VALUE, + max: MAX_BORDER_RADIUS_VALUES[unit], + initialPosition: 0, + withInputField: false, + onChange: handleSliderChange, + step: step, + __nextHasNoMarginBottom: true + })) : (0,external_wp_element_namespaceObject.createElement)(BoxInputControls, { + min: MIN_BORDER_RADIUS_VALUE, + onChange: onChange, + selectedUnits: selectedUnits, + setSelectedUnits: setSelectedUnits, + values: values || border_radius_control_DEFAULT_VALUES, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(LinkedButton, { + onClick: toggleLinked, + isLinked: isLinked + }))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-multi-selection.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/border-panel.js + /** * WordPress dependencies */ + /** * Internal dependencies */ -function selector(select) { - const { - isMultiSelecting, - getMultiSelectedBlockClientIds, - hasMultiSelection, - getSelectedBlockClientId, - getSelectedBlocksInitialCaretPosition, - __unstableIsFullySelected - } = select(store); - return { - isMultiSelecting: isMultiSelecting(), - multiSelectedBlockClientIds: getMultiSelectedBlockClientIds(), - hasMultiSelection: hasMultiSelection(), - selectedBlockClientId: getSelectedBlockClientId(), - initialPosition: getSelectedBlocksInitialCaretPosition(), - isFullSelection: __unstableIsFullySelected() + + +function useHasBorderPanel(settings) { + const controls = [useHasBorderColorControl(settings), useHasBorderRadiusControl(settings), useHasBorderStyleControl(settings), useHasBorderWidthControl(settings)]; + return controls.some(Boolean); +} +function useHasBorderColorControl(settings) { + return settings?.border?.color; +} +function useHasBorderRadiusControl(settings) { + return settings?.border?.radius; +} +function useHasBorderStyleControl(settings) { + return settings?.border?.style; +} +function useHasBorderWidthControl(settings) { + return settings?.border?.width; +} +function BorderToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject.__)('Border'), + resetAll: resetAll, + panelId: panelId + }, children); } -function useMultiSelection() { - const { - initialPosition, - isMultiSelecting, - multiSelectedBlockClientIds, - hasMultiSelection, - selectedBlockClientId, - isFullSelection - } = (0,external_wp_data_namespaceObject.useSelect)(selector, []); - - /** - * When the component updates, and there is multi selection, we need to - * select the entire block contents. - */ - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; +const border_panel_DEFAULT_CONTROLS = { + radius: true, + color: true, + width: true +}; +function BorderPanel({ + as: Wrapper = BorderToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = border_panel_DEFAULT_CONTROLS +}) { + const colors = useColorsPerOrigin(settings); + const decodeValue = rawValue => getValueFromVariable({ + settings + }, '', rawValue); + const encodeColorValue = colorValue => { + const allColors = colors.flatMap(({ + colors: originColors + }) => originColors); + const colorObject = allColors.find(({ + color + }) => color === colorValue); + return colorObject ? 'var:preset|color|' + colorObject.slug : colorValue; + }; + const decodeColorValue = (0,external_wp_element_namespaceObject.useCallback)(colorValue => { + const allColors = colors.flatMap(({ + colors: originColors + }) => originColors); + const colorObject = allColors.find(({ + slug + }) => colorValue === 'var:preset|color|' + slug); + return colorObject ? colorObject.color : colorValue; + }, [colors]); + const border = (0,external_wp_element_namespaceObject.useMemo)(() => { + if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(inheritedValue?.border)) { + const borderValue = { + ...inheritedValue?.border + }; + ['top', 'right', 'bottom', 'left'].forEach(side => { + borderValue[side] = { + ...borderValue[side], + color: decodeColorValue(borderValue[side]?.color) + }; + }); + return borderValue; + } + return { + ...inheritedValue?.border, + color: inheritedValue?.border?.color ? decodeColorValue(inheritedValue?.border?.color) : undefined + }; + }, [inheritedValue?.border, decodeColorValue]); + const setBorder = newBorder => onChange({ + ...value, + border: newBorder + }); + const showBorderColor = useHasBorderColorControl(settings); + const showBorderStyle = useHasBorderStyleControl(settings); + const showBorderWidth = useHasBorderWidthControl(settings); - // Allow initialPosition to bypass focus behavior. This is useful - // for the list view or other areas where we don't want to transfer - // focus to the editor canvas. - if (initialPosition === undefined || initialPosition === null) { - return; + // Border radius. + const showBorderRadius = useHasBorderRadiusControl(settings); + const borderRadiusValues = decodeValue(border?.radius); + const setBorderRadius = newBorderRadius => setBorder({ + ...border, + radius: newBorderRadius + }); + const hasBorderRadius = () => { + const borderValues = value?.border?.radius; + if (typeof borderValues === 'object') { + return Object.entries(borderValues).some(Boolean); } - if (!hasMultiSelection || isMultiSelecting) { - return; + return !!borderValues; + }; + const resetBorder = () => { + if (hasBorderRadius()) { + return setBorder({ + radius: value?.border?.radius + }); } - const { - length - } = multiSelectedBlockClientIds; - if (length < 2) { - return; + setBorder(undefined); + }; + const onBorderChange = newBorder => { + // Ensure we have a visible border style when a border width or + // color is being selected. + const updatedBorder = { + ...newBorder + }; + if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(updatedBorder)) { + ['top', 'right', 'bottom', 'left'].forEach(side => { + if (updatedBorder[side]) { + updatedBorder[side] = { + ...updatedBorder[side], + color: encodeColorValue(updatedBorder[side]?.color) + }; + } + }); + } else if (updatedBorder) { + updatedBorder.color = encodeColorValue(updatedBorder.color); } - if (!isFullSelection) { - return; + + // As radius is maintained separately to color, style, and width + // maintain its value. Undefined values here will be cleaned when + // global styles are saved. + setBorder({ + radius: border?.radius, + ...updatedBorder + }); + }; + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + border: undefined + }; + }, []); + const showBorderByDefault = defaultControls?.color || defaultControls?.width; + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, (showBorderWidth || showBorderColor) && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: () => (0,external_wp_components_namespaceObject.__experimentalIsDefinedBorder)(value?.border), + label: (0,external_wp_i18n_namespaceObject.__)('Border'), + onDeselect: () => resetBorder(), + isShownByDefault: showBorderByDefault, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalBorderBoxControl, { + colors: colors, + enableAlpha: true, + enableStyle: showBorderStyle, + onChange: onBorderChange, + popoverOffset: 40, + popoverPlacement: "left-start", + value: border, + __experimentalIsRenderedInSidebar: true, + size: '__unstable-large' + })), showBorderRadius && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: hasBorderRadius, + label: (0,external_wp_i18n_namespaceObject.__)('Radius'), + onDeselect: () => setBorderRadius(undefined), + isShownByDefault: defaultControls.radius, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(BorderRadiusControl, { + values: borderRadiusValues, + onChange: newValue => { + setBorderRadius(newValue || undefined); } + }))); +} - // Allow cross contentEditable selection by temporarily making - // all content editable. We can't rely on using the store and - // React because re-rending happens too slowly. We need to be - // able to select across instances immediately. - node.contentEditable = true; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/border.js - // For some browsers, like Safari, it is important that focus - // happens BEFORE selection removal. - node.focus(); - defaultView.getSelection().removeAllRanges(); - }, [hasMultiSelection, isMultiSelecting, multiSelectedBlockClientIds, selectedBlockClientId, initialPosition, isFullSelection]); -} +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-tab-nav.js /** * WordPress dependencies @@ -42908,633 +36220,581 @@ function useMultiSelection() { -function useTabNav() { - const container = (0,external_wp_element_namespaceObject.useRef)(); - const focusCaptureBeforeRef = (0,external_wp_element_namespaceObject.useRef)(); - const focusCaptureAfterRef = (0,external_wp_element_namespaceObject.useRef)(); - const { - hasMultiSelection, - getSelectedBlockClientId, - getBlockCount - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - setNavigationMode, - setLastFocus - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - const isNavigationMode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isNavigationMode(), []); - const { - getLastFocus - } = unlock((0,external_wp_data_namespaceObject.useSelect)(store)); - // Don't allow tabbing to this element in Navigation mode. - const focusCaptureTabIndex = !isNavigationMode ? '0' : undefined; - // Reference that holds the a flag for enabling or disabling - // capturing on the focus capture elements. - const noCapture = (0,external_wp_element_namespaceObject.useRef)(); - function onFocusCapture(event) { - // Do not capture incoming focus if set by us in WritingFlow. - if (noCapture.current) { - noCapture.current = null; - } else if (hasMultiSelection()) { - container.current.focus(); - } else if (getSelectedBlockClientId()) { - getLastFocus()?.current.focus(); - } else { - setNavigationMode(true); - const canvasElement = container.current.ownerDocument === event.target.ownerDocument ? container.current : container.current.ownerDocument.defaultView.frameElement; - const isBefore = - // eslint-disable-next-line no-bitwise - event.target.compareDocumentPosition(canvasElement) & event.target.DOCUMENT_POSITION_FOLLOWING; - const tabbables = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); - if (tabbables.length) { - const next = isBefore ? tabbables[0] : tabbables[tabbables.length - 1]; - next.focus(); - } +const BORDER_SUPPORT_KEY = '__experimentalBorder'; +const getColorByProperty = (colors, property, value) => { + let matchedColor; + colors.some(origin => origin.colors.some(color => { + if (color[property] === value) { + matchedColor = color; + return true; } - } - const before = (0,external_React_.createElement)("div", { - ref: focusCaptureBeforeRef, - tabIndex: focusCaptureTabIndex, - onFocus: onFocusCapture - }); - const after = (0,external_React_.createElement)("div", { - ref: focusCaptureAfterRef, - tabIndex: focusCaptureTabIndex, - onFocus: onFocusCapture - }); - const ref = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onKeyDown(event) { - if (event.defaultPrevented) { - return; - } - if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !hasMultiSelection()) { - event.preventDefault(); - setNavigationMode(true); - return; - } - - // In Edit mode, Tab should focus the first tabbable element after - // the content, which is normally the sidebar (with block controls) - // and Shift+Tab should focus the first tabbable element before the - // content, which is normally the block toolbar. - // Arrow keys can be used, and Tab and arrow keys can be used in - // Navigation mode (press Esc), to navigate through blocks. - if (event.keyCode !== external_wp_keycodes_namespaceObject.TAB) { - return; - } - const isShift = event.shiftKey; - const direction = isShift ? 'findPrevious' : 'findNext'; - if (!hasMultiSelection() && !getSelectedBlockClientId()) { - // Preserve the behaviour of entering navigation mode when - // tabbing into the content without a block selection. - // `onFocusCapture` already did this previously, but we need to - // do it again here because after clearing block selection, - // focus land on the writing flow container and pressing Tab - // will no longer send focus through the focus capture element. - if (event.target === node) setNavigationMode(true); - return; - } - const nextTabbable = external_wp_dom_namespaceObject.focus.tabbable[direction](event.target); - - // We want to constrain the tabbing to the block and its child blocks. - // If the preceding form element is within a different block, - // such as two sibling image blocks in the placeholder state, - // we want shift + tab from the first form element to move to the image - // block toolbar and not the previous image block's form element. - const currentBlock = event.target.closest('[data-block]'); - const isElementPartOfSelectedBlock = currentBlock && nextTabbable && (isInSameBlock(currentBlock, nextTabbable) || isInsideRootBlock(currentBlock, nextTabbable)); - - // Allow tabbing from the block wrapper to a form element, - // and between form elements rendered in a block and its child blocks, - // such as inside a placeholder. Form elements are generally - // meant to be UI rather than part of the content. Ideally - // these are not rendered in the content and perhaps in the - // future they can be rendered in an iframe or shadow DOM. - if ((0,external_wp_dom_namespaceObject.isFormElement)(nextTabbable) && isElementPartOfSelectedBlock) { - return; - } - const next = isShift ? focusCaptureBeforeRef : focusCaptureAfterRef; - - // Disable focus capturing on the focus capture element, so it - // doesn't refocus this block and so it allows default behaviour - // (moving focus to the next tabbable element). - noCapture.current = true; - - // Focusing the focus capture element, which is located above and - // below the editor, should not scroll the page all the way up or - // down. - next.current.focus({ - preventScroll: true - }); + return false; + })); + return matchedColor; +}; +const getMultiOriginColor = ({ + colors, + namedColor, + customColor +}) => { + // Search each origin (default, theme, or user) for matching color by name. + if (namedColor) { + const colorObject = getColorByProperty(colors, 'slug', namedColor); + if (colorObject) { + return colorObject; } - function onFocusOut(event) { - setLastFocus({ - ...getLastFocus(), - current: event.target - }); - const { - ownerDocument - } = node; + } - // If focus disappears due to there being no blocks, move focus to - // the writing flow wrapper. - if (!event.relatedTarget && ownerDocument.activeElement === ownerDocument.body && getBlockCount() === 0) { - node.focus(); - } - } + // Skip if no custom color or matching named color. + if (!customColor) { + return { + color: undefined + }; + } - // When tabbing back to an element in block list, this event handler prevents scrolling if the - // focus capture divs (before/after) are outside of the viewport. (For example shift+tab back to a paragraph - // when focus is on a sidebar element. This prevents the scrollable writing area from jumping either to the - // top or bottom of the document. - // - // Note that it isn't possible to disable scrolling in the onFocus event. We need to intercept this - // earlier in the keypress handler, and call focus( { preventScroll: true } ) instead. - // https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus#parameters - function preventScrollOnTab(event) { - if (event.keyCode !== external_wp_keycodes_namespaceObject.TAB) { - return; - } - if (event.target?.getAttribute('role') === 'region') { - return; - } - if (container.current === event.target) { - return; - } - const isShift = event.shiftKey; - const direction = isShift ? 'findPrevious' : 'findNext'; - const target = external_wp_dom_namespaceObject.focus.tabbable[direction](event.target); - // Only do something when the next tabbable is a focus capture div (before/after) - if (target === focusCaptureBeforeRef.current || target === focusCaptureAfterRef.current) { - event.preventDefault(); - target.focus({ - preventScroll: true - }); - } - } - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; - defaultView.addEventListener('keydown', preventScrollOnTab); - node.addEventListener('keydown', onKeyDown); - node.addEventListener('focusout', onFocusOut); - return () => { - defaultView.removeEventListener('keydown', preventScrollOnTab); - node.removeEventListener('keydown', onKeyDown); - node.removeEventListener('focusout', onFocusOut); + // Attempt to find color via custom color value or build new object. + const colorObject = getColorByProperty(colors, 'color', customColor); + return colorObject ? colorObject : { + color: customColor + }; +}; +function getColorSlugFromVariable(value) { + const namedColor = /var:preset\|color\|(.+)/.exec(value); + if (namedColor && namedColor[1]) { + return namedColor[1]; + } + return null; +} +function styleToAttributes(style) { + if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(style?.border)) { + return { + style, + borderColor: undefined + }; + } + const borderColorValue = style?.border?.color; + const borderColorSlug = borderColorValue?.startsWith('var:preset|color|') ? borderColorValue.substring('var:preset|color|'.length) : undefined; + const updatedStyle = { + ...style + }; + updatedStyle.border = { + ...updatedStyle.border, + color: borderColorSlug ? undefined : borderColorValue + }; + return { + style: utils_cleanEmptyObject(updatedStyle), + borderColor: borderColorSlug + }; +} +function attributesToStyle(attributes) { + if ((0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(attributes.style?.border)) { + return attributes.style; + } + return { + ...attributes.style, + border: { + ...attributes.style?.border, + color: attributes.borderColor ? 'var:preset|color|' + attributes.borderColor : attributes.style?.border?.color + } + }; +} +function BordersInspectorControl({ + children, + resetAllFilter +}) { + const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { + const existingStyle = attributesToStyle(attributes); + const updatedStyle = resetAllFilter(existingStyle); + return { + ...attributes, + ...styleToAttributes(updatedStyle) }; - }, []); - const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([container, ref]); - return [before, mergedRefs, after]; + }, [resetAllFilter]); + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "border", + resetAllFilter: attributesResetAllFilter + }, children); +} +function border_BorderPanel(props) { + const { + clientId, + name, + attributes, + setAttributes + } = props; + const settings = useBlockSettings(name); + const isEnabled = useHasBorderPanel(settings); + const value = (0,external_wp_element_namespaceObject.useMemo)(() => { + return attributesToStyle({ + style: attributes.style, + borderColor: attributes.borderColor + }); + }, [attributes.style, attributes.borderColor]); + const onChange = newStyle => { + setAttributes(styleToAttributes(newStyle)); + }; + if (!isEnabled) { + return null; + } + const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']); + return (0,external_wp_element_namespaceObject.createElement)(BorderPanel, { + as: BordersInspectorControl, + panelId: clientId, + settings: settings, + value: value, + onChange: onChange, + defaultControls: defaultControls + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-arrow-nav.js /** - * WordPress dependencies + * Determine whether there is block support for border properties. + * + * @param {string} blockName Block name. + * @param {string} feature Border feature to check support for. + * + * @return {boolean} Whether there is support. */ - - - - +function hasBorderSupport(blockName, feature = 'any') { + if (external_wp_element_namespaceObject.Platform.OS !== 'web') { + return false; + } + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, BORDER_SUPPORT_KEY); + if (support === true) { + return true; + } + if (feature === 'any') { + return !!(support?.color || support?.radius || support?.width || support?.style); + } + return !!support?.[feature]; +} /** - * Internal dependencies + * Returns a new style object where the specified border attribute has been + * removed. + * + * @param {Object} style Styles from block attributes. + * @param {string} attribute The border style attribute to clear. + * + * @return {Object} Style object with the specified attribute removed. */ - - +function removeBorderAttribute(style, attribute) { + return cleanEmptyObject({ + ...style, + border: { + ...style?.border, + [attribute]: undefined + } + }); +} /** - * Returns true if the element should consider edge navigation upon a keyboard - * event of the given directional key code, or false otherwise. + * Filters registered block settings, extending attributes to include + * `borderColor` if needed. * - * @param {Element} element HTML element to test. - * @param {number} keyCode KeyboardEvent keyCode to test. - * @param {boolean} hasModifier Whether a modifier is pressed. + * @param {Object} settings Original block settings. * - * @return {boolean} Whether element should consider edge navigation. + * @return {Object} Updated block settings. */ -function isNavigationCandidate(element, keyCode, hasModifier) { - const isVertical = keyCode === external_wp_keycodes_namespaceObject.UP || keyCode === external_wp_keycodes_namespaceObject.DOWN; - const { - tagName - } = element; - const elementType = element.getAttribute('type'); - - // Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys. - if (isVertical && !hasModifier) { - if (tagName === 'INPUT') { - const verticalInputTypes = ['date', 'datetime-local', 'month', 'number', 'range', 'time', 'week']; - return !verticalInputTypes.includes(elementType); - } - return true; +function addAttributes(settings) { + if (!hasBorderSupport(settings, 'color')) { + return settings; } - // Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys. - if (tagName === 'INPUT') { - const simpleInputTypes = ['button', 'checkbox', 'number', 'color', 'file', 'image', 'radio', 'reset', 'submit']; - return simpleInputTypes.includes(elementType); + // Allow blocks to specify default value if needed. + if (settings.attributes.borderColor) { + return settings; } - // Native textareas should not navigate horizontally. - return tagName !== 'TEXTAREA'; + // Add new borderColor attribute to block settings. + return { + ...settings, + attributes: { + ...settings.attributes, + borderColor: { + type: 'string' + } + } + }; } /** - * Returns the optimal tab target from the given focused element in the desired - * direction. A preference is made toward text fields, falling back to the block - * focus stop if no other candidates exist for the block. + * Override props assigned to save component to inject border color. * - * @param {Element} target Currently focused text field. - * @param {boolean} isReverse True if considering as the first field. - * @param {Element} containerElement Element containing all blocks. - * @param {boolean} onlyVertical Whether to only consider tabbable elements - * that are visually above or under the - * target. + * @param {Object} props Additional props applied to save element. + * @param {Object} blockType Block type definition. + * @param {Object} attributes Block's attributes. * - * @return {?Element} Optimal tab target, if one exists. + * @return {Object} Filtered props to apply to save element. */ -function getClosestTabbable(target, isReverse, containerElement, onlyVertical) { - // Since the current focus target is not guaranteed to be a text field, find - // all focusables. Tabbability is considered later. - let focusableNodes = external_wp_dom_namespaceObject.focus.focusable.find(containerElement); - if (isReverse) { - focusableNodes.reverse(); +function border_addSaveProps(props, blockType, attributes) { + if (!hasBorderSupport(blockType, 'color') || shouldSkipSerialization(blockType, BORDER_SUPPORT_KEY, 'color')) { + return props; } + const borderClasses = getBorderClasses(attributes); + const newClassName = classnames_default()(props.className, borderClasses); - // Consider as candidates those focusables after the current target. It's - // assumed this can only be reached if the target is focusable (on its - // keydown event), so no need to verify it exists in the set. - focusableNodes = focusableNodes.slice(focusableNodes.indexOf(target) + 1); - let targetRect; - if (onlyVertical) { - targetRect = target.getBoundingClientRect(); - } - function isTabCandidate(node) { - if (node.closest('[inert]')) { - return; - } + // If we are clearing the last of the previous classes in `className` + // set it to `undefined` to avoid rendering empty DOM attributes. + props.className = newClassName ? newClassName : undefined; + return props; +} - // Skip if there's only one child that is content editable (and thus a - // better candidate). - if (node.children.length === 1 && isInSameBlock(node, node.firstElementChild) && node.firstElementChild.getAttribute('contenteditable') === 'true') { - return; - } +/** + * Generates a CSS class name consisting of all the applicable border color + * classes given the current block attributes. + * + * @param {Object} attributes Block's attributes. + * + * @return {string} CSS class name. + */ +function getBorderClasses(attributes) { + const { + borderColor, + style + } = attributes; + const borderColorClass = getColorClassName('border-color', borderColor); + return classnames_default()({ + 'has-border-color': borderColor || style?.border?.color, + [borderColorClass]: !!borderColorClass + }); +} - // Not a candidate if the node is not tabbable. - if (!external_wp_dom_namespaceObject.focus.tabbable.isTabbableIndex(node)) { - return false; +/** + * Filters the registered block settings to apply border color styles and + * classnames to the block edit wrapper. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function addEditProps(settings) { + if (!hasBorderSupport(settings, 'color') || shouldSkipSerialization(settings, BORDER_SUPPORT_KEY, 'color')) { + return settings; + } + const existingGetEditWrapperProps = settings.getEditWrapperProps; + settings.getEditWrapperProps = attributes => { + let props = {}; + if (existingGetEditWrapperProps) { + props = existingGetEditWrapperProps(attributes); } + return border_addSaveProps(props, settings, attributes); + }; + return settings; +} - // Skip focusable elements such as links within content editable nodes. - if (node.isContentEditable && node.contentEditable !== 'true') { - return false; - } - if (onlyVertical) { - const nodeRect = node.getBoundingClientRect(); - if (nodeRect.left >= targetRect.right || nodeRect.right <= targetRect.left) { - return false; - } - } - return true; +/** + * This adds inline styles for color palette colors. + * Ideally, this is not needed and themes should load their palettes on the editor. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. + */ +const withBorderColorPaletteStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + name, + attributes + } = props; + const { + borderColor, + style + } = attributes; + const { + colors + } = useMultipleOriginColorsAndGradients(); + if (!hasBorderSupport(name, 'color') || shouldSkipSerialization(name, BORDER_SUPPORT_KEY, 'color')) { + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props + }); } - return focusableNodes.find(isTabCandidate); -} -function useArrowNav() { const { - getMultiSelectedBlocksStartClientId, - getMultiSelectedBlocksEndClientId, - getSettings, - hasMultiSelection, - __unstableIsFullySelected - } = (0,external_wp_data_namespaceObject.useSelect)(store); + color: borderColorValue + } = getMultiOriginColor({ + colors, + namedColor: borderColor + }); const { - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - // Here a DOMRect is stored while moving the caret vertically so - // vertical position of the start position can be restored. This is to - // recreate browser behaviour across blocks. - let verticalRect; - function onMouseDown() { - verticalRect = null; - } - function isClosestTabbableABlock(target, isReverse) { - const closestTabbable = getClosestTabbable(target, isReverse, node); - return closestTabbable && getBlockClientId(closestTabbable); + color: borderTopColor + } = getMultiOriginColor({ + colors, + namedColor: getColorSlugFromVariable(style?.border?.top?.color) + }); + const { + color: borderRightColor + } = getMultiOriginColor({ + colors, + namedColor: getColorSlugFromVariable(style?.border?.right?.color) + }); + const { + color: borderBottomColor + } = getMultiOriginColor({ + colors, + namedColor: getColorSlugFromVariable(style?.border?.bottom?.color) + }); + const { + color: borderLeftColor + } = getMultiOriginColor({ + colors, + namedColor: getColorSlugFromVariable(style?.border?.left?.color) + }); + const extraStyles = { + borderTopColor: borderTopColor || borderColorValue, + borderRightColor: borderRightColor || borderColorValue, + borderBottomColor: borderBottomColor || borderColorValue, + borderLeftColor: borderLeftColor || borderColorValue + }; + const cleanedExtraStyles = utils_cleanEmptyObject(extraStyles) || {}; + let wrapperProps = props.wrapperProps; + wrapperProps = { + ...props.wrapperProps, + style: { + ...props.wrapperProps?.style, + ...cleanedExtraStyles } - function onKeyDown(event) { - // Abort if navigation has already been handled (e.g. RichText - // inline boundaries). - if (event.defaultPrevented) { - return; - } - const { - keyCode, - target, - shiftKey, - ctrlKey, - altKey, - metaKey - } = event; - const isUp = keyCode === external_wp_keycodes_namespaceObject.UP; - const isDown = keyCode === external_wp_keycodes_namespaceObject.DOWN; - const isLeft = keyCode === external_wp_keycodes_namespaceObject.LEFT; - const isRight = keyCode === external_wp_keycodes_namespaceObject.RIGHT; - const isReverse = isUp || isLeft; - const isHorizontal = isLeft || isRight; - const isVertical = isUp || isDown; - const isNav = isHorizontal || isVertical; - const hasModifier = shiftKey || ctrlKey || altKey || metaKey; - const isNavEdge = isVertical ? external_wp_dom_namespaceObject.isVerticalEdge : external_wp_dom_namespaceObject.isHorizontalEdge; - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; - if (!isNav) { - return; - } - - // If there is a multi-selection, the arrow keys should collapse the - // selection to the start or end of the selection. - if (hasMultiSelection()) { - if (shiftKey) { - return; - } - - // Only handle if we have a full selection (not a native partial - // selection). - if (!__unstableIsFullySelected()) { - return; - } - event.preventDefault(); - if (isReverse) { - selectBlock(getMultiSelectedBlocksStartClientId()); - } else { - selectBlock(getMultiSelectedBlocksEndClientId(), -1); - } - return; - } + }; + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + wrapperProps: wrapperProps + }); +}, 'withBorderColorPaletteStyles'); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/border/addAttributes', addAttributes); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/border/addSaveProps', border_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/border/addEditProps', addEditProps); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/border/with-border-color-palette-styles', withBorderColorPaletteStyles); - // Abort if our current target is not a candidate for navigation - // (e.g. preserve native input behaviors). - if (!isNavigationCandidate(target, keyCode, hasModifier)) { - return; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/use-gradient.js +/** + * WordPress dependencies + */ - // When presing any key other than up or down, the initial vertical - // position must ALWAYS be reset. The vertical position is saved so - // it can be restored as well as possible on sebsequent vertical - // arrow key presses. It may not always be possible to restore the - // exact same position (such as at an empty line), so it wouldn't be - // good to compute the position right before any vertical arrow key - // press. - if (!isVertical) { - verticalRect = null; - } else if (!verticalRect) { - verticalRect = (0,external_wp_dom_namespaceObject.computeCaretRect)(defaultView); - } - // In the case of RTL scripts, right means previous and left means - // next, which is the exact reverse of LTR. - const isReverseDir = (0,external_wp_dom_namespaceObject.isRTL)(target) ? !isReverse : isReverse; - const { - keepCaretInsideBlock - } = getSettings(); - if (shiftKey) { - if (isClosestTabbableABlock(target, isReverse) && isNavEdge(target, isReverse)) { - node.contentEditable = true; - // Firefox doesn't automatically move focus. - node.focus(); - } - } else if (isVertical && (0,external_wp_dom_namespaceObject.isVerticalEdge)(target, isReverse) && ( - // When Alt is pressed, only intercept if the caret is also at - // the horizontal edge. - altKey ? (0,external_wp_dom_namespaceObject.isHorizontalEdge)(target, isReverseDir) : true) && !keepCaretInsideBlock) { - const closestTabbable = getClosestTabbable(target, isReverse, node, true); - if (closestTabbable) { - (0,external_wp_dom_namespaceObject.placeCaretAtVerticalEdge)(closestTabbable, - // When Alt is pressed, place the caret at the furthest - // horizontal edge and the furthest vertical edge. - altKey ? !isReverse : isReverse, altKey ? undefined : verticalRect); - event.preventDefault(); - } - } else if (isHorizontal && defaultView.getSelection().isCollapsed && (0,external_wp_dom_namespaceObject.isHorizontalEdge)(target, isReverseDir) && !keepCaretInsideBlock) { - const closestTabbable = getClosestTabbable(target, isReverseDir, node); - (0,external_wp_dom_namespaceObject.placeCaretAtHorizontalEdge)(closestTabbable, isReverse); - event.preventDefault(); - } - } - node.addEventListener('mousedown', onMouseDown); - node.addEventListener('keydown', onKeyDown); - return () => { - node.removeEventListener('mousedown', onMouseDown); - node.removeEventListener('keydown', onKeyDown); - }; - }, []); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-select-all.js /** - * WordPress dependencies + * Internal dependencies */ - +function __experimentalGetGradientClass(gradientSlug) { + if (!gradientSlug) { + return undefined; + } + return `has-${gradientSlug}-gradient-background`; +} /** - * Internal dependencies + * Retrieves the gradient value per slug. + * + * @param {Array} gradients Gradient Palette + * @param {string} slug Gradient slug + * + * @return {string} Gradient value. */ +function getGradientValueBySlug(gradients, slug) { + const gradient = gradients?.find(g => g.slug === slug); + return gradient && gradient.gradient; +} +function __experimentalGetGradientObjectByGradientValue(gradients, value) { + const gradient = gradients?.find(g => g.gradient === value); + return gradient; +} -function useSelectAll() { +/** + * Retrieves the gradient slug per slug. + * + * @param {Array} gradients Gradient Palette + * @param {string} value Gradient value + * @return {string} Gradient slug. + */ +function getGradientSlugByValue(gradients, value) { + const gradient = __experimentalGetGradientObjectByGradientValue(gradients, value); + return gradient && gradient.slug; +} +function __experimentalUseGradient({ + gradientAttribute = 'gradient', + customGradientAttribute = 'customGradient' +} = {}) { const { - getBlockOrder, - getSelectedBlockClientIds, - getBlockRootClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); + clientId + } = useBlockEditContext(); + const userGradientPalette = use_setting_useSetting('color.gradients.custom'); + const themeGradientPalette = use_setting_useSetting('color.gradients.theme'); + const defaultGradientPalette = use_setting_useSetting('color.gradients.default'); + const allGradients = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userGradientPalette || []), ...(themeGradientPalette || []), ...(defaultGradientPalette || [])], [userGradientPalette, themeGradientPalette, defaultGradientPalette]); const { - multiSelect, - selectBlock + gradient, + customGradient + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockAttributes + } = select(store); + const attributes = getBlockAttributes(clientId) || {}; + return { + customGradient: attributes[customGradientAttribute], + gradient: attributes[gradientAttribute] + }; + }, [clientId, gradientAttribute, customGradientAttribute]); + const { + updateBlockAttributes } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onKeyDown(event) { - if (!isMatch('core/block-editor/select-all', event)) { - return; - } - const selectedClientIds = getSelectedBlockClientIds(); - if (selectedClientIds.length < 2 && !(0,external_wp_dom_namespaceObject.isEntirelySelected)(event.target)) { - return; - } - event.preventDefault(); - const [firstSelectedClientId] = selectedClientIds; - const rootClientId = getBlockRootClientId(firstSelectedClientId); - const blockClientIds = getBlockOrder(rootClientId); - - // If we have selected all sibling nested blocks, try selecting up a - // level. See: https://github.com/WordPress/gutenberg/pull/31859/ - if (selectedClientIds.length === blockClientIds.length) { - if (rootClientId) { - node.ownerDocument.defaultView.getSelection().removeAllRanges(); - selectBlock(rootClientId); - } - return; - } - multiSelect(blockClientIds[0], blockClientIds[blockClientIds.length - 1]); + const setGradient = (0,external_wp_element_namespaceObject.useCallback)(newGradientValue => { + const slug = getGradientSlugByValue(allGradients, newGradientValue); + if (slug) { + updateBlockAttributes(clientId, { + [gradientAttribute]: slug, + [customGradientAttribute]: undefined + }); + return; } - node.addEventListener('keydown', onKeyDown); - return () => { - node.removeEventListener('keydown', onKeyDown); - }; - }, []); + updateBlockAttributes(clientId, { + [gradientAttribute]: undefined, + [customGradientAttribute]: newGradientValue + }); + }, [allGradients, clientId, updateBlockAttributes]); + const gradientClass = __experimentalGetGradientClass(gradient); + let gradientValue; + if (gradient) { + gradientValue = getGradientValueBySlug(allGradients, gradient); + } else { + gradientValue = customGradient; + } + return { + gradientClass, + gradientValue, + setGradient + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-drag-selection.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/control.js + /** - * WordPress dependencies + * External dependencies */ - /** - * Internal dependencies + * WordPress dependencies */ -/** - * Sets the `contenteditable` wrapper element to `value`. - * - * @param {HTMLElement} node Block element. - * @param {boolean} value `contentEditable` value (true or false) - */ -function setContentEditableWrapper(node, value) { - node.contentEditable = value; - // Firefox doesn't automatically move focus. - if (value) node.focus(); -} /** - * Sets a multi-selection based on the native selection across blocks. + * Internal dependencies */ -function useDragSelection() { - const { - startMultiSelect, - stopMultiSelect - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - isSelectionEnabled, - hasSelectedBlock, - isDraggingBlocks, - isMultiSelecting - } = (0,external_wp_data_namespaceObject.useSelect)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; - let anchorElement; - let rafId; - function onMouseUp() { - stopMultiSelect(); - // Equivalent to attaching the listener once. - defaultView.removeEventListener('mouseup', onMouseUp); - // The browser selection won't have updated yet at this point, - // so wait until the next animation frame to get the browser - // selection. - rafId = defaultView.requestAnimationFrame(() => { - if (!hasSelectedBlock()) { - return; - } - - // If the selection is complete (on mouse up), and no - // multiple blocks have been selected, set focus back to the - // anchor element. if the anchor element contains the - // selection. Additionally, the contentEditable wrapper can - // now be disabled again. - setContentEditableWrapper(node, false); - const selection = defaultView.getSelection(); - if (selection.rangeCount) { - const { - commonAncestorContainer - } = selection.getRangeAt(0); - if (anchorElement.contains(commonAncestorContainer)) { - anchorElement.focus(); - } - } - }); - } - function onMouseLeave({ - buttons, - target - }) { - // Avoid triggering a multi-selection if the user is already - // dragging blocks. - if (isDraggingBlocks()) { - return; - } - - // The primary button must be pressed to initiate selection. - // See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons - if (buttons !== 1) { - return; - } - - // Abort if we are already multi-selecting. - if (isMultiSelecting()) { - return; - } - - // Abort if selection is leaving writing flow. - if (node === target) { - return; - } - // Check the attribute, not the contentEditable attribute. All - // child elements of the content editable wrapper are editable - // and return true for this property. We only want to start - // multi selecting when the mouse leaves the wrapper. - if (target.getAttribute('contenteditable') !== 'true') { - return; - } - if (!isSelectionEnabled()) { - return; - } +const colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients']; +const TAB_COLOR = { + name: 'color', + title: (0,external_wp_i18n_namespaceObject.__)('Solid'), + value: 'color' +}; +const TAB_GRADIENT = { + name: 'gradient', + title: (0,external_wp_i18n_namespaceObject.__)('Gradient'), + value: 'gradient' +}; +const TABS_SETTINGS = [TAB_COLOR, TAB_GRADIENT]; +function ColorGradientControlInner({ + colors, + gradients, + disableCustomColors, + disableCustomGradients, + __experimentalIsRenderedInSidebar, + className, + label, + onColorChange, + onGradientChange, + colorValue, + gradientValue, + clearable, + showTitle = true, + enableAlpha, + headingLevel +}) { + const canChooseAColor = onColorChange && (colors && colors.length > 0 || !disableCustomColors); + const canChooseAGradient = onGradientChange && (gradients && gradients.length > 0 || !disableCustomGradients); + if (!canChooseAColor && !canChooseAGradient) { + return null; + } + const tabPanels = { + [TAB_COLOR.value]: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ColorPalette, { + value: colorValue, + onChange: canChooseAGradient ? newColor => { + onColorChange(newColor); + onGradientChange(); + } : onColorChange, + colors, + disableCustomColors, + __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar, + clearable: clearable, + enableAlpha: enableAlpha, + headingLevel: headingLevel + }), + [TAB_GRADIENT.value]: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.GradientPicker, { + __nextHasNoMargin: true, + value: gradientValue, + onChange: canChooseAColor ? newGradient => { + onGradientChange(newGradient); + onColorChange(); + } : onGradientChange, + gradients, + disableCustomGradients, + __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar, + clearable: clearable, + headingLevel: headingLevel + }) + }; + const renderPanelType = type => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-color-gradient-control__panel" + }, tabPanels[type]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { + __nextHasNoMarginBottom: true, + className: classnames_default()('block-editor-color-gradient-control', className) + }, (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-color-gradient-control__fieldset" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 1 + }, showTitle && (0,external_wp_element_namespaceObject.createElement)("legend", null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-color-gradient-control__color-indicator" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TabPanel, { + className: "block-editor-color-gradient-control__tabs", + tabs: TABS_SETTINGS, + initialTabName: gradientValue ? TAB_GRADIENT.value : !!canChooseAColor && TAB_COLOR.value + }, tab => renderPanelType(tab.value)), !canChooseAGradient && renderPanelType(TAB_COLOR.value), !canChooseAColor && renderPanelType(TAB_GRADIENT.value)))); +} +function ColorGradientControlSelect(props) { + const colorGradientSettings = {}; + colorGradientSettings.colors = use_setting_useSetting('color.palette'); + colorGradientSettings.gradients = use_setting_useSetting('color.gradients'); + colorGradientSettings.disableCustomColors = !use_setting_useSetting('color.custom'); + colorGradientSettings.disableCustomGradients = !use_setting_useSetting('color.customGradient'); + return (0,external_wp_element_namespaceObject.createElement)(ColorGradientControlInner, { + ...colorGradientSettings, + ...props + }); +} +function ColorGradientControl(props) { + if (colorsAndGradientKeys.every(key => props.hasOwnProperty(key))) { + return (0,external_wp_element_namespaceObject.createElement)(ColorGradientControlInner, { + ...props + }); + } + return (0,external_wp_element_namespaceObject.createElement)(ColorGradientControlSelect, { + ...props + }); +} +/* harmony default export */ var control = (ColorGradientControl); - // Do not rely on the active element because it may change after - // the mouse leaves for the first time. See - // https://github.com/WordPress/gutenberg/issues/48747. - anchorElement = target; - startMultiSelect(); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/color-panel.js - // `onSelectionStart` is called after `mousedown` and - // `mouseleave` (from a block). The selection ends when - // `mouseup` happens anywhere in the window. - defaultView.addEventListener('mouseup', onMouseUp); +/** + * External dependencies + */ - // Allow cross contentEditable selection by temporarily making - // all content editable. We can't rely on using the store and - // React because re-rending happens too slowly. We need to be - // able to select across instances immediately. - setContentEditableWrapper(node, true); - } - node.addEventListener('mouseout', onMouseLeave); - return () => { - node.removeEventListener('mouseout', onMouseLeave); - defaultView.removeEventListener('mouseup', onMouseUp); - defaultView.cancelAnimationFrame(rafId); - }; - }, [startMultiSelect, stopMultiSelect, isSelectionEnabled, hasSelectedBlock]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-selection-observer.js /** * WordPress dependencies */ @@ -43548,501 +36808,653 @@ function useDragSelection() { -/** - * Extract the selection start node from the selection. When the anchor node is - * not a text node, the selection offset is the index of a child node. - * - * @param {Selection} selection The selection. - * - * @return {Element} The selection start node. - */ -function extractSelectionStartNode(selection) { - const { - anchorNode, - anchorOffset - } = selection; - if (anchorNode.nodeType === anchorNode.TEXT_NODE) { - return anchorNode; - } - if (anchorOffset === 0) { - return anchorNode; - } - return anchorNode.childNodes[anchorOffset - 1]; -} -/** - * Extract the selection end node from the selection. When the focus node is not - * a text node, the selection offset is the index of a child node. The selection - * reaches up to but excluding that child node. - * - * @param {Selection} selection The selection. - * - * @return {Element} The selection start node. - */ -function extractSelectionEndNode(selection) { - const { - focusNode, - focusOffset - } = selection; - if (focusNode.nodeType === focusNode.TEXT_NODE) { - return focusNode; - } - if (focusOffset === focusNode.childNodes.length) { - return focusNode; - } - return focusNode.childNodes[focusOffset]; +function useHasColorPanel(settings) { + const hasTextPanel = useHasTextPanel(settings); + const hasBackgroundPanel = useHasBackgroundPanel(settings); + const hasLinkPanel = useHasLinkPanel(settings); + const hasHeadingPanel = useHasHeadingPanel(settings); + const hasButtonPanel = useHasButtonPanel(settings); + const hasCaptionPanel = useHasCaptionPanel(settings); + return hasTextPanel || hasBackgroundPanel || hasLinkPanel || hasHeadingPanel || hasButtonPanel || hasCaptionPanel; } -function findDepth(a, b) { - let depth = 0; - while (a[depth] === b[depth]) { - depth++; - } - return depth; +function useHasTextPanel(settings) { + const colors = useColorsPerOrigin(settings); + return settings?.color?.text && (colors?.length > 0 || settings?.color?.custom); } - -/** - * Sets the `contenteditable` wrapper element to `value`. - * - * @param {HTMLElement} node Block element. - * @param {boolean} value `contentEditable` value (true or false) - */ -function use_selection_observer_setContentEditableWrapper(node, value) { - // Since we are calling this on every selection change, check if the value - // needs to be updated first because it trigger the browser to recalculate - // style. - if (node.contentEditable !== String(value)) { - node.contentEditable = value; - - // Firefox doesn't automatically move focus. - if (value) { - node.focus(); - } - } +function useHasLinkPanel(settings) { + const colors = useColorsPerOrigin(settings); + return settings?.color?.link && (colors?.length > 0 || settings?.color?.custom); } -function getRichTextElement(node) { - const element = node.nodeType === node.ELEMENT_NODE ? node : node.parentElement; - return element?.closest('[data-wp-block-attribute-key]'); +function useHasCaptionPanel(settings) { + const colors = useColorsPerOrigin(settings); + return settings?.color?.caption && (colors?.length > 0 || settings?.color?.custom); } - -/** - * Sets a multi-selection based on the native selection across blocks. - */ -function useSelectionObserver() { - const { - multiSelect, - selectBlock, - selectionChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - getBlockParents, - getBlockSelectionStart, - isMultiSelecting - } = (0,external_wp_data_namespaceObject.useSelect)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; - function onSelectionChange(event) { - const selection = defaultView.getSelection(); - if (!selection.rangeCount) { - return; - } - const startNode = extractSelectionStartNode(selection); - const endNode = extractSelectionEndNode(selection); - if (!node.contains(startNode) || !node.contains(endNode)) { - return; +function useHasHeadingPanel(settings) { + const colors = useColorsPerOrigin(settings); + const gradients = useGradientsPerOrigin(settings); + return settings?.color?.heading && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); +} +function useHasButtonPanel(settings) { + const colors = useColorsPerOrigin(settings); + const gradients = useGradientsPerOrigin(settings); + return settings?.color?.button && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); +} +function useHasBackgroundPanel(settings) { + const colors = useColorsPerOrigin(settings); + const gradients = useGradientsPerOrigin(settings); + return settings?.color?.background && (colors?.length > 0 || settings?.color?.custom || gradients?.length > 0 || settings?.color?.customGradient); +} +function ColorToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject.__)('Color'), + resetAll: resetAll, + panelId: panelId, + hasInnerWrapper: true, + className: "color-block-support-panel", + __experimentalFirstVisibleItemClass: "first", + __experimentalLastVisibleItemClass: "last" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "color-block-support-panel__inner-wrapper" + }, children)); +} +const color_panel_DEFAULT_CONTROLS = { + text: true, + background: true, + link: true, + heading: true, + button: true, + caption: true +}; +const popoverProps = { + placement: 'left-start', + offset: 36, + shift: true +}; +const LabeledColorIndicators = ({ + indicators, + label +}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalZStack, { + isLayered: false, + offset: -8 +}, indicators.map((indicator, index) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + key: index, + expanded: false +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ColorIndicator, { + colorValue: indicator +})))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + className: "block-editor-panel-color-gradient-settings__color-name", + title: label +}, label)); +function ColorPanelTab({ + isGradient, + inheritedValue, + userValue, + setValue, + colorGradientControlSettings +}) { + return (0,external_wp_element_namespaceObject.createElement)(control, { + ...colorGradientControlSettings, + showTitle: false, + enableAlpha: true, + __experimentalIsRenderedInSidebar: true, + colorValue: isGradient ? undefined : inheritedValue, + gradientValue: isGradient ? inheritedValue : undefined, + onColorChange: isGradient ? undefined : setValue, + onGradientChange: isGradient ? setValue : undefined, + clearable: inheritedValue === userValue, + headingLevel: 3 + }); +} +function ColorPanelDropdown({ + label, + hasValue, + resetValue, + isShownByDefault, + indicators, + tabs, + colorGradientControlSettings, + panelId +}) { + const tabConfigs = tabs.map(({ + key, + label: tabLabel + }) => { + return { + name: key, + title: tabLabel + }; + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "block-editor-tools-panel-color-gradient-settings__item", + hasValue: hasValue, + label: label, + onDeselect: resetValue, + isShownByDefault: isShownByDefault, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: popoverProps, + className: "block-editor-tools-panel-color-gradient-settings__dropdown", + renderToggle: ({ + onToggle, + isOpen + }) => { + const toggleProps = { + onClick: onToggle, + className: classnames_default()('block-editor-panel-color-gradient-settings__dropdown', { + 'is-open': isOpen + }), + 'aria-expanded': isOpen, + 'aria-label': (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s is the type of color property, e.g., "background" */ + (0,external_wp_i18n_namespaceObject.__)('Color %s styles'), label) + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...toggleProps + }, (0,external_wp_element_namespaceObject.createElement)(LabeledColorIndicators, { + indicators: indicators, + label: label + })); + }, + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { + paddingSize: "none" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-panel-color-gradient-settings__dropdown-content" + }, tabs.length === 1 && (0,external_wp_element_namespaceObject.createElement)(ColorPanelTab, { + ...tabs[0], + colorGradientControlSettings: colorGradientControlSettings + }), tabs.length > 1 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TabPanel, { + tabs: tabConfigs + }, tab => { + const selectedTab = tabs.find(t => t.key === tab.name); + if (!selectedTab) { + return null; } + return (0,external_wp_element_namespaceObject.createElement)(ColorPanelTab, { + ...selectedTab, + colorGradientControlSettings: colorGradientControlSettings + }); + }))) + })); +} +function ColorPanel({ + as: Wrapper = ColorToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = color_panel_DEFAULT_CONTROLS, + children +}) { + const colors = useColorsPerOrigin(settings); + const gradients = useGradientsPerOrigin(settings); + const areCustomSolidsEnabled = settings?.color?.custom; + const areCustomGradientsEnabled = settings?.color?.customGradient; + const hasSolidColors = colors.length > 0 || areCustomSolidsEnabled; + const hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled; + const decodeValue = rawValue => getValueFromVariable({ + settings + }, '', rawValue); + const encodeColorValue = colorValue => { + const allColors = colors.flatMap(({ + colors: originColors + }) => originColors); + const colorObject = allColors.find(({ + color + }) => color === colorValue); + return colorObject ? 'var:preset|color|' + colorObject.slug : colorValue; + }; + const encodeGradientValue = gradientValue => { + const allGradients = gradients.flatMap(({ + gradients: originGradients + }) => originGradients); + const gradientObject = allGradients.find(({ + gradient + }) => gradient === gradientValue); + return gradientObject ? 'var:preset|gradient|' + gradientObject.slug : gradientValue; + }; + + // BackgroundColor + const showBackgroundPanel = useHasBackgroundPanel(settings); + const backgroundColor = decodeValue(inheritedValue?.color?.background); + const userBackgroundColor = decodeValue(value?.color?.background); + const gradient = decodeValue(inheritedValue?.color?.gradient); + const userGradient = decodeValue(value?.color?.gradient); + const hasBackground = () => !!userBackgroundColor || !!userGradient; + const setBackgroundColor = newColor => { + const newValue = setImmutably(value, ['color', 'background'], encodeColorValue(newColor)); + newValue.color.gradient = undefined; + onChange(newValue); + }; + const setGradient = newGradient => { + const newValue = setImmutably(value, ['color', 'gradient'], encodeGradientValue(newGradient)); + newValue.color.background = undefined; + onChange(newValue); + }; + const resetBackground = () => { + const newValue = setImmutably(value, ['color', 'background'], undefined); + newValue.color.gradient = undefined; + onChange(newValue); + }; - // If selection is collapsed and we haven't used `shift+click`, - // end multi selection and disable the contentEditable wrapper. - // We have to check about `shift+click` case because elements - // that don't support text selection might be involved, and we might - // update the clientIds to multi-select blocks. - // For now we check if the event is a `mouse` event. - const isClickShift = event.shiftKey && event.type === 'mouseup'; - if (selection.isCollapsed && !isClickShift) { - if (node.contentEditable === 'true' && !isMultiSelecting()) { - use_selection_observer_setContentEditableWrapper(node, false); - let element = startNode.nodeType === startNode.ELEMENT_NODE ? startNode : startNode.parentElement; - element = element?.closest('[contenteditable]'); - element?.focus(); - } - return; - } - let startClientId = getBlockClientId(startNode); - let endClientId = getBlockClientId(endNode); + // Links + const showLinkPanel = useHasLinkPanel(settings); + const linkColor = decodeValue(inheritedValue?.elements?.link?.color?.text); + const userLinkColor = decodeValue(value?.elements?.link?.color?.text); + const setLinkColor = newColor => { + onChange(setImmutably(value, ['elements', 'link', 'color', 'text'], encodeColorValue(newColor))); + }; + const hoverLinkColor = decodeValue(inheritedValue?.elements?.link?.[':hover']?.color?.text); + const userHoverLinkColor = decodeValue(value?.elements?.link?.[':hover']?.color?.text); + const setHoverLinkColor = newColor => { + onChange(setImmutably(value, ['elements', 'link', ':hover', 'color', 'text'], encodeColorValue(newColor))); + }; + const hasLink = () => !!userLinkColor || !!userHoverLinkColor; + const resetLink = () => { + let newValue = setImmutably(value, ['elements', 'link', ':hover', 'color', 'text'], undefined); + newValue = setImmutably(newValue, ['elements', 'link', 'color', 'text'], undefined); + onChange(newValue); + }; - // If the selection has changed and we had pressed `shift+click`, - // we need to check if in an element that doesn't support - // text selection has been clicked. - if (isClickShift) { - const selectedClientId = getBlockSelectionStart(); - const clickedClientId = getBlockClientId(event.target); - // `endClientId` is not defined if we end the selection by clicking a non-selectable block. - // We need to check if there was already a selection with a non-selectable focusNode. - const focusNodeIsNonSelectable = clickedClientId !== endClientId; - if (startClientId === endClientId && selection.isCollapsed || !endClientId || focusNodeIsNonSelectable) { - endClientId = clickedClientId; - } - // Handle the case when we have a non-selectable block - // selected and click another one. - if (startClientId !== selectedClientId) { - startClientId = selectedClientId; - } - } + // Text Color + const showTextPanel = useHasTextPanel(settings); + const textColor = decodeValue(inheritedValue?.color?.text); + const userTextColor = decodeValue(value?.color?.text); + const hasTextColor = () => !!userTextColor; + const setTextColor = newColor => { + let changedObject = setImmutably(value, ['color', 'text'], encodeColorValue(newColor)); + if (textColor === linkColor) { + changedObject = setImmutably(changedObject, ['elements', 'link', 'color', 'text'], encodeColorValue(newColor)); + } + onChange(changedObject); + }; + const resetTextColor = () => setTextColor(undefined); - // If the selection did not involve a block, return. - if (startClientId === undefined && endClientId === undefined) { - use_selection_observer_setContentEditableWrapper(node, false); - return; - } - const isSingularSelection = startClientId === endClientId; - if (isSingularSelection) { - if (!isMultiSelecting()) { - selectBlock(startClientId); - } else { - multiSelect(startClientId, startClientId); - } - } else { - const startPath = [...getBlockParents(startClientId), startClientId]; - const endPath = [...getBlockParents(endClientId), endClientId]; - const depth = findDepth(startPath, endPath); - if (startPath[depth] !== startClientId || endPath[depth] !== endClientId) { - multiSelect(startPath[depth], endPath[depth]); - return; - } - const richTextElementStart = getRichTextElement(startNode); - const richTextElementEnd = getRichTextElement(endNode); - if (richTextElementStart && richTextElementEnd) { - var _richTextDataStart$st, _richTextDataEnd$star; - const range = selection.getRangeAt(0); - const richTextDataStart = (0,external_wp_richText_namespaceObject.create)({ - element: richTextElementStart, - range, - __unstableIsEditableTree: true - }); - const richTextDataEnd = (0,external_wp_richText_namespaceObject.create)({ - element: richTextElementEnd, - range, - __unstableIsEditableTree: true - }); - const startOffset = (_richTextDataStart$st = richTextDataStart.start) !== null && _richTextDataStart$st !== void 0 ? _richTextDataStart$st : richTextDataStart.end; - const endOffset = (_richTextDataEnd$star = richTextDataEnd.start) !== null && _richTextDataEnd$star !== void 0 ? _richTextDataEnd$star : richTextDataEnd.end; - selectionChange({ - start: { - clientId: startClientId, - attributeKey: richTextElementStart.dataset.wpBlockAttributeKey, - offset: startOffset - }, - end: { - clientId: endClientId, - attributeKey: richTextElementEnd.dataset.wpBlockAttributeKey, - offset: endOffset + // Elements + const elements = [{ + name: 'caption', + label: (0,external_wp_i18n_namespaceObject.__)('Captions'), + showPanel: useHasCaptionPanel(settings) + }, { + name: 'button', + label: (0,external_wp_i18n_namespaceObject.__)('Button'), + showPanel: useHasButtonPanel(settings) + }, { + name: 'heading', + label: (0,external_wp_i18n_namespaceObject.__)('Heading'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h1', + label: (0,external_wp_i18n_namespaceObject.__)('H1'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h2', + label: (0,external_wp_i18n_namespaceObject.__)('H2'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h3', + label: (0,external_wp_i18n_namespaceObject.__)('H3'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h4', + label: (0,external_wp_i18n_namespaceObject.__)('H4'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h5', + label: (0,external_wp_i18n_namespaceObject.__)('H5'), + showPanel: useHasHeadingPanel(settings) + }, { + name: 'h6', + label: (0,external_wp_i18n_namespaceObject.__)('H6'), + showPanel: useHasHeadingPanel(settings) + }]; + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + color: undefined, + elements: { + ...previousValue?.elements, + link: { + ...previousValue?.elements?.link, + color: undefined, + ':hover': { + color: undefined + } + }, + ...elements.reduce((acc, element) => { + return { + ...acc, + [element.name]: { + ...previousValue?.elements?.[element.name], + color: undefined } - }); - } else { - multiSelect(startClientId, endClientId); - } + }; + }, {}) } - } - ownerDocument.addEventListener('selectionchange', onSelectionChange); - defaultView.addEventListener('mouseup', onSelectionChange); - return () => { - ownerDocument.removeEventListener('selectionchange', onSelectionChange); - defaultView.removeEventListener('mouseup', onSelectionChange); }; - }, [multiSelect, selectBlock, selectionChange, getBlockParents]); + }, []); + const items = [showTextPanel && { + key: 'text', + label: (0,external_wp_i18n_namespaceObject.__)('Text'), + hasValue: hasTextColor, + resetValue: resetTextColor, + isShownByDefault: defaultControls.text, + indicators: [textColor], + tabs: [{ + key: 'text', + label: (0,external_wp_i18n_namespaceObject.__)('Text'), + inheritedValue: textColor, + setValue: setTextColor, + userValue: userTextColor + }] + }, showBackgroundPanel && { + key: 'background', + label: (0,external_wp_i18n_namespaceObject.__)('Background'), + hasValue: hasBackground, + resetValue: resetBackground, + isShownByDefault: defaultControls.background, + indicators: [gradient !== null && gradient !== void 0 ? gradient : backgroundColor], + tabs: [hasSolidColors && { + key: 'background', + label: (0,external_wp_i18n_namespaceObject.__)('Solid'), + inheritedValue: backgroundColor, + setValue: setBackgroundColor, + userValue: userBackgroundColor + }, hasGradientColors && { + key: 'gradient', + label: (0,external_wp_i18n_namespaceObject.__)('Gradient'), + inheritedValue: gradient, + setValue: setGradient, + userValue: userGradient, + isGradient: true + }].filter(Boolean) + }, showLinkPanel && { + key: 'link', + label: (0,external_wp_i18n_namespaceObject.__)('Link'), + hasValue: hasLink, + resetValue: resetLink, + isShownByDefault: defaultControls.link, + indicators: [linkColor, hoverLinkColor], + tabs: [{ + key: 'link', + label: (0,external_wp_i18n_namespaceObject.__)('Default'), + inheritedValue: linkColor, + setValue: setLinkColor, + userValue: userLinkColor + }, { + key: 'hover', + label: (0,external_wp_i18n_namespaceObject.__)('Hover'), + inheritedValue: hoverLinkColor, + setValue: setHoverLinkColor, + userValue: userHoverLinkColor + }] + }].filter(Boolean); + elements.forEach(({ + name, + label, + showPanel + }) => { + if (!showPanel) return; + const elementBackgroundColor = decodeValue(inheritedValue?.elements?.[name]?.color?.background); + const elementGradient = decodeValue(inheritedValue?.elements?.[name]?.color?.gradient); + const elementTextColor = decodeValue(inheritedValue?.elements?.[name]?.color?.text); + const elementBackgroundUserColor = decodeValue(value?.elements?.[name]?.color?.background); + const elementGradientUserColor = decodeValue(value?.elements?.[name]?.color?.gradient); + const elementTextUserColor = decodeValue(value?.elements?.[name]?.color?.text); + const hasElement = () => !!(elementTextUserColor || elementBackgroundUserColor || elementGradientUserColor); + const resetElement = () => { + const newValue = setImmutably(value, ['elements', name, 'color', 'background'], undefined); + newValue.elements[name].color.gradient = undefined; + newValue.elements[name].color.text = undefined; + onChange(newValue); + }; + const setElementTextColor = newTextColor => { + onChange(setImmutably(value, ['elements', name, 'color', 'text'], encodeColorValue(newTextColor))); + }; + const setElementBackgroundColor = newBackgroundColor => { + const newValue = setImmutably(value, ['elements', name, 'color', 'background'], encodeColorValue(newBackgroundColor)); + newValue.elements[name].color.gradient = undefined; + onChange(newValue); + }; + const setElementGradient = newGradient => { + const newValue = setImmutably(value, ['elements', name, 'color', 'gradient'], encodeGradientValue(newGradient)); + newValue.elements[name].color.background = undefined; + onChange(newValue); + }; + const supportsTextColor = true; + // Background color is not supported for `caption` + // as there isn't yet a way to set padding for the element. + const supportsBackground = name !== 'caption'; + items.push({ + key: name, + label, + hasValue: hasElement, + resetValue: resetElement, + isShownByDefault: defaultControls[name], + indicators: supportsTextColor && supportsBackground ? [elementTextColor, elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor] : [supportsTextColor ? elementTextColor : elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor], + tabs: [hasSolidColors && supportsTextColor && { + key: 'text', + label: (0,external_wp_i18n_namespaceObject.__)('Text'), + inheritedValue: elementTextColor, + setValue: setElementTextColor, + userValue: elementTextUserColor + }, hasSolidColors && supportsBackground && { + key: 'background', + label: (0,external_wp_i18n_namespaceObject.__)('Background'), + inheritedValue: elementBackgroundColor, + setValue: setElementBackgroundColor, + userValue: elementBackgroundUserColor + }, hasGradientColors && supportsBackground && { + key: 'gradient', + label: (0,external_wp_i18n_namespaceObject.__)('Gradient'), + inheritedValue: elementGradient, + setValue: setElementGradient, + userValue: elementGradientUserColor, + isGradient: true + }].filter(Boolean) + }); + }); + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, items.map(item => (0,external_wp_element_namespaceObject.createElement)(ColorPanelDropdown, { + key: item.key, + ...item, + colorGradientControlSettings: { + colors, + disableCustomColors: !areCustomSolidsEnabled, + gradients, + disableCustomGradients: !areCustomGradientsEnabled + }, + panelId: panelId + })), children); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-click-selection.js -/** - * WordPress dependencies - */ - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/contrast-checker/index.js /** - * Internal dependencies + * External dependencies */ -function useClickSelection() { - const { - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - isSelectionEnabled, - getBlockSelectionStart, - hasMultiSelection - } = (0,external_wp_data_namespaceObject.useSelect)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onMouseDown(event) { - // The main button. - // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button - if (!isSelectionEnabled() || event.button !== 0) { - return; - } - const startClientId = getBlockSelectionStart(); - const clickedClientId = getBlockClientId(event.target); - if (event.shiftKey) { - if (startClientId !== clickedClientId) { - node.contentEditable = true; - // Firefox doesn't automatically move focus. - node.focus(); - } - } else if (hasMultiSelection()) { - // Allow user to escape out of a multi-selection to a - // singular selection of a block via click. This is handled - // here since focus handling excludes blocks when there is - // multiselection, as focus can be incurred by starting a - // multiselection (focus moved to first block's multi- - // controls). - selectBlock(clickedClientId); - } - } - node.addEventListener('mousedown', onMouseDown); - return () => { - node.removeEventListener('mousedown', onMouseDown); - }; - }, [selectBlock, isSelectionEnabled, getBlockSelectionStart, hasMultiSelection]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-input.js + /** * WordPress dependencies */ +k([names, a11y]); +function ContrastChecker({ + backgroundColor, + fallbackBackgroundColor, + fallbackTextColor, + fallbackLinkColor, + fontSize, + // Font size value in pixels. + isLargeText, + textColor, + linkColor, + enableAlphaChecker = false +}) { + const currentBackgroundColor = backgroundColor || fallbackBackgroundColor; + // Must have a background color. + if (!currentBackgroundColor) { + return null; + } + const currentTextColor = textColor || fallbackTextColor; + const currentLinkColor = linkColor || fallbackLinkColor; -/** - * Internal dependencies - */ - - -/** - * Handles input for selections across blocks. - */ -function useInput() { - const { - __unstableIsFullySelected, - getSelectedBlockClientIds, - __unstableIsSelectionMergeable, - hasMultiSelection - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - replaceBlocks, - __unstableSplitSelection, - removeBlocks, - __unstableDeleteSelection, - __unstableExpandSelection - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onBeforeInput(event) { - // If writing flow is editable, NEVER allow the browser to alter the - // DOM. This will cause React errors (and the DOM should only be - // altered in a controlled fashion). - if (node.contentEditable === 'true') { - event.preventDefault(); - } + // Must have at least one text color. + if (!currentTextColor && !currentLinkColor) { + return null; + } + const textColors = [{ + color: currentTextColor, + description: (0,external_wp_i18n_namespaceObject.__)('text color') + }, { + color: currentLinkColor, + description: (0,external_wp_i18n_namespaceObject.__)('link color') + }]; + const colordBackgroundColor = w(currentBackgroundColor); + const backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1; + const backgroundColorBrightness = colordBackgroundColor.brightness(); + const isReadableOptions = { + level: 'AA', + size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small' + }; + let message = ''; + let speakMessage = ''; + for (const item of textColors) { + // If there is no color, go no further. + if (!item.color) { + continue; } - function onKeyDown(event) { - if (event.defaultPrevented) { - return; - } - if (!hasMultiSelection()) { - return; - } - if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER) { - node.contentEditable = false; - event.preventDefault(); - if (__unstableIsFullySelected()) { - replaceBlocks(getSelectedBlockClientIds(), (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())); - } else { - __unstableSplitSelection(); - } - } else if (event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) { - node.contentEditable = false; - event.preventDefault(); - if (__unstableIsFullySelected()) { - removeBlocks(getSelectedBlockClientIds()); - } else if (__unstableIsSelectionMergeable()) { - __unstableDeleteSelection(event.keyCode === external_wp_keycodes_namespaceObject.DELETE); - } else { - __unstableExpandSelection(); - } - } else if ( - // If key.length is longer than 1, it's a control key that doesn't - // input anything. - event.key.length === 1 && !(event.metaKey || event.ctrlKey)) { - node.contentEditable = false; - if (__unstableIsSelectionMergeable()) { - __unstableDeleteSelection(event.keyCode === external_wp_keycodes_namespaceObject.DELETE); - } else { - event.preventDefault(); - // Safari does not stop default behaviour with either - // event.preventDefault() or node.contentEditable = false, so - // remove the selection to stop browser manipulation. - node.ownerDocument.defaultView.getSelection().removeAllRanges(); - } + const colordTextColor = w(item.color); + const isColordTextReadable = colordTextColor.isReadable(colordBackgroundColor, isReadableOptions); + const textHasTransparency = colordTextColor.alpha() < 1; + + // If the contrast is not readable. + if (!isColordTextReadable) { + // Don't show the message if the background or text is transparent. + if (backgroundColorHasTransparency || textHasTransparency) { + continue; } + message = backgroundColorBrightness < colordTextColor.brightness() ? (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s is a type of text color, e.g., "text color" or "link color". + (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'), item.description) : (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s is a type of text color, e.g., "text color" or "link color". + (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'), item.description); + speakMessage = (0,external_wp_i18n_namespaceObject.__)('This color combination may be hard for people to read.'); + // Break from the loop when we have a contrast warning. + // These messages take priority over the transparency warning. + break; } - function onCompositionStart(event) { - if (!hasMultiSelection()) { - return; - } - node.contentEditable = false; - if (__unstableIsSelectionMergeable()) { - __unstableDeleteSelection(); - } else { - event.preventDefault(); - // Safari does not stop default behaviour with either - // event.preventDefault() or node.contentEditable = false, so - // remove the selection to stop browser manipulation. - node.ownerDocument.defaultView.getSelection().removeAllRanges(); - } + + // If there is no contrast warning and the text is transparent, + // show the transparent warning if alpha check is enabled. + if (textHasTransparency && enableAlphaChecker) { + message = (0,external_wp_i18n_namespaceObject.__)('Transparent text may be hard for people to read.'); + speakMessage = (0,external_wp_i18n_namespaceObject.__)('Transparent text may be hard for people to read.'); } - node.addEventListener('beforeinput', onBeforeInput); - node.addEventListener('keydown', onKeyDown); - node.addEventListener('compositionstart', onCompositionStart); - return () => { - node.removeEventListener('beforeinput', onBeforeInput); - node.removeEventListener('keydown', onKeyDown); - node.removeEventListener('compositionstart', onCompositionStart); - }; - }, []); + } + if (!message) { + return null; + } + + // Note: The `Notice` component can speak messages via its `spokenMessage` + // prop, but the contrast checker requires granular control over when the + // announcements are made. Notably, the message will be re-announced if a + // new color combination is selected and the contrast is still insufficient. + (0,external_wp_a11y_namespaceObject.speak)(speakMessage); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-contrast-checker" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { + spokenMessage: null, + status: "warning", + isDismissible: false + }, message)); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/pasting.js /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/contrast-checker/README.md */ +/* harmony default export */ var contrast_checker = (ContrastChecker); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/contrast-checker.js /** - * Normalizes a given string of HTML to remove the Windows-specific "Fragment" - * comments and any preceding and trailing content. - * - * @param {string} html the html to be normalized - * @return {string} the normalized html + * WordPress dependencies */ -function removeWindowsFragments(html) { - const startStr = ''; - const startIdx = html.indexOf(startStr); - if (startIdx > -1) { - html = html.substring(startIdx + startStr.length); - } else { - // No point looking for EndFragment - return html; - } - const endStr = ''; - const endIdx = html.indexOf(endStr); - if (endIdx > -1) { - html = html.substring(0, endIdx); - } - return html; -} + /** - * Removes the charset meta tag inserted by Chromium. - * See: - * - https://github.com/WordPress/gutenberg/issues/33585 - * - https://bugs.chromium.org/p/chromium/issues/detail?id=1264616#c4 - * - * @param {string} html the html to be stripped of the meta tag. - * @return {string} the cleaned html + * Internal dependencies */ -function removeCharsetMetaTag(html) { - const metaTag = ``; - if (html.startsWith(metaTag)) { - return html.slice(metaTag.length); - } - return html; + + +function getComputedStyle(node) { + return node.ownerDocument.defaultView.getComputedStyle(node); } -function getPasteEventData({ - clipboardData +function BlockColorContrastChecker({ + clientId }) { - let plainText = ''; - let html = ''; + const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)(); + const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)(); + const [detectedLinkColor, setDetectedLinkColor] = (0,external_wp_element_namespaceObject.useState)(); + const ref = useBlockRef(clientId); - // IE11 only supports `Text` as an argument for `getData` and will - // otherwise throw an invalid argument error, so we try the standard - // arguments first, then fallback to `Text` if they fail. - try { - plainText = clipboardData.getData('text/plain'); - html = clipboardData.getData('text/html'); - } catch (error1) { - try { - html = clipboardData.getData('Text'); - } catch (error2) { - // Some browsers like UC Browser paste plain text by default and - // don't support clipboardData at all, so allow default - // behaviour. + // There are so many things that can change the color of a block + // So we perform this check on every render. + // eslint-disable-next-line react-hooks/exhaustive-deps + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!ref.current) { return; } - } - - // Remove Windows-specific metadata appended within copied HTML text. - html = removeWindowsFragments(html); - - // Strip meta tag. - html = removeCharsetMetaTag(html); - const files = (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(clipboardData); - if (files.length && !shouldDismissPastedFiles(files, html)) { - return { - files - }; - } - return { - html, - plainText, - files: [] - }; + setDetectedColor(getComputedStyle(ref.current).color); + const firstLinkElement = ref.current?.querySelector('a'); + if (firstLinkElement && !!firstLinkElement.innerText) { + setDetectedLinkColor(getComputedStyle(firstLinkElement).color); + } + let backgroundColorNode = ref.current; + let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; + while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) { + backgroundColorNode = backgroundColorNode.parentNode; + backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor; + } + setDetectedBackgroundColor(backgroundColor); + }); + return (0,external_wp_element_namespaceObject.createElement)(contrast_checker, { + backgroundColor: detectedBackgroundColor, + textColor: detectedColor, + enableAlphaChecker: true, + linkColor: detectedLinkColor + }); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/color.js + /** - * Given a collection of DataTransfer files and HTML and plain text strings, - * determine whether the files are to be dismissed in favor of the HTML. - * - * Certain office-type programs, like Microsoft Word or Apple Numbers, - * will, upon copy, generate a screenshot of the content being copied and - * attach it to the clipboard alongside the actual rich text that the user - * sought to copy. In those cases, we should let Gutenberg handle the rich text - * content and not the screenshot, since this allows Gutenberg to insert - * meaningful blocks, like paragraphs, lists or even tables. - * - * @param {File[]} files File objects obtained from a paste event - * @param {string} html HTML content obtained from a paste event - * @return {boolean} True if the files should be dismissed + * External dependencies */ -function shouldDismissPastedFiles(files, html /*, plainText */) { - // The question is only relevant when there is actual HTML content and when - // there is exactly one image file. - if (html && files?.length === 1 && files[0].type.indexOf('image/') === 0) { - // A single tag found in the HTML source suggests that the - // content being pasted revolves around an image. Sometimes there are - // other elements found, like
, but we assume that the user's - // intention is to paste the actual image file. - const IMAGE_TAG = /<\s*img\b/gi; - if (html.match(IMAGE_TAG)?.length !== 1) return true; - // Even when there is exactly one tag in the HTML payload, we - // choose to weed out local images, i.e. those whose source starts with - // "file://". These payloads occur in specific configurations, such as - // when copying an entire document from Microsoft Word, that contains - // text and exactly one image, and pasting that content using Google - // Chrome. - const IMG_WITH_LOCAL_SRC = /<\s*img\b[^>]*\bsrc="file:\/\//i; - if (html.match(IMG_WITH_LOCAL_SRC)) return true; - } - return false; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/use-notify-copy.js /** * WordPress dependencies */ @@ -44051,223 +37463,306 @@ function shouldDismissPastedFiles(files, html /*, plainText */) { - /** * Internal dependencies */ -function useNotifyCopy() { - const { - getBlockName - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - getBlockType - } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); - const { - createSuccessNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - return (0,external_wp_element_namespaceObject.useCallback)((eventType, selectedBlockClientIds) => { - let notice = ''; - if (selectedBlockClientIds.length === 1) { - const clientId = selectedBlockClientIds[0]; - const title = getBlockType(getBlockName(clientId))?.title; - notice = eventType === 'copy' ? (0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: Name of the block being copied, e.g. "Paragraph". - (0,external_wp_i18n_namespaceObject.__)('Copied "%s" to clipboard.'), title) : (0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: Name of the block being cut, e.g. "Paragraph". - (0,external_wp_i18n_namespaceObject.__)('Moved "%s" to clipboard.'), title); - } else { - notice = eventType === 'copy' ? (0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: %d: Number of blocks being copied. - (0,external_wp_i18n_namespaceObject._n)('Copied %d block to clipboard.', 'Copied %d blocks to clipboard.', selectedBlockClientIds.length), selectedBlockClientIds.length) : (0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: %d: Number of blocks being cut. - (0,external_wp_i18n_namespaceObject._n)('Moved %d block to clipboard.', 'Moved %d blocks to clipboard.', selectedBlockClientIds.length), selectedBlockClientIds.length); - } - createSuccessNotice(notice, { - type: 'snackbar' - }); - }, []); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/use-clipboard-handler.js -/** - * WordPress dependencies - */ +const COLOR_SUPPORT_KEY = 'color'; +const hasColorSupport = blockType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); + return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false); +}; +const hasLinkColorSupport = blockType => { + if (external_wp_element_namespaceObject.Platform.OS !== 'web') { + return false; + } + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); + return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link; +}; +const hasGradientSupport = blockType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); + return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients; +}; +const hasBackgroundColorSupport = blockType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); + return colorSupport && colorSupport.background !== false; +}; +const hasTextColorSupport = blockType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, COLOR_SUPPORT_KEY); + return colorSupport && colorSupport.text !== false; +}; + /** - * Internal dependencies + * Filters registered block settings, extending attributes to include + * `backgroundColor` and `textColor` attribute. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. */ +function color_addAttributes(settings) { + if (!hasColorSupport(settings)) { + return settings; + } - - -function useClipboardHandler() { - const { - getBlocksByClientId, - getSelectedBlockClientIds, - hasMultiSelection, - getSettings, - __unstableIsFullySelected, - __unstableIsSelectionCollapsed, - __unstableIsSelectionMergeable, - __unstableGetSelectedBlocksWithPartialSelection, - canInsertBlockType - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - flashBlock, - removeBlocks, - replaceBlocks, - __unstableDeleteSelection, - __unstableExpandSelection, - insertBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const notifyCopy = useNotifyCopy(); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function handler(event) { - if (event.defaultPrevented) { - // This was likely already handled in rich-text/use-paste-handler.js. - return; - } - const selectedBlockClientIds = getSelectedBlockClientIds(); - if (selectedBlockClientIds.length === 0) { - return; - } - - // Always handle multiple selected blocks. - if (!hasMultiSelection()) { - const { - target - } = event; - const { - ownerDocument - } = target; - // If copying, only consider actual text selection as selection. - // Otherwise, any focus on an input field is considered. - const hasSelection = event.type === 'copy' || event.type === 'cut' ? (0,external_wp_dom_namespaceObject.documentHasUncollapsedSelection)(ownerDocument) : (0,external_wp_dom_namespaceObject.documentHasSelection)(ownerDocument); - - // Let native copy behaviour take over in input fields. - if (hasSelection) { - return; - } - } - if (!node.contains(event.target.ownerDocument.activeElement)) { - return; + // Allow blocks to specify their own attribute definition with default values if needed. + if (!settings.attributes.backgroundColor) { + Object.assign(settings.attributes, { + backgroundColor: { + type: 'string' } - event.preventDefault(); - const isSelectionMergeable = __unstableIsSelectionMergeable(); - const shouldHandleWholeBlocks = __unstableIsSelectionCollapsed() || __unstableIsFullySelected(); - const expandSelectionIsNeeded = !shouldHandleWholeBlocks && !isSelectionMergeable; - if (event.type === 'copy' || event.type === 'cut') { - if (selectedBlockClientIds.length === 1) { - flashBlock(selectedBlockClientIds[0]); - } - // If we have a partial selection that is not mergeable, just - // expand the selection to the whole blocks. - if (expandSelectionIsNeeded) { - __unstableExpandSelection(); - } else { - notifyCopy(event.type, selectedBlockClientIds); - let blocks; - // Check if we have partial selection. - if (shouldHandleWholeBlocks) { - blocks = getBlocksByClientId(selectedBlockClientIds); - } else { - const [head, tail] = __unstableGetSelectedBlocksWithPartialSelection(); - const inBetweenBlocks = getBlocksByClientId(selectedBlockClientIds.slice(1, selectedBlockClientIds.length - 1)); - blocks = [head, ...inBetweenBlocks, tail]; - } - const wrapperBlockName = event.clipboardData.getData('__unstableWrapperBlockName'); - if (wrapperBlockName) { - blocks = (0,external_wp_blocks_namespaceObject.createBlock)(wrapperBlockName, JSON.parse(event.clipboardData.getData('__unstableWrapperBlockAttributes')), blocks); - } - const serialized = (0,external_wp_blocks_namespaceObject.serialize)(blocks); - event.clipboardData.setData('text/plain', toPlainText(serialized)); - event.clipboardData.setData('text/html', serialized); - } + }); + } + if (!settings.attributes.textColor) { + Object.assign(settings.attributes, { + textColor: { + type: 'string' } - if (event.type === 'cut') { - // We need to also check if at the start we needed to - // expand the selection, as in this point we might have - // programmatically fully selected the blocks above. - if (shouldHandleWholeBlocks && !expandSelectionIsNeeded) { - removeBlocks(selectedBlockClientIds); - } else { - event.target.ownerDocument.activeElement.contentEditable = false; - __unstableDeleteSelection(); - } - } else if (event.type === 'paste') { - const { - __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML - } = getSettings(); - const { - plainText, - html, - files - } = getPasteEventData(event); - let blocks = []; - if (files.length) { - const fromTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'); - blocks = files.reduce((accumulator, file) => { - const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file])); - if (transformation) { - accumulator.push(transformation.transform([file])); - } - return accumulator; - }, []).flat(); - } else { - blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ - HTML: html, - plainText, - mode: 'BLOCKS', - canUserUseUnfilteredHTML - }); - } - if (selectedBlockClientIds.length === 1) { - const [selectedBlockClientId] = selectedBlockClientIds; - if (blocks.every(block => canInsertBlockType(block.name, selectedBlockClientId))) { - insertBlocks(blocks, undefined, selectedBlockClientId); - return; - } - } - replaceBlocks(selectedBlockClientIds, blocks, blocks.length - 1, -1); + }); + } + if (hasGradientSupport(settings) && !settings.attributes.gradient) { + Object.assign(settings.attributes, { + gradient: { + type: 'string' } - } - node.ownerDocument.addEventListener('copy', handler); - node.ownerDocument.addEventListener('cut', handler); - node.ownerDocument.addEventListener('paste', handler); - return () => { - node.ownerDocument.removeEventListener('copy', handler); - node.ownerDocument.removeEventListener('cut', handler); - node.ownerDocument.removeEventListener('paste', handler); - }; - }, []); + }); + } + return settings; } /** - * Given a string of HTML representing serialized blocks, returns the plain - * text extracted after stripping the HTML of any tags and fixing line breaks. + * Override props assigned to save component to inject colors classnames. * - * @param {string} html Serialized blocks. - * @return {string} The plain-text content with any html removed. + * @param {Object} props Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Block attributes. + * + * @return {Object} Filtered props applied to save element. */ -function toPlainText(html) { - // Manually handle BR tags as line breaks prior to `stripHTML` call - html = html.replace(/
/g, '\n'); - const plainText = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(html).trim(); +function color_addSaveProps(props, blockType, attributes) { + if (!hasColorSupport(blockType) || shouldSkipSerialization(blockType, COLOR_SUPPORT_KEY)) { + return props; + } + const hasGradient = hasGradientSupport(blockType); - // Merge any consecutive line breaks - return plainText.replace(/\n\n+/g, '\n\n'); + // I'd have preferred to avoid the "style" attribute usage here + const { + backgroundColor, + textColor, + gradient, + style + } = attributes; + const shouldSerialize = feature => !shouldSkipSerialization(blockType, COLOR_SUPPORT_KEY, feature); + + // Primary color classes must come before the `has-text-color`, + // `has-background` and `has-link-color` classes to maintain backwards + // compatibility and avoid block invalidations. + const textClass = shouldSerialize('text') ? getColorClassName('color', textColor) : undefined; + const gradientClass = shouldSerialize('gradients') ? __experimentalGetGradientClass(gradient) : undefined; + const backgroundClass = shouldSerialize('background') ? getColorClassName('background-color', backgroundColor) : undefined; + const serializeHasBackground = shouldSerialize('background') || shouldSerialize('gradients'); + const hasBackground = backgroundColor || style?.color?.background || hasGradient && (gradient || style?.color?.gradient); + const newClassName = classnames_default()(props.className, textClass, gradientClass, { + // Don't apply the background class if there's a custom gradient. + [backgroundClass]: (!hasGradient || !style?.color?.gradient) && !!backgroundClass, + 'has-text-color': shouldSerialize('text') && (textColor || style?.color?.text), + 'has-background': serializeHasBackground && hasBackground, + 'has-link-color': shouldSerialize('link') && style?.elements?.link?.color + }); + props.className = newClassName ? newClassName : undefined; + return props; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/index.js +/** + * Filters registered block settings to extend the block edit wrapper + * to apply the desired styles and classnames properly. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function color_addEditProps(settings) { + if (!hasColorSupport(settings) || shouldSkipSerialization(settings, COLOR_SUPPORT_KEY)) { + return settings; + } + const existingGetEditWrapperProps = settings.getEditWrapperProps; + settings.getEditWrapperProps = attributes => { + let props = {}; + if (existingGetEditWrapperProps) { + props = existingGetEditWrapperProps(attributes); + } + return color_addSaveProps(props, settings, attributes); + }; + return settings; +} +function color_styleToAttributes(style) { + const textColorValue = style?.color?.text; + const textColorSlug = textColorValue?.startsWith('var:preset|color|') ? textColorValue.substring('var:preset|color|'.length) : undefined; + const backgroundColorValue = style?.color?.background; + const backgroundColorSlug = backgroundColorValue?.startsWith('var:preset|color|') ? backgroundColorValue.substring('var:preset|color|'.length) : undefined; + const gradientValue = style?.color?.gradient; + const gradientSlug = gradientValue?.startsWith('var:preset|gradient|') ? gradientValue.substring('var:preset|gradient|'.length) : undefined; + const updatedStyle = { + ...style + }; + updatedStyle.color = { + ...updatedStyle.color, + text: textColorSlug ? undefined : textColorValue, + background: backgroundColorSlug ? undefined : backgroundColorValue, + gradient: gradientSlug ? undefined : gradientValue + }; + return { + style: utils_cleanEmptyObject(updatedStyle), + textColor: textColorSlug, + backgroundColor: backgroundColorSlug, + gradient: gradientSlug + }; +} +function color_attributesToStyle(attributes) { + return { + ...attributes.style, + color: { + ...attributes.style?.color, + text: attributes.textColor ? 'var:preset|color|' + attributes.textColor : attributes.style?.color?.text, + background: attributes.backgroundColor ? 'var:preset|color|' + attributes.backgroundColor : attributes.style?.color?.background, + gradient: attributes.gradient ? 'var:preset|gradient|' + attributes.gradient : attributes.style?.color?.gradient + } + }; +} +function ColorInspectorControl({ + children, + resetAllFilter +}) { + const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { + const existingStyle = color_attributesToStyle(attributes); + const updatedStyle = resetAllFilter(existingStyle); + return { + ...attributes, + ...color_styleToAttributes(updatedStyle) + }; + }, [resetAllFilter]); + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "color", + resetAllFilter: attributesResetAllFilter + }, children); +} +function ColorEdit(props) { + const { + clientId, + name, + attributes, + setAttributes + } = props; + const settings = useBlockSettings(name); + const isEnabled = useHasColorPanel(settings); + const value = (0,external_wp_element_namespaceObject.useMemo)(() => { + return color_attributesToStyle({ + style: attributes.style, + textColor: attributes.textColor, + backgroundColor: attributes.backgroundColor, + gradient: attributes.gradient + }); + }, [attributes.style, attributes.textColor, attributes.backgroundColor, attributes.gradient]); + const onChange = newStyle => { + setAttributes(color_styleToAttributes(newStyle)); + }; + if (!isEnabled) { + return null; + } + const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']); + const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) && + // Contrast checking is enabled by default. + // Deactivating it requires `enableContrastChecker` to have + // an explicit value of `false`. + false !== (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']); + return (0,external_wp_element_namespaceObject.createElement)(ColorPanel, { + as: ColorInspectorControl, + panelId: clientId, + settings: settings, + value: value, + onChange: onChange, + defaultControls: defaultControls, + enableContrastChecker: false !== (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [COLOR_SUPPORT_KEY, 'enableContrastChecker']) + }, enableContrastChecking && (0,external_wp_element_namespaceObject.createElement)(BlockColorContrastChecker, { + clientId: clientId + })); +} /** - * External dependencies + * This adds inline styles for color palette colors. + * Ideally, this is not needed and themes should load their palettes on the editor. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. */ +const withColorPaletteStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + name, + attributes + } = props; + const { + backgroundColor, + textColor + } = attributes; + const userPalette = use_setting_useSetting('color.palette.custom'); + const themePalette = use_setting_useSetting('color.palette.theme'); + const defaultPalette = use_setting_useSetting('color.palette.default'); + const colors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); + if (!hasColorSupport(name) || shouldSkipSerialization(name, COLOR_SUPPORT_KEY)) { + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props + }); + } + const extraStyles = {}; + if (textColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'text')) { + extraStyles.color = getColorObjectByAttributeValues(colors, textColor)?.color; + } + if (backgroundColor && !shouldSkipSerialization(name, COLOR_SUPPORT_KEY, 'background')) { + extraStyles.backgroundColor = getColorObjectByAttributeValues(colors, backgroundColor)?.color; + } + let wrapperProps = props.wrapperProps; + wrapperProps = { + ...props.wrapperProps, + style: { + ...extraStyles, + ...props.wrapperProps?.style + } + }; + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + wrapperProps: wrapperProps + }); +}, 'withColorPaletteStyles'); +const MIGRATION_PATHS = { + linkColor: [['style', 'elements', 'link', 'color', 'text']], + textColor: [['textColor'], ['style', 'color', 'text']], + backgroundColor: [['backgroundColor'], ['style', 'color', 'background']], + gradient: [['gradient'], ['style', 'color', 'gradient']] +}; +function color_addTransforms(result, source, index, results) { + const destinationBlockType = result.name; + const activeSupports = { + linkColor: hasLinkColorSupport(destinationBlockType), + textColor: hasTextColorSupport(destinationBlockType), + backgroundColor: hasBackgroundColorSupport(destinationBlockType), + gradient: hasGradientSupport(destinationBlockType) + }; + return transformStyles(activeSupports, MIGRATION_PATHS, result, source, index, results); +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/color/addAttribute', color_addAttributes); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/color/addSaveProps', color_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/color/addEditProps', color_addEditProps); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/color/with-color-palette-styles', withColorPaletteStyles); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', color_addTransforms); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-family/index.js /** * WordPress dependencies @@ -44275,158 +37770,46 @@ function toPlainText(html) { - - /** * Internal dependencies */ - - - - - - - - - -function useWritingFlow() { - const [before, ref, after] = useTabNav(); - const hasMultiSelection = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).hasMultiSelection(), []); - return [before, (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, useClipboardHandler(), useInput(), useDragSelection(), useSelectionObserver(), useClickSelection(), useMultiSelection(), useSelectAll(), useArrowNav(), (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - node.tabIndex = 0; - if (!hasMultiSelection) { - return; - } - node.classList.add('has-multi-selection'); - node.setAttribute('aria-label', (0,external_wp_i18n_namespaceObject.__)('Multiple selected blocks')); - return () => { - node.classList.remove('has-multi-selection'); - node.removeAttribute('aria-label'); - }; - }, [hasMultiSelection])]), after]; -} -function WritingFlow({ - children, +function FontFamilyControl({ + value = '', + onChange, + fontFamilies, ...props -}, forwardedRef) { - const [before, ref, after] = useWritingFlow(); - return (0,external_React_.createElement)(external_React_.Fragment, null, before, (0,external_React_.createElement)("div", { - ...props, - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, forwardedRef]), - className: classnames_default()(props.className, 'block-editor-writing-flow') - }, children), after); -} - -/** - * Handles selection and navigation across blocks. This component should be - * wrapped around BlockList. - * - * @param {Object} props Component properties. - * @param {Element} props.children Children to be rendered. - */ -/* harmony default export */ var writing_flow = ((0,external_wp_element_namespaceObject.forwardRef)(WritingFlow)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/iframe/get-compatibility-styles.js -let compatibilityStyles = null; - -/** - * Returns a list of stylesheets that target the editor canvas. A stylesheet is - * considered targetting the editor a canvas if it contains the - * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors. - * - * Ideally, this hook should be removed in the future and styles should be added - * explicitly as editor styles. - */ -function getCompatibilityStyles() { - if (compatibilityStyles) { - return compatibilityStyles; +}) { + const blockLevelFontFamilies = use_setting_useSetting('typography.fontFamilies'); + if (!fontFamilies) { + fontFamilies = blockLevelFontFamilies; } - - // Only memoize the result once on load, since these stylesheets should not - // change. - compatibilityStyles = Array.from(document.styleSheets).reduce((accumulator, styleSheet) => { - try { - // May fail for external styles. - // eslint-disable-next-line no-unused-expressions - styleSheet.cssRules; - } catch (e) { - return accumulator; - } - const { - ownerNode, - cssRules - } = styleSheet; - - // Stylesheet is added by another stylesheet. See - // https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet/ownerNode#notes. - if (ownerNode === null) { - return accumulator; - } - if (!cssRules) { - return accumulator; - } - - // Don't try to add the reset styles, which were removed as a dependency - // from `edit-blocks` for the iframe since we don't need to reset admin - // styles. - if (ownerNode.id === 'wp-reset-editor-styles-css') { - return accumulator; - } - - // Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs. - if (!ownerNode.id) { - return accumulator; - } - function matchFromRules(_cssRules) { - return Array.from(_cssRules).find(({ - selectorText, - conditionText, - cssRules: __cssRules - }) => { - // If the rule is conditional then it will not have selector text. - // Recurse into child CSS ruleset to determine selector eligibility. - if (conditionText) { - return matchFromRules(__cssRules); - } - return selectorText && (selectorText.includes('.editor-styles-wrapper') || selectorText.includes('.wp-block')); - }); - } - if (matchFromRules(cssRules)) { - const isInline = ownerNode.tagName === 'STYLE'; - if (isInline) { - // If the current target is inline, - // it could be a dependency of an existing stylesheet. - // Look for that dependency and add it BEFORE the current target. - const mainStylesCssId = ownerNode.id.replace('-inline-css', '-css'); - const mainStylesElement = document.getElementById(mainStylesCssId); - if (mainStylesElement) { - accumulator.push(mainStylesElement.cloneNode(true)); - } - } - accumulator.push(ownerNode.cloneNode(true)); - if (!isInline) { - // If the current target is not inline, - // we still look for inline styles that could be relevant for the current target. - // If they exist, add them AFTER the current target. - const inlineStylesCssId = ownerNode.id.replace('-css', '-inline-css'); - const inlineStylesElement = document.getElementById(inlineStylesCssId); - if (inlineStylesElement) { - accumulator.push(inlineStylesElement.cloneNode(true)); - } - } - } - return accumulator; - }, []); - return compatibilityStyles; + if (!fontFamilies || fontFamilies.length === 0) { + return null; + } + const options = [{ + value: '', + label: (0,external_wp_i18n_namespaceObject.__)('Default') + }, ...fontFamilies.map(({ + fontFamily, + name + }) => { + return { + value: fontFamily, + label: name || fontFamily + }; + })]; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Font'), + options: options, + value: value, + onChange: onChange, + labelPosition: "top", + ...props + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/iframe/index.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-appearance-control/index.js /** * WordPress dependencies @@ -44434,365 +37817,230 @@ function getCompatibilityStyles() { - - +const FONT_STYLES = [{ + name: (0,external_wp_i18n_namespaceObject._x)('Regular', 'font style'), + value: 'normal' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Italic', 'font style'), + value: 'italic' +}]; +const FONT_WEIGHTS = [{ + name: (0,external_wp_i18n_namespaceObject._x)('Thin', 'font weight'), + value: '100' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Extra Light', 'font weight'), + value: '200' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Light', 'font weight'), + value: '300' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Regular', 'font weight'), + value: '400' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Medium', 'font weight'), + value: '500' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Semi Bold', 'font weight'), + value: '600' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Bold', 'font weight'), + value: '700' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Extra Bold', 'font weight'), + value: '800' +}, { + name: (0,external_wp_i18n_namespaceObject._x)('Black', 'font weight'), + value: '900' +}]; /** - * Internal dependencies + * Adjusts font appearance field label in case either font styles or weights + * are disabled. + * + * @param {boolean} hasFontStyles Whether font styles are enabled and present. + * @param {boolean} hasFontWeights Whether font weights are enabled and present. + * @return {string} A label representing what font appearance is being edited. */ - - - - -function bubbleEvent(event, Constructor, frame) { - const init = {}; - for (const key in event) { - init[key] = event[key]; - } - - // Check if the event is a MouseEvent generated within the iframe. - // If so, adjust the coordinates to be relative to the position of - // the iframe. This ensures that components such as Draggable - // receive coordinates relative to the window, instead of relative - // to the iframe. Without this, the Draggable event handler would - // result in components "jumping" position as soon as the user - // drags over the iframe. - if (event instanceof frame.contentDocument.defaultView.MouseEvent) { - const rect = frame.getBoundingClientRect(); - init.clientX += rect.left; - init.clientY += rect.top; - } - const newEvent = new Constructor(event.type, init); - if (init.defaultPrevented) { - newEvent.preventDefault(); +const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => { + if (!hasFontStyles) { + return (0,external_wp_i18n_namespaceObject.__)('Font weight'); } - const cancelled = !frame.dispatchEvent(newEvent); - if (cancelled) { - event.preventDefault(); + if (!hasFontWeights) { + return (0,external_wp_i18n_namespaceObject.__)('Font style'); } -} + return (0,external_wp_i18n_namespaceObject.__)('Appearance'); +}; /** - * Bubbles some event types (keydown, keypress, and dragover) to parent document - * document to ensure that the keyboard shortcuts and drag and drop work. + * Control to display unified font style and weight options. * - * Ideally, we should remove event bubbling in the future. Keyboard shortcuts - * should be context dependent, e.g. actions on blocks like Cmd+A should not - * work globally outside the block editor. + * @param {Object} props Component props. * - * @param {Document} iframeDocument Document to attach listeners to. + * @return {WPElement} Font appearance control. */ -function useBubbleEvents(iframeDocument) { - return (0,external_wp_compose_namespaceObject.useRefEffect)(() => { - const { - defaultView - } = iframeDocument; - if (!defaultView) { - return; - } - const { - frameElement - } = defaultView; - const html = iframeDocument.documentElement; - const eventTypes = ['dragover', 'mousemove']; - const handlers = {}; - for (const name of eventTypes) { - handlers[name] = event => { - const prototype = Object.getPrototypeOf(event); - const constructorName = prototype.constructor.name; - const Constructor = window[constructorName]; - bubbleEvent(event, Constructor, frameElement); - }; - html.addEventListener(name, handlers[name]); - } - return () => { - for (const name of eventTypes) { - html.removeEventListener(name, handlers[name]); - } - }; - }); -} -function Iframe({ - contentRef, - children, - tabIndex = 0, - scale = 1, - frameSize = 0, - expand = false, - readonly, - forwardedRef: ref, - ...props -}) { - const { - resolvedAssets, - isPreviewMode - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const settings = select(store).getSettings(); - return { - resolvedAssets: settings.__unstableResolvedAssets, - isPreviewMode: settings.__unstableIsPreviewMode - }; - }, []); +function FontAppearanceControl(props) { const { - styles = '', - scripts = '' - } = resolvedAssets; - const [iframeDocument, setIframeDocument] = (0,external_wp_element_namespaceObject.useState)(); - const [bodyClasses, setBodyClasses] = (0,external_wp_element_namespaceObject.useState)([]); - const clearerRef = useBlockSelectionClearer(); - const [before, writingFlowRef, after] = useWritingFlow(); - const [contentResizeListener, { - height: contentHeight - }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); - const setRef = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - node._load = () => { - setIframeDocument(node.contentDocument); - }; - let iFrameDocument; - // Prevent the default browser action for files dropped outside of dropzones. - function preventFileDropDefault(event) { - event.preventDefault(); - } - function onLoad() { - const { - contentDocument, - ownerDocument - } = node; - const { - documentElement - } = contentDocument; - iFrameDocument = contentDocument; - clearerRef(documentElement); - - // Ideally ALL classes that are added through get_body_class should - // be added in the editor too, which we'll somehow have to get from - // the server in the future (which will run the PHP filters). - setBodyClasses(Array.from(ownerDocument.body.classList).filter(name => name.startsWith('admin-color-') || name.startsWith('post-type-') || name === 'wp-embed-responsive')); - contentDocument.dir = ownerDocument.dir; - for (const compatStyle of getCompatibilityStyles()) { - if (contentDocument.getElementById(compatStyle.id)) { - continue; - } - contentDocument.head.appendChild(compatStyle.cloneNode(true)); - if (!isPreviewMode) { - // eslint-disable-next-line no-console - console.warn(`${compatStyle.id} was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`, compatStyle); - } - } - iFrameDocument.addEventListener('dragover', preventFileDropDefault, false); - iFrameDocument.addEventListener('drop', preventFileDropDefault, false); - } - node.addEventListener('load', onLoad); - return () => { - delete node._load; - node.removeEventListener('load', onLoad); - iFrameDocument?.removeEventListener('dragover', preventFileDropDefault); - iFrameDocument?.removeEventListener('drop', preventFileDropDefault); - }; - }, []); - const disabledRef = (0,external_wp_compose_namespaceObject.useDisabled)({ - isDisabled: !readonly - }); - const bodyRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([useBubbleEvents(iframeDocument), contentRef, clearerRef, writingFlowRef, disabledRef]); - - // Correct doctype is required to enable rendering in standards - // mode. Also preload the styles to avoid a flash of unstyled - // content. - const html = ` - - - - - - ${styles} - ${scripts} - - - - -`; - const [src, cleanup] = (0,external_wp_element_namespaceObject.useMemo)(() => { - const _src = URL.createObjectURL(new window.Blob([html], { - type: 'text/html' - })); - return [_src, () => URL.revokeObjectURL(_src)]; - }, [html]); - (0,external_wp_element_namespaceObject.useEffect)(() => cleanup, [cleanup]); - - // We need to counter the margin created by scaling the iframe. If the scale - // is e.g. 0.45, then the top + bottom margin is 0.55 (1 - scale). Just the - // top or bottom margin is 0.55 / 2 ((1 - scale) / 2). - const marginFromScaling = contentHeight * (1 - scale) / 2; - return (0,external_React_.createElement)(external_React_.Fragment, null, tabIndex >= 0 && before, (0,external_React_.createElement)("iframe", { - ...props, - style: { - border: 0, - ...props.style, - height: expand ? contentHeight : props.style?.height, - marginTop: scale !== 1 ? -marginFromScaling + frameSize : props.style?.marginTop, - marginBottom: scale !== 1 ? -marginFromScaling + frameSize : props.style?.marginBottom, - transform: scale !== 1 ? `scale( ${scale} )` : props.style?.transform, - transition: 'all .3s' + onChange, + hasFontStyles = true, + hasFontWeights = true, + value: { + fontStyle, + fontWeight }, - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, setRef]), - tabIndex: tabIndex - // Correct doctype is required to enable rendering in standards - // mode. Also preload the styles to avoid a flash of unstyled - // content. - , - src: src, - title: (0,external_wp_i18n_namespaceObject.__)('Editor canvas'), - onKeyDown: event => { - // If the event originates from inside the iframe, it means - // it bubbled through the portal, but only with React - // events. We need to to bubble native events as well, - // though by doing so we also trigger another React event, - // so we need to stop the propagation of this event to avoid - // duplication. - if (event.currentTarget.ownerDocument !== event.target.ownerDocument) { - event.stopPropagation(); - bubbleEvent(event, window.KeyboardEvent, event.currentTarget); - } + ...otherProps + } = props; + const hasStylesOrWeights = hasFontStyles || hasFontWeights; + const label = getFontAppearanceLabel(hasFontStyles, hasFontWeights); + const defaultOption = { + key: 'default', + name: (0,external_wp_i18n_namespaceObject.__)('Default'), + style: { + fontStyle: undefined, + fontWeight: undefined } - }, iframeDocument && (0,external_wp_element_namespaceObject.createPortal)( - // We want to prevent React events from bubbling throught the iframe - // we bubble these manually. - /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ - (0,external_React_.createElement)("body", { - ref: bodyRef, - className: classnames_default()('block-editor-iframe__body', 'editor-styles-wrapper', ...bodyClasses) - }, contentResizeListener, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { - document: iframeDocument - }, children)), iframeDocument.documentElement)), tabIndex >= 0 && after); -} -function IframeIfReady(props, ref) { - const isInitialised = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().__internalIsInitialized, []); + }; - // We shouldn't render the iframe until the editor settings are initialised. - // The initial settings are needed to get the styles for the srcDoc, which - // cannot be changed after the iframe is mounted. srcDoc is used to to set - // the initial iframe HTML, which is required to avoid a flash of unstyled - // content. - if (!isInitialised) { - return null; - } - return (0,external_React_.createElement)(Iframe, { - ...props, - forwardedRef: ref - }); -} -/* harmony default export */ var iframe = ((0,external_wp_element_namespaceObject.forwardRef)(IframeIfReady)); + // Combines both font style and weight options into a single dropdown. + const combineOptions = () => { + const combinedOptions = [defaultOption]; + FONT_STYLES.forEach(({ + name: styleName, + value: styleValue + }) => { + FONT_WEIGHTS.forEach(({ + name: weightName, + value: weightValue + }) => { + const optionName = styleValue === 'normal' ? weightName : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: Font weight name. 2: Font style name. */ + (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), weightName, styleName); + combinedOptions.push({ + key: `${styleValue}-${weightValue}`, + name: optionName, + style: { + fontStyle: styleValue, + fontWeight: weightValue + } + }); + }); + }); + return combinedOptions; + }; -// EXTERNAL MODULE: ./node_modules/postcss/lib/postcss.js -var postcss = __webpack_require__(4743); -;// CONCATENATED MODULE: ./node_modules/postcss/lib/postcss.mjs - - -/* harmony default export */ var lib_postcss = (postcss); - -const stringify = postcss.stringify -const fromJSON = postcss.fromJSON -const postcss_plugin = postcss.plugin -const parse = postcss.parse -const list = postcss.list - -const postcss_document = postcss.document -const comment = postcss.comment -const atRule = postcss.atRule -const rule = postcss.rule -const decl = postcss.decl -const root = postcss.root - -const CssSyntaxError = postcss.CssSyntaxError -const Declaration = postcss.Declaration -const Container = postcss.Container -const Processor = postcss.Processor -const Document = postcss.Document -const Comment = postcss.Comment -const postcss_Warning = postcss.Warning -const AtRule = postcss.AtRule -const Result = postcss.Result -const Input = postcss.Input -const Rule = postcss.Rule -const Root = postcss.Root -const Node = postcss.Node - -// EXTERNAL MODULE: ./node_modules/postcss-prefixwrap/build/index.js -var build = __webpack_require__(5959); -var build_default = /*#__PURE__*/__webpack_require__.n(build); -// EXTERNAL MODULE: ./node_modules/postcss-urlrebase/index.js -var postcss_urlrebase = __webpack_require__(7036); -var postcss_urlrebase_default = /*#__PURE__*/__webpack_require__.n(postcss_urlrebase); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/index.js -/** - * External dependencies - */ + // Generates select options for font styles only. + const styleOptions = () => { + const combinedOptions = [defaultOption]; + FONT_STYLES.forEach(({ + name, + value + }) => { + combinedOptions.push({ + key: value, + name, + style: { + fontStyle: value, + fontWeight: undefined + } + }); + }); + return combinedOptions; + }; + + // Generates select options for font weights only. + const weightOptions = () => { + const combinedOptions = [defaultOption]; + FONT_WEIGHTS.forEach(({ + name, + value + }) => { + combinedOptions.push({ + key: value, + name, + style: { + fontStyle: undefined, + fontWeight: value + } + }); + }); + return combinedOptions; + }; + // Map font styles and weights to select options. + const selectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (hasFontStyles && hasFontWeights) { + return combineOptions(); + } + return hasFontStyles ? styleOptions() : weightOptions(); + }, [props.options]); + // Find current selection by comparing font style & weight against options, + // and fall back to the Default option if there is no matching option. + const currentSelection = selectOptions.find(option => option.style.fontStyle === fontStyle && option.style.fontWeight === fontWeight) || selectOptions[0]; -const transformStylesCache = new WeakMap(); -function transformStyle({ - css, - ignoredSelectors = [], - baseURL -}, wrapperSelector = '') { - // When there is no wrapper selector or base URL, there is no need - // to transform the CSS. This is most cases because in the default - // iframed editor, no wrapping is needed, and not many styles - // provide a base URL. - if (!wrapperSelector && !baseURL) { - return css; - } - try { - return lib_postcss([wrapperSelector && build_default()(wrapperSelector, { - ignoredSelectors: [...ignoredSelectors, wrapperSelector] - }), baseURL && postcss_urlrebase_default()({ - rootUrl: baseURL - })].filter(Boolean)).process(css, {}).css; // use sync PostCSS API - } catch (error) { - if (error instanceof CssSyntaxError) { - // eslint-disable-next-line no-console - console.warn('wp.blockEditor.transformStyles Failed to transform CSS.', error.message + '\n' + error.showSourceCode(false)); - } else { - // eslint-disable-next-line no-console - console.warn('wp.blockEditor.transformStyles Failed to transform CSS.', error); + // Adjusts screen reader description based on styles or weights. + const getDescribedBy = () => { + if (!currentSelection) { + return (0,external_wp_i18n_namespaceObject.__)('No selected font appearance'); } - return null; - } + if (!hasFontStyles) { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Currently selected font weight. + (0,external_wp_i18n_namespaceObject.__)('Currently selected font weight: %s'), currentSelection.name); + } + if (!hasFontWeights) { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Currently selected font style. + (0,external_wp_i18n_namespaceObject.__)('Currently selected font style: %s'), currentSelection.name); + } + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Currently selected font appearance. + (0,external_wp_i18n_namespaceObject.__)('Currently selected font appearance: %s'), currentSelection.name); + }; + return hasStylesOrWeights && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { + ...otherProps, + className: "components-font-appearance-control", + label: label, + describedBy: getDescribedBy(), + options: selectOptions, + value: currentSelection, + onChange: ({ + selectedItem + }) => onChange(selectedItem.style), + __nextUnconstrainedWidth: true + }); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/utils.js +const BASE_DEFAULT_VALUE = 1.5; +const STEP = 0.01; /** - * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed. + * A spin factor of 10 allows the spin controls to increment/decrement by 0.1. + * e.g. A line-height value of 1.55 will increment to 1.65. + */ +const SPIN_FACTOR = 10; +/** + * There are varying value types within LineHeightControl: * - * @typedef {Object} EditorStyle - * @property {string} css the CSS block(s), as a single string. - * @property {?string} baseURL the base URL to be used as the reference when rewritting urls. - * @property {?string[]} ignoredSelectors the selectors not to wrap. + * {undefined} Initial value. No changes from the user. + * {string} Input value. Value consumed/outputted by the input. Empty would be ''. + * {number} Block attribute type. Input value needs to be converted for attribute setting. * - * @param {EditorStyle[]} styles CSS rules. - * @param {string} wrapperSelector Wrapper selector. - * @return {Array} converted rules. + * Note: If the value is undefined, the input requires it to be an empty string ('') + * in order to be considered "controlled" by props (rather than internal state). */ -const transform_styles_transformStyles = (styles, wrapperSelector = '') => { - return styles.map(style => { - if (transformStylesCache.has(style)) { - return transformStylesCache.get(style); - } - const transformedStyle = transformStyle(style, wrapperSelector); - transformStylesCache.set(style, transformedStyle); - return transformedStyle; - }); -}; -/* harmony default export */ var transform_styles = (transform_styles_transformStyles); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editor-styles/index.js +const RESET_VALUE = ''; /** - * External dependencies + * Determines if the lineHeight attribute has been properly defined. + * + * @param {any} lineHeight The value to check. + * + * @return {boolean} Whether the lineHeight attribute is valid. */ +function isLineHeightDefined(lineHeight) { + return lineHeight !== undefined && lineHeight !== RESET_VALUE; +} - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/index.js /** * WordPress dependencies @@ -44805,96 +38053,111 @@ const transform_styles_transformStyles = (styles, wrapperSelector = '') => { * Internal dependencies */ +const line_height_control_LineHeightControl = ({ + value: lineHeight, + onChange, + /** Start opting into the new margin-free styles that will become the default in a future version. */ + __nextHasNoMarginBottom = false, + __unstableInputWidth = '60px', + ...otherProps +}) => { + const isDefined = isLineHeightDefined(lineHeight); + const adjustNextValue = (nextValue, wasTypedOrPasted) => { + // Set the next value without modification if lineHeight has been defined. + if (isDefined) return nextValue; - -k([names, a11y]); -function useDarkThemeBodyClassName(styles, scope) { - return (0,external_wp_element_namespaceObject.useCallback)(node => { - if (!node) { - return; - } - const { - ownerDocument - } = node; - const { - defaultView, - body - } = ownerDocument; - const canvas = scope ? ownerDocument.querySelector(scope) : body; - let backgroundColor; - if (!canvas) { - // The real .editor-styles-wrapper element might not exist in the - // DOM, so calculate the background color by creating a fake - // wrapper. - const tempCanvas = ownerDocument.createElement('div'); - tempCanvas.classList.add('editor-styles-wrapper'); - body.appendChild(tempCanvas); - backgroundColor = defaultView?.getComputedStyle(tempCanvas, null).getPropertyValue('background-color'); - body.removeChild(tempCanvas); - } else { - backgroundColor = defaultView?.getComputedStyle(canvas, null).getPropertyValue('background-color'); - } - const colordBackgroundColor = w(backgroundColor); - // If background is transparent, it should be treated as light color. - if (colordBackgroundColor.luminance() > 0.5 || colordBackgroundColor.alpha() === 0) { - body.classList.remove('is-dark-theme'); - } else { - body.classList.add('is-dark-theme'); + /** + * The following logic handles the initial spin up/down action + * (from an undefined value state) so that the next values are better suited for + * line-height rendering. For example, the first spin up should immediately + * go to 1.6, rather than the normally expected 0.1. + * + * Spin up/down actions can be triggered by keydowns of the up/down arrow keys, + * dragging the input or by clicking the spin buttons. + */ + const spin = STEP * SPIN_FACTOR; + switch (`${nextValue}`) { + case `${spin}`: + // Increment by spin value. + return BASE_DEFAULT_VALUE + spin; + case '0': + { + // This means the user explicitly input '0', rather than using the + // spin down action from an undefined value state. + if (wasTypedOrPasted) return nextValue; + // Decrement by spin value. + return BASE_DEFAULT_VALUE - spin; + } + case '': + return BASE_DEFAULT_VALUE; + default: + return nextValue; } - }, [styles, scope]); -} -function EditorStyles({ - styles, - scope -}) { - const overrides = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getStyleOverrides(), []); - const [transformedStyles, transformedSvgs] = (0,external_wp_element_namespaceObject.useMemo)(() => { - const _styles = Object.values(styles !== null && styles !== void 0 ? styles : []); - for (const [id, override] of overrides) { - const index = _styles.findIndex(({ - id: _id - }) => id === _id); - const overrideWithId = { - ...override, - id - }; - if (index === -1) { - _styles.push(overrideWithId); - } else { - _styles[index] = overrideWithId; - } + }; + const stateReducer = (state, action) => { + // Be careful when changing this — cross-browser behavior of the + // `inputType` field in `input` events are inconsistent. + // For example, Firefox emits an input event with inputType="insertReplacementText" + // on spin button clicks, while other browsers do not even emit an input event. + const wasTypedOrPasted = ['insertText', 'insertFromPaste'].includes(action.payload.event.nativeEvent?.inputType); + const value = adjustNextValue(state.value, wasTypedOrPasted); + return { + ...state, + value + }; + }; + const value = isDefined ? lineHeight : RESET_VALUE; + if (!__nextHasNoMarginBottom) { + external_wp_deprecated_default()('Bottom margin styles for wp.blockEditor.LineHeightControl', { + since: '6.0', + version: '6.4', + hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version' + }); + } + const deprecatedStyles = __nextHasNoMarginBottom ? undefined : { + marginBottom: 24 + }; + const handleOnChange = (nextValue, { + event + }) => { + if (nextValue === '') { + onChange(); + return; } - return [transform_styles(_styles.filter(style => style?.css), scope), _styles.filter(style => style.__unstableType === 'svgs').map(style => style.assets).join('')]; - }, [styles, overrides, scope]); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("style", { - ref: useDarkThemeBodyClassName(transformedStyles, scope) - }), transformedStyles.map((css, index) => (0,external_React_.createElement)("style", { - key: index - }, css)), (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 0 0", - width: "0", - height: "0", - role: "none", - style: { - visibility: 'hidden', - position: 'absolute', - left: '-9999px', - overflow: 'hidden' - }, - dangerouslySetInnerHTML: { - __html: transformedSvgs + if (event.type === 'click') { + onChange(adjustNextValue(`${nextValue}`, false)); + return; } + onChange(`${nextValue}`); + }; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-line-height-control", + style: deprecatedStyles + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { + ...otherProps, + __unstableInputWidth: __unstableInputWidth, + __unstableStateReducer: stateReducer, + onChange: handleOnChange, + label: (0,external_wp_i18n_namespaceObject.__)('Line height'), + placeholder: BASE_DEFAULT_VALUE, + step: STEP, + spinFactor: SPIN_FACTOR, + value: value, + min: 0, + spinControls: "custom" })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/auto.js +}; /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/line-height-control/README.md */ +/* harmony default export */ var line_height_control = (line_height_control_LineHeightControl); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/letter-spacing-control/index.js +/** + * WordPress dependencies + */ @@ -44903,301 +38166,102 @@ function EditorStyles({ */ - - - -// This is used to avoid rendering the block list if the sizes change. -let MemoizedBlockList; -const MAX_HEIGHT = 2000; -function ScaledBlockPreview({ - viewportWidth, - containerWidth, - minHeight, - additionalStyles = [] +/** + * Control for letter-spacing. + * + * @param {Object} props Component props. + * @param {string} props.value Currently selected letter-spacing. + * @param {Function} props.onChange Handles change in letter-spacing selection. + * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value. + * + * @return {WPElement} Letter-spacing control. + */ +function LetterSpacingControl({ + value, + onChange, + __unstableInputWidth = '60px', + ...otherProps }) { - if (!viewportWidth) { - viewportWidth = containerWidth; - } - const [contentResizeListener, { - height: contentHeight - }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); - const { - styles - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const settings = select(store).getSettings(); - return { - styles: settings.styles - }; - }, []); - - // Avoid scrollbars for pattern previews. - const editorStyles = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (styles) { - return [...styles, { - css: 'body{height:auto;overflow:hidden;border:none;padding:0;}', - __unstableType: 'presets' - }, ...additionalStyles]; - } - return styles; - }, [styles, additionalStyles]); - - // Initialize on render instead of module top level, to avoid circular dependency issues. - MemoizedBlockList = MemoizedBlockList || (0,external_wp_element_namespaceObject.memo)(BlockList); - const scale = containerWidth / viewportWidth; - const aspectRatio = contentHeight ? containerWidth / (contentHeight * scale) : 0; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Disabled, { - className: "block-editor-block-preview__content", - style: { - transform: `scale(${scale})`, - // Using width + aspect-ratio instead of height here triggers browsers' native - // handling of scrollbar's visibility. It prevents the flickering issue seen - // in https://github.com/WordPress/gutenberg/issues/52027. - // See https://github.com/WordPress/gutenberg/pull/52921 for more info. - aspectRatio, - maxHeight: contentHeight > MAX_HEIGHT ? MAX_HEIGHT * scale : undefined, - minHeight - } - }, (0,external_React_.createElement)(iframe, { - contentRef: (0,external_wp_compose_namespaceObject.useRefEffect)(bodyElement => { - const { - ownerDocument: { - documentElement - } - } = bodyElement; - documentElement.classList.add('block-editor-block-preview__content-iframe'); - documentElement.style.position = 'absolute'; - documentElement.style.width = '100%'; - - // Necessary for contentResizeListener to work. - bodyElement.style.boxSizing = 'border-box'; - bodyElement.style.position = 'absolute'; - bodyElement.style.width = '100%'; - }, []), - "aria-hidden": true, - tabIndex: -1, - style: { - position: 'absolute', - width: viewportWidth, - height: contentHeight, - pointerEvents: 'none', - // This is a catch-all max-height for patterns. - // See: https://github.com/WordPress/gutenberg/pull/38175. - maxHeight: MAX_HEIGHT, - minHeight: scale !== 0 && scale < 1 && minHeight ? minHeight / scale : minHeight - } - }, (0,external_React_.createElement)(EditorStyles, { - styles: editorStyles - }), contentResizeListener, (0,external_React_.createElement)(MemoizedBlockList, { - renderAppender: false - }))); -} -function AutoBlockPreview(props) { - const [containerResizeListener, { - width: containerWidth - }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - style: { - position: 'relative', - width: '100%', - height: 0 + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['px', 'em', 'rem'], + defaultValues: { + px: 2, + em: 0.2, + rem: 0.2 } - }, containerResizeListener), (0,external_React_.createElement)("div", { - className: "block-editor-block-preview__container" - }, !!containerWidth && (0,external_React_.createElement)(ScaledBlockPreview, { - ...props, - containerWidth: containerWidth - }))); + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + ...otherProps, + label: (0,external_wp_i18n_namespaceObject.__)('Letter spacing'), + value: value, + __unstableInputWidth: __unstableInputWidth, + units: units, + onChange: onChange + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/index.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/reset.js /** * WordPress dependencies */ +const reset_reset = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7 11.5h10V13H7z" +})); +/* harmony default export */ var library_reset = (reset_reset); - - - -/** - * Internal dependencies - */ - - - - - -function BlockPreview({ - blocks, - viewportWidth = 1200, - minHeight, - additionalStyles = [], - // Deprecated props: - __experimentalMinHeight, - __experimentalPadding -}) { - if (__experimentalMinHeight) { - minHeight = __experimentalMinHeight; - external_wp_deprecated_default()('The __experimentalMinHeight prop', { - since: '6.2', - version: '6.4', - alternative: 'minHeight' - }); - } - if (__experimentalPadding) { - additionalStyles = [...additionalStyles, { - css: `body { padding: ${__experimentalPadding}px; }` - }]; - external_wp_deprecated_default()('The __experimentalPadding prop of BlockPreview', { - since: '6.2', - version: '6.4', - alternative: 'additionalStyles' - }); - } - const originalSettings = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings(), []); - const settings = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - ...originalSettings, - __unstableIsPreviewMode: true - }), [originalSettings]); - const renderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]); - if (!blocks || blocks.length === 0) { - return null; - } - return (0,external_React_.createElement)(ExperimentalBlockEditorProvider, { - value: renderedBlocks, - settings: settings - }, (0,external_React_.createElement)(AutoBlockPreview, { - viewportWidth: viewportWidth, - minHeight: minHeight, - additionalStyles: additionalStyles - })); -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-uppercase.js /** - * BlockPreview renders a preview of a block or array of blocks. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md - * - * @param {Object} preview options for how the preview should be shown - * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed. - * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700. - * - * @return {Component} The component to be rendered. + * WordPress dependencies */ -/* harmony default export */ var block_preview = ((0,external_wp_element_namespaceObject.memo)(BlockPreview)); -/** - * This hook is used to lightly mark an element as a block preview wrapper - * element. Call this hook and pass the returned props to the element to mark as - * a block preview wrapper, automatically rendering inner blocks as children. If - * you define a ref for the element, it is important to pass the ref to this - * hook, which the hook in turn will pass to the component through the props it - * returns. Optionally, you can also pass any other props through this hook, and - * they will be merged and returned. - * - * @param {Object} options Preview options. - * @param {WPBlock[]} options.blocks Block objects. - * @param {Object} options.props Optional. Props to pass to the element. Must contain - * the ref if one is defined. - * @param {Object} options.layout Layout settings to be used in the preview. - */ -function useBlockPreview({ - blocks, - props = {}, - layout -}) { - const originalSettings = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings(), []); - const settings = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - ...originalSettings, - styles: undefined, - // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles. - __unstableIsPreviewMode: true - }), [originalSettings]); - const disabledRef = (0,external_wp_compose_namespaceObject.useDisabled)(); - const ref = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, disabledRef]); - const renderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]); - const children = (0,external_React_.createElement)(ExperimentalBlockEditorProvider, { - value: renderedBlocks, - settings: settings - }, (0,external_React_.createElement)(EditorStyles, null), (0,external_React_.createElement)(BlockListItems, { - renderAppender: false, - layout: layout - })); - return { - ...props, - ref, - className: classnames_default()(props.className, 'block-editor-block-preview__live-content', 'components-disabled'), - children: blocks?.length ? children : null - }; -} +const formatUppercase = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6.1 6.8L2.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H6.1zm-.8 6.8L7 8.9l1.7 4.7H5.3zm15.1-.7c-.4-.5-.9-.8-1.6-1 .4-.2.7-.5.8-.9.2-.4.3-.9.3-1.4 0-.9-.3-1.6-.8-2-.6-.5-1.3-.7-2.4-.7h-3.5V18h4.2c1.1 0 2-.3 2.6-.8.6-.6 1-1.4 1-2.4-.1-.8-.3-1.4-.6-1.9zm-5.7-4.7h1.8c.6 0 1.1.1 1.4.4.3.2.5.7.5 1.3 0 .6-.2 1.1-.5 1.3-.3.2-.8.4-1.4.4h-1.8V8.2zm4 8c-.4.3-.9.5-1.5.5h-2.6v-3.8h2.6c1.4 0 2 .6 2 1.9.1.6-.1 1-.5 1.4z" +})); +/* harmony default export */ var format_uppercase = (formatUppercase); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/preview-panel.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-lowercase.js /** * WordPress dependencies */ +const formatLowercase = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M11 16.8c-.1-.1-.2-.3-.3-.5v-2.6c0-.9-.1-1.7-.3-2.2-.2-.5-.5-.9-.9-1.2-.4-.2-.9-.3-1.6-.3-.5 0-1 .1-1.5.2s-.9.3-1.2.6l.2 1.2c.4-.3.7-.4 1.1-.5.3-.1.7-.2 1-.2.6 0 1 .1 1.3.4.3.2.4.7.4 1.4-1.2 0-2.3.2-3.3.7s-1.4 1.1-1.4 2.1c0 .7.2 1.2.7 1.6.4.4 1 .6 1.8.6.9 0 1.7-.4 2.4-1.2.1.3.2.5.4.7.1.2.3.3.6.4.3.1.6.1 1.1.1h.1l.2-1.2h-.1c-.4.1-.6 0-.7-.1zM9.2 16c-.2.3-.5.6-.9.8-.3.1-.7.2-1.1.2-.4 0-.7-.1-.9-.3-.2-.2-.3-.5-.3-.9 0-.6.2-1 .7-1.3.5-.3 1.3-.4 2.5-.5v2zm10.6-3.9c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2s-.2 1.4-.6 2z" +})); +/* harmony default export */ var format_lowercase = (formatLowercase); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-capitalize.js /** - * Internal dependencies + * WordPress dependencies */ +const formatCapitalize = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7.1 6.8L3.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H7.1zm-.8 6.8L8 8.9l1.7 4.7H6.3zm14.5-1.5c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2 .1.8-.2 1.4-.6 2z" +})); +/* harmony default export */ var format_capitalize = (formatCapitalize); -function InserterPreviewPanel({ - item -}) { - var _example$viewportWidt; - const { - name, - title, - icon, - description, - initialAttributes, - example - } = item; - const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)(item); - const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!example) { - return (0,external_wp_blocks_namespaceObject.createBlock)(name, initialAttributes); - } - return (0,external_wp_blocks_namespaceObject.getBlockFromExample)(name, { - attributes: { - ...example.attributes, - ...initialAttributes - }, - innerBlocks: example.innerBlocks - }); - }, [name, example, initialAttributes]); - return (0,external_React_.createElement)("div", { - className: "block-editor-inserter__preview-container" - }, (0,external_React_.createElement)("div", { - className: "block-editor-inserter__preview" - }, isReusable || example ? (0,external_React_.createElement)("div", { - className: "block-editor-inserter__preview-content" - }, (0,external_React_.createElement)(block_preview, { - blocks: blocks, - viewportWidth: (_example$viewportWidt = example?.viewportWidth) !== null && _example$viewportWidt !== void 0 ? _example$viewportWidt : 500, - additionalStyles: [{ - css: 'body { padding: 24px; }' - }] - })) : (0,external_React_.createElement)("div", { - className: "block-editor-inserter__preview-content-missing" - }, (0,external_wp_i18n_namespaceObject.__)('No preview available.'))), !isReusable && (0,external_React_.createElement)(block_card, { - title: title, - icon: icon, - description: description - })); -} -/* harmony default export */ var preview_panel = (InserterPreviewPanel); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/text-transform-control/index.js + +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/item.js /** * WordPress dependencies @@ -45205,163 +38269,176 @@ function InserterPreviewPanel({ +const TEXT_TRANSFORMS = [{ + name: (0,external_wp_i18n_namespaceObject.__)('None'), + value: 'none', + icon: library_reset +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Uppercase'), + value: 'uppercase', + icon: format_uppercase +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Lowercase'), + value: 'lowercase', + icon: format_lowercase +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Capitalize'), + value: 'capitalize', + icon: format_capitalize +}]; + /** - * Internal dependencies + * Control to facilitate text transform selections. + * + * @param {Object} props Component props. + * @param {string} props.className Class name to add to the control. + * @param {string} props.value Currently selected text transform. + * @param {Function} props.onChange Handles change in text transform selection. + * + * @return {WPElement} Text transform control. */ - -const { - CompositeItemV2: CompositeItem -} = unlock(external_wp_components_namespaceObject.privateApis); -function InserterListboxItem({ - isFirst, - as: Component, - children, - ...props -}, ref) { - return (0,external_React_.createElement)(CompositeItem, { - ref: ref, - role: "option" - // Use the CompositeItem `accessibleWhenDisabled` prop - // over Button's `isFocusable`. The latter was shown to - // cause an issue with tab order in the inserter list. - , - accessibleWhenDisabled: true, - ...props, - render: htmlProps => { - const propsWithTabIndex = { - ...htmlProps, - tabIndex: isFirst ? 0 : htmlProps.tabIndex - }; - if (Component) { - return (0,external_React_.createElement)(Component, { - ...propsWithTabIndex - }, children); - } - if (typeof children === 'function') { - return children(propsWithTabIndex); +function TextTransformControl({ + className, + value, + onChange +}) { + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: classnames_default()('block-editor-text-transform-control', className) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Letter case')), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-text-transform-control__buttons" + }, TEXT_TRANSFORMS.map(textTransform => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: textTransform.value, + icon: textTransform.icon, + label: textTransform.name, + isPressed: textTransform.value === value, + onClick: () => { + onChange(textTransform.value === value ? undefined : textTransform.value); } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...propsWithTabIndex - }, children); - } - }); + }); + }))); } -/* harmony default export */ var inserter_listbox_item = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxItem)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/drag-handle.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-underline.js /** * WordPress dependencies */ -const dragHandle = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - width: "24", - height: "24", +const formatUnderline = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M8 7h2V5H8v2zm0 6h2v-2H8v2zm0 6h2v-2H8v2zm6-14v2h2V5h-2zm0 8h2v-2h-2v2zm0 6h2v-2h-2v2z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7 18v1h10v-1H7zm5-2c1.5 0 2.6-.4 3.4-1.2.8-.8 1.1-2 1.1-3.5V5H15v5.8c0 1.2-.2 2.1-.6 2.8-.4.7-1.2 1-2.4 1s-2-.3-2.4-1c-.4-.7-.6-1.6-.6-2.8V5H7.5v6.2c0 1.5.4 2.7 1.1 3.5.8.9 1.9 1.3 3.4 1.3z" })); -/* harmony default export */ var drag_handle = (dragHandle); +/* harmony default export */ var format_underline = (formatUnderline); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/draggable-chip.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-strikethrough.js /** * WordPress dependencies */ +const formatStrikethrough = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z" +})); +/* harmony default export */ var format_strikethrough = (formatStrikethrough); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/text-decoration-control/index.js +/** + * External dependencies + */ /** - * Internal dependencies + * WordPress dependencies */ -function BlockDraggableChip({ - count, - icon, - isPattern, - fadeWhenDisabled + + +const TEXT_DECORATIONS = [{ + name: (0,external_wp_i18n_namespaceObject.__)('None'), + value: 'none', + icon: library_reset +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Underline'), + value: 'underline', + icon: format_underline +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Strikethrough'), + value: 'line-through', + icon: format_strikethrough +}]; + +/** + * Control to facilitate text decoration selections. + * + * @param {Object} props Component props. + * @param {string} props.value Currently selected text decoration. + * @param {Function} props.onChange Handles change in text decoration selection. + * @param {string} [props.className] Additional class name to apply. + * + * @return {WPElement} Text decoration control. + */ +function TextDecorationControl({ + value, + onChange, + className }) { - const patternLabel = isPattern && (0,external_wp_i18n_namespaceObject.__)('Pattern'); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-draggable-chip-wrapper" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-draggable-chip", - "data-testid": "block-draggable-chip" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - justify: "center", - className: "block-editor-block-draggable-chip__content" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, icon ? (0,external_React_.createElement)(block_icon, { - icon: icon - }) : patternLabel || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: Number of blocks. */ - (0,external_wp_i18n_namespaceObject._n)('%d block', '%d blocks', count), count)), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(block_icon, { - icon: drag_handle - })), fadeWhenDisabled && (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - className: "block-editor-block-draggable-chip__disabled" - }, (0,external_React_.createElement)("span", { - className: "block-editor-block-draggable-chip__disabled-icon" - }))))); + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: classnames_default()('block-editor-text-decoration-control', className) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Decoration')), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-text-decoration-control__buttons" + }, TEXT_DECORATIONS.map(textDecoration => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: textDecoration.value, + icon: textDecoration.icon, + label: textDecoration.name, + isPressed: textDecoration.value === value, + onClick: () => { + onChange(textDecoration.value === value ? undefined : textDecoration.value); + } + }); + }))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-draggable-blocks/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/text-horizontal.js /** * WordPress dependencies */ +const textHorizontal = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M8.2 14.4h3.9L13 17h1.7L11 6.5H9.3L5.6 17h1.7l.9-2.6zm2-5.5 1.4 4H8.8l1.4-4zm7.4 7.5-1.3.8.8 1.4H5.5V20h14.3l-2.2-3.6z" +})); +/* harmony default export */ var text_horizontal = (textHorizontal); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/text-vertical.js /** - * Internal dependencies + * WordPress dependencies */ +const textVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7 5.6v1.7l2.6.9v3.9L7 13v1.7L17.5 11V9.3L7 5.6zm4.2 6V8.8l4 1.4-4 1.4zm-5.7 5.6V5.5H4v14.3l3.6-2.2-.8-1.3-1.3.9z" +})); +/* harmony default export */ var text_vertical = (textVertical); -const InserterDraggableBlocks = ({ - isEnabled, - blocks, - icon, - children, - pattern -}) => { - const transferData = { - type: 'inserter', - blocks - }; - const blockTypeIcon = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockType - } = select(external_wp_blocks_namespaceObject.store); - return blocks.length === 1 && getBlockType(blocks[0].name)?.icon; - }, [blocks]); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Draggable, { - __experimentalTransferDataType: "wp-blocks", - transferData: transferData, - onDragStart: event => { - const parsedBlocks = pattern?.type === INSERTER_PATTERN_TYPES.user && pattern?.syncStatus !== 'unsynced' ? [(0,external_wp_blocks_namespaceObject.createBlock)('core/block', { - ref: pattern.id - })] : blocks; - event.dataTransfer.setData('text/html', (0,external_wp_blocks_namespaceObject.serialize)(parsedBlocks)); - }, - __experimentalDragComponent: (0,external_React_.createElement)(BlockDraggableChip, { - count: blocks.length, - icon: icon || !pattern && blockTypeIcon, - isPattern: !!pattern - }) - }, ({ - onDraggableStart, - onDraggableEnd - }) => { - return children({ - draggable: isEnabled, - onDragStart: isEnabled ? onDraggableStart : undefined, - onDragEnd: isEnabled ? onDraggableEnd : undefined - }); - }); -}; -/* harmony default export */ var inserter_draggable_blocks = (InserterDraggableBlocks); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-mode-control/index.js /** * External dependencies @@ -45374,98 +38451,51 @@ const InserterDraggableBlocks = ({ - +const WRITING_MODES = [{ + name: (0,external_wp_i18n_namespaceObject.__)('Horizontal'), + value: 'horizontal-tb', + icon: text_horizontal +}, { + name: (0,external_wp_i18n_namespaceObject.__)('Vertical'), + value: (0,external_wp_i18n_namespaceObject.isRTL)() ? 'vertical-lr' : 'vertical-rl', + icon: text_vertical +}]; /** - * Internal dependencies + * Control to facilitate writing mode selections. + * + * @param {Object} props Component props. + * @param {string} props.className Class name to add to the control. + * @param {string} props.value Currently selected writing mode. + * @param {Function} props.onChange Handles change in the writing mode selection. + * + * @return {WPElement} Writing Mode control. */ - - - -function InserterListItem({ +function WritingModeControl({ className, - isFirst, - item, - onSelect, - onHover, - isDraggable, - ...props + value, + onChange }) { - const isDragging = (0,external_wp_element_namespaceObject.useRef)(false); - const itemIconStyle = item.icon ? { - backgroundColor: item.icon.background, - color: item.icon.foreground - } : {}; - const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => [(0,external_wp_blocks_namespaceObject.createBlock)(item.name, item.initialAttributes, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(item.innerBlocks))], [item.name, item.initialAttributes, item.innerBlocks]); - const isSynced = (0,external_wp_blocks_namespaceObject.isReusableBlock)(item) && item.syncStatus !== 'unsynced' || (0,external_wp_blocks_namespaceObject.isTemplatePart)(item); - return (0,external_React_.createElement)(inserter_draggable_blocks, { - isEnabled: isDraggable && !item.isDisabled, - blocks: blocks, - icon: item.icon - }, ({ - draggable, - onDragStart, - onDragEnd - }) => (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-block-types-list__list-item', { - 'is-synced': isSynced - }), - draggable: draggable, - onDragStart: event => { - isDragging.current = true; - if (onDragStart) { - onHover(null); - onDragStart(event); - } - }, - onDragEnd: event => { - isDragging.current = false; - if (onDragEnd) { - onDragEnd(event); - } - } - }, (0,external_React_.createElement)(inserter_listbox_item, { - isFirst: isFirst, - className: classnames_default()('block-editor-block-types-list__item', className), - disabled: item.isDisabled, - onClick: event => { - event.preventDefault(); - onSelect(item, (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? event.metaKey : event.ctrlKey); - onHover(null); - }, - onKeyDown: event => { - const { - keyCode - } = event; - if (keyCode === external_wp_keycodes_namespaceObject.ENTER) { - event.preventDefault(); - onSelect(item, (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? event.metaKey : event.ctrlKey); - onHover(null); - } - }, - onMouseEnter: () => { - if (isDragging.current) { - return; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: classnames_default()('block-editor-writing-mode-control', className) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Orientation')), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-writing-mode-control__buttons" + }, WRITING_MODES.map(writingMode => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: writingMode.value, + icon: writingMode.icon, + label: writingMode.name, + isPressed: writingMode.value === value, + onClick: () => { + onChange(writingMode.value === value ? undefined : writingMode.value); } - onHover(item); - }, - onMouseLeave: () => onHover(null), - ...props - }, (0,external_React_.createElement)("span", { - className: "block-editor-block-types-list__item-icon", - style: itemIconStyle - }, (0,external_React_.createElement)(block_icon, { - icon: item.icon, - showColors: true - })), (0,external_React_.createElement)("span", { - className: "block-editor-block-types-list__item-title" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - numberOfLines: 3 - }, item.title))))); + }); + }))); } -/* harmony default export */ var inserter_list_item = ((0,external_wp_element_namespaceObject.memo)(InserterListItem)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/group.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/typography-panel.js /** * WordPress dependencies @@ -45473,160 +38503,442 @@ function InserterListItem({ -function InserterListboxGroup(props, ref) { - const [shouldSpeak, setShouldSpeak] = (0,external_wp_element_namespaceObject.useState)(false); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (shouldSpeak) { - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Use left and right arrow keys to move through blocks')); + +/** + * Internal dependencies + */ + + + + + + + + + +const MIN_TEXT_COLUMNS = 1; +const MAX_TEXT_COLUMNS = 6; +function useHasTypographyPanel(settings) { + const hasFontFamily = useHasFontFamilyControl(settings); + const hasLineHeight = useHasLineHeightControl(settings); + const hasFontAppearance = useHasAppearanceControl(settings); + const hasLetterSpacing = useHasLetterSpacingControl(settings); + const hasTextTransform = useHasTextTransformControl(settings); + const hasTextDecoration = useHasTextDecorationControl(settings); + const hasWritingMode = useHasWritingModeControl(settings); + const hasTextColumns = useHasTextColumnsControl(settings); + const hasFontSize = useHasFontSizeControl(settings); + return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasWritingMode || hasTextColumns; +} +function useHasFontSizeControl(settings) { + var _settings$typography$, _fontSizesPerOrigin$c, _fontSizesPerOrigin$t, _fontSizesPerOrigin$d; + const disableCustomFontSizes = !settings?.typography?.customFontSize; + const fontSizesPerOrigin = (_settings$typography$ = settings?.typography?.fontSizes) !== null && _settings$typography$ !== void 0 ? _settings$typography$ : {}; + const fontSizes = [].concat((_fontSizesPerOrigin$c = fontSizesPerOrigin?.custom) !== null && _fontSizesPerOrigin$c !== void 0 ? _fontSizesPerOrigin$c : []).concat((_fontSizesPerOrigin$t = fontSizesPerOrigin?.theme) !== null && _fontSizesPerOrigin$t !== void 0 ? _fontSizesPerOrigin$t : []).concat((_fontSizesPerOrigin$d = fontSizesPerOrigin.default) !== null && _fontSizesPerOrigin$d !== void 0 ? _fontSizesPerOrigin$d : []); + return !!fontSizes?.length || !disableCustomFontSizes; +} +function useHasFontFamilyControl(settings) { + var _fontFamiliesPerOrigi, _fontFamiliesPerOrigi2, _fontFamiliesPerOrigi3; + const fontFamiliesPerOrigin = settings?.typography?.fontFamilies; + const fontFamilies = [].concat((_fontFamiliesPerOrigi = fontFamiliesPerOrigin?.custom) !== null && _fontFamiliesPerOrigi !== void 0 ? _fontFamiliesPerOrigi : []).concat((_fontFamiliesPerOrigi2 = fontFamiliesPerOrigin?.theme) !== null && _fontFamiliesPerOrigi2 !== void 0 ? _fontFamiliesPerOrigi2 : []).concat((_fontFamiliesPerOrigi3 = fontFamiliesPerOrigin?.default) !== null && _fontFamiliesPerOrigi3 !== void 0 ? _fontFamiliesPerOrigi3 : []).sort((a, b) => (a?.name || a?.slug).localeCompare(b?.name || a?.slug)); + return !!fontFamilies?.length; +} +function useHasLineHeightControl(settings) { + return settings?.typography?.lineHeight; +} +function useHasAppearanceControl(settings) { + const hasFontStyles = settings?.typography?.fontStyle; + const hasFontWeights = settings?.typography?.fontWeight; + return hasFontStyles || hasFontWeights; +} +function useAppearanceControlLabel(settings) { + const hasFontStyles = settings?.typography?.fontStyle; + const hasFontWeights = settings?.typography?.fontWeight; + if (!hasFontStyles) { + return (0,external_wp_i18n_namespaceObject.__)('Font weight'); + } + if (!hasFontWeights) { + return (0,external_wp_i18n_namespaceObject.__)('Font style'); + } + return (0,external_wp_i18n_namespaceObject.__)('Appearance'); +} +function useHasLetterSpacingControl(settings) { + return settings?.typography?.letterSpacing; +} +function useHasTextTransformControl(settings) { + return settings?.typography?.textTransform; +} +function useHasTextDecorationControl(settings) { + return settings?.typography?.textDecoration; +} +function useHasWritingModeControl(settings) { + return settings?.typography?.writingMode; +} +function useHasTextColumnsControl(settings) { + return settings?.typography?.textColumns; +} +function getUniqueFontSizesBySlug(settings) { + var _settings$typography$2, _fontSizesPerOrigin$c2, _fontSizesPerOrigin$t2, _fontSizesPerOrigin$d2; + const fontSizesPerOrigin = (_settings$typography$2 = settings?.typography?.fontSizes) !== null && _settings$typography$2 !== void 0 ? _settings$typography$2 : {}; + const fontSizes = [].concat((_fontSizesPerOrigin$c2 = fontSizesPerOrigin?.custom) !== null && _fontSizesPerOrigin$c2 !== void 0 ? _fontSizesPerOrigin$c2 : []).concat((_fontSizesPerOrigin$t2 = fontSizesPerOrigin?.theme) !== null && _fontSizesPerOrigin$t2 !== void 0 ? _fontSizesPerOrigin$t2 : []).concat((_fontSizesPerOrigin$d2 = fontSizesPerOrigin.default) !== null && _fontSizesPerOrigin$d2 !== void 0 ? _fontSizesPerOrigin$d2 : []); + return fontSizes.reduce((acc, currentSize) => { + if (!acc.some(({ + slug + }) => slug === currentSize.slug)) { + acc.push(currentSize); } - }, [shouldSpeak]); - return (0,external_React_.createElement)("div", { - ref: ref, - role: "listbox", - "aria-orientation": "horizontal", - onFocus: () => { - setShouldSpeak(true); - }, - onBlur: event => { - const focusingOutsideGroup = !event.currentTarget.contains(event.relatedTarget); - if (focusingOutsideGroup) { - setShouldSpeak(false); + return acc; + }, []); +} +function TypographyToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject.__)('Typography'), + resetAll: resetAll, + panelId: panelId + }, children); +} +const typography_panel_DEFAULT_CONTROLS = { + fontFamily: true, + fontSize: true, + fontAppearance: true, + lineHeight: true, + letterSpacing: true, + textTransform: true, + textDecoration: true, + writingMode: true, + textColumns: true +}; +function TypographyPanel({ + as: Wrapper = TypographyToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = typography_panel_DEFAULT_CONTROLS +}) { + var _fontFamiliesPerOrigi4, _fontFamiliesPerOrigi5, _fontFamiliesPerOrigi6; + const decodeValue = rawValue => getValueFromVariable({ + settings + }, '', rawValue); + + // Font Family + const hasFontFamilyEnabled = useHasFontFamilyControl(settings); + const fontFamiliesPerOrigin = settings?.typography?.fontFamilies; + const fontFamilies = [].concat((_fontFamiliesPerOrigi4 = fontFamiliesPerOrigin?.custom) !== null && _fontFamiliesPerOrigi4 !== void 0 ? _fontFamiliesPerOrigi4 : []).concat((_fontFamiliesPerOrigi5 = fontFamiliesPerOrigin?.theme) !== null && _fontFamiliesPerOrigi5 !== void 0 ? _fontFamiliesPerOrigi5 : []).concat((_fontFamiliesPerOrigi6 = fontFamiliesPerOrigin?.default) !== null && _fontFamiliesPerOrigi6 !== void 0 ? _fontFamiliesPerOrigi6 : []); + const fontFamily = decodeValue(inheritedValue?.typography?.fontFamily); + const setFontFamily = newValue => { + const slug = fontFamilies?.find(({ + fontFamily: f + }) => f === newValue)?.slug; + onChange(setImmutably(value, ['typography', 'fontFamily'], slug ? `var:preset|font-family|${slug}` : newValue || undefined)); + }; + const hasFontFamily = () => !!value?.typography?.fontFamily; + const resetFontFamily = () => setFontFamily(undefined); + + // Font Size + const hasFontSizeEnabled = useHasFontSizeControl(settings); + const disableCustomFontSizes = !settings?.typography?.customFontSize; + const fontSizes = getUniqueFontSizesBySlug(settings); + const fontSize = decodeValue(inheritedValue?.typography?.fontSize); + const setFontSize = (newValue, metadata) => { + const actualValue = !!metadata?.slug ? `var:preset|font-size|${metadata?.slug}` : newValue; + onChange(setImmutably(value, ['typography', 'fontSize'], actualValue || undefined)); + }; + const hasFontSize = () => !!value?.typography?.fontSize; + const resetFontSize = () => setFontSize(undefined); + + // Appearance + const hasAppearanceControl = useHasAppearanceControl(settings); + const appearanceControlLabel = useAppearanceControlLabel(settings); + const hasFontStyles = settings?.typography?.fontStyle; + const hasFontWeights = settings?.typography?.fontWeight; + const fontStyle = decodeValue(inheritedValue?.typography?.fontStyle); + const fontWeight = decodeValue(inheritedValue?.typography?.fontWeight); + const setFontAppearance = ({ + fontStyle: newFontStyle, + fontWeight: newFontWeight + }) => { + onChange({ + ...value, + typography: { + ...value?.typography, + fontStyle: newFontStyle || undefined, + fontWeight: newFontWeight || undefined } - }, - ...props - }); -} -/* harmony default export */ var group = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxGroup)); + }); + }; + const hasFontAppearance = () => !!value?.typography?.fontStyle || !!value?.typography?.fontWeight; + const resetFontAppearance = () => { + setFontAppearance({}); + }; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/row.js + // Line Height + const hasLineHeightEnabled = useHasLineHeightControl(settings); + const lineHeight = decodeValue(inheritedValue?.typography?.lineHeight); + const setLineHeight = newValue => { + onChange(setImmutably(value, ['typography', 'lineHeight'], newValue || undefined)); + }; + const hasLineHeight = () => value?.typography?.lineHeight !== undefined; + const resetLineHeight = () => setLineHeight(undefined); -/** - * WordPress dependencies - */ + // Letter Spacing + const hasLetterSpacingControl = useHasLetterSpacingControl(settings); + const letterSpacing = decodeValue(inheritedValue?.typography?.letterSpacing); + const setLetterSpacing = newValue => { + onChange(setImmutably(value, ['typography', 'letterSpacing'], newValue || undefined)); + }; + const hasLetterSpacing = () => !!value?.typography?.letterSpacing; + const resetLetterSpacing = () => setLetterSpacing(undefined); + // Text Columns + const hasTextColumnsControl = useHasTextColumnsControl(settings); + const textColumns = decodeValue(inheritedValue?.typography?.textColumns); + const setTextColumns = newValue => { + onChange(setImmutably(value, ['typography', 'textColumns'], newValue || undefined)); + }; + const hasTextColumns = () => !!value?.typography?.textColumns; + const resetTextColumns = () => setTextColumns(undefined); + // Text Transform + const hasTextTransformControl = useHasTextTransformControl(settings); + const textTransform = decodeValue(inheritedValue?.typography?.textTransform); + const setTextTransform = newValue => { + onChange(setImmutably(value, ['typography', 'textTransform'], newValue || undefined)); + }; + const hasTextTransform = () => !!value?.typography?.textTransform; + const resetTextTransform = () => setTextTransform(undefined); -/** - * Internal dependencies - */ + // Text Decoration + const hasTextDecorationControl = useHasTextDecorationControl(settings); + const textDecoration = decodeValue(inheritedValue?.typography?.textDecoration); + const setTextDecoration = newValue => { + onChange(setImmutably(value, ['typography', 'textDecoration'], newValue || undefined)); + }; + const hasTextDecoration = () => !!value?.typography?.textDecoration; + const resetTextDecoration = () => setTextDecoration(undefined); -const { - CompositeGroupV2: CompositeGroup -} = unlock(external_wp_components_namespaceObject.privateApis); -function InserterListboxRow(props, ref) { - return (0,external_React_.createElement)(CompositeGroup, { - role: "presentation", - ref: ref, - ...props - }); + // Text Orientation + const hasWritingModeControl = useHasWritingModeControl(settings); + const writingMode = decodeValue(inheritedValue?.typography?.writingMode); + const setWritingMode = newValue => { + onChange(setImmutably(value, ['typography', 'writingMode'], newValue || undefined)); + }; + const hasWritingMode = () => !!value?.typography?.writingMode; + const resetWritingMode = () => setWritingMode(undefined); + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + typography: {} + }; + }, []); + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, hasFontFamilyEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + label: (0,external_wp_i18n_namespaceObject.__)('Font family'), + hasValue: hasFontFamily, + onDeselect: resetFontFamily, + isShownByDefault: defaultControls.fontFamily, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(FontFamilyControl, { + fontFamilies: fontFamilies, + value: fontFamily, + onChange: setFontFamily, + size: "__unstable-large", + __nextHasNoMarginBottom: true + })), hasFontSizeEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + label: (0,external_wp_i18n_namespaceObject.__)('Font size'), + hasValue: hasFontSize, + onDeselect: resetFontSize, + isShownByDefault: defaultControls.fontSize, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FontSizePicker, { + value: fontSize, + onChange: setFontSize, + fontSizes: fontSizes, + disableCustomFontSizes: disableCustomFontSizes, + withReset: false, + withSlider: true, + size: "__unstable-large", + __nextHasNoMarginBottom: true + })), hasAppearanceControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: appearanceControlLabel, + hasValue: hasFontAppearance, + onDeselect: resetFontAppearance, + isShownByDefault: defaultControls.fontAppearance, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(FontAppearanceControl, { + value: { + fontStyle, + fontWeight + }, + onChange: setFontAppearance, + hasFontStyles: hasFontStyles, + hasFontWeights: hasFontWeights, + size: "__unstable-large", + __nextHasNoMarginBottom: true + })), hasLineHeightEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Line height'), + hasValue: hasLineHeight, + onDeselect: resetLineHeight, + isShownByDefault: defaultControls.lineHeight, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(line_height_control, { + __nextHasNoMarginBottom: true, + __unstableInputWidth: "auto", + value: lineHeight, + onChange: setLineHeight, + size: "__unstable-large" + })), hasLetterSpacingControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Letter spacing'), + hasValue: hasLetterSpacing, + onDeselect: resetLetterSpacing, + isShownByDefault: defaultControls.letterSpacing, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(LetterSpacingControl, { + value: letterSpacing, + onChange: setLetterSpacing, + size: "__unstable-large", + __unstableInputWidth: "auto" + })), hasTextColumnsControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Text columns'), + hasValue: hasTextColumns, + onDeselect: resetTextColumns, + isShownByDefault: defaultControls.textColumns, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Text columns'), + max: MAX_TEXT_COLUMNS, + min: MIN_TEXT_COLUMNS, + onChange: setTextColumns, + size: "__unstable-large", + spinControls: "custom", + value: textColumns, + initialPosition: 1 + })), hasTextDecorationControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Text decoration'), + hasValue: hasTextDecoration, + onDeselect: resetTextDecoration, + isShownByDefault: defaultControls.textDecoration, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(TextDecorationControl, { + value: textDecoration, + onChange: setTextDecoration, + size: "__unstable-large", + __unstableInputWidth: "auto" + })), hasWritingModeControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Text orientation'), + hasValue: hasWritingMode, + onDeselect: resetWritingMode, + isShownByDefault: defaultControls.writingMode, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(WritingModeControl, { + value: writingMode, + onChange: setWritingMode, + size: "__unstable-large", + __nextHasNoMarginBottom: true + })), hasTextTransformControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + label: (0,external_wp_i18n_namespaceObject.__)('Letter case'), + hasValue: hasTextTransform, + onDeselect: resetTextTransform, + isShownByDefault: defaultControls.textTransform, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(TextTransformControl, { + value: textTransform, + onChange: setTextTransform, + showNone: true, + isBlock: true, + size: "__unstable-large", + __nextHasNoMarginBottom: true + }))); } -/* harmony default export */ var inserter_listbox_row = ((0,external_wp_element_namespaceObject.forwardRef)(InserterListboxRow)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-types-list/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/line-height.js /** * WordPress dependencies */ - /** * Internal dependencies */ -function chunk(array, size) { - const chunks = []; - for (let i = 0, j = array.length; i < j; i += size) { - chunks.push(array.slice(i, i + size)); - } - return chunks; -} -function BlockTypesList({ - items = [], - onSelect, - onHover = () => {}, - children, - label, - isDraggable = true -}) { - const className = 'block-editor-block-types-list'; - const listId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockTypesList, className); - return (0,external_React_.createElement)(group, { - className: className, - "aria-label": label - }, chunk(items, 3).map((row, i) => (0,external_React_.createElement)(inserter_listbox_row, { - key: i - }, row.map((item, j) => (0,external_React_.createElement)(inserter_list_item, { - key: item.id, - item: item, - className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(item.id), - onSelect: onSelect, - onHover: onHover, - isDraggable: isDraggable && !item.isDisabled, - isFirst: i === 0 && j === 0, - rowId: `${listId}-${i}` - })))), children); -} -/* harmony default export */ var block_types_list = (BlockTypesList); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/panel.js +const LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight'; /** - * WordPress dependencies + * Inspector control panel containing the line height related configuration + * + * @param {Object} props + * + * @return {WPElement} Line height edit element. */ - -function InserterPanel({ - title, - icon, - children -}) { - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - className: "block-editor-inserter__panel-header" - }, (0,external_React_.createElement)("h2", { - className: "block-editor-inserter__panel-title" - }, title), (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - icon: icon - })), (0,external_React_.createElement)("div", { - className: "block-editor-inserter__panel-content" - }, children)); +function LineHeightEdit(props) { + const { + attributes: { + style + }, + setAttributes + } = props; + const onChange = newLineHeightValue => { + const newStyle = { + ...style, + typography: { + ...style?.typography, + lineHeight: newLineHeightValue + } + }; + setAttributes({ + style: cleanEmptyObject(newStyle) + }); + }; + return createElement(LineHeightControl, { + __unstableInputWidth: "100%", + __nextHasNoMarginBottom: true, + value: style?.typography?.lineHeight, + onChange: onChange, + size: "__unstable-large" + }); } -/* harmony default export */ var panel = (InserterPanel); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-listbox/index.js - -/** - * WordPress dependencies - */ - /** - * Internal dependencies + * Custom hook that checks if line-height settings have been disabled. + * + * @param {string} name The name of the block. + * @return {boolean} Whether setting is disabled. */ - - - - -const { - CompositeV2: Composite, - useCompositeStoreV2: useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); -function InserterListbox({ - children -}) { - const store = useCompositeStore({ - focusShift: true, - focusWrap: 'horizontal' - }); - return (0,external_React_.createElement)(Composite, { - store: store, - render: (0,external_React_.createElement)(external_React_.Fragment, null) - }, children); +function useIsLineHeightDisabled({ + name: blockName +} = {}) { + const isDisabled = !useSetting('typography.lineHeight'); + return !hasBlockSupport(blockName, LINE_HEIGHT_SUPPORT_KEY) || isDisabled; } -/* harmony default export */ var inserter_listbox = (InserterListbox); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-types-tab.js +;// CONCATENATED MODULE: external ["wp","tokenList"] +var external_wp_tokenList_namespaceObject = window["wp"]["tokenList"]; +var external_wp_tokenList_default = /*#__PURE__*/__webpack_require__.n(external_wp_tokenList_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/font-family.js /** * WordPress dependencies */ @@ -45640,257 +38952,167 @@ function InserterListbox({ - - -const getBlockNamespace = item => item.name.split('/')[0]; -const MAX_SUGGESTED_ITEMS = 6; +const FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily'; /** - * Shared reference to an empty array for cases where it is important to avoid - * returning a new array reference on every invocation and rerendering the component. + * Filters registered block settings, extending attributes to include + * the `fontFamily` attribute. * - * @type {Array} + * @param {Object} settings Original block settings + * @return {Object} Filtered block settings */ -const block_types_tab_EMPTY_ARRAY = []; -function BlockTypesTab({ - rootClientId, - onInsert, - onHover, - showMostUsedBlocks -}) { - const [items, categories, collections, onSelectItem] = use_block_types_state(rootClientId, onInsert); - const suggestedItems = (0,external_wp_element_namespaceObject.useMemo)(() => { - return orderBy(items, 'frecency', 'desc').slice(0, MAX_SUGGESTED_ITEMS); - }, [items]); - const uncategorizedItems = (0,external_wp_element_namespaceObject.useMemo)(() => { - return items.filter(item => !item.category); - }, [items]); - const itemsPerCategory = (0,external_wp_element_namespaceObject.useMemo)(() => { - return (0,external_wp_compose_namespaceObject.pipe)(itemList => itemList.filter(item => item.category && item.category !== 'reusable'), itemList => itemList.reduce((acc, item) => { - const { - category - } = item; - if (!acc[category]) { - acc[category] = []; - } - acc[category].push(item); - return acc; - }, {}))(items); - }, [items]); - const itemsPerCollection = (0,external_wp_element_namespaceObject.useMemo)(() => { - // Create a new Object to avoid mutating collection. - const result = { - ...collections - }; - Object.keys(collections).forEach(namespace => { - result[namespace] = items.filter(item => getBlockNamespace(item) === namespace); - if (result[namespace].length === 0) { - delete result[namespace]; +function font_family_addAttributes(settings) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_FAMILY_SUPPORT_KEY)) { + return settings; + } + + // Allow blocks to specify a default value if needed. + if (!settings.attributes.fontFamily) { + Object.assign(settings.attributes, { + fontFamily: { + type: 'string' } }); - return result; - }, [items, collections]); - - // Hide block preview on unmount. - (0,external_wp_element_namespaceObject.useEffect)(() => () => onHover(null), []); - - /** - * The inserter contains a big number of blocks and opening it is a costful operation. - * The rendering is the most costful part of it, in order to improve the responsiveness - * of the "opening" action, these lazy lists allow us to render the inserter category per category, - * once all the categories are rendered, we start rendering the collections and the uncategorized block types. - */ - const currentlyRenderedCategories = (0,external_wp_compose_namespaceObject.useAsyncList)(categories); - const didRenderAllCategories = categories.length === currentlyRenderedCategories.length; - - // Async List requires an array. - const collectionEntries = (0,external_wp_element_namespaceObject.useMemo)(() => { - return Object.entries(collections); - }, [collections]); - const currentlyRenderedCollections = (0,external_wp_compose_namespaceObject.useAsyncList)(didRenderAllCategories ? collectionEntries : block_types_tab_EMPTY_ARRAY); - return (0,external_React_.createElement)(inserter_listbox, null, (0,external_React_.createElement)("div", null, showMostUsedBlocks && !!suggestedItems.length && (0,external_React_.createElement)(panel, { - title: (0,external_wp_i18n_namespaceObject._x)('Most used', 'blocks') - }, (0,external_React_.createElement)(block_types_list, { - items: suggestedItems, - onSelect: onSelectItem, - onHover: onHover, - label: (0,external_wp_i18n_namespaceObject._x)('Most used', 'blocks') - })), currentlyRenderedCategories.map(category => { - const categoryItems = itemsPerCategory[category.slug]; - if (!categoryItems || !categoryItems.length) { - return null; - } - return (0,external_React_.createElement)(panel, { - key: category.slug, - title: category.title, - icon: category.icon - }, (0,external_React_.createElement)(block_types_list, { - items: categoryItems, - onSelect: onSelectItem, - onHover: onHover, - label: category.title - })); - }), didRenderAllCategories && uncategorizedItems.length > 0 && (0,external_React_.createElement)(panel, { - className: "block-editor-inserter__uncategorized-blocks-panel", - title: (0,external_wp_i18n_namespaceObject.__)('Uncategorized') - }, (0,external_React_.createElement)(block_types_list, { - items: uncategorizedItems, - onSelect: onSelectItem, - onHover: onHover, - label: (0,external_wp_i18n_namespaceObject.__)('Uncategorized') - })), currentlyRenderedCollections.map(([namespace, collection]) => { - const collectionItems = itemsPerCollection[namespace]; - if (!collectionItems || !collectionItems.length) { - return null; - } - return (0,external_React_.createElement)(panel, { - key: namespace, - title: collection.title, - icon: collection.icon - }, (0,external_React_.createElement)(block_types_list, { - items: collectionItems, - onSelect: onSelectItem, - onHover: onHover, - label: collection.title - })); - }))); + } + return settings; } -/* harmony default export */ var block_types_tab = (BlockTypesTab); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js /** - * WordPress dependencies + * Override props assigned to save component to inject font family. + * + * @param {Object} props Additional props applied to save element + * @param {Object} blockType Block type + * @param {Object} attributes Block attributes + * @return {Object} Filtered props applied to save element */ +function font_family_addSaveProps(props, blockType, attributes) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, FONT_FAMILY_SUPPORT_KEY)) { + return props; + } + if (shouldSkipSerialization(blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontFamily')) { + return props; + } + if (!attributes?.fontFamily) { + return props; + } - -function PatternCategoriesList({ - selectedCategory, - patternCategories, - onClickCategory -}) { - const baseClassName = 'block-editor-block-patterns-explorer__sidebar'; - return (0,external_React_.createElement)("div", { - className: `${baseClassName}__categories-list` - }, patternCategories.map(({ - name, - label - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: name, - label: label, - className: `${baseClassName}__categories-list__item`, - isPressed: selectedCategory === name, - onClick: () => { - onClickCategory(name); - } - }, label); - })); -} -function PatternsExplorerSearch({ - searchValue, - setSearchValue -}) { - const baseClassName = 'block-editor-block-patterns-explorer__search'; - return (0,external_React_.createElement)("div", { - className: baseClassName - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SearchControl, { - __nextHasNoMarginBottom: true, - onChange: setSearchValue, - value: searchValue, - label: (0,external_wp_i18n_namespaceObject.__)('Search for patterns'), - placeholder: (0,external_wp_i18n_namespaceObject.__)('Search') - })); + // Use TokenList to dedupe classes. + const classes = new (external_wp_tokenList_default())(props.className); + classes.add(`has-${kebabCase(attributes?.fontFamily)}-font-family`); + const newClassName = classes.value; + props.className = newClassName ? newClassName : undefined; + return props; } -function PatternExplorerSidebar({ - selectedCategory, - patternCategories, - onClickCategory, - searchValue, - setSearchValue -}) { - const baseClassName = 'block-editor-block-patterns-explorer__sidebar'; - return (0,external_React_.createElement)("div", { - className: baseClassName - }, (0,external_React_.createElement)(PatternsExplorerSearch, { - searchValue: searchValue, - setSearchValue: setSearchValue - }), !searchValue && (0,external_React_.createElement)(PatternCategoriesList, { - selectedCategory: selectedCategory, - patternCategories: patternCategories, - onClickCategory: onClickCategory - })); + +/** + * Filters registered block settings to expand the block edit wrapper + * by applying the desired styles and classnames. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function font_family_addEditProps(settings) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_FAMILY_SUPPORT_KEY)) { + return settings; + } + const existingGetEditWrapperProps = settings.getEditWrapperProps; + settings.getEditWrapperProps = attributes => { + let props = {}; + if (existingGetEditWrapperProps) { + props = existingGetEditWrapperProps(attributes); + } + return font_family_addSaveProps(props, settings, attributes); + }; + return settings; } -/* harmony default export */ var pattern_explorer_sidebar = (PatternExplorerSidebar); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-patterns-paging/index.js +/** + * Resets the font family block support attribute. This can be used when + * disabling the font family support controls for a block via a progressive + * discovery panel. + * + * @param {Object} props Block props. + * @param {Object} props.setAttributes Function to set block's attributes. + */ +function resetFontFamily({ + setAttributes +}) { + setAttributes({ + fontFamily: undefined + }); +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/fontFamily/addAttribute', font_family_addAttributes); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/fontFamily/addSaveProps', font_family_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/fontFamily/addEditProps', font_family_addEditProps); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/utils.js /** - * WordPress dependencies + * Internal dependencies */ -function Pagination({ - currentPage, - numPages, - changePage, - totalItems -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - className: "block-editor-patterns__grid-pagination-wrapper" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalText, { - variant: "muted" - }, - // translators: %s: Total number of patterns. - (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Total number of patterns. - (0,external_wp_i18n_namespaceObject._n)('%s item', '%s items', totalItems), totalItems)), numPages > 1 && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - expanded: false, - spacing: 3, - justify: "flex-start", - className: "block-editor-patterns__grid-pagination" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - expanded: false, - spacing: 1, - className: "block-editor-patterns__grid-pagination-previous" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: () => changePage(1), - disabled: currentPage === 1, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('First page') - }, (0,external_React_.createElement)("span", null, "\xAB")), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: () => changePage(currentPage - 1), - disabled: currentPage === 1, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page') - }, (0,external_React_.createElement)("span", null, "\u2039"))), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalText, { - variant: "muted" - }, (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %1$s: Current page number, %2$s: Total number of pages. - (0,external_wp_i18n_namespaceObject._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - expanded: false, - spacing: 1, - className: "block-editor-patterns__grid-pagination-next" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: () => changePage(currentPage + 1), - disabled: currentPage === numPages, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page') - }, (0,external_React_.createElement)("span", null, "\u203A")), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: () => changePage(numPages), - disabled: currentPage === numPages, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Last page'), - size: "default" - }, (0,external_React_.createElement)("span", null, "\xBB"))))); -} +/** + * Returns the font size object based on an array of named font sizes and the namedFontSize and customFontSize values. + * If namedFontSize is undefined or not found in fontSizes an object with just the size value based on customFontSize is returned. + * + * @param {Array} fontSizes Array of font size objects containing at least the "name" and "size" values as properties. + * @param {?string} fontSizeAttribute Content of the font size attribute (slug). + * @param {?number} customFontSizeAttribute Contents of the custom font size attribute (value). + * + * @return {?Object} If fontSizeAttribute is set and an equal slug is found in fontSizes it returns the font size object for that slug. + * Otherwise, an object with just the size value based on customFontSize is returned. + */ +const utils_getFontSize = (fontSizes, fontSizeAttribute, customFontSizeAttribute) => { + if (fontSizeAttribute) { + const fontSizeObject = fontSizes?.find(({ + slug + }) => slug === fontSizeAttribute); + if (fontSizeObject) { + return fontSizeObject; + } + } + return { + size: customFontSizeAttribute + }; +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-patterns-list/index.js +/** + * Returns the corresponding font size object for a given value. + * + * @param {Array} fontSizes Array of font size objects. + * @param {number} value Font size value. + * + * @return {Object} Font size object. + */ +function utils_getFontSizeObjectByValue(fontSizes, value) { + const fontSizeObject = fontSizes?.find(({ + size + }) => size === value); + if (fontSizeObject) { + return fontSizeObject; + } + return { + size: value + }; +} /** - * External dependencies + * Returns a class based on fontSizeName. + * + * @param {string} fontSizeSlug Slug of the fontSize. + * + * @return {string | undefined} String with the class corresponding to the fontSize passed. + * The class is generated by appending 'has-' followed by fontSizeSlug in kebabCase and ending with '-font-size'. */ +function getFontSizeClass(fontSizeSlug) { + if (!fontSizeSlug) { + return; + } + return `has-${kebabCase(fontSizeSlug)}-font-size`; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/font-size.js /** * WordPress dependencies @@ -45909,405 +39131,378 @@ function Pagination({ -const { - CompositeV2: block_patterns_list_Composite, - CompositeItemV2: block_patterns_list_CompositeItem, - useCompositeStoreV2: block_patterns_list_useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); -const WithToolTip = ({ - showTooltip, - title, - children -}) => { - if (showTooltip) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: title - }, children); - } - return (0,external_React_.createElement)(external_React_.Fragment, null, children); -}; -function BlockPattern({ - id, - isDraggable, - pattern, - onClick, - onHover, - showTooltip -}) { - const [isDragging, setIsDragging] = (0,external_wp_element_namespaceObject.useState)(false); - const { - blocks, - viewportWidth - } = pattern; - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockPattern); - const descriptionId = `block-editor-block-patterns-list__item-description-${instanceId}`; - return (0,external_React_.createElement)(inserter_draggable_blocks, { - isEnabled: isDraggable, - blocks: blocks, - pattern: pattern - }, ({ - draggable, - onDragStart, - onDragEnd - }) => (0,external_React_.createElement)("div", { - className: "block-editor-block-patterns-list__list-item", - draggable: draggable, - onDragStart: event => { - setIsDragging(true); - if (onDragStart) { - onHover?.(null); - onDragStart(event); - } - }, - onDragEnd: event => { - setIsDragging(false); - if (onDragEnd) { - onDragEnd(event); - } - } - }, (0,external_React_.createElement)(WithToolTip, { - showTooltip: showTooltip && !pattern.type !== INSERTER_PATTERN_TYPES.user, - title: pattern.title - }, (0,external_React_.createElement)(block_patterns_list_CompositeItem, { - render: (0,external_React_.createElement)("div", { - role: "option", - "aria-label": pattern.title, - "aria-describedby": pattern.description ? descriptionId : undefined, - className: classnames_default()('block-editor-block-patterns-list__item', { - 'block-editor-block-patterns-list__list-item-synced': pattern.type === INSERTER_PATTERN_TYPES.user && !pattern.syncStatus - }) - }), - id: id, - onClick: () => { - onClick(pattern, blocks); - onHover?.(null); - }, - onMouseEnter: () => { - if (isDragging) { - return; - } - onHover?.(pattern); - }, - onMouseLeave: () => onHover?.(null) - }, (0,external_React_.createElement)(block_preview, { - blocks: blocks, - viewportWidth: viewportWidth - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - className: "block-editor-patterns__pattern-details" - }, pattern.type === INSERTER_PATTERN_TYPES.user && !pattern.syncStatus && (0,external_React_.createElement)("div", { - className: "block-editor-patterns__pattern-icon-wrapper" - }, (0,external_React_.createElement)(build_module_icon, { - className: "block-editor-patterns__pattern-icon", - icon: library_symbol - })), (!showTooltip || pattern.type === INSERTER_PATTERN_TYPES.user) && (0,external_React_.createElement)("div", { - className: "block-editor-block-patterns-list__item-title" - }, pattern.title)), !!pattern.description && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: descriptionId - }, pattern.description))))); -} -function BlockPatternPlaceholder() { - return (0,external_React_.createElement)("div", { - className: "block-editor-block-patterns-list__item is-placeholder" - }); -} -function BlockPatternsList({ - isDraggable, - blockPatterns, - shownPatterns, - onHover, - onClickPattern, - orientation, - label = (0,external_wp_i18n_namespaceObject.__)('Block patterns'), - showTitlesAsTooltip, - pagingProps -}, ref) { - const compositeStore = block_patterns_list_useCompositeStore({ - orientation - }); - const { - setActiveId - } = compositeStore; - (0,external_wp_element_namespaceObject.useEffect)(() => { - // We reset the active composite item whenever the - // available patterns change, to make sure that - // focus is put back to the start. - setActiveId(undefined); - }, [setActiveId, shownPatterns, blockPatterns]); - return (0,external_React_.createElement)(block_patterns_list_Composite, { - store: compositeStore, - role: "listbox", - className: "block-editor-block-patterns-list", - "aria-label": label, - ref: ref - }, blockPatterns.map(pattern => { - const isShown = shownPatterns.includes(pattern); - return isShown ? (0,external_React_.createElement)(BlockPattern, { - key: pattern.name, - id: pattern.name, - pattern: pattern, - onClick: onClickPattern, - onHover: onHover, - isDraggable: isDraggable, - showTooltip: showTitlesAsTooltip - }) : (0,external_React_.createElement)(BlockPatternPlaceholder, { - key: pattern.name - }); - }), pagingProps && (0,external_React_.createElement)(Pagination, { - ...pagingProps - })); -} -/* harmony default export */ var block_patterns_list = ((0,external_wp_element_namespaceObject.forwardRef)(BlockPatternsList)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-insertion-point.js +const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize'; + /** - * WordPress dependencies + * Filters registered block settings, extending attributes to include + * `fontSize` and `fontWeight` attributes. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. */ +function font_size_addAttributes(settings) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_SIZE_SUPPORT_KEY)) { + return settings; + } - - - - + // Allow blocks to specify a default value if needed. + if (!settings.attributes.fontSize) { + Object.assign(settings.attributes, { + fontSize: { + type: 'string' + } + }); + } + return settings; +} /** - * Internal dependencies + * Override props assigned to save component to inject font size. + * + * @param {Object} props Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Block attributes. + * + * @return {Object} Filtered props applied to save element. */ +function font_size_addSaveProps(props, blockType, attributes) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, FONT_SIZE_SUPPORT_KEY)) { + return props; + } + if (shouldSkipSerialization(blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize')) { + return props; + } + // Use TokenList to dedupe classes. + const classes = new (external_wp_tokenList_default())(props.className); + classes.add(getFontSizeClass(attributes.fontSize)); + const newClassName = classes.value; + props.className = newClassName ? newClassName : undefined; + return props; +} /** - * @typedef WPInserterConfig + * Filters registered block settings to expand the block edit wrapper + * by applying the desired styles and classnames. * - * @property {string=} rootClientId If set, insertion will be into the - * block with this ID. - * @property {number=} insertionIndex If set, insertion will be into this - * explicit position. - * @property {string=} clientId If set, insertion will be after the - * block with this ID. - * @property {boolean=} isAppender Whether the inserter is an appender - * or not. - * @property {Function=} onSelect Called after insertion. + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. */ +function font_size_addEditProps(settings) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, FONT_SIZE_SUPPORT_KEY)) { + return settings; + } + const existingGetEditWrapperProps = settings.getEditWrapperProps; + settings.getEditWrapperProps = attributes => { + let props = {}; + if (existingGetEditWrapperProps) { + props = existingGetEditWrapperProps(attributes); + } + return font_size_addSaveProps(props, settings, attributes); + }; + return settings; +} /** - * Returns the insertion point state given the inserter config. + * Inspector control panel containing the font size related configuration * - * @param {WPInserterConfig} config Inserter Config. - * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle). + * @param {Object} props + * + * @return {WPElement} Font size edit element. */ -function useInsertionPoint({ - rootClientId = '', - insertionIndex, - clientId, - isAppender, - onSelect, - shouldFocusBlock = true, - selectBlockOnInsert = true -}) { - const { - getSelectedBlock - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - destinationRootClientId, - destinationIndex - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectedBlockClientId, - getBlockRootClientId, - getBlockIndex, - getBlockOrder - } = select(store); - const selectedBlockClientId = getSelectedBlockClientId(); - let _destinationRootClientId = rootClientId; - let _destinationIndex; - if (insertionIndex !== undefined) { - // Insert into a specific index. - _destinationIndex = insertionIndex; - } else if (clientId) { - // Insert after a specific client ID. - _destinationIndex = getBlockIndex(clientId); - } else if (!isAppender && selectedBlockClientId) { - _destinationRootClientId = getBlockRootClientId(selectedBlockClientId); - _destinationIndex = getBlockIndex(selectedBlockClientId) + 1; - } else { - // Insert at the end of the list. - _destinationIndex = getBlockOrder(_destinationRootClientId).length; - } - return { - destinationRootClientId: _destinationRootClientId, - destinationIndex: _destinationIndex - }; - }, [rootClientId, insertionIndex, clientId, isAppender]); +function FontSizeEdit(props) { const { - replaceBlocks, - insertBlocks, - showInsertionPoint, - hideInsertionPoint - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const onInsertBlocks = (0,external_wp_element_namespaceObject.useCallback)((blocks, meta, shouldForceFocusBlock = false) => { - const selectedBlock = getSelectedBlock(); - if (!isAppender && selectedBlock && (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(selectedBlock)) { - replaceBlocks(selectedBlock.clientId, blocks, null, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); - } else { - insertBlocks(blocks, destinationIndex, destinationRootClientId, selectBlockOnInsert, shouldFocusBlock || shouldForceFocusBlock ? 0 : null, meta); - } - const blockLength = Array.isArray(blocks) ? blocks.length : 1; - const message = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %d: the name of the block that has been added - (0,external_wp_i18n_namespaceObject._n)('%d block added.', '%d blocks added.', blockLength), blockLength); - (0,external_wp_a11y_namespaceObject.speak)(message); - if (onSelect) { - onSelect(blocks); - } - }, [isAppender, getSelectedBlock, replaceBlocks, insertBlocks, destinationRootClientId, destinationIndex, onSelect, shouldFocusBlock, selectBlockOnInsert]); - const onToggleInsertionPoint = (0,external_wp_element_namespaceObject.useCallback)(show => { - if (show) { - showInsertionPoint(destinationRootClientId, destinationIndex); - } else { - hideInsertionPoint(); - } - }, [showInsertionPoint, hideInsertionPoint, destinationRootClientId, destinationIndex]); - return [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint]; + attributes: { + fontSize, + style + }, + setAttributes + } = props; + const fontSizes = useSetting('typography.fontSizes'); + const onChange = value => { + const fontSizeSlug = getFontSizeObjectByValue(fontSizes, value).slug; + setAttributes({ + style: cleanEmptyObject({ + ...style, + typography: { + ...style?.typography, + fontSize: fontSizeSlug ? undefined : value + } + }), + fontSize: fontSizeSlug + }); + }; + const fontSizeObject = getFontSize(fontSizes, fontSize, style?.typography?.fontSize); + const fontSizeValue = fontSizeObject?.size || style?.typography?.fontSize || fontSize; + return createElement(FontSizePicker, { + onChange: onChange, + value: fontSizeValue, + withReset: false, + withSlider: true, + size: "__unstable-large", + __nextHasNoMarginBottom: true + }); } -/* harmony default export */ var use_insertion_point = (useInsertionPoint); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-patterns-state.js /** - * WordPress dependencies + * Custom hook that checks if font-size settings have been disabled. + * + * @param {string} name The name of the block. + * @return {boolean} Whether setting is disabled. */ - - - - - +function useIsFontSizeDisabled({ + name: blockName +} = {}) { + const fontSizes = useSetting('typography.fontSizes'); + const hasFontSizes = !!fontSizes?.length; + return !hasBlockSupport(blockName, FONT_SIZE_SUPPORT_KEY) || !hasFontSizes; +} /** - * Internal dependencies + * Add inline styles for font sizes. + * Ideally, this is not needed and themes load the font-size classes on the + * editor. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. */ +const withFontSizeInlineStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const fontSizes = use_setting_useSetting('typography.fontSizes'); + const { + name: blockName, + attributes: { + fontSize, + style + }, + wrapperProps + } = props; - + // Only add inline styles if the block supports font sizes, + // doesn't skip serialization of font sizes, + // doesn't already have an inline font size, + // and does have a class to extract the font size from. + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, FONT_SIZE_SUPPORT_KEY) || shouldSkipSerialization(blockName, TYPOGRAPHY_SUPPORT_KEY, 'fontSize') || !fontSize || style?.typography?.fontSize) { + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props + }); + } + const fontSizeValue = utils_getFontSize(fontSizes, fontSize, style?.typography?.fontSize).size; + const newProps = { + ...props, + wrapperProps: { + ...wrapperProps, + style: { + fontSize: fontSizeValue, + ...wrapperProps?.style + } + } + }; + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...newProps + }); +}, 'withFontSizeInlineStyles'); +const font_size_MIGRATION_PATHS = { + fontSize: [['fontSize'], ['style', 'typography', 'fontSize']] +}; +function font_size_addTransforms(result, source, index, results) { + const destinationBlockType = result.name; + const activeSupports = { + fontSize: (0,external_wp_blocks_namespaceObject.hasBlockSupport)(destinationBlockType, FONT_SIZE_SUPPORT_KEY) + }; + return transformStyles(activeSupports, font_size_MIGRATION_PATHS, result, source, index, results); +} /** - * Retrieves the block patterns inserter state. + * Allow custom font sizes to appear fluid when fluid typography is enabled at + * the theme level. * - * @param {Function} onInsert function called when inserter a list of blocks. - * @param {string=} rootClientId Insertion's root client ID. + * Adds a custom getEditWrapperProps() callback to all block types that support + * font sizes. Then, if fluid typography is enabled, this callback will swap any + * custom font size in style.fontSize with a fluid font size (i.e. one that uses + * clamp()). * - * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler) + * It's important that this hook runs after 'core/style/addEditProps' sets + * style.fontSize as otherwise fontSize will be overwritten. + * + * @param {Object} blockType Block settings object. */ -const usePatternsState = (onInsert, rootClientId) => { - const { - patternCategories, - patterns, - userPatternCategories - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - __experimentalGetAllowedPatterns, - getSettings - } = select(store); - const { - __experimentalUserPatternCategories, - __experimentalBlockPatternCategories - } = getSettings(); +function addEditPropsForFluidCustomFontSizes(blockType) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, FONT_SIZE_SUPPORT_KEY) || shouldSkipSerialization(blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize')) { + return blockType; + } + const existingGetEditWrapperProps = blockType.getEditWrapperProps; + blockType.getEditWrapperProps = attributes => { + const wrapperProps = existingGetEditWrapperProps ? existingGetEditWrapperProps(attributes) : {}; + const fontSize = wrapperProps?.style?.fontSize; + + // TODO: This sucks! We should be using useSetting( 'typography.fluid' ) + // or even useSelect( blockEditorStore ). We can't do either here + // because getEditWrapperProps is a plain JavaScript function called by + // BlockListBlock and not a React component rendered within + // BlockListContext.Provider. If we set fontSize using editor. + // BlockListBlock instead of using getEditWrapperProps then the value is + // clobbered when the core/style/addEditProps filter runs. + const fluidTypographySettings = getFluidTypographyOptionsFromSettings((0,external_wp_data_namespaceObject.select)(store).getSettings().__experimentalFeatures); + const newFontSize = fontSize ? getTypographyFontSizeValue({ + size: fontSize + }, fluidTypographySettings) : null; + if (newFontSize === null) { + return wrapperProps; + } return { - patterns: __experimentalGetAllowedPatterns(rootClientId), - userPatternCategories: __experimentalUserPatternCategories, - patternCategories: __experimentalBlockPatternCategories - }; - }, [rootClientId]); - const allCategories = (0,external_wp_element_namespaceObject.useMemo)(() => { - const categories = [...patternCategories]; - userPatternCategories?.forEach(userCategory => { - if (!categories.find(existingCategory => existingCategory.name === userCategory.name)) { - categories.push(userCategory); + ...wrapperProps, + style: { + ...wrapperProps?.style, + fontSize: newFontSize } - }); - return categories; - }, [patternCategories, userPatternCategories]); - const { - createSuccessNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - const onClickPattern = (0,external_wp_element_namespaceObject.useCallback)((pattern, blocks) => { - const patternBlocks = pattern.type === INSERTER_PATTERN_TYPES.user && pattern.syncStatus !== 'unsynced' ? [(0,external_wp_blocks_namespaceObject.createBlock)('core/block', { - ref: pattern.id - })] : blocks; - onInsert((patternBlocks !== null && patternBlocks !== void 0 ? patternBlocks : []).map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)), pattern.name); - createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block pattern title. */ - (0,external_wp_i18n_namespaceObject.__)('Block pattern "%s" inserted.'), pattern.title), { - type: 'snackbar', - id: 'block-pattern-inserted-notice' - }); - }, [createSuccessNotice, onInsert]); - return [patterns, allCategories, onClickPattern]; -}; -/* harmony default export */ var use_patterns_state = (usePatternsState); + }; + }; + return blockType; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/font/addAttribute', font_size_addAttributes); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/font/addSaveProps', font_size_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/font/addEditProps', font_size_addEditProps); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/font-size/with-font-size-inline-styles', withFontSizeInlineStyles); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/font-size/addTransforms', font_size_addTransforms); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/font-size/addEditPropsForFluidCustomFontSizes', addEditPropsForFluidCustomFontSizes, +// Run after 'core/style/addEditProps' so that the style object has already +// been translated into inline CSS. +11); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/typography.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-patterns-paging.js /** * WordPress dependencies */ -const PAGE_SIZE = 20; -const INITIAL_INSERTER_RESULTS = 5; - /** - * Supplies values needed to page the patterns list client side. - * - * @param {Array} currentCategoryPatterns An array of the current patterns to display. - * @param {string} currentCategory The currently selected category. - * @param {Object} scrollContainerRef Ref of container to to find scroll container for when moving between pages. - * @param {string} currentFilter The currently search filter. - * - * @return {Object} Returns the relevant paging values. (totalItems, categoryPatternsList, numPages, changePage, currentPage) + * Internal dependencies */ -function usePatternsPaging(currentCategoryPatterns, currentCategory, scrollContainerRef, currentFilter = '') { - const [currentPage, setCurrentPage] = (0,external_wp_element_namespaceObject.useState)(1); - const previousCategory = (0,external_wp_compose_namespaceObject.usePrevious)(currentCategory); - const previousFilter = (0,external_wp_compose_namespaceObject.usePrevious)(currentFilter); - if ((previousCategory !== currentCategory || previousFilter !== currentFilter) && currentPage !== 1) { - setCurrentPage(1); - } - const totalItems = currentCategoryPatterns.length; - const pageIndex = currentPage - 1; - const categoryPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { - return currentCategoryPatterns.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE); - }, [pageIndex, currentCategoryPatterns]); - const categoryPatternsAsyncList = (0,external_wp_compose_namespaceObject.useAsyncList)(categoryPatterns, { - step: INITIAL_INSERTER_RESULTS - }); - const numPages = Math.ceil(currentCategoryPatterns.length / PAGE_SIZE); - const changePage = page => { - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(scrollContainerRef?.current); - scrollContainer?.scrollTo(0, 0); - setCurrentPage(page); + + + + + + +function omit(object, keys) { + return Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key))); +} +const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing'; +const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform'; +const TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration'; +const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns'; +const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle'; +const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight'; +const WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode'; +const TYPOGRAPHY_SUPPORT_KEY = 'typography'; +const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_COLUMNS_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, WRITING_MODE_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY]; +function typography_styleToAttributes(style) { + const updatedStyle = { + ...omit(style, ['fontFamily']) + }; + const fontSizeValue = style?.typography?.fontSize; + const fontFamilyValue = style?.typography?.fontFamily; + const fontSizeSlug = fontSizeValue?.startsWith('var:preset|font-size|') ? fontSizeValue.substring('var:preset|font-size|'.length) : undefined; + const fontFamilySlug = fontFamilyValue?.startsWith('var:preset|font-family|') ? fontFamilyValue.substring('var:preset|font-family|'.length) : undefined; + updatedStyle.typography = { + ...omit(updatedStyle.typography, ['fontFamily']), + fontSize: fontSizeSlug ? undefined : fontSizeValue }; - (0,external_wp_element_namespaceObject.useEffect)(function scrollToTopOnCategoryChange() { - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(scrollContainerRef?.current); - scrollContainer?.scrollTo(0, 0); - }, [currentCategory, scrollContainerRef]); return { - totalItems, - categoryPatterns, - categoryPatternsAsyncList, - numPages, - changePage, - currentPage + style: utils_cleanEmptyObject(updatedStyle), + fontFamily: fontFamilySlug, + fontSize: fontSizeSlug + }; +} +function typography_attributesToStyle(attributes) { + return { + ...attributes.style, + typography: { + ...attributes.style?.typography, + fontFamily: attributes.fontFamily ? 'var:preset|font-family|' + attributes.fontFamily : undefined, + fontSize: attributes.fontSize ? 'var:preset|font-size|' + attributes.fontSize : attributes.style?.typography?.fontSize + } + }; +} +function TypographyInspectorControl({ + children, + resetAllFilter +}) { + const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { + const existingStyle = typography_attributesToStyle(attributes); + const updatedStyle = resetAllFilter(existingStyle); + return { + ...attributes, + ...typography_styleToAttributes(updatedStyle) + }; + }, [resetAllFilter]); + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "typography", + resetAllFilter: attributesResetAllFilter + }, children); +} +function typography_TypographyPanel({ + clientId, + name, + attributes, + setAttributes, + __unstableParentLayout +}) { + const settings = useBlockSettings(name, __unstableParentLayout); + const isEnabled = useHasTypographyPanel(settings); + const value = (0,external_wp_element_namespaceObject.useMemo)(() => { + return typography_attributesToStyle({ + style: attributes.style, + fontFamily: attributes.fontFamily, + fontSize: attributes.fontSize + }); + }, [attributes.style, attributes.fontSize, attributes.fontFamily]); + const onChange = newStyle => { + setAttributes(typography_styleToAttributes(newStyle)); }; + if (!isEnabled) { + return null; + } + const defaultControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, [TYPOGRAPHY_SUPPORT_KEY, '__experimentalDefaultControls']); + return (0,external_wp_element_namespaceObject.createElement)(TypographyPanel, { + as: TypographyInspectorControl, + panelId: clientId, + settings: settings, + value: value, + onChange: onChange, + defaultControls: defaultControls + }); } +const hasTypographySupport = blockName => { + return TYPOGRAPHY_SUPPORT_KEYS.some(key => hasBlockSupport(blockName, key)); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/pattern-list.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js /** * WordPress dependencies */ +const settings_settings = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m19 7.5h-7.628c-.3089-.87389-1.1423-1.5-2.122-1.5-.97966 0-1.81309.62611-2.12197 1.5h-2.12803v1.5h2.12803c.30888.87389 1.14231 1.5 2.12197 1.5.9797 0 1.8131-.62611 2.122-1.5h7.628z" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m19 15h-2.128c-.3089-.8739-1.1423-1.5-2.122-1.5s-1.8131.6261-2.122 1.5h-7.628v1.5h7.628c.3089.8739 1.1423 1.5 2.122 1.5s1.8131-.6261 2.122-1.5h2.128z" +})); +/* harmony default export */ var library_settings = (settings_settings); - - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js /** - * Internal dependencies + * WordPress dependencies */ @@ -46316,192 +39511,384 @@ function usePatternsPaging(currentCategoryPatterns, currentCategory, scrollConta +/** + * Internal dependencies + */ + -function PatternsListHeader({ - filterValue, - filteredBlockPatternsLength -}) { - if (!filterValue) { - return null; + +const CUSTOM_VALUE_SETTINGS = { + px: { + max: 300, + steps: 1 + }, + '%': { + max: 100, + steps: 1 + }, + vw: { + max: 100, + steps: 1 + }, + vh: { + max: 100, + steps: 1 + }, + em: { + max: 10, + steps: 0.1 + }, + rm: { + max: 10, + steps: 0.1 } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { - level: 2, - lineHeight: '48px', - className: "block-editor-block-patterns-explorer__search-results-count" - }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of patterns. */ - (0,external_wp_i18n_namespaceObject._n)('%d pattern found', '%d patterns found', filteredBlockPatternsLength), filteredBlockPatternsLength)); -} -function PatternList({ - searchValue, - selectedCategory, - patternCategories +}; +function SpacingInputControl({ + icon, + isMixed = false, + minimumCustomValue, + onChange, + onMouseOut, + onMouseOver, + showSideInLabel = true, + side, + spacingSizes, + type, + value }) { - const container = (0,external_wp_element_namespaceObject.useRef)(); - const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500); - const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ - shouldFocusBlock: true + var _CUSTOM_VALUE_SETTING, _CUSTOM_VALUE_SETTING2; + // Treat value as a preset value if the passed in value matches the value of one of the spacingSizes. + value = getPresetValueFromCustomValue(value, spacingSizes); + let selectListSizes = spacingSizes; + const showRangeControl = spacingSizes.length <= 8; + const disableCustomSpacingSizes = (0,external_wp_data_namespaceObject.useSelect)(select => { + const editorSettings = select(store).getSettings(); + return editorSettings?.disableCustomSpacingSizes; }); - const [patterns,, onClickPattern] = use_patterns_state(onInsertBlocks, destinationRootClientId); - const registeredPatternCategories = (0,external_wp_element_namespaceObject.useMemo)(() => patternCategories.map(patternCategory => patternCategory.name), [patternCategories]); - const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { - const filteredPatterns = patterns.filter(pattern => { - if (selectedCategory === allPatternsCategory.name) { - return true; - } - if (selectedCategory === myPatternsCategory.name && pattern.type === INSERTER_PATTERN_TYPES.user) { - return true; + const [showCustomValueControl, setShowCustomValueControl] = (0,external_wp_element_namespaceObject.useState)(!disableCustomSpacingSizes && value !== undefined && !isValueSpacingPreset(value)); + const previousValue = (0,external_wp_compose_namespaceObject.usePrevious)(value); + if (!!value && previousValue !== value && !isValueSpacingPreset(value) && showCustomValueControl !== true) { + setShowCustomValueControl(true); + } + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['px', 'em', 'rem'] + }); + let currentValue = null; + const showCustomValueInSelectList = !showRangeControl && !showCustomValueControl && value !== undefined && (!isValueSpacingPreset(value) || isValueSpacingPreset(value) && isMixed); + if (showCustomValueInSelectList) { + selectListSizes = [...spacingSizes, { + name: !isMixed ? + // translators: A custom measurement, eg. a number followed by a unit like 12px. + (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Custom (%s)'), value) : (0,external_wp_i18n_namespaceObject.__)('Mixed'), + slug: 'custom', + size: value + }]; + currentValue = selectListSizes.length - 1; + } else if (!isMixed) { + currentValue = !showCustomValueControl ? getSliderValueFromPreset(value, spacingSizes) : getCustomValueFromPreset(value, spacingSizes); + } + const selectedUnit = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue), [currentValue])[1] || units[0].value; + const setInitialValue = () => { + if (value === undefined) { + onChange('0'); + } + }; + const customTooltipContent = newValue => value === undefined ? undefined : spacingSizes[newValue]?.name; + const customRangeValue = parseFloat(currentValue, 10); + const getNewCustomValue = newSize => { + const isNumeric = !isNaN(parseFloat(newSize)); + const nextValue = isNumeric ? newSize : undefined; + return nextValue; + }; + const getNewPresetValue = (newSize, controlType) => { + const size = parseInt(newSize, 10); + if (controlType === 'selectList') { + if (size === 0) { + return undefined; } - if (selectedCategory === 'uncategorized') { - const hasKnownCategory = pattern.categories.some(category => registeredPatternCategories.includes(category)); - return !pattern.categories?.length || !hasKnownCategory; + if (size === 1) { + return '0'; } - return pattern.categories?.includes(selectedCategory); - }); - if (!searchValue) { - return filteredPatterns; - } - return searchItems(filteredPatterns, searchValue); - }, [searchValue, patterns, selectedCategory, registeredPatternCategories]); - - // Announce search results on change. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!searchValue) { - return; + } else if (size === 0) { + return '0'; } - const count = filteredBlockPatterns.length; - const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of results. */ - (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', count), count); - debouncedSpeak(resultsFoundMessage); - }, [searchValue, debouncedSpeak, filteredBlockPatterns.length]); - const pagingProps = usePatternsPaging(filteredBlockPatterns, selectedCategory, container); + return `var:preset|spacing|${spacingSizes[newSize]?.slug}`; + }; + const handleCustomValueSliderChange = next => { + onChange([next, selectedUnit].join('')); + }; + const allPlaceholder = isMixed ? (0,external_wp_i18n_namespaceObject.__)('Mixed') : null; + const options = selectListSizes.map((size, index) => ({ + key: index, + name: size.name + })); + const marks = spacingSizes.map((_newValue, index) => ({ + value: index, + label: undefined + })); + const sideLabel = ALL_SIDES.includes(side) && showSideInLabel ? LABELS[side] : ''; + const typeLabel = showSideInLabel ? type?.toLowerCase() : type; + const ariaLabel = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc) + (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), sideLabel, typeLabel).trim(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + className: "spacing-sizes-control__wrapper" + }, icon && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + className: "spacing-sizes-control__icon", + icon: icon, + size: 24 + }), showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + onMouseOver: onMouseOver, + onMouseOut: onMouseOut, + onFocus: onMouseOver, + onBlur: onMouseOut, + onChange: newSize => onChange(getNewCustomValue(newSize)), + value: currentValue, + units: units, + min: minimumCustomValue, + placeholder: allPlaceholder, + disableUnits: isMixed, + label: ariaLabel, + hideLabelFromVision: true, + className: "spacing-sizes-control__custom-value-input", + size: '__unstable-large' + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + onMouseOver: onMouseOver, + onMouseOut: onMouseOut, + onFocus: onMouseOver, + onBlur: onMouseOut, + value: customRangeValue, + min: 0, + max: (_CUSTOM_VALUE_SETTING = CUSTOM_VALUE_SETTINGS[selectedUnit]?.max) !== null && _CUSTOM_VALUE_SETTING !== void 0 ? _CUSTOM_VALUE_SETTING : 10, + step: (_CUSTOM_VALUE_SETTING2 = CUSTOM_VALUE_SETTINGS[selectedUnit]?.steps) !== null && _CUSTOM_VALUE_SETTING2 !== void 0 ? _CUSTOM_VALUE_SETTING2 : 0.1, + withInputField: false, + onChange: handleCustomValueSliderChange, + className: "spacing-sizes-control__custom-value-range", + __nextHasNoMarginBottom: true + })), showRangeControl && !showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + onMouseOver: onMouseOver, + onMouseOut: onMouseOut, + className: "spacing-sizes-control__range-control", + value: currentValue, + onChange: newSize => onChange(getNewPresetValue(newSize)), + onMouseDown: event => { + // If mouse down is near start of range set initial value to 0, which + // prevents the user have to drag right then left to get 0 setting. + if (event?.nativeEvent?.offsetX < 35) { + setInitialValue(); + } + }, + withInputField: false, + "aria-valuenow": currentValue, + "aria-valuetext": spacingSizes[currentValue]?.name, + renderTooltipContent: customTooltipContent, + min: 0, + max: spacingSizes.length - 1, + marks: marks, + label: ariaLabel, + hideLabelFromVision: true, + __nextHasNoMarginBottom: true, + onFocus: onMouseOver, + onBlur: onMouseOut + }), !showRangeControl && !showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { + className: "spacing-sizes-control__custom-select-control", + value: options.find(option => option.key === currentValue) || '' // passing undefined here causes a downshift controlled/uncontrolled warning + , - // Reset page when search value changes. - const [previousSearchValue, setPreviousSearchValue] = (0,external_wp_element_namespaceObject.useState)(searchValue); - if (searchValue !== previousSearchValue) { - setPreviousSearchValue(searchValue); - pagingProps.changePage(1); - } - const hasItems = !!filteredBlockPatterns?.length; - return (0,external_React_.createElement)("div", { - className: "block-editor-block-patterns-explorer__list", - ref: container - }, (0,external_React_.createElement)(PatternsListHeader, { - filterValue: searchValue, - filteredBlockPatternsLength: filteredBlockPatterns.length - }), (0,external_React_.createElement)(inserter_listbox, null, hasItems && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_patterns_list, { - shownPatterns: pagingProps.categoryPatternsAsyncList, - blockPatterns: pagingProps.categoryPatterns, - onClickPattern: onClickPattern, - isDraggable: false - }), (0,external_React_.createElement)(Pagination, { - ...pagingProps - })))); + onChange: selection => { + onChange(getNewPresetValue(selection.selectedItem.key, 'selectList')); + }, + options: options, + label: ariaLabel, + hideLabelFromVision: true, + __nextUnconstrainedWidth: true, + size: '__unstable-large', + onMouseOver: onMouseOver, + onMouseOut: onMouseOut, + onFocus: onMouseOver, + onBlur: onMouseOut + }), !disableCustomSpacingSizes && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + label: showCustomValueControl ? (0,external_wp_i18n_namespaceObject.__)('Use size preset') : (0,external_wp_i18n_namespaceObject.__)('Set custom size'), + icon: library_settings, + onClick: () => { + setShowCustomValueControl(!showCustomValueControl); + }, + isPressed: showCustomValueControl, + isSmall: true, + className: "spacing-sizes-control__custom-toggle", + iconSize: 24 + })); } -/* harmony default export */ var pattern_list = (PatternList); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/axial.js + /** - * WordPress dependencies + * Internal dependencies */ +const groupedSides = ['vertical', 'horizontal']; +function AxialInputControls({ + minimumCustomValue, + onChange, + onMouseOut, + onMouseOver, + sides, + spacingSizes, + type, + values +}) { + const createHandleOnChange = side => next => { + if (!onChange) { + return; + } + + // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. + const nextValues = { + ...Object.keys(values).reduce((acc, key) => { + acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); + return acc; + }, {}) + }; + if (side === 'vertical') { + nextValues.top = next; + nextValues.bottom = next; + } + if (side === 'horizontal') { + nextValues.left = next; + nextValues.right = next; + } + onChange(nextValues); + }; + + // Filter sides if custom configuration provided, maintaining default order. + const filteredSides = sides?.length ? groupedSides.filter(side => hasAxisSupport(sides, side)) : groupedSides; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, filteredSides.map(side => { + const axisValue = side === 'vertical' ? values.top : values.left; + return (0,external_wp_element_namespaceObject.createElement)(SpacingInputControl, { + key: `spacing-sizes-control-${side}`, + icon: ICONS[side], + label: LABELS[side], + minimumCustomValue: minimumCustomValue, + onChange: createHandleOnChange(side), + onMouseOut: onMouseOut, + onMouseOver: onMouseOver, + side: side, + spacingSizes: spacingSizes, + type: type, + value: axisValue, + withInputField: false + }); + })); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/separated.js /** * Internal dependencies */ -function hasRegisteredCategory(pattern, allCategories) { - if (!pattern.categories || !pattern.categories.length) { - return false; - } - return pattern.categories.some(cat => allCategories.some(category => category.name === cat)); -} -function usePatternCategories(rootClientId, sourceFilter = 'all') { - const [patterns, allCategories] = use_patterns_state(undefined, rootClientId); - const filteredPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => sourceFilter === 'all' ? patterns : patterns.filter(pattern => !isPatternFiltered(pattern, sourceFilter)), [sourceFilter, patterns]); - - // Remove any empty categories. - const populatedCategories = (0,external_wp_element_namespaceObject.useMemo)(() => { - const categories = allCategories.filter(category => filteredPatterns.some(pattern => pattern.categories?.includes(category.name))).sort((a, b) => a.label.localeCompare(b.label)); - if (filteredPatterns.some(pattern => !hasRegisteredCategory(pattern, allCategories)) && !categories.find(category => category.name === 'uncategorized')) { - categories.push({ - name: 'uncategorized', - label: (0,external_wp_i18n_namespaceObject._x)('Uncategorized') - }); - } - if (filteredPatterns.some(pattern => pattern.type === INSERTER_PATTERN_TYPES.user)) { - categories.unshift(myPatternsCategory); - } - if (filteredPatterns.length > 0) { - categories.unshift({ - name: allPatternsCategory.name, - label: allPatternsCategory.label - }); - } - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of categories . */ - (0,external_wp_i18n_namespaceObject._n)('%d category button displayed.', '%d category buttons displayed.', categories.length), categories.length)); - return categories; - }, [allCategories, filteredPatterns]); - return populatedCategories; +function SeparatedInputControls({ + minimumCustomValue, + onChange, + onMouseOut, + onMouseOver, + sides, + spacingSizes, + type, + values +}) { + // Filter sides if custom configuration provided, maintaining default order. + const filteredSides = sides?.length ? ALL_SIDES.filter(side => sides.includes(side)) : ALL_SIDES; + const createHandleOnChange = side => next => { + // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. + const nextValues = { + ...Object.keys(values).reduce((acc, key) => { + acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); + return acc; + }, {}) + }; + nextValues[side] = next; + onChange(nextValues); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, filteredSides.map(side => { + return (0,external_wp_element_namespaceObject.createElement)(SpacingInputControl, { + key: `spacing-sizes-control-${side}`, + icon: ICONS[side], + label: LABELS[side], + minimumCustomValue: minimumCustomValue, + onChange: createHandleOnChange(side), + onMouseOut: onMouseOut, + onMouseOver: onMouseOver, + side: side, + spacingSizes: spacingSizes, + type: type, + value: values[side], + withInputField: false + }); + })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-explorer/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/input-controls/single.js /** - * WordPress dependencies + * Internal dependencies */ +function SingleInputControl({ + minimumCustomValue, + onChange, + onMouseOut, + onMouseOver, + showSideInLabel, + side, + spacingSizes, + type, + values +}) { + const createHandleOnChange = currentSide => next => { + // Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes. + const nextValues = { + ...Object.keys(values).reduce((acc, key) => { + acc[key] = getPresetValueFromCustomValue(values[key], spacingSizes); + return acc; + }, {}) + }; + nextValues[currentSide] = next; + onChange(nextValues); + }; + return (0,external_wp_element_namespaceObject.createElement)(SpacingInputControl, { + label: LABELS[side], + minimumCustomValue: minimumCustomValue, + onChange: createHandleOnChange(side), + onMouseOut: onMouseOut, + onMouseOver: onMouseOver, + showSideInLabel: showSideInLabel, + side: side, + spacingSizes: spacingSizes, + type: type, + value: values[side], + withInputField: false + }); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js /** - * Internal dependencies + * WordPress dependencies */ +const check_check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" +})); +/* harmony default export */ var library_check = (check_check); - -function PatternsExplorer({ - initialCategory, - rootClientId -}) { - const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)(''); - const [patternSourceFilter, setPatternSourceFilter] = (0,external_wp_element_namespaceObject.useState)('all'); - const [selectedCategory, setSelectedCategory] = (0,external_wp_element_namespaceObject.useState)(initialCategory?.name); - const patternCategories = usePatternCategories(rootClientId, patternSourceFilter); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-patterns-explorer" - }, (0,external_React_.createElement)(pattern_explorer_sidebar, { - selectedCategory: selectedCategory, - patternCategories: patternCategories, - onClickCategory: setSelectedCategory, - searchValue: searchValue, - setSearchValue: setSearchValue, - patternSourceFilter: patternSourceFilter, - setPatternSourceFilter: setPatternSourceFilter - }), (0,external_React_.createElement)(pattern_list, { - searchValue: searchValue, - selectedCategory: selectedCategory, - patternCategories: patternCategories, - patternSourceFilter: patternSourceFilter - })); -} -function PatternsExplorerModal({ - onModalClose, - ...restProps -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: (0,external_wp_i18n_namespaceObject.__)('Patterns'), - onRequestClose: onModalClose, - isFullScreen: true - }, (0,external_React_.createElement)(PatternsExplorer, { - ...restProps - })); -} -/* harmony default export */ var block_patterns_explorer = (PatternsExplorerModal); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/mobile-tab-navigation.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/sides-dropdown/index.js /** * WordPress dependencies @@ -46509,174 +39896,97 @@ function PatternsExplorerModal({ -function ScreenHeader({ - title -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 0 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { - marginBottom: 0, - paddingX: 4, - paddingY: 3 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - spacing: 2 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorBackButton, { - style: - // TODO: This style override is also used in ToolsPanelHeader. - // It should be supported out-of-the-box by Button. - { - minWidth: 24, - padding: 0 - }, - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left, - isSmall: true, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigate to the previous view') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { - level: 5 - }, title)))))); -} -function MobileTabNavigation({ - categories, - children +/** + * Internal dependencies + */ + +const checkIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + icon: library_check, + size: 24 +}); +function SidesDropdown({ + label: labelProp, + onChange, + sides, + value }) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorProvider, { - initialPath: "/", - className: "block-editor-inserter__mobile-tab-navigation" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorScreen, { - path: "/" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, null, categories.map(category => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorButton, { - key: category.name, - path: `/category/${category.name}`, - as: external_wp_components_namespaceObject.__experimentalItem, - isAction: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexBlock, null, category.label), (0,external_React_.createElement)(build_module_icon, { - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right - })))))), categories.map(category => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNavigatorScreen, { - key: category.name, - path: `/category/${category.name}` - }, (0,external_React_.createElement)(ScreenHeader, { - title: (0,external_wp_i18n_namespaceObject.__)('Back') - }), children(category)))); + if (!sides || !sides.length) { + return; + } + const supportedItems = getSupportedMenuItems(sides); + const sideIcon = supportedItems[value].icon; + const { + custom: customItem, + ...menuItems + } = supportedItems; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + icon: sideIcon, + label: labelProp, + className: "spacing-sizes-control__dropdown", + toggleProps: { + isSmall: true + } + }, ({ + onClose + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, Object.entries(menuItems).map(([slug, { + label, + icon + }]) => { + const isSelected = value === slug; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + key: slug, + icon: icon, + iconPosition: "left", + isSelected: isSelected, + role: "menuitemradio", + onClick: () => { + onChange(slug); + onClose(); + }, + suffix: isSelected ? checkIcon : undefined + }, label); + })), !!customItem && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + icon: customItem.icon, + iconPosition: "left", + isSelected: value === VIEWS.custom, + role: "menuitemradio", + onClick: () => { + onChange(VIEWS.custom); + onClose(); + }, + suffix: value === VIEWS.custom ? checkIcon : undefined + }, customItem.label))); + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/patterns-filter.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js /** * WordPress dependencies */ - - - /** * Internal dependencies */ -const getShouldDisableSyncFilter = sourceFilter => sourceFilter !== 'all'; -const getShouldDisableNonUserSources = category => { - return category.name === myPatternsCategory.name; -}; -function PatternsFilter({ - setPatternSyncFilter, - setPatternSourceFilter, - patternSyncFilter, - patternSourceFilter, - scrollContainerRef, - category -}) { - // If the category is `myPatterns` then we need to set the source filter to `user`, but - // we do this by deriving from props rather than calling setPatternSourceFilter otherwise - // the user may be confused when switching to another category if the haven't explicity set - // this filter themselves. - const currentPatternSourceFilter = category.name === myPatternsCategory.name ? INSERTER_PATTERN_TYPES.user : patternSourceFilter; - - // We need to disable the sync filter option if the source filter is not 'all' or 'user' - // otherwise applying them will just result in no patterns being shown. - const shouldDisableSyncFilter = getShouldDisableSyncFilter(currentPatternSourceFilter); - - // We also need to disable the directory and theme source filter options if the category - // is `myPatterns` otherwise applying them will also just result in no patterns being shown. - const shouldDisableNonUserSources = getShouldDisableNonUserSources(category); - const patternSyncMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ - value: 'all', - label: (0,external_wp_i18n_namespaceObject._x)('All', 'Option that shows all patterns') - }, { - value: INSERTER_SYNC_TYPES.full, - label: (0,external_wp_i18n_namespaceObject._x)('Synced', 'Option that shows all synchronized patterns'), - disabled: shouldDisableSyncFilter - }, { - value: INSERTER_SYNC_TYPES.unsynced, - label: (0,external_wp_i18n_namespaceObject._x)('Not synced', 'Option that shows all patterns that are not synchronized'), - disabled: shouldDisableSyncFilter - }], [shouldDisableSyncFilter]); - const patternSourceMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ - value: 'all', - label: (0,external_wp_i18n_namespaceObject.__)('All'), - disabled: shouldDisableNonUserSources - }, { - value: INSERTER_PATTERN_TYPES.directory, - label: (0,external_wp_i18n_namespaceObject.__)('Pattern Directory'), - disabled: shouldDisableNonUserSources - }, { - value: INSERTER_PATTERN_TYPES.theme, - label: (0,external_wp_i18n_namespaceObject.__)('Theme & Plugins'), - disabled: shouldDisableNonUserSources - }, { - value: INSERTER_PATTERN_TYPES.user, - label: (0,external_wp_i18n_namespaceObject.__)('User') - }], [shouldDisableNonUserSources]); - function handleSetSourceFilterChange(newSourceFilter) { - setPatternSourceFilter(newSourceFilter); - if (getShouldDisableSyncFilter(newSourceFilter)) { - setPatternSyncFilter('all'); - } +function useSpacingSizes() { + const spacingSizes = [{ + name: 0, + slug: '0', + size: 0 + }, ...(use_setting_useSetting('spacing.spacingSizes') || [])]; + if (spacingSizes.length > 8) { + spacingSizes.unshift({ + name: (0,external_wp_i18n_namespaceObject.__)('Default'), + slug: 'default', + size: undefined + }); } - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - popoverProps: { - placement: 'right-end' - }, - label: "Filter patterns", - icon: (0,external_React_.createElement)(build_module_icon, { - icon: (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - width: "24", - height: "24", - viewBox: "0 0 24 24", - fill: "none", - xmlns: "http://www.w3.org/2000/svg" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z", - fill: "#1E1E1E" - })) - }) - }, () => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Source') - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { - choices: patternSourceMenuOptions, - onSelect: value => { - handleSetSourceFilterChange(value); - scrollContainerRef.current?.scrollTo(0, 0); - }, - value: currentPatternSourceFilter - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Type') - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { - choices: patternSyncMenuOptions, - onSelect: value => { - setPatternSyncFilter(value); - scrollContainerRef.current?.scrollTo(0, 0); - }, - value: patternSyncFilter - })), (0,external_React_.createElement)("div", { - className: "block-editor-tool-selector__help" - }, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Patterns are available from the WordPress.org Pattern Directory, bundled in the active theme, or created by users on this site. Only patterns created on this site can be synced.'), { - Link: (0,external_React_.createElement)(external_wp_components_namespaceObject.ExternalLink, { - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/patterns/') - }) - }))))); + return spacingSizes; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-sizes-control/index.js /** * WordPress dependencies @@ -46694,91 +40004,82 @@ function PatternsFilter({ -const pattern_category_previews_noop = () => {}; -function PatternCategoryPreviews({ - rootClientId, - onInsert, - onHover = pattern_category_previews_noop, - category, - showTitlesAsTooltip +function SpacingSizesControl({ + inputProps, + label: labelProp, + minimumCustomValue = 0, + onChange, + onMouseOut, + onMouseOver, + showSideInLabel = true, + sides = ALL_SIDES, + useSelect, + values }) { - const [allPatterns,, onClickPattern] = use_patterns_state(onInsert, rootClientId); - const [patternSyncFilter, setPatternSyncFilter] = (0,external_wp_element_namespaceObject.useState)('all'); - const [patternSourceFilter, setPatternSourceFilter] = (0,external_wp_element_namespaceObject.useState)('all'); - const availableCategories = usePatternCategories(rootClientId, patternSourceFilter); - const scrollContainerRef = (0,external_wp_element_namespaceObject.useRef)(); - const currentCategoryPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => allPatterns.filter(pattern => { - if (isPatternFiltered(pattern, patternSourceFilter, patternSyncFilter)) { - return false; - } - if (category.name === allPatternsCategory.name) { - return true; - } - if (category.name === myPatternsCategory.name && pattern.type === INSERTER_PATTERN_TYPES.user) { - return true; + const spacingSizes = useSpacingSizes(); + const inputValues = values || DEFAULT_VALUES; + const hasOneSide = sides?.length === 1; + const hasOnlyAxialSides = sides?.includes('horizontal') && sides?.includes('vertical') && sides?.length === 2; + const [view, setView] = (0,external_wp_element_namespaceObject.useState)(getInitialView(inputValues, sides)); + const handleOnChange = nextValue => { + const newValues = { + ...values, + ...nextValue + }; + onChange(newValues); + }; + const inputControlProps = { + ...inputProps, + minimumCustomValue, + onChange: handleOnChange, + onMouseOut, + onMouseOver, + sides, + spacingSizes, + type: labelProp, + useSelect, + values: inputValues + }; + const renderControls = () => { + if (view === VIEWS.axial) { + return (0,external_wp_element_namespaceObject.createElement)(AxialInputControls, { + ...inputControlProps + }); } - if (category.name === 'uncategorized') { - // The uncategorized category should show all the patterns without any category... - if (!pattern.categories) { - return true; - } - - // ...or with no available category. - return !pattern.categories.some(catName => availableCategories.some(c => c.name === catName)); + if (view === VIEWS.custom) { + return (0,external_wp_element_namespaceObject.createElement)(SeparatedInputControls, { + ...inputControlProps + }); } - return pattern.categories?.includes(category.name); - }), [allPatterns, availableCategories, category.name, patternSourceFilter, patternSyncFilter]); - const pagingProps = usePatternsPaging(currentCategoryPatterns, category, scrollContainerRef); - const { - changePage - } = pagingProps; - - // Hide block pattern preview on unmount. - // eslint-disable-next-line react-hooks/exhaustive-deps - (0,external_wp_element_namespaceObject.useEffect)(() => () => onHover(null), []); - const onSetPatternSyncFilter = (0,external_wp_element_namespaceObject.useCallback)(value => { - setPatternSyncFilter(value); - changePage(1); - }, [setPatternSyncFilter, changePage]); - const onSetPatternSourceFilter = (0,external_wp_element_namespaceObject.useCallback)(value => { - setPatternSourceFilter(value); - changePage(1); - }, [setPatternSourceFilter, changePage]); - return (0,external_React_.createElement)("div", { - className: "block-editor-inserter__patterns-category-panel" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 2, - className: "block-editor-inserter__patterns-category-panel-header" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexBlock, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { - level: 4, - as: "div" - }, category.label)), (0,external_React_.createElement)(PatternsFilter, { - patternSyncFilter: patternSyncFilter, - patternSourceFilter: patternSourceFilter, - setPatternSyncFilter: onSetPatternSyncFilter, - setPatternSourceFilter: onSetPatternSourceFilter, - scrollContainerRef: scrollContainerRef, - category: category - })), !currentCategoryPatterns.length && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalText, { - variant: "muted", - className: "block-editor-inserter__patterns-category-no-results" - }, (0,external_wp_i18n_namespaceObject.__)('No results found'))), currentCategoryPatterns.length > 0 && (0,external_React_.createElement)(block_patterns_list, { - ref: scrollContainerRef, - shownPatterns: pagingProps.categoryPatternsAsyncList, - blockPatterns: pagingProps.categoryPatterns, - onClickPattern: onClickPattern, - onHover: onHover, - label: category.label, - orientation: "vertical", - category: category.name, - isDraggable: true, - showTitlesAsTooltip: showTitlesAsTooltip, - patternFilter: patternSourceFilter, - pagingProps: pagingProps - })); + return (0,external_wp_element_namespaceObject.createElement)(SingleInputControl, { + side: view, + ...inputControlProps, + showSideInLabel: showSideInLabel + }); + }; + const sideLabel = ALL_SIDES.includes(view) && showSideInLabel ? LABELS[view] : ''; + const label = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 2. Type of spacing being modified (Padding, margin, etc). 1: The side of the block being modified (top, bottom, left etc.). + (0,external_wp_i18n_namespaceObject.__)('%1$s %2$s'), labelProp, sideLabel).trim(); + const dropdownLabelText = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: The current spacing property e.g. "Padding", "Margin". + (0,external_wp_i18n_namespaceObject._x)('%s options', 'Button label to reveal side configuration options'), labelProp); + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "spacing-sizes-control" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + className: "spacing-sizes-control__header" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend", + className: "spacing-sizes-control__label" + }, label), !hasOneSide && !hasOnlyAxialSides && (0,external_wp_element_namespaceObject.createElement)(SidesDropdown, { + label: dropdownLabelText, + onChange: setView, + sides: sides, + value: view + })), renderControls()); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/height-control/index.js /** * WordPress dependencies @@ -46787,65 +40088,108 @@ function PatternCategoryPreviews({ - - /** * Internal dependencies */ +const RANGE_CONTROL_CUSTOM_SETTINGS = { + px: { + max: 1000, + step: 1 + }, + '%': { + max: 100, + step: 1 + }, + vw: { + max: 100, + step: 1 + }, + vh: { + max: 100, + step: 1 + }, + em: { + max: 50, + step: 0.1 + }, + rem: { + max: 50, + step: 0.1 + } +}; - - -function BlockPatternsTab({ - onSelectCategory, - selectedCategory, - onInsert, - rootClientId +/** + * HeightControl renders a linked unit control and range control for adjusting the height of a block. + * + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/height-control/README.md + * + * @param {Object} props + * @param {?string} props.label A label for the control. + * @param {( value: string ) => void } props.onChange Called when the height changes. + * @param {string} props.value The current height value. + * + * @return {WPComponent} The component to be rendered. + */ +function HeightControl({ + label = (0,external_wp_i18n_namespaceObject.__)('Height'), + onChange, + value }) { - const [showPatternsExplorer, setShowPatternsExplorer] = (0,external_wp_element_namespaceObject.useState)(false); - const categories = usePatternCategories(rootClientId); - const initialCategory = selectedCategory || categories[0]; - const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); - return (0,external_React_.createElement)(external_React_.Fragment, null, !isMobile && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__block-patterns-tabs-container" - }, (0,external_React_.createElement)("nav", { - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block pattern categories'), - className: "block-editor-inserter__block-patterns-tabs" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { - role: "list" - }, categories.map(category => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItem, { - role: "listitem", - key: category.name, - onClick: () => onSelectCategory(category), - className: category === selectedCategory ? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category' : 'block-editor-inserter__patterns-category', - "aria-label": category.label, - "aria-current": category === selectedCategory ? 'true' : undefined - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexBlock, null, category.label), (0,external_React_.createElement)(build_module_icon, { - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right - })))), (0,external_React_.createElement)("div", { - role: "listitem" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-inserter__patterns-explore-button", - onClick: () => setShowPatternsExplorer(true), - variant: "secondary" - }, (0,external_wp_i18n_namespaceObject.__)('Explore all patterns')))))), isMobile && (0,external_React_.createElement)(MobileTabNavigation, { - categories: categories - }, category => (0,external_React_.createElement)(PatternCategoryPreviews, { - key: category.name, - onInsert: onInsert, - rootClientId: rootClientId, - category: category, - showTitlesAsTooltip: false - })), showPatternsExplorer && (0,external_React_.createElement)(block_patterns_explorer, { - initialCategory: initialCategory, - patternCategories: categories, - onModalClose: () => setShowPatternsExplorer(false), - rootClientId: rootClientId - })); + var _RANGE_CONTROL_CUSTOM, _RANGE_CONTROL_CUSTOM2; + const customRangeValue = parseFloat(value); + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['%', 'px', 'em', 'rem', 'vh', 'vw'] + }); + const selectedUnit = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value), [value])[1] || units[0]?.value || 'px'; + const handleSliderChange = next => { + onChange([next, selectedUnit].join('')); + }; + const handleUnitChange = newUnit => { + // Attempt to smooth over differences between currentUnit and newUnit. + // This should slightly improve the experience of switching between unit types. + const [currentValue, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value); + if (['em', 'rem'].includes(newUnit) && currentUnit === 'px') { + // Convert pixel value to an approximate of the new unit, assuming a root size of 16px. + onChange((currentValue / 16).toFixed(2) + newUnit); + } else if (['em', 'rem'].includes(currentUnit) && newUnit === 'px') { + // Convert to pixel value assuming a root size of 16px. + onChange(Math.round(currentValue * 16) + newUnit); + } else if (['vh', 'vw', '%'].includes(newUnit) && currentValue > 100) { + // When converting to `vh`, `vw`, or `%` units, cap the new value at 100. + onChange(100 + newUnit); + } + }; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-height-control" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl.VisualLabel, { + as: "legend" + }, label), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + isBlock: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + value: value, + units: units, + onChange: onChange, + onUnitChange: handleUnitChange, + min: 0, + size: '__unstable-large' + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + isBlock: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { + marginX: 2, + marginBottom: 0 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + value: customRangeValue, + min: 0, + max: (_RANGE_CONTROL_CUSTOM = RANGE_CONTROL_CUSTOM_SETTINGS[selectedUnit]?.max) !== null && _RANGE_CONTROL_CUSTOM !== void 0 ? _RANGE_CONTROL_CUSTOM : 100, + step: (_RANGE_CONTROL_CUSTOM2 = RANGE_CONTROL_CUSTOM_SETTINGS[selectedUnit]?.step) !== null && _RANGE_CONTROL_CUSTOM2 !== void 0 ? _RANGE_CONTROL_CUSTOM2 : 0.1, + withInputField: false, + onChange: handleSliderChange, + __nextHasNoMarginBottom: true + }))))); } -/* harmony default export */ var block_patterns_tab = (BlockPatternsTab); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/child-layout-control/index.js /** * WordPress dependencies @@ -46853,233 +40197,582 @@ function BlockPatternsTab({ +function helpText(selfStretch, parentLayout) { + const { + orientation = 'horizontal' + } = parentLayout; + if (selfStretch === 'fill') { + return (0,external_wp_i18n_namespaceObject.__)('Stretch to fill available space.'); + } + if (selfStretch === 'fixed' && orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.__)('Specify a fixed width.'); + } else if (selfStretch === 'fixed') { + return (0,external_wp_i18n_namespaceObject.__)('Specify a fixed height.'); + } + return (0,external_wp_i18n_namespaceObject.__)('Fit contents.'); +} + /** - * Internal dependencies + * Form to edit the child layout value. + * + * @param {Object} props Props. + * @param {Object} props.value The child layout value. + * @param {Function} props.onChange Function to update the child layout value. + * @param {Object} props.parentLayout The parent layout value. + * + * @return {WPElement} child layout edit element. */ - - -function PatternCategoryPreviewPanel({ - rootClientId, - onInsert, - onHover, - category, - showTitlesAsTooltip, - patternFilter +function ChildLayoutControl({ + value: childLayout = {}, + onChange, + parentLayout }) { - const container = (0,external_wp_element_namespaceObject.useRef)(); + const { + selfStretch, + flexSize + } = childLayout; (0,external_wp_element_namespaceObject.useEffect)(() => { - const timeout = setTimeout(() => { - const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); - firstTabbable?.focus(); - }); - return () => clearTimeout(timeout); - }, [category]); - return (0,external_React_.createElement)("div", { - ref: container, - className: "block-editor-inserter__patterns-category-dialog" - }, (0,external_React_.createElement)(PatternCategoryPreviews, { - key: category.name, - rootClientId: rootClientId, - onInsert: onInsert, - onHover: onHover, - category: category, - showTitlesAsTooltip: showTitlesAsTooltip, - patternFilter: patternFilter + if (selfStretch === 'fixed' && !flexSize) { + onChange({ + ...childLayout, + selfStretch: 'fit' + }); + } + }, []); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { + __nextHasNoMarginBottom: true, + size: '__unstable-large', + label: childLayoutOrientation(parentLayout), + value: selfStretch || 'fit', + help: helpText(selfStretch, parentLayout), + onChange: value => { + const newFlexSize = value !== 'fixed' ? null : flexSize; + onChange({ + ...childLayout, + selfStretch: value, + flexSize: newFlexSize + }); + }, + isBlock: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { + key: 'fit', + value: 'fit', + label: (0,external_wp_i18n_namespaceObject.__)('Fit') + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { + key: 'fill', + value: 'fill', + label: (0,external_wp_i18n_namespaceObject.__)('Fill') + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { + key: 'fixed', + value: 'fixed', + label: (0,external_wp_i18n_namespaceObject.__)('Fixed') + })), selfStretch === 'fixed' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + size: '__unstable-large', + onChange: value => { + onChange({ + ...childLayout, + flexSize: value + }); + }, + value: flexSize })); } +function childLayoutOrientation(parentLayout) { + const { + orientation = 'horizontal' + } = parentLayout; + return orientation === 'horizontal' ? (0,external_wp_i18n_namespaceObject.__)('Width') : (0,external_wp_i18n_namespaceObject.__)('Height'); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/dimensions-panel.js + +/** + * External dependencies + */ + -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/hooks.js /** * WordPress dependencies */ + + /** * Internal dependencies */ -/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */ -/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */ -/** - * Fetches media items based on the provided category. - * Each media category is responsible for providing a `fetch` function. - * - * @param {Object} category The media category to fetch results for. - * @param {InserterMediaRequest} query The query args to use for the request. - * @return {InserterMediaItem[]} The media results. - */ -function useMediaResults(category, query = {}) { - const [mediaList, setMediaList] = (0,external_wp_element_namespaceObject.useState)(); - const [isLoading, setIsLoading] = (0,external_wp_element_namespaceObject.useState)(false); - // We need to keep track of the last request made because - // multiple request can be fired without knowing the order - // of resolution, and we need to ensure we are showing - // the results of the last request. - // In the future we could use AbortController to cancel previous - // requests, but we don't for now as it involves adding support - // for this to `core-data` package. - const lastRequest = (0,external_wp_element_namespaceObject.useRef)(); - (0,external_wp_element_namespaceObject.useEffect)(() => { - (async () => { - const key = JSON.stringify({ - category: category.name, - ...query - }); - lastRequest.current = key; - setIsLoading(true); - setMediaList([]); // Empty the previous results. - const _media = await category.fetch?.(query); - if (key === lastRequest.current) { - setMediaList(_media); - setIsLoading(false); - } - })(); - }, [category.name, ...Object.values(query)]); - return { - mediaList, - isLoading - }; + + +const AXIAL_SIDES = ['horizontal', 'vertical']; +function useHasDimensionsPanel(settings) { + const hasContentSize = useHasContentSize(settings); + const hasWideSize = useHasWideSize(settings); + const hasPadding = useHasPadding(settings); + const hasMargin = useHasMargin(settings); + const hasGap = useHasGap(settings); + const hasMinHeight = useHasMinHeight(settings); + const hasChildLayout = useHasChildLayout(settings); + return external_wp_element_namespaceObject.Platform.OS === 'web' && (hasContentSize || hasWideSize || hasPadding || hasMargin || hasGap || hasMinHeight || hasChildLayout); } -function useMediaCategories(rootClientId) { - const [categories, setCategories] = (0,external_wp_element_namespaceObject.useState)([]); - const inserterMediaCategories = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getInserterMediaCategories(), []); +function useHasContentSize(settings) { + return settings?.layout?.contentSize; +} +function useHasWideSize(settings) { + return settings?.layout?.wideSize; +} +function useHasPadding(settings) { + return settings?.spacing?.padding; +} +function useHasMargin(settings) { + return settings?.spacing?.margin; +} +function useHasGap(settings) { + return settings?.spacing?.blockGap; +} +function useHasMinHeight(settings) { + return settings?.dimensions?.minHeight; +} +function useHasChildLayout(settings) { + var _settings$parentLayou; const { - canInsertImage, - canInsertVideo, - canInsertAudio - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - canInsertBlockType - } = select(store); + type: parentLayoutType = 'default', + default: { + type: defaultParentLayoutType = 'default' + } = {}, + allowSizingOnChildren = false + } = (_settings$parentLayou = settings?.parentLayout) !== null && _settings$parentLayou !== void 0 ? _settings$parentLayou : {}; + const support = (defaultParentLayoutType === 'flex' || parentLayoutType === 'flex') && allowSizingOnChildren; + return !!settings?.layout && support; +} +function useHasSpacingPresets(settings) { + var _ref, _ref2; + const { + custom, + theme, + default: defaultPresets + } = settings?.spacing?.spacingSizes || {}; + const presets = (_ref = (_ref2 = custom !== null && custom !== void 0 ? custom : theme) !== null && _ref2 !== void 0 ? _ref2 : defaultPresets) !== null && _ref !== void 0 ? _ref : []; + return presets.length > 0; +} +function filterValuesBySides(values, sides) { + // If no custom side configuration, all sides are opted into by default. + // Without any values, we have nothing to filter either. + if (!sides || !values) { + return values; + } + + // Only include sides opted into within filtered values. + const filteredValues = {}; + sides.forEach(side => { + if (side === 'vertical') { + filteredValues.top = values.top; + filteredValues.bottom = values.bottom; + } + if (side === 'horizontal') { + filteredValues.left = values.left; + filteredValues.right = values.right; + } + filteredValues[side] = values?.[side]; + }); + return filteredValues; +} +function splitStyleValue(value) { + // Check for shorthand value (a string value). + if (value && typeof value === 'string') { + // Convert to value for individual sides for BoxControl. return { - canInsertImage: canInsertBlockType('core/image', rootClientId), - canInsertVideo: canInsertBlockType('core/video', rootClientId), - canInsertAudio: canInsertBlockType('core/audio', rootClientId) + top: value, + right: value, + bottom: value, + left: value }; - }, [rootClientId]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - (async () => { - const _categories = []; - // If `inserterMediaCategories` is not defined in - // block editor settings, do not show any media categories. - if (!inserterMediaCategories) { - return; - } - // Loop through categories to check if they have at least one media item. - const categoriesHaveMedia = new Map(await Promise.all(inserterMediaCategories.map(async category => { - // Some sources are external and we don't need to make a request. - if (category.isExternalResource) { - return [category.name, true]; - } - let results = []; - try { - results = await category.fetch({ - per_page: 1 - }); - } catch (e) { - // If the request fails, we shallow the error and just don't show - // the category, in order to not break the media tab. - } - return [category.name, !!results.length]; - }))); - // We need to filter out categories that don't have any media items or - // whose corresponding block type is not allowed to be inserted, based - // on the category's `mediaType`. - const canInsertMediaType = { - image: canInsertImage, - video: canInsertVideo, - audio: canInsertAudio - }; - inserterMediaCategories.forEach(category => { - if (canInsertMediaType[category.mediaType] && categoriesHaveMedia.get(category.name)) { - _categories.push(category); - } - }); - if (!!_categories.length) { - setCategories(_categories); - } - })(); - }, [canInsertImage, canInsertVideo, canInsertAudio, inserterMediaCategories]); - return categories; + } + return value; } +function splitGapValue(value) { + // Check for shorthand value (a string value). + if (value && typeof value === 'string') { + // If the value is a string, treat it as a single side (top) for the spacing controls. + return { + top: value + }; + } + if (value) { + return { + ...value, + right: value?.left, + bottom: value?.top + }; + } + return value; +} +function DimensionsToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject.__)('Dimensions'), + resetAll: resetAll, + panelId: panelId + }, children); +} +const dimensions_panel_DEFAULT_CONTROLS = { + contentSize: true, + wideSize: true, + padding: true, + margin: true, + blockGap: true, + minHeight: true, + childLayout: true +}; +function DimensionsPanel({ + as: Wrapper = DimensionsToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = dimensions_panel_DEFAULT_CONTROLS, + onVisualize = () => {}, + // Special case because the layout controls are not part of the dimensions panel + // in global styles but not in block inspector. + includeLayoutControls = false +}) { + var _settings$parentLayou2, _defaultControls$cont, _defaultControls$wide, _defaultControls$padd, _defaultControls$marg, _defaultControls$bloc, _defaultControls$minH, _defaultControls$chil; + const { + dimensions, + spacing + } = settings; + const decodeValue = rawValue => { + if (rawValue && typeof rawValue === 'object') { + return Object.keys(rawValue).reduce((acc, key) => { + acc[key] = getValueFromVariable({ + settings: { + dimensions, + spacing + } + }, '', rawValue[key]); + return acc; + }, {}); + } + return getValueFromVariable({ + settings: { + dimensions, + spacing + } + }, '', rawValue); + }; + const showSpacingPresetsControl = useHasSpacingPresets(settings); + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: settings?.spacing?.units || ['%', 'px', 'em', 'rem', 'vw'] + }); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js - -/** - * WordPress dependencies - */ + // Content Size + const showContentSizeControl = useHasContentSize(settings) && includeLayoutControls; + const contentSizeValue = decodeValue(inheritedValue?.layout?.contentSize); + const setContentSizeValue = newValue => { + onChange(setImmutably(value, ['layout', 'contentSize'], newValue || undefined)); + }; + const hasUserSetContentSizeValue = () => !!value?.layout?.contentSize; + const resetContentSizeValue = () => setContentSizeValue(undefined); -const external = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" -})); -/* harmony default export */ var library_external = (external); + // Wide Size + const showWideSizeControl = useHasWideSize(settings) && includeLayoutControls; + const wideSizeValue = decodeValue(inheritedValue?.layout?.wideSize); + const setWideSizeValue = newValue => { + onChange(setImmutably(value, ['layout', 'wideSize'], newValue || undefined)); + }; + const hasUserSetWideSizeValue = () => !!value?.layout?.wideSize; + const resetWideSizeValue = () => setWideSizeValue(undefined); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/utils.js + // Padding + const showPaddingControl = useHasPadding(settings); + const rawPadding = decodeValue(inheritedValue?.spacing?.padding); + const paddingValues = splitStyleValue(rawPadding); + const paddingSides = Array.isArray(settings?.spacing?.padding) ? settings?.spacing?.padding : settings?.spacing?.padding?.sides; + const isAxialPadding = paddingSides && paddingSides.some(side => AXIAL_SIDES.includes(side)); + const setPaddingValues = newPaddingValues => { + const padding = filterValuesBySides(newPaddingValues, paddingSides); + onChange(setImmutably(value, ['spacing', 'padding'], padding)); + }; + const hasPaddingValue = () => !!value?.spacing?.padding && Object.keys(value?.spacing?.padding).length; + const resetPaddingValue = () => setPaddingValues(undefined); + const onMouseOverPadding = () => onVisualize('padding'); -/** - * WordPress dependencies - */ + // Margin + const showMarginControl = useHasMargin(settings); + const rawMargin = decodeValue(inheritedValue?.spacing?.margin); + const marginValues = splitStyleValue(rawMargin); + const marginSides = Array.isArray(settings?.spacing?.margin) ? settings?.spacing?.margin : settings?.spacing?.margin?.sides; + const isAxialMargin = marginSides && marginSides.some(side => AXIAL_SIDES.includes(side)); + const setMarginValues = newMarginValues => { + const margin = filterValuesBySides(newMarginValues, marginSides); + onChange(setImmutably(value, ['spacing', 'margin'], margin)); + }; + const hasMarginValue = () => !!value?.spacing?.margin && Object.keys(value?.spacing?.margin).length; + const resetMarginValue = () => setMarginValues(undefined); + const onMouseOverMargin = () => onVisualize('margin'); -const mediaTypeTag = { - image: 'img', - video: 'video', - audio: 'audio' -}; + // Block Gap + const showGapControl = useHasGap(settings); + const gapValue = decodeValue(inheritedValue?.spacing?.blockGap); + const gapValues = splitGapValue(gapValue); + const gapSides = Array.isArray(settings?.spacing?.blockGap) ? settings?.spacing?.blockGap : settings?.spacing?.blockGap?.sides; + const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side)); + const setGapValue = newGapValue => { + onChange(setImmutably(value, ['spacing', 'blockGap'], newGapValue)); + }; + const setGapValues = nextBoxGapValue => { + if (!nextBoxGapValue) { + setGapValue(null); + } + // If axial gap is not enabled, treat the 'top' value as the shorthand gap value. + if (!isAxialGap && nextBoxGapValue?.hasOwnProperty('top')) { + setGapValue(nextBoxGapValue.top); + } else { + setGapValue({ + top: nextBoxGapValue?.top, + left: nextBoxGapValue?.left + }); + } + }; + const resetGapValue = () => setGapValue(undefined); + const hasGapValue = () => !!value?.spacing?.blockGap; -/** @typedef {import('./hooks').InserterMediaItem} InserterMediaItem */ + // Min Height + const showMinHeightControl = useHasMinHeight(settings); + const minHeightValue = decodeValue(inheritedValue?.dimensions?.minHeight); + const setMinHeightValue = newValue => { + onChange(setImmutably(value, ['dimensions', 'minHeight'], newValue)); + }; + const resetMinHeightValue = () => { + setMinHeightValue(undefined); + }; + const hasMinHeightValue = () => !!value?.dimensions?.minHeight; -/** - * Creates a block and a preview element from a media object. - * - * @param {InserterMediaItem} media The media object to create the block from. - * @param {('image'|'audio'|'video')} mediaType The media type to create the block for. - * @return {[WPBlock, JSX.Element]} An array containing the block and the preview element. - */ -function getBlockAndPreviewFromMedia(media, mediaType) { - // Add the common attributes between the different media types. - const attributes = { - id: media.id || undefined, - caption: media.caption || undefined + // Child Layout + const showChildLayoutControl = useHasChildLayout(settings); + const childLayout = inheritedValue?.layout; + const { + orientation = 'horizontal' + } = (_settings$parentLayou2 = settings?.parentLayout) !== null && _settings$parentLayou2 !== void 0 ? _settings$parentLayou2 : {}; + const childLayoutOrientationLabel = orientation === 'horizontal' ? (0,external_wp_i18n_namespaceObject.__)('Width') : (0,external_wp_i18n_namespaceObject.__)('Height'); + const setChildLayout = newChildLayout => { + onChange({ + ...value, + layout: { + ...value?.layout, + ...newChildLayout + } + }); }; - const mediaSrc = media.url; - const alt = media.alt || undefined; - if (mediaType === 'image') { - attributes.url = mediaSrc; - attributes.alt = alt; - } else if (['video', 'audio'].includes(mediaType)) { - attributes.src = mediaSrc; - } - const PreviewTag = mediaTypeTag[mediaType]; - const preview = (0,external_React_.createElement)(PreviewTag, { - src: media.previewUrl || mediaSrc, - alt: alt, - controls: mediaType === 'audio' ? true : undefined, - inert: "true", - onError: ({ - currentTarget - }) => { - // Fall back to the media source if the preview cannot be loaded. - if (currentTarget.src === media.previewUrl) { - currentTarget.src = mediaSrc; + const resetChildLayoutValue = () => { + setChildLayout({ + selfStretch: undefined, + flexSize: undefined + }); + }; + const hasChildLayoutValue = () => !!value?.layout; + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + layout: utils_cleanEmptyObject({ + ...previousValue?.layout, + contentSize: undefined, + wideSize: undefined, + selfStretch: undefined, + flexSize: undefined + }), + spacing: { + ...previousValue?.spacing, + padding: undefined, + margin: undefined, + blockGap: undefined + }, + dimensions: { + ...previousValue?.dimensions, + minHeight: undefined } - } - }); - return [(0,external_wp_blocks_namespaceObject.createBlock)(`core/${mediaType}`, attributes), preview]; + }; + }, []); + const onMouseLeaveControls = () => onVisualize(false); + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, (showContentSizeControl || showWideSizeControl) && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "span-columns" + }, (0,external_wp_i18n_namespaceObject.__)('Set the width of the main content area.')), showContentSizeControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Content size'), + hasValue: hasUserSetContentSizeValue, + onDeselect: resetContentSizeValue, + isShownByDefault: (_defaultControls$cont = defaultControls.contentSize) !== null && _defaultControls$cont !== void 0 ? _defaultControls$cont : dimensions_panel_DEFAULT_CONTROLS.contentSize, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + alignment: "flex-end", + justify: "flex-start" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Content'), + labelPosition: "top", + __unstableInputWidth: "80px", + value: contentSizeValue || '', + onChange: nextContentSize => { + setContentSizeValue(nextContentSize); + }, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: position_center + })))), showWideSizeControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + className: "single-column", + label: (0,external_wp_i18n_namespaceObject.__)('Wide size'), + hasValue: hasUserSetWideSizeValue, + onDeselect: resetWideSizeValue, + isShownByDefault: (_defaultControls$wide = defaultControls.wideSize) !== null && _defaultControls$wide !== void 0 ? _defaultControls$wide : dimensions_panel_DEFAULT_CONTROLS.wideSize, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + alignment: "flex-end", + justify: "flex-start" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Wide'), + labelPosition: "top", + __unstableInputWidth: "80px", + value: wideSizeValue || '', + onChange: nextWideSize => { + setWideSizeValue(nextWideSize); + }, + units: units + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalView, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: stretch_wide + })))), showPaddingControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: hasPaddingValue, + label: (0,external_wp_i18n_namespaceObject.__)('Padding'), + onDeselect: resetPaddingValue, + isShownByDefault: (_defaultControls$padd = defaultControls.padding) !== null && _defaultControls$padd !== void 0 ? _defaultControls$padd : dimensions_panel_DEFAULT_CONTROLS.padding, + className: classnames_default()({ + 'tools-panel-item-spacing': showSpacingPresetsControl + }), + panelId: panelId + }, !showSpacingPresetsControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { + values: paddingValues, + onChange: setPaddingValues, + label: (0,external_wp_i18n_namespaceObject.__)('Padding'), + sides: paddingSides, + units: units, + allowReset: false, + splitOnAxis: isAxialPadding, + onMouseOver: onMouseOverPadding, + onMouseOut: onMouseLeaveControls + }), showSpacingPresetsControl && (0,external_wp_element_namespaceObject.createElement)(SpacingSizesControl, { + values: paddingValues, + onChange: setPaddingValues, + label: (0,external_wp_i18n_namespaceObject.__)('Padding'), + sides: paddingSides, + units: units, + allowReset: false, + onMouseOver: onMouseOverPadding, + onMouseOut: onMouseLeaveControls + })), showMarginControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: hasMarginValue, + label: (0,external_wp_i18n_namespaceObject.__)('Margin'), + onDeselect: resetMarginValue, + isShownByDefault: (_defaultControls$marg = defaultControls.margin) !== null && _defaultControls$marg !== void 0 ? _defaultControls$marg : dimensions_panel_DEFAULT_CONTROLS.margin, + className: classnames_default()({ + 'tools-panel-item-spacing': showSpacingPresetsControl + }), + panelId: panelId + }, !showSpacingPresetsControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { + values: marginValues, + onChange: setMarginValues, + label: (0,external_wp_i18n_namespaceObject.__)('Margin'), + sides: marginSides, + units: units, + allowReset: false, + splitOnAxis: isAxialMargin, + onMouseOver: onMouseOverMargin, + onMouseOut: onMouseLeaveControls + }), showSpacingPresetsControl && (0,external_wp_element_namespaceObject.createElement)(SpacingSizesControl, { + values: marginValues, + onChange: setMarginValues, + label: (0,external_wp_i18n_namespaceObject.__)('Margin'), + sides: marginSides, + units: units, + allowReset: false, + onMouseOver: onMouseOverMargin, + onMouseOut: onMouseLeaveControls + })), showGapControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: hasGapValue, + label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), + onDeselect: resetGapValue, + isShownByDefault: (_defaultControls$bloc = defaultControls.blockGap) !== null && _defaultControls$bloc !== void 0 ? _defaultControls$bloc : dimensions_panel_DEFAULT_CONTROLS.blockGap, + className: classnames_default()({ + 'tools-panel-item-spacing': showSpacingPresetsControl + }), + panelId: panelId + }, !showSpacingPresetsControl && (isAxialGap ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalBoxControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), + min: 0, + onChange: setGapValues, + units: units, + sides: gapSides, + values: gapValues, + allowReset: false, + splitOnAxis: isAxialGap + }) : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), + __unstableInputWidth: "80px", + min: 0, + onChange: setGapValue, + units: units, + value: gapValue + })), showSpacingPresetsControl && (0,external_wp_element_namespaceObject.createElement)(SpacingSizesControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Block spacing'), + min: 0, + onChange: setGapValues, + showSideInLabel: false, + sides: isAxialGap ? gapSides : ['top'] // Use 'top' as the shorthand property in non-axial configurations. + , + values: gapValues, + allowReset: false + })), showMinHeightControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: hasMinHeightValue, + label: (0,external_wp_i18n_namespaceObject.__)('Min. height'), + onDeselect: resetMinHeightValue, + isShownByDefault: (_defaultControls$minH = defaultControls.minHeight) !== null && _defaultControls$minH !== void 0 ? _defaultControls$minH : dimensions_panel_DEFAULT_CONTROLS.minHeight, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(HeightControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Min. height'), + value: minHeightValue, + onChange: setMinHeightValue + })), showChildLayoutControl && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + as: external_wp_components_namespaceObject.__experimentalToolsPanelItem, + spacing: 2, + hasValue: hasChildLayoutValue, + label: childLayoutOrientationLabel, + onDeselect: resetChildLayoutValue, + isShownByDefault: (_defaultControls$chil = defaultControls.childLayout) !== null && _defaultControls$chil !== void 0 ? _defaultControls$chil : dimensions_panel_DEFAULT_CONTROLS.childLayout, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(ChildLayoutControl, { + value: childLayout, + onChange: setChildLayout, + parentLayout: settings?.parentLayout + }))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-preview.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/margin.js /** * WordPress dependencies @@ -47087,195 +40780,78 @@ function getBlockAndPreviewFromMedia(media, mediaType) { - - - - - - /** * Internal dependencies */ - - -const ALLOWED_MEDIA_TYPES = ['image']; -const MAXIMUM_TITLE_LENGTH = 25; -const MEDIA_OPTIONS_POPOVER_PROPS = { - position: 'bottom left', - className: 'block-editor-inserter__media-list__item-preview-options__popover' -}; -const { - CompositeItemV2: media_preview_CompositeItem -} = unlock(external_wp_components_namespaceObject.privateApis); -function MediaPreviewOptions({ - category, - media -}) { - if (!category.getReportUrl) { - return null; - } - const reportUrl = category.getReportUrl(media); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - className: "block-editor-inserter__media-list__item-preview-options", - label: (0,external_wp_i18n_namespaceObject.__)('Options'), - popoverProps: MEDIA_OPTIONS_POPOVER_PROPS, - icon: more_vertical - }, () => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => window.open(reportUrl, '_blank').focus(), - icon: library_external - }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: The media type to report e.g: "image", "video", "audio" */ - (0,external_wp_i18n_namespaceObject.__)('Report %s'), category.mediaType)))); -} -function InsertExternalImageModal({ - onClose, - onSubmit -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: (0,external_wp_i18n_namespaceObject.__)('Insert external image'), - onRequestClose: onClose, - className: "block-editor-inserter-media-tab-media-preview-inserter-external-image-modal" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 3 - }, (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.')), (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'))), (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - className: "block-editor-block-lock-modal__actions", - justify: "flex-end", - expanded: false - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: onClose - }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "primary", - onClick: onSubmit - }, (0,external_wp_i18n_namespaceObject.__)('Insert'))))); +function getComputedCSS(element, property) { + return element.ownerDocument.defaultView.getComputedStyle(element).getPropertyValue(property); } -function MediaPreview({ - media, - onClick, - category +function MarginVisualizer({ + clientId, + attributes, + forceShow }) { - const [showExternalUploadModal, setShowExternalUploadModal] = (0,external_wp_element_namespaceObject.useState)(false); - const [isHovered, setIsHovered] = (0,external_wp_element_namespaceObject.useState)(false); - const [isInserting, setIsInserting] = (0,external_wp_element_namespaceObject.useState)(false); - const [block, preview] = (0,external_wp_element_namespaceObject.useMemo)(() => getBlockAndPreviewFromMedia(media, category.mediaType), [media, category.mediaType]); - const { - createErrorNotice, - createSuccessNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().mediaUpload, []); - const onMediaInsert = (0,external_wp_element_namespaceObject.useCallback)(previewBlock => { - // Prevent multiple uploads when we're in the process of inserting. - if (isInserting) { - return; - } - const clonedBlock = (0,external_wp_blocks_namespaceObject.cloneBlock)(previewBlock); - const { - id, - url, - caption - } = clonedBlock.attributes; - // Media item already exists in library, so just insert it. - if (!!id) { - onClick(clonedBlock); + const blockElement = useBlockElement(clientId); + const [style, setStyle] = (0,external_wp_element_namespaceObject.useState)(); + const margin = attributes?.style?.spacing?.margin; + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!blockElement || null === blockElement.ownerDocument.defaultView) { return; } - setIsInserting(true); - // Media item does not exist in library, so try to upload it. - // Fist fetch the image data. This may fail if the image host - // doesn't allow CORS with the domain. - // If this happens, we insert the image block using the external - // URL and let the user know about the possible implications. - window.fetch(url).then(response => response.blob()).then(blob => { - mediaUpload({ - filesList: [blob], - additionalData: { - caption - }, - onFileChange([img]) { - if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) { - return; - } - onClick({ - ...clonedBlock, - attributes: { - ...clonedBlock.attributes, - id: img.id, - url: img.url - } - }); - createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded and inserted.'), { - type: 'snackbar' - }); - setIsInserting(false); - }, - allowedTypes: ALLOWED_MEDIA_TYPES, - onError(message) { - createErrorNotice(message, { - type: 'snackbar' - }); - setIsInserting(false); - } - }); - }).catch(() => { - setShowExternalUploadModal(true); - setIsInserting(false); + const top = getComputedCSS(blockElement, 'margin-top'); + const right = getComputedCSS(blockElement, 'margin-right'); + const bottom = getComputedCSS(blockElement, 'margin-bottom'); + const left = getComputedCSS(blockElement, 'margin-left'); + setStyle({ + borderTopWidth: top, + borderRightWidth: right, + borderBottomWidth: bottom, + borderLeftWidth: left, + top: top ? `-${top}` : 0, + right: right ? `-${right}` : 0, + bottom: bottom ? `-${bottom}` : 0, + left: left ? `-${left}` : 0 }); - }, [isInserting, onClick, mediaUpload, createErrorNotice, createSuccessNotice]); - const title = media.title?.rendered || media.title; - let truncatedTitle; - if (title.length > MAXIMUM_TITLE_LENGTH) { - const omission = '...'; - truncatedTitle = title.slice(0, MAXIMUM_TITLE_LENGTH - omission.length) + omission; - } - const onMouseEnter = (0,external_wp_element_namespaceObject.useCallback)(() => setIsHovered(true), []); - const onMouseLeave = (0,external_wp_element_namespaceObject.useCallback)(() => setIsHovered(false), []); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(inserter_draggable_blocks, { - isEnabled: true, - blocks: [block] - }, ({ - draggable, - onDragStart, - onDragEnd - }) => (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-inserter__media-list__list-item', { - 'is-hovered': isHovered - }), - draggable: draggable, - onDragStart: onDragStart, - onDragEnd: onDragEnd - }, (0,external_React_.createElement)("div", { - onMouseEnter: onMouseEnter, - onMouseLeave: onMouseLeave - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: truncatedTitle || title - }, (0,external_React_.createElement)(media_preview_CompositeItem, { - render: (0,external_React_.createElement)("div", { - "aria-label": title, - role: "option", - className: "block-editor-inserter__media-list__item" - }), - onClick: () => onMediaInsert(block) - }, (0,external_React_.createElement)("div", { - className: "block-editor-inserter__media-list__item-preview" - }, preview, isInserting && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__media-list__item-preview-spinner" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Spinner, null))))), !isInserting && (0,external_React_.createElement)(MediaPreviewOptions, { - category: category, - media: media - })))), showExternalUploadModal && (0,external_React_.createElement)(InsertExternalImageModal, { - onClose: () => setShowExternalUploadModal(false), - onSubmit: () => { - onClick((0,external_wp_blocks_namespaceObject.cloneBlock)(block)); - createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image inserted.'), { - type: 'snackbar' - }); - setShowExternalUploadModal(false); + }, [blockElement, margin]); + const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false); + const valueRef = (0,external_wp_element_namespaceObject.useRef)(margin); + const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); + const clearTimer = () => { + if (timeoutRef.current) { + window.clearTimeout(timeoutRef.current); + } + }; + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!external_wp_isShallowEqual_default()(margin, valueRef.current) && !forceShow) { + setIsActive(true); + valueRef.current = margin; + timeoutRef.current = setTimeout(() => { + setIsActive(false); + }, 400); } + return () => { + setIsActive(false); + clearTimer(); + }; + }, [margin, forceShow]); + if (!isActive && !forceShow) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { + clientId: clientId, + __unstableCoverTarget: true, + __unstableRefreshSize: margin, + __unstablePopoverSlot: "block-toolbar", + shift: false + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor__padding-visualizer", + style: style })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-list.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/padding.js /** * WordPress dependencies @@ -47288,127 +40864,65 @@ function MediaPreview({ */ -const { - CompositeV2: media_list_Composite, - useCompositeStoreV2: media_list_useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); -function MediaList({ - mediaList, - category, - onClick, - label = (0,external_wp_i18n_namespaceObject.__)('Media List') -}) { - const compositeStore = media_list_useCompositeStore(); - return (0,external_React_.createElement)(media_list_Composite, { - store: compositeStore, - role: "listbox", - className: "block-editor-inserter__media-list", - "aria-label": label - }, mediaList.map((media, index) => (0,external_React_.createElement)(MediaPreview, { - key: media.id || media.sourceId || index, - media: media, - category: category, - onClick: onClick - }))); -} -/* harmony default export */ var media_list = (MediaList); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/no-results.js - -/** - * WordPress dependencies - */ - - -function InserterNoResults() { - return (0,external_React_.createElement)("div", { - className: "block-editor-inserter__no-results" - }, (0,external_React_.createElement)(build_module_icon, { - className: "block-editor-inserter__no-results-icon", - icon: block_default - }), (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('No results found.'))); +function padding_getComputedCSS(element, property) { + return element.ownerDocument.defaultView.getComputedStyle(element).getPropertyValue(property); } -/* harmony default export */ var no_results = (InserterNoResults); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-panel.js - -/** - * WordPress dependencies - */ - - - - - - -/** - * Internal dependencies - */ - - - -const INITIAL_MEDIA_ITEMS_PER_PAGE = 10; -function MediaCategoryDialog({ - rootClientId, - onInsert, - category +function PaddingVisualizer({ + clientId, + attributes, + forceShow }) { - const container = (0,external_wp_element_namespaceObject.useRef)(); + const blockElement = useBlockElement(clientId); + const [style, setStyle] = (0,external_wp_element_namespaceObject.useState)(); + const padding = attributes?.style?.spacing?.padding; (0,external_wp_element_namespaceObject.useEffect)(() => { - const timeout = setTimeout(() => { - const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container.current); - firstTabbable?.focus(); + if (!blockElement || null === blockElement.ownerDocument.defaultView) { + return; + } + setStyle({ + borderTopWidth: padding_getComputedCSS(blockElement, 'padding-top'), + borderRightWidth: padding_getComputedCSS(blockElement, 'padding-right'), + borderBottomWidth: padding_getComputedCSS(blockElement, 'padding-bottom'), + borderLeftWidth: padding_getComputedCSS(blockElement, 'padding-left') }); - return () => clearTimeout(timeout); - }, [category]); - return (0,external_React_.createElement)("div", { - ref: container, - className: "block-editor-inserter__media-dialog" - }, (0,external_React_.createElement)(MediaCategoryPanel, { - rootClientId: rootClientId, - onInsert: onInsert, - category: category - })); -} -function MediaCategoryPanel({ - rootClientId, - onInsert, - category -}) { - const [search, setSearch, debouncedSearch] = (0,external_wp_compose_namespaceObject.useDebouncedInput)(); - const { - mediaList, - isLoading - } = useMediaResults(category, { - per_page: !!debouncedSearch ? 20 : INITIAL_MEDIA_ITEMS_PER_PAGE, - search: debouncedSearch - }); - const baseCssClass = 'block-editor-inserter__media-panel'; - const searchLabel = category.labels.search_items || (0,external_wp_i18n_namespaceObject.__)('Search'); - return (0,external_React_.createElement)("div", { - className: baseCssClass - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SearchControl, { - className: `${baseCssClass}-search`, - onChange: setSearch, - value: search, - label: searchLabel, - placeholder: searchLabel - }), isLoading && (0,external_React_.createElement)("div", { - className: `${baseCssClass}-spinner` - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Spinner, null)), !isLoading && !mediaList?.length && (0,external_React_.createElement)(no_results, null), !isLoading && !!mediaList?.length && (0,external_React_.createElement)(media_list, { - rootClientId: rootClientId, - onClick: onInsert, - mediaList: mediaList, - category: category + }, [blockElement, padding]); + const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false); + const valueRef = (0,external_wp_element_namespaceObject.useRef)(padding); + const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); + const clearTimer = () => { + if (timeoutRef.current) { + window.clearTimeout(timeoutRef.current); + } + }; + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!external_wp_isShallowEqual_default()(padding, valueRef.current) && !forceShow) { + setIsActive(true); + valueRef.current = padding; + timeoutRef.current = setTimeout(() => { + setIsActive(false); + }, 400); + } + return () => { + setIsActive(false); + clearTimer(); + }; + }, [padding, forceShow]); + if (!isActive && !forceShow) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { + clientId: clientId, + __unstableCoverTarget: true, + __unstableRefreshSize: padding, + __unstablePopoverSlot: "block-toolbar", + shift: false + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor__padding-visualizer", + style: style })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/media-tab/media-tab.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/dimensions.js /** * WordPress dependencies @@ -47418,7 +40932,6 @@ function MediaCategoryPanel({ - /** * Internal dependencies */ @@ -47428,91 +40941,102 @@ function MediaCategoryPanel({ -const media_tab_ALLOWED_MEDIA_TYPES = ['image', 'video', 'audio']; -function MediaTab({ - rootClientId, - selectedCategory, - onSelectCategory, - onInsert -}) { - const mediaCategories = useMediaCategories(rootClientId); - const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); - const baseCssClass = 'block-editor-inserter__media-tabs'; - const onSelectMedia = (0,external_wp_element_namespaceObject.useCallback)(media => { - if (!media?.url) { - return; + +const DIMENSIONS_SUPPORT_KEY = 'dimensions'; +const SPACING_SUPPORT_KEY = 'spacing'; +const dimensions_ALL_SIDES = (/* unused pure expression or super */ null && (['top', 'right', 'bottom', 'left'])); +const dimensions_AXIAL_SIDES = (/* unused pure expression or super */ null && (['vertical', 'horizontal'])); +function useVisualizer() { + const [property, setProperty] = (0,external_wp_element_namespaceObject.useState)(false); + const { + hideBlockInterface, + showBlockInterface + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!property) { + showBlockInterface(); + } else { + hideBlockInterface(); } - const [block] = getBlockAndPreviewFromMedia(media, media.type); - onInsert(block); - }, [onInsert]); - const mobileMediaCategories = (0,external_wp_element_namespaceObject.useMemo)(() => mediaCategories.map(mediaCategory => ({ - ...mediaCategory, - label: mediaCategory.labels.name - })), [mediaCategories]); - return (0,external_React_.createElement)(external_React_.Fragment, null, !isMobile && (0,external_React_.createElement)("div", { - className: `${baseCssClass}-container` - }, (0,external_React_.createElement)("nav", { - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Media categories') - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { - role: "list", - className: baseCssClass - }, mediaCategories.map(mediaCategory => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalItem, { - role: "listitem", - key: mediaCategory.name, - onClick: () => onSelectCategory(mediaCategory), - className: classnames_default()(`${baseCssClass}__media-category`, { - 'is-selected': selectedCategory === mediaCategory - }), - "aria-label": mediaCategory.labels.name, - "aria-current": mediaCategory === selectedCategory ? 'true' : undefined - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexBlock, null, mediaCategory.labels.name), (0,external_React_.createElement)(build_module_icon, { - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right - })))), (0,external_React_.createElement)("div", { - role: "listitem" - }, (0,external_React_.createElement)(check, null, (0,external_React_.createElement)(media_upload, { - multiple: false, - onSelect: onSelectMedia, - allowedTypes: media_tab_ALLOWED_MEDIA_TYPES, - render: ({ - open - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - onClick: event => { - // Safari doesn't emit a focus event on button elements when - // clicked and we need to manually focus the button here. - // The reason is that core's Media Library modal explicitly triggers a - // focus event and therefore a `blur` event is triggered on a different - // element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget` - // attribute making the Inserter dialog to close. - event.target.focus(); - open(); - }, - className: "block-editor-inserter__media-library-button", - variant: "secondary", - "data-unstable-ignore-focus-outside-for-relatedtarget": ".media-modal" - }, (0,external_wp_i18n_namespaceObject.__)('Open Media Library')) - })))))), isMobile && (0,external_React_.createElement)(MobileTabNavigation, { - categories: mobileMediaCategories - }, category => (0,external_React_.createElement)(MediaCategoryPanel, { - onInsert: onInsert, - rootClientId: rootClientId, - category: category - }))); + }, [property, showBlockInterface, hideBlockInterface]); + return [property, setProperty]; +} +function DimensionsInspectorControl({ + children, + resetAllFilter +}) { + const attributesResetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(attributes => { + const existingStyle = attributes.style; + const updatedStyle = resetAllFilter(existingStyle); + return { + ...attributes, + style: updatedStyle + }; + }, [resetAllFilter]); + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "dimensions", + resetAllFilter: attributesResetAllFilter + }, children); +} +function dimensions_DimensionsPanel(props) { + const { + clientId, + name, + attributes, + setAttributes, + __unstableParentLayout + } = props; + const settings = useBlockSettings(name, __unstableParentLayout); + const isEnabled = useHasDimensionsPanel(settings); + const value = attributes.style; + const [visualizedProperty, setVisualizedProperty] = useVisualizer(); + const onChange = newStyle => { + setAttributes({ + style: utils_cleanEmptyObject(newStyle) + }); + }; + if (!isEnabled) { + return null; + } + const defaultDimensionsControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [DIMENSIONS_SUPPORT_KEY, '__experimentalDefaultControls']); + const defaultSpacingControls = (0,external_wp_blocks_namespaceObject.getBlockSupport)(props.name, [SPACING_SUPPORT_KEY, '__experimentalDefaultControls']); + const defaultControls = { + ...defaultDimensionsControls, + ...defaultSpacingControls + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(DimensionsPanel, { + as: DimensionsInspectorControl, + panelId: clientId, + settings: settings, + value: value, + onChange: onChange, + defaultControls: defaultControls, + onVisualize: setVisualizedProperty + }), !!settings?.spacing?.padding && (0,external_wp_element_namespaceObject.createElement)(PaddingVisualizer, { + forceShow: visualizedProperty === 'padding', + ...props + }), !!settings?.spacing?.margin && (0,external_wp_element_namespaceObject.createElement)(MarginVisualizer, { + forceShow: visualizedProperty === 'margin', + ...props + })); } -/* harmony default export */ var media_tab = (MediaTab); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-menu-extension/index.js /** - * WordPress dependencies + * @deprecated */ +function useCustomSides() { + external_wp_deprecated_default()('wp.blockEditor.__experimentalUseCustomSides', { + since: '6.3', + version: '6.4' + }); +} -const { - Fill: __unstableInserterMenuExtension, - Slot: inserter_menu_extension_Slot -} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableInserterMenuExtension'); -__unstableInserterMenuExtension.Slot = inserter_menu_extension_Slot; -/* harmony default export */ var inserter_menu_extension = (__unstableInserterMenuExtension); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/style.js + +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-results.js /** * WordPress dependencies @@ -47523,7 +41047,6 @@ __unstableInserterMenuExtension.Slot = inserter_menu_extension_Slot; - /** * Internal dependencies */ @@ -47537,869 +41060,895 @@ __unstableInserterMenuExtension.Slot = inserter_menu_extension_Slot; +const styleSupportKeys = [...TYPOGRAPHY_SUPPORT_KEYS, BORDER_SUPPORT_KEY, COLOR_SUPPORT_KEY, DIMENSIONS_SUPPORT_KEY, BACKGROUND_SUPPORT_KEY, SPACING_SUPPORT_KEY]; +const hasStyleSupport = nameOrType => styleSupportKeys.some(key => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, key)); + +/** + * Returns the inline styles to add depending on the style object + * + * @param {Object} styles Styles configuration. + * + * @return {Object} Flattened CSS variables declaration. + */ +function getInlineStyles(styles = {}) { + const output = {}; + // The goal is to move everything to server side generated engine styles + // This is temporary as we absorb more and more styles into the engine. + (0,external_wp_styleEngine_namespaceObject.getCSSRules)(styles).forEach(rule => { + output[rule.key] = rule.value; + }); + return output; +} +/** + * Filters registered block settings, extending attributes to include `style` attribute. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function style_addAttribute(settings) { + if (!hasStyleSupport(settings)) { + return settings; + } + // Allow blocks to specify their own attribute definition with default values if needed. + if (!settings.attributes.style) { + Object.assign(settings.attributes, { + style: { + type: 'object' + } + }); + } + return settings; +} -const search_results_INITIAL_INSERTER_RESULTS = 9; /** - * Shared reference to an empty array for cases where it is important to avoid - * returning a new array reference on every invocation and rerendering the component. + * A dictionary of paths to flag skipping block support serialization as the key, + * with values providing the style paths to be omitted from serialization. * - * @type {Array} + * @constant + * @type {Record} */ -const search_results_EMPTY_ARRAY = []; -function InserterSearchResults({ - filterValue, - onSelect, - onHover, - onHoverPattern, - rootClientId, - clientId, - isAppender, - __experimentalInsertionIndex, - maxBlockPatterns, - maxBlockTypes, - showBlockDirectory = false, - isDraggable = true, - shouldFocusBlock = true, - prioritizePatterns, - selectBlockOnInsert -}) { - const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500); - const { - prioritizedBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const blockListSettings = select(store).getBlockListSettings(rootClientId); - return { - prioritizedBlocks: blockListSettings?.prioritizedInserterBlocks || search_results_EMPTY_ARRAY - }; - }, [rootClientId]); - const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ - onSelect, - rootClientId, - clientId, - isAppender, - insertionIndex: __experimentalInsertionIndex, - shouldFocusBlock, - selectBlockOnInsert - }); - const [blockTypes, blockTypeCategories, blockTypeCollections, onSelectBlockType] = use_block_types_state(destinationRootClientId, onInsertBlocks); - const [patterns,, onClickPattern] = use_patterns_state(onInsertBlocks, destinationRootClientId); - const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (maxBlockPatterns === 0) { - return []; - } - const results = searchItems(patterns, filterValue); - return maxBlockPatterns !== undefined ? results.slice(0, maxBlockPatterns) : results; - }, [filterValue, patterns, maxBlockPatterns]); - let maxBlockTypesToShow = maxBlockTypes; - if (prioritizePatterns && filteredBlockPatterns.length > 2) { - maxBlockTypesToShow = 0; +const skipSerializationPathsEdit = { + [`${BORDER_SUPPORT_KEY}.__experimentalSkipSerialization`]: ['border'], + [`${COLOR_SUPPORT_KEY}.__experimentalSkipSerialization`]: [COLOR_SUPPORT_KEY], + [`${TYPOGRAPHY_SUPPORT_KEY}.__experimentalSkipSerialization`]: [TYPOGRAPHY_SUPPORT_KEY], + [`${DIMENSIONS_SUPPORT_KEY}.__experimentalSkipSerialization`]: [DIMENSIONS_SUPPORT_KEY], + [`${SPACING_SUPPORT_KEY}.__experimentalSkipSerialization`]: [SPACING_SUPPORT_KEY] +}; + +/** + * A dictionary of paths to flag skipping block support serialization as the key, + * with values providing the style paths to be omitted from serialization. + * + * Extends the Edit skip paths to enable skipping additional paths in just + * the Save component. This allows a block support to be serialized within the + * editor, while using an alternate approach, such as server-side rendering, when + * the support is saved. + * + * @constant + * @type {Record} + */ +const skipSerializationPathsSave = { + ...skipSerializationPathsEdit, + [`${BACKGROUND_SUPPORT_KEY}`]: [BACKGROUND_SUPPORT_KEY] // Skip serialization of background support in save mode. +}; + +const skipSerializationPathsSaveChecks = { + [`${BACKGROUND_SUPPORT_KEY}`]: true +}; + +/** + * A dictionary used to normalize feature names between support flags, style + * object properties and __experimentSkipSerialization configuration arrays. + * + * This allows not having to provide a migration for a support flag and possible + * backwards compatibility bridges, while still achieving consistency between + * the support flag and the skip serialization array. + * + * @constant + * @type {Record} + */ +const renamedFeatures = { + gradients: 'gradient' +}; + +/** + * A utility function used to remove one or more paths from a style object. + * Works in a way similar to Lodash's `omit()`. See unit tests and examples below. + * + * It supports a single string path: + * + * ``` + * omitStyle( { color: 'red' }, 'color' ); // {} + * ``` + * + * or an array of paths: + * + * ``` + * omitStyle( { color: 'red', background: '#fff' }, [ 'color', 'background' ] ); // {} + * ``` + * + * It also allows you to specify paths at multiple levels in a string. + * + * ``` + * omitStyle( { typography: { textDecoration: 'underline' } }, 'typography.textDecoration' ); // {} + * ``` + * + * You can remove multiple paths at the same time: + * + * ``` + * omitStyle( + * { + * typography: { + * textDecoration: 'underline', + * textTransform: 'uppercase', + * } + * }, + * [ + * 'typography.textDecoration', + * 'typography.textTransform', + * ] + * ); + * // {} + * ``` + * + * You can also specify nested paths as arrays: + * + * ``` + * omitStyle( + * { + * typography: { + * textDecoration: 'underline', + * textTransform: 'uppercase', + * } + * }, + * [ + * [ 'typography', 'textDecoration' ], + * [ 'typography', 'textTransform' ], + * ] + * ); + * // {} + * ``` + * + * With regards to nesting of styles, infinite depth is supported: + * + * ``` + * omitStyle( + * { + * border: { + * radius: { + * topLeft: '10px', + * topRight: '0.5rem', + * } + * } + * }, + * [ + * [ 'border', 'radius', 'topRight' ], + * ] + * ); + * // { border: { radius: { topLeft: '10px' } } } + * ``` + * + * The third argument, `preserveReference`, defines how to treat the input style object. + * It is mostly necessary to properly handle mutation when recursively handling the style object. + * Defaulting to `false`, this will always create a new object, avoiding to mutate `style`. + * However, when recursing, we change that value to `true` in order to work with a single copy + * of the original style object. + * + * @see https://lodash.com/docs/4.17.15#omit + * + * @param {Object} style Styles object. + * @param {Array|string} paths Paths to remove. + * @param {boolean} preserveReference True to mutate the `style` object, false otherwise. + * @return {Object} Styles object with the specified paths removed. + */ +function omitStyle(style, paths, preserveReference = false) { + if (!style) { + return style; } - const filteredBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (maxBlockTypesToShow === 0) { - return []; - } - const nonPatternBlockTypes = blockTypes.filter(blockType => blockType.name !== 'core/block'); - let orderedItems = orderBy(nonPatternBlockTypes, 'frecency', 'desc'); - if (!filterValue && prioritizedBlocks.length) { - orderedItems = orderInserterBlockItems(orderedItems, prioritizedBlocks); + let newStyle = style; + if (!preserveReference) { + newStyle = JSON.parse(JSON.stringify(style)); + } + if (!Array.isArray(paths)) { + paths = [paths]; + } + paths.forEach(path => { + if (!Array.isArray(path)) { + path = path.split('.'); } - const results = searchBlockItems(orderedItems, blockTypeCategories, blockTypeCollections, filterValue); - return maxBlockTypesToShow !== undefined ? results.slice(0, maxBlockTypesToShow) : results; - }, [filterValue, blockTypes, blockTypeCategories, blockTypeCollections, maxBlockTypesToShow, prioritizedBlocks]); - - // Announce search results on change. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!filterValue) { - return; + if (path.length > 1) { + const [firstSubpath, ...restPath] = path; + omitStyle(newStyle[firstSubpath], [restPath], true); + } else if (path.length === 1) { + delete newStyle[path[0]]; } - const count = filteredBlockTypes.length + filteredBlockPatterns.length; - const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of results. */ - (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', count), count); - debouncedSpeak(resultsFoundMessage); - }, [filterValue, debouncedSpeak, filteredBlockTypes, filteredBlockPatterns]); - const currentShownBlockTypes = (0,external_wp_compose_namespaceObject.useAsyncList)(filteredBlockTypes, { - step: search_results_INITIAL_INSERTER_RESULTS }); - const currentShownPatterns = (0,external_wp_compose_namespaceObject.useAsyncList)(currentShownBlockTypes.length === filteredBlockTypes.length ? filteredBlockPatterns : search_results_EMPTY_ARRAY); - const hasItems = filteredBlockTypes.length > 0 || filteredBlockPatterns.length > 0; - const blocksUI = !!filteredBlockTypes.length && (0,external_React_.createElement)(panel, { - title: (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Blocks')) - }, (0,external_React_.createElement)(block_types_list, { - items: currentShownBlockTypes, - onSelect: onSelectBlockType, - onHover: onHover, - label: (0,external_wp_i18n_namespaceObject.__)('Blocks'), - isDraggable: isDraggable - })); - const patternsUI = !!filteredBlockPatterns.length && (0,external_React_.createElement)(panel, { - title: (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, null, (0,external_wp_i18n_namespaceObject.__)('Block patterns')) - }, (0,external_React_.createElement)("div", { - className: "block-editor-inserter__quick-inserter-patterns" - }, (0,external_React_.createElement)(block_patterns_list, { - shownPatterns: currentShownPatterns, - blockPatterns: filteredBlockPatterns, - onClickPattern: onClickPattern, - onHover: onHoverPattern, - isDraggable: isDraggable - }))); - return (0,external_React_.createElement)(inserter_listbox, null, !showBlockDirectory && !hasItems && (0,external_React_.createElement)(no_results, null), prioritizePatterns ? patternsUI : blocksUI, !!filteredBlockTypes.length && !!filteredBlockPatterns.length && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__quick-inserter-separator" - }), prioritizePatterns ? blocksUI : patternsUI, showBlockDirectory && (0,external_React_.createElement)(inserter_menu_extension.Slot, { - fillProps: { - onSelect: onSelectBlockType, - onHover, - filterValue, - hasItems, - rootClientId: destinationRootClientId - } - }, fills => { - if (fills.length) { - return fills; + return newStyle; +} + +/** + * Override props assigned to save component to inject the CSS variables definition. + * + * @param {Object} props Additional props applied to save element. + * @param {Object} blockType Block type. + * @param {Object} attributes Block attributes. + * @param {?Record} skipPaths An object of keys and paths to skip serialization. + * + * @return {Object} Filtered props applied to save element. + */ +function style_addSaveProps(props, blockType, attributes, skipPaths = skipSerializationPathsSave) { + if (!hasStyleSupport(blockType)) { + return props; + } + let { + style + } = attributes; + Object.entries(skipPaths).forEach(([indicator, path]) => { + const skipSerialization = skipSerializationPathsSaveChecks[indicator] || (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, indicator); + if (skipSerialization === true) { + style = omitStyle(style, path); } - if (!hasItems) { - return (0,external_React_.createElement)(no_results, null); + if (Array.isArray(skipSerialization)) { + skipSerialization.forEach(featureName => { + const feature = renamedFeatures[featureName] || featureName; + style = omitStyle(style, [[...path, feature]]); + }); } - return null; - })); + }); + props.style = { + ...getInlineStyles(style), + ...props.style + }; + return props; } -/* harmony default export */ var search_results = (InserterSearchResults); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tabs.js /** - * WordPress dependencies + * Filters registered block settings to extend the block edit wrapper + * to apply the desired styles and classnames properly. + * + * @param {Object} settings Original block settings. + * + * @return {Object}.Filtered block settings. */ +function style_addEditProps(settings) { + if (!hasStyleSupport(settings)) { + return settings; + } + const existingGetEditWrapperProps = settings.getEditWrapperProps; + settings.getEditWrapperProps = attributes => { + let props = {}; + if (existingGetEditWrapperProps) { + props = existingGetEditWrapperProps(attributes); + } + return style_addSaveProps(props, settings, attributes, skipSerializationPathsEdit); + }; + return settings; +} +/** + * Override the default edit UI to include new inspector controls for + * all the custom styles configs. + * + * @param {Function} BlockEdit Original component. + * + * @return {Function} Wrapped component. + */ +const withBlockControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { + if (!hasStyleSupport(props.name)) { + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + }); + } + const shouldDisplayControls = useDisplayBlockControls(); + const blockEditingMode = useBlockEditingMode(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, shouldDisplayControls && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(ColorEdit, { + ...props + }), (0,external_wp_element_namespaceObject.createElement)(BackgroundImagePanel, { + ...props + }), (0,external_wp_element_namespaceObject.createElement)(typography_TypographyPanel, { + ...props + }), (0,external_wp_element_namespaceObject.createElement)(border_BorderPanel, { + ...props + }), (0,external_wp_element_namespaceObject.createElement)(dimensions_DimensionsPanel, { + ...props + })), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + })); +}, 'withToolbarControls'); +// Defines which element types are supported, including their hover styles or +// any other elements that have been included under a single element type +// e.g. heading and h1-h6. +const elementTypes = [{ + elementType: 'button' +}, { + elementType: 'link', + pseudo: [':hover'] +}, { + elementType: 'heading', + elements: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] +}]; /** - * Internal dependencies + * Override the default block element to include elements styles. + * + * @param {Function} BlockListBlock Original component + * @return {Function} Wrapped component */ +const withElementsStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const blockElementsContainerIdentifier = `wp-elements-${(0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock)}`; -const { - Tabs -} = unlock(external_wp_components_namespaceObject.privateApis); -const blocksTab = { - name: 'blocks', - /* translators: Blocks tab title in the block inserter. */ - title: (0,external_wp_i18n_namespaceObject.__)('Blocks') -}; -const patternsTab = { - name: 'patterns', - /* translators: Theme and Directory Patterns tab title in the block inserter. */ - title: (0,external_wp_i18n_namespaceObject.__)('Patterns') -}; -const mediaTab = { - name: 'media', - /* translators: Media tab title in the block inserter. */ - title: (0,external_wp_i18n_namespaceObject.__)('Media') -}; -function InserterTabs({ - showPatterns = false, - showMedia = false, - onSelect, - tabsContents -}) { - const tabs = [blocksTab, showPatterns && patternsTab, showMedia && mediaTab].filter(Boolean); - return (0,external_React_.createElement)("div", { - className: "block-editor-inserter__tabs" - }, (0,external_React_.createElement)(Tabs, { - onSelect: onSelect - }, (0,external_React_.createElement)(Tabs.TabList, null, tabs.map(tab => (0,external_React_.createElement)(Tabs.Tab, { - key: tab.name, - tabId: tab.name - }, tab.title))), tabs.map(tab => (0,external_React_.createElement)(Tabs.TabPanel, { - key: tab.name, - tabId: tab.name, - focusable: false - }, tabsContents[tab.name])))); -} -/* harmony default export */ var tabs = (InserterTabs); + // The .editor-styles-wrapper selector is required on elements styles. As it is + // added to all other editor styles, not providing it causes reset and global + // styles to override element styles because of higher specificity. + const baseElementSelector = `.editor-styles-wrapper .${blockElementsContainerIdentifier}`; + const blockElementStyles = props.attributes.style?.elements; + const styles = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!blockElementStyles) { + return; + } + const elementCSSRules = []; + elementTypes.forEach(({ + elementType, + pseudo, + elements + }) => { + const skipSerialization = shouldSkipSerialization(props.name, COLOR_SUPPORT_KEY, elementType); + if (skipSerialization) { + return; + } + const elementStyles = blockElementStyles?.[elementType]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/menu.js + // Process primary element type styles. + if (elementStyles) { + const selector = scopeSelector(baseElementSelector, external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[elementType]); + elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(elementStyles, { + selector + })); -/** - * External dependencies - */ + // Process any interactive states for the element type. + if (pseudo) { + pseudo.forEach(pseudoSelector => { + if (elementStyles[pseudoSelector]) { + elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(elementStyles[pseudoSelector], { + selector: scopeSelector(baseElementSelector, `${external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[elementType]}${pseudoSelector}`) + })); + } + }); + } + } + // Process related elements e.g. h1-h6 for headings + if (elements) { + elements.forEach(element => { + if (blockElementStyles[element]) { + elementCSSRules.push((0,external_wp_styleEngine_namespaceObject.compileCSS)(blockElementStyles[element], { + selector: scopeSelector(baseElementSelector, external_wp_blocks_namespaceObject.__EXPERIMENTAL_ELEMENTS[element]) + })); + } + }); + } + }); + return elementCSSRules.length > 0 ? elementCSSRules.join('') : undefined; + }, [baseElementSelector, blockElementStyles, props.name]); + const element = (0,external_wp_element_namespaceObject.useContext)(BlockList.__unstableElementContext); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, styles && element && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)("style", { + dangerouslySetInnerHTML: { + __html: styles + } + }), element), (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + className: props.attributes.style?.elements ? classnames_default()(props.className, blockElementsContainerIdentifier) : props.className + })); +}, 'withElementsStyles'); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/style/addAttribute', style_addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/style/addSaveProps', style_addSaveProps); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/style/addEditProps', style_addEditProps); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/style/with-block-controls', withBlockControls); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/with-elements-styles', withElementsStyles); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/settings.js /** * WordPress dependencies */ +const hasSettingsSupport = blockType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, '__experimentalSettings', false); +function settings_addAttribute(settings) { + if (!hasSettingsSupport(settings)) { + return settings; + } + // Allow blocks to specify their own attribute definition with default values if needed. + if (!settings?.attributes?.settings) { + settings.attributes = { + ...settings.attributes, + settings: { + type: 'object' + } + }; + } + return settings; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/settings/addAttribute', settings_addAttribute); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/filter.js /** - * Internal dependencies + * WordPress dependencies */ +const filter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12 4 4 19h16L12 4zm0 3.2 5.5 10.3H12V7.2z" +})); +/* harmony default export */ var library_filter = (filter); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/duotone-control/index.js +/** + * WordPress dependencies + */ - - - - -function InserterMenu({ - rootClientId, - clientId, - isAppender, - __experimentalInsertionIndex, - onSelect, - showInserterHelpPanel, - showMostUsedBlocks, - __experimentalFilterValue = '', - shouldFocusBlock = true -}, ref) { - const [filterValue, setFilterValue, delayedFilterValue] = (0,external_wp_compose_namespaceObject.useDebouncedInput)(__experimentalFilterValue); - const [hoveredItem, setHoveredItem] = (0,external_wp_element_namespaceObject.useState)(null); - const [selectedPatternCategory, setSelectedPatternCategory] = (0,external_wp_element_namespaceObject.useState)(null); - const [patternFilter, setPatternFilter] = (0,external_wp_element_namespaceObject.useState)('all'); - const [selectedMediaCategory, setSelectedMediaCategory] = (0,external_wp_element_namespaceObject.useState)(null); - const [selectedTab, setSelectedTab] = (0,external_wp_element_namespaceObject.useState)(null); - const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = use_insertion_point({ - rootClientId, - clientId, - isAppender, - insertionIndex: __experimentalInsertionIndex, - shouldFocusBlock - }); - const { - showPatterns - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - hasAllowedPatterns - } = unlock(select(store)); - return { - showPatterns: hasAllowedPatterns(destinationRootClientId) - }; - }, [destinationRootClientId]); - const mediaCategories = useMediaCategories(destinationRootClientId); - const showMedia = mediaCategories.length > 0; - const onInsert = (0,external_wp_element_namespaceObject.useCallback)((blocks, meta, shouldForceFocusBlock) => { - onInsertBlocks(blocks, meta, shouldForceFocusBlock); - onSelect(); - }, [onInsertBlocks, onSelect]); - const onInsertPattern = (0,external_wp_element_namespaceObject.useCallback)((blocks, patternName) => { - onInsertBlocks(blocks, { - patternName +function DuotoneControl({ + colorPalette, + duotonePalette, + disableCustomColors, + disableCustomDuotone, + value, + onChange +}) { + let toolbarIcon; + if (value === 'unset') { + toolbarIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ColorIndicator, { + className: "block-editor-duotone-control__unset-indicator" }); - onSelect(); - }, [onInsertBlocks, onSelect]); - const onHover = (0,external_wp_element_namespaceObject.useCallback)(item => { - onToggleInsertionPoint(!!item); - setHoveredItem(item); - }, [onToggleInsertionPoint, setHoveredItem]); - const onHoverPattern = (0,external_wp_element_namespaceObject.useCallback)(item => { - onToggleInsertionPoint(!!item); - }, [onToggleInsertionPoint]); - const onClickPatternCategory = (0,external_wp_element_namespaceObject.useCallback)((patternCategory, filter) => { - setSelectedPatternCategory(patternCategory); - setPatternFilter(filter); - }, [setSelectedPatternCategory]); - const blocksTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - className: "block-editor-inserter__block-list" - }, (0,external_React_.createElement)(block_types_tab, { - rootClientId: destinationRootClientId, - onInsert: onInsert, - onHover: onHover, - showMostUsedBlocks: showMostUsedBlocks - })), showInserterHelpPanel && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__tips" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "h2" - }, (0,external_wp_i18n_namespaceObject.__)('A tip for using the block editor')), (0,external_React_.createElement)(tips, null))), [destinationRootClientId, onInsert, onHover, showMostUsedBlocks, showInserterHelpPanel]); - const patternsTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_React_.createElement)(block_patterns_tab, { - rootClientId: destinationRootClientId, - onInsert: onInsertPattern, - onSelectCategory: onClickPatternCategory, - selectedCategory: selectedPatternCategory - }), [destinationRootClientId, onInsertPattern, onClickPatternCategory, selectedPatternCategory]); - const mediaTab = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_React_.createElement)(media_tab, { - rootClientId: destinationRootClientId, - selectedCategory: selectedMediaCategory, - onSelectCategory: setSelectedMediaCategory, - onInsert: onInsert - }), [destinationRootClientId, onInsert, selectedMediaCategory, setSelectedMediaCategory]); - const inserterTabsContents = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - blocks: blocksTab, - patterns: patternsTab, - media: mediaTab - }), [blocksTab, mediaTab, patternsTab]); - const searchRef = (0,external_wp_element_namespaceObject.useRef)(); - (0,external_wp_element_namespaceObject.useImperativeHandle)(ref, () => ({ - focusSearch: () => { - searchRef.current.focus(); - } - })); - const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && selectedPatternCategory; - const showAsTabs = !delayedFilterValue && (showPatterns || showMedia); - const showMediaPanel = selectedTab === 'media' && !delayedFilterValue && selectedMediaCategory; - const handleSetSelectedTab = value => { - // If no longer on patterns tab remove the category setting. - if (value !== 'patterns') { - setSelectedPatternCategory(null); - } - setSelectedTab(value); - }; - return (0,external_React_.createElement)("div", { - className: "block-editor-inserter__menu" - }, (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-inserter__main-area', { - 'show-as-tabs': showAsTabs - }) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SearchControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-inserter__search", - onChange: value => { - if (hoveredItem) setHoveredItem(null); - setFilterValue(value); + } else if (value) { + toolbarIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DuotoneSwatch, { + values: value + }); + } else { + toolbarIcon = (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_filter + }); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: { + className: 'block-editor-duotone-control__popover', + headerTitle: (0,external_wp_i18n_namespaceObject.__)('Duotone') }, - value: filterValue, - label: (0,external_wp_i18n_namespaceObject.__)('Search for blocks and patterns'), - placeholder: (0,external_wp_i18n_namespaceObject.__)('Search'), - ref: searchRef - }), !!delayedFilterValue && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__no-tab-container" - }, (0,external_React_.createElement)(search_results, { - filterValue: delayedFilterValue, - onSelect: onSelect, - onHover: onHover, - onHoverPattern: onHoverPattern, - rootClientId: rootClientId, - clientId: clientId, - isAppender: isAppender, - __experimentalInsertionIndex: __experimentalInsertionIndex, - showBlockDirectory: true, - shouldFocusBlock: shouldFocusBlock - })), showAsTabs && (0,external_React_.createElement)(tabs, { - showPatterns: showPatterns, - showMedia: showMedia, - onSelect: handleSetSelectedTab, - tabsContents: inserterTabsContents - }), !delayedFilterValue && !showAsTabs && (0,external_React_.createElement)("div", { - className: "block-editor-inserter__no-tab-container" - }, blocksTab)), showMediaPanel && (0,external_React_.createElement)(MediaCategoryDialog, { - rootClientId: destinationRootClientId, - onInsert: onInsert, - category: selectedMediaCategory - }), showInserterHelpPanel && hoveredItem && (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - className: "block-editor-inserter__preview-container__popover", - placement: "right-start", - offset: 16, - focusOnMount: false, - animate: false - }, (0,external_React_.createElement)(preview_panel, { - item: hoveredItem - })), showPatternPanel && (0,external_React_.createElement)(PatternCategoryPreviewPanel, { - rootClientId: destinationRootClientId, - onInsert: onInsertPattern, - onHover: onHoverPattern, - category: selectedPatternCategory, - patternFilter: patternFilter, - showTitlesAsTooltip: true - })); + renderToggle: ({ + isOpen, + onToggle + }) => { + const openOnArrowDown = event => { + if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { + event.preventDefault(); + onToggle(); + } + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + showTooltip: true, + onClick: onToggle, + "aria-haspopup": "true", + "aria-expanded": isOpen, + onKeyDown: openOnArrowDown, + label: (0,external_wp_i18n_namespaceObject.__)('Apply duotone filter'), + icon: toolbarIcon + }); + }, + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Duotone') + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-duotone-control__description" + }, (0,external_wp_i18n_namespaceObject.__)('Create a two-tone color effect without losing your original image.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DuotonePicker, { + colorPalette: colorPalette, + duotonePalette: duotonePalette, + disableCustomColors: disableCustomColors, + disableCustomDuotone: disableCustomDuotone, + value: value, + onChange: onChange + })) + }); } -/* harmony default export */ var menu = ((0,external_wp_element_namespaceObject.forwardRef)(InserterMenu)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/quick-inserter.js +/* harmony default export */ var duotone_control = (DuotoneControl); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/duotone/utils.js /** * External dependencies */ /** - * WordPress dependencies + * Convert a list of colors to an object of R, G, and B values. + * + * @param {string[]} colors Array of RBG color strings. + * + * @return {Object} R, G, and B values. */ - - - - +function getValuesFromColors(colors = []) { + const values = { + r: [], + g: [], + b: [], + a: [] + }; + colors.forEach(color => { + const rgbColor = w(color).toRgb(); + values.r.push(rgbColor.r / 255); + values.g.push(rgbColor.g / 255); + values.b.push(rgbColor.b / 255); + values.a.push(rgbColor.a); + }); + return values; +} /** - * Internal dependencies + * Stylesheet for disabling a global styles duotone filter. + * + * @param {string} selector Selector to disable the filter for. + * + * @return {string} Filter none style. */ +function getDuotoneUnsetStylesheet(selector) { + return `${selector}{filter:none}`; +} - - - - -const SEARCH_THRESHOLD = 6; -const quick_inserter_SHOWN_BLOCK_TYPES = 6; -const SHOWN_BLOCK_PATTERNS = 2; -const SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4; -function QuickInserter({ - onSelect, - rootClientId, - clientId, - isAppender, - prioritizePatterns, - selectBlockOnInsert -}) { - const [filterValue, setFilterValue] = (0,external_wp_element_namespaceObject.useState)(''); - const [destinationRootClientId, onInsertBlocks] = use_insertion_point({ - onSelect, - rootClientId, - clientId, - isAppender, - selectBlockOnInsert - }); - const [blockTypes] = use_block_types_state(destinationRootClientId, onInsertBlocks); - const [patterns] = use_patterns_state(onInsertBlocks, destinationRootClientId); - const { - setInserterIsOpened, - insertionIndex - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings, - getBlockIndex, - getBlockCount - } = select(store); - const settings = getSettings(); - const index = getBlockIndex(clientId); - const blockCount = getBlockCount(); - return { - setInserterIsOpened: settings.__experimentalSetIsInserterOpened, - insertionIndex: index === -1 ? blockCount : index - }; - }, [clientId]); - const showPatterns = patterns.length && (!!filterValue || prioritizePatterns); - const showSearch = showPatterns && patterns.length > SEARCH_THRESHOLD || blockTypes.length > SEARCH_THRESHOLD; - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (setInserterIsOpened) { - setInserterIsOpened(false); - } - }, [setInserterIsOpened]); - - // When clicking Browse All select the appropriate block so as - // the insertion point can work as expected. - const onBrowseAll = () => { - setInserterIsOpened({ - rootClientId, - insertionIndex, - filterValue - }); - }; - let maxBlockPatterns = 0; - if (showPatterns) { - maxBlockPatterns = prioritizePatterns ? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION : SHOWN_BLOCK_PATTERNS; - } - return (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-inserter__quick-inserter', { - 'has-search': showSearch, - 'has-expand': setInserterIsOpened - }) - }, showSearch && (0,external_React_.createElement)(external_wp_components_namespaceObject.SearchControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-inserter__search", - value: filterValue, - onChange: value => { - setFilterValue(value); - }, - label: (0,external_wp_i18n_namespaceObject.__)('Search for blocks and patterns'), - placeholder: (0,external_wp_i18n_namespaceObject.__)('Search') - }), (0,external_React_.createElement)("div", { - className: "block-editor-inserter__quick-inserter-results" - }, (0,external_React_.createElement)(search_results, { - filterValue: filterValue, - onSelect: onSelect, - rootClientId: rootClientId, - clientId: clientId, - isAppender: isAppender, - maxBlockPatterns: maxBlockPatterns, - maxBlockTypes: quick_inserter_SHOWN_BLOCK_TYPES, - isDraggable: false, - prioritizePatterns: prioritizePatterns, - selectBlockOnInsert: selectBlockOnInsert - })), setInserterIsOpened && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-inserter__quick-inserter-expand", - onClick: onBrowseAll, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Browse all. This will open the main inserter panel in the editor toolbar.') - }, (0,external_wp_i18n_namespaceObject.__)('Browse all'))); +/** + * SVG and stylesheet needed for rendering the duotone filter. + * + * @param {string} selector Selector to apply the filter to. + * @param {string} id Unique id for this duotone filter. + * + * @return {string} Duotone filter style. + */ +function getDuotoneStylesheet(selector, id) { + return `${selector}{filter:url(#${id})}`; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/index.js +/** + * The SVG part of the duotone filter. + * + * @param {string} id Unique id for this duotone filter. + * @param {string[]} colors Color strings from dark to light. + * + * @return {string} Duotone SVG. + */ +function getDuotoneFilter(id, colors) { + const values = getValuesFromColors(colors); + return ` +`; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/get-block-css-selector.js /** - * External dependencies + * Internal dependencies */ + /** - * WordPress dependencies + * Determine the CSS selector for the block type and target provided, returning + * it if available. + * + * @param {import('@wordpress/blocks').Block} blockType The block's type. + * @param {string|string[]} target The desired selector's target e.g. `root`, delimited string, or array path. + * @param {Object} options Options object. + * @param {boolean} options.fallback Whether or not to fallback to broader selector. + * + * @return {?string} The CSS selector or `null` if no selector available. */ +function getBlockCSSSelector(blockType, target = 'root', options = {}) { + if (!target) { + return null; + } + const { + fallback = false + } = options; + const { + name, + selectors, + supports + } = blockType; + const hasSelectors = selectors && Object.keys(selectors).length > 0; + const path = Array.isArray(target) ? target.join('.') : target; + // Root selector. + // Calculated before returning as it can be used as a fallback for feature + // selectors later on. + let rootSelector = null; + if (hasSelectors && selectors.root) { + // Use the selectors API if available. + rootSelector = selectors?.root; + } else if (supports?.__experimentalSelector) { + // Use the old experimental selector supports property if set. + rootSelector = supports.__experimentalSelector; + } else { + // If no root selector found, generate default block class selector. + rootSelector = '.wp-block-' + name.replace('core/', '').replace('/', '-'); + } + // Return selector if it's the root target we are looking for. + if (path === 'root') { + return rootSelector; + } + // If target is not `root` or `duotone` we have a feature or subfeature + // as the target. If the target is a string convert to an array. + const pathArray = Array.isArray(target) ? target : target.split('.'); + // Feature selectors ( may fallback to root selector ); + if (pathArray.length === 1) { + const fallbackSelector = fallback ? rootSelector : null; + // Prefer the selectors API if available. + if (hasSelectors) { + // Get selector from either `feature.root` or shorthand path. + const featureSelector = getValueFromObjectPath(selectors, `${path}.root`, null) || getValueFromObjectPath(selectors, path, null); + // Return feature selector if found or any available fallback. + return featureSelector || fallbackSelector; + } + // Try getting old experimental supports selector value. + const featureSelector = getValueFromObjectPath(supports, `${path}.__experimentalSelector`, null); -/** - * Internal dependencies - */ - - + // If nothing to work with, provide fallback selector if available. + if (!featureSelector) { + return fallbackSelector; + } -const defaultRenderToggle = ({ - onToggle, - disabled, - isOpen, - blockTitle, - hasSingleBlockType, - toggleProps = {}, - prioritizePatterns -}) => { - const { - as: Wrapper = external_wp_components_namespaceObject.Button, - label: labelProp, - onClick, - ...rest - } = toggleProps; - let label = labelProp; - if (!label && hasSingleBlockType) { - label = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: the name of the block when there is only one - (0,external_wp_i18n_namespaceObject._x)('Add %s', 'directly add the only allowed block'), blockTitle); - } else if (!label && prioritizePatterns) { - label = (0,external_wp_i18n_namespaceObject.__)('Add pattern'); - } else if (!label) { - label = (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'); + // Scope the feature selector by the block's root selector. + return scopeSelector(rootSelector, featureSelector); } - // Handle both onClick functions from the toggle and the parent component. - function handleClick(event) { - if (onToggle) { - onToggle(event); - } - if (onClick) { - onClick(event); - } - } - return (0,external_React_.createElement)(Wrapper, { - icon: library_plus, - label: label, - tooltipPosition: "bottom", - onClick: handleClick, - className: "block-editor-inserter__toggle", - "aria-haspopup": !hasSingleBlockType ? 'true' : false, - "aria-expanded": !hasSingleBlockType ? isOpen : false, - disabled: disabled, - ...rest - }); -}; -class PrivateInserter extends external_wp_element_namespaceObject.Component { - constructor() { - super(...arguments); - this.onToggle = this.onToggle.bind(this); - this.renderToggle = this.renderToggle.bind(this); - this.renderContent = this.renderContent.bind(this); - } - onToggle(isOpen) { - const { - onToggle - } = this.props; + // Subfeature selector. + // This may fallback either to parent feature or root selector. + let subfeatureSelector; - // Surface toggle callback to parent component. - if (onToggle) { - onToggle(isOpen); - } + // Use selectors API if available. + if (hasSelectors) { + subfeatureSelector = getValueFromObjectPath(selectors, path, null); } - /** - * Render callback to display Dropdown toggle element. - * - * @param {Object} options - * @param {Function} options.onToggle Callback to invoke when toggle is - * pressed. - * @param {boolean} options.isOpen Whether dropdown is currently open. - * - * @return {Element} Dropdown toggle element. - */ - renderToggle({ - onToggle, - isOpen - }) { - const { - disabled, - blockTitle, - hasSingleBlockType, - directInsertBlock, - toggleProps, - hasItems, - renderToggle = defaultRenderToggle, - prioritizePatterns - } = this.props; - return renderToggle({ - onToggle, - isOpen, - disabled: disabled || !hasItems, - blockTitle, - hasSingleBlockType, - directInsertBlock, - toggleProps, - prioritizePatterns - }); + // Only return if we have a subfeature selector. + if (subfeatureSelector) { + return subfeatureSelector; } - /** - * Render callback to display Dropdown content element. - * - * @param {Object} options - * @param {Function} options.onClose Callback to invoke when dropdown is - * closed. - * - * @return {Element} Dropdown content element. - */ - renderContent({ - onClose - }) { - const { - rootClientId, - clientId, - isAppender, - showInserterHelpPanel, - // This prop is experimental to give some time for the quick inserter to mature - // Feel free to make them stable after a few releases. - __experimentalIsQuick: isQuick, - prioritizePatterns, - onSelectOrClose, - selectBlockOnInsert - } = this.props; - if (isQuick) { - return (0,external_React_.createElement)(QuickInserter, { - onSelect: blocks => { - const firstBlock = Array.isArray(blocks) && blocks?.length ? blocks[0] : blocks; - if (onSelectOrClose && typeof onSelectOrClose === 'function') { - onSelectOrClose(firstBlock); - } - onClose(); - }, - rootClientId: rootClientId, - clientId: clientId, - isAppender: isAppender, - prioritizePatterns: prioritizePatterns, - selectBlockOnInsert: selectBlockOnInsert - }); - } - return (0,external_React_.createElement)(menu, { - onSelect: () => { - onClose(); - }, - rootClientId: rootClientId, - clientId: clientId, - isAppender: isAppender, - showInserterHelpPanel: showInserterHelpPanel - }); - } - render() { - const { - position, - hasSingleBlockType, - directInsertBlock, - insertOnlyAllowedBlock, - __experimentalIsQuick: isQuick, - onSelectOrClose - } = this.props; - if (hasSingleBlockType || directInsertBlock) { - return this.renderToggle({ - onToggle: insertOnlyAllowedBlock - }); - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - className: "block-editor-inserter", - contentClassName: classnames_default()('block-editor-inserter__popover', { - 'is-quick': isQuick - }), - popoverProps: { - position, - shift: true - }, - onToggle: this.onToggle, - expandOnMobile: true, - headerTitle: (0,external_wp_i18n_namespaceObject.__)('Add a block'), - renderToggle: this.renderToggle, - renderContent: this.renderContent, - onClose: onSelectOrClose - }); + // To this point we don't have a subfeature selector. If a fallback has been + // requested, remove subfeature from target path and return results of a + // call for the parent feature's selector. + if (fallback) { + return getBlockCSSSelector(blockType, pathArray[0], options); } + + // We tried. + return null; } -const ComposedPrivateInserter = (0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, { - clientId, - rootClientId, - shouldDirectInsert = true -}) => { - const { - getBlockRootClientId, - hasInserterItems, - getAllowedBlocks, - getDirectInsertBlock, - getSettings - } = select(store); - const { - getBlockVariations - } = select(external_wp_blocks_namespaceObject.store); - rootClientId = rootClientId || getBlockRootClientId(clientId) || undefined; - const allowedBlocks = getAllowedBlocks(rootClientId); - const directInsertBlock = shouldDirectInsert && getDirectInsertBlock(rootClientId); - const settings = getSettings(); - const hasSingleBlockType = allowedBlocks?.length === 1 && getBlockVariations(allowedBlocks[0].name, 'inserter')?.length === 0; - let allowedBlockType = false; - if (hasSingleBlockType) { - allowedBlockType = allowedBlocks[0]; - } - return { - hasItems: hasInserterItems(rootClientId), - hasSingleBlockType, - blockTitle: allowedBlockType ? allowedBlockType.title : '', - allowedBlockType, - directInsertBlock, - rootClientId, - prioritizePatterns: settings.__experimentalPreferPatternsOnRoot && !rootClientId - }; -}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps, { - select -}) => { - return { - insertOnlyAllowedBlock() { - const { - rootClientId, - clientId, - isAppender, - hasSingleBlockType, - allowedBlockType, - directInsertBlock, - onSelectOrClose, - selectBlockOnInsert - } = ownProps; - if (!hasSingleBlockType && !directInsertBlock) { - return; - } - function getAdjacentBlockAttributes(attributesToCopy) { - const { - getBlock, - getPreviousBlockClientId - } = select(store); - if (!attributesToCopy || !clientId && !rootClientId) { - return {}; - } - const result = {}; - let adjacentAttributes = {}; - // If there is no clientId, then attempt to get attributes - // from the last block within innerBlocks of the root block. - if (!clientId) { - const parentBlock = getBlock(rootClientId); - if (parentBlock?.innerBlocks?.length) { - const lastInnerBlock = parentBlock.innerBlocks[parentBlock.innerBlocks.length - 1]; - if (directInsertBlock && directInsertBlock?.name === lastInnerBlock.name) { - adjacentAttributes = lastInnerBlock.attributes; - } - } - } else { - // Otherwise, attempt to get attributes from the - // previous block relative to the current clientId. - const currentBlock = getBlock(clientId); - const previousBlock = getBlock(getPreviousBlockClientId(clientId)); - if (currentBlock?.name === previousBlock?.name) { - adjacentAttributes = previousBlock?.attributes || {}; - } - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/filters-panel.js - // Copy over only those attributes flagged to be copied. - attributesToCopy.forEach(attribute => { - if (adjacentAttributes.hasOwnProperty(attribute)) { - result[attribute] = adjacentAttributes[attribute]; - } - }); - return result; - } - function getInsertionIndex() { - const { - getBlockIndex, - getBlockSelectionEnd, - getBlockOrder, - getBlockRootClientId - } = select(store); +/** + * External dependencies + */ - // If the clientId is defined, we insert at the position of the block. - if (clientId) { - return getBlockIndex(clientId); - } - // If there a selected block, we insert after the selected block. - const end = getBlockSelectionEnd(); - if (!isAppender && end && getBlockRootClientId(end) === rootClientId) { - return getBlockIndex(end) + 1; - } +/** + * WordPress dependencies + */ - // Otherwise, we insert at the end of the current rootClientId. - return getBlockOrder(rootClientId).length; - } - const { - insertBlock - } = dispatch(store); - let blockToInsert; - // Attempt to augment the directInsertBlock with attributes from an adjacent block. - // This ensures styling from nearby blocks is preserved in the newly inserted block. - // See: https://github.com/WordPress/gutenberg/issues/37904 - if (directInsertBlock) { - const newAttributes = getAdjacentBlockAttributes(directInsertBlock.attributesToCopy); - blockToInsert = (0,external_wp_blocks_namespaceObject.createBlock)(directInsertBlock.name, { - ...(directInsertBlock.attributes || {}), - ...newAttributes - }); - } else { - blockToInsert = (0,external_wp_blocks_namespaceObject.createBlock)(allowedBlockType.name); - } - insertBlock(blockToInsert, getInsertionIndex(), rootClientId, selectBlockOnInsert); - if (onSelectOrClose) { - onSelectOrClose({ - clientId: blockToInsert?.clientId - }); - } - const message = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: the name of the block that has been added - (0,external_wp_i18n_namespaceObject.__)('%s block added'), allowedBlockType.title); - (0,external_wp_a11y_namespaceObject.speak)(message); - } + + +/** + * Internal dependencies + */ + + +const filters_panel_EMPTY_ARRAY = []; +function useMultiOriginColorPresets(settings, { + presetSetting, + defaultSetting +}) { + const disableDefault = !settings?.color?.[defaultSetting]; + const userPresets = settings?.color?.[presetSetting]?.custom || filters_panel_EMPTY_ARRAY; + const themePresets = settings?.color?.[presetSetting]?.theme || filters_panel_EMPTY_ARRAY; + const defaultPresets = settings?.color?.[presetSetting]?.default || filters_panel_EMPTY_ARRAY; + return (0,external_wp_element_namespaceObject.useMemo)(() => [...userPresets, ...themePresets, ...(disableDefault ? filters_panel_EMPTY_ARRAY : defaultPresets)], [disableDefault, userPresets, themePresets, defaultPresets]); +} +function useHasFiltersPanel(settings) { + return useHasDuotoneControl(settings); +} +function useHasDuotoneControl(settings) { + return settings.color.customDuotone || settings.color.defaultDuotone || settings.color.duotone.length > 0; +} +function FiltersToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); }; -}), -// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as -// a way to detect the global Inserter. -(0,external_wp_compose_namespaceObject.ifCondition)(({ - hasItems, - isAppender, - rootClientId, - clientId -}) => hasItems || !isAppender && !rootClientId && !clientId)])(PrivateInserter); -const Inserter = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - return (0,external_React_.createElement)(ComposedPrivateInserter, { - ref: ref, - ...props + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject._x)('Filters', 'Name for applying graphical effects'), + resetAll: resetAll, + panelId: panelId + }, children); +} +const filters_panel_DEFAULT_CONTROLS = { + duotone: true +}; +const filters_panel_popoverProps = { + placement: 'left-start', + offset: 36, + shift: true, + className: 'block-editor-duotone-control__popover', + headerTitle: (0,external_wp_i18n_namespaceObject.__)('Duotone') +}; +const LabeledColorIndicator = ({ + indicator, + label +}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalZStack, { + isLayered: false, + offset: -8 +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + expanded: false +}, indicator === 'unset' || !indicator ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ColorIndicator, { + className: "block-editor-duotone-control__unset-indicator" +}) : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DuotoneSwatch, { + values: indicator +}))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + title: label +}, label)); +function FiltersPanel({ + as: Wrapper = FiltersToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = filters_panel_DEFAULT_CONTROLS +}) { + const decodeValue = rawValue => getValueFromVariable({ + settings + }, '', rawValue); + + // Duotone + const hasDuotoneEnabled = useHasDuotoneControl(settings); + const duotonePalette = useMultiOriginColorPresets(settings, { + presetSetting: 'duotone', + defaultSetting: 'defaultDuotone' }); -}); -/* harmony default export */ var inserter = (Inserter); + const colorPalette = useMultiOriginColorPresets(settings, { + presetSetting: 'palette', + defaultSetting: 'defaultPalette' + }); + const duotone = decodeValue(inheritedValue?.filter?.duotone); + const setDuotone = newValue => { + const duotonePreset = duotonePalette.find(({ + colors + }) => { + return colors === newValue; + }); + const settedValue = duotonePreset ? `var:preset|duotone|${duotonePreset.slug}` : newValue; + onChange(setImmutably(value, ['filter', 'duotone'], settedValue)); + }; + const hasDuotone = () => !!value?.filter?.duotone; + const resetDuotone = () => setDuotone(undefined); + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + filter: { + ...previousValue.filter, + duotone: undefined + } + }; + }, []); + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, hasDuotoneEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + label: (0,external_wp_i18n_namespaceObject.__)('Duotone'), + hasValue: hasDuotone, + onDeselect: resetDuotone, + isShownByDefault: defaultControls.duotone, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: filters_panel_popoverProps, + className: "block-editor-global-styles-filters-panel__dropdown", + renderToggle: ({ + onToggle, + isOpen + }) => { + const toggleProps = { + onClick: onToggle, + className: classnames_default()({ + 'is-open': isOpen + }), + 'aria-expanded': isOpen + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { + isBordered: true, + isSeparated: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...toggleProps + }, (0,external_wp_element_namespaceObject.createElement)(LabeledColorIndicator, { + indicator: duotone, + label: (0,external_wp_i18n_namespaceObject.__)('Duotone') + }))); + }, + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { + paddingSize: "medium" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, null, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Create a two-tone color effect without losing your original image.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DuotonePicker, { + colorPalette: colorPalette, + duotonePalette: duotonePalette + // TODO: Re-enable both when custom colors are supported for block-level styles. + , + disableCustomColors: true, + disableCustomDuotone: true, + value: duotone, + onChange: setDuotone + }))) + }))); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-block-appender/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/duotone.js /** * External dependencies */ + + /** * WordPress dependencies */ @@ -48415,93 +41964,318 @@ const Inserter = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) -/** - * Zero width non-breaking space, used as padding for the paragraph when it is - * empty. - */ -const ZWNBSP = '\ufeff'; -function DefaultBlockAppender({ - isLocked, - onAppend, - showPrompt, - placeholder, - rootClientId + + + + + + + +const duotone_EMPTY_ARRAY = []; + +// Safari does not always update the duotone filter when the duotone colors +// are changed. This browser check is later used to force a re-render of the block +// element to ensure the duotone filter is updated. The check is included at the +// root of this file as it only needs to be run once per page load. +const isSafari = window?.navigator.userAgent && window.navigator.userAgent.includes('Safari') && !window.navigator.userAgent.includes('Chrome') && !window.navigator.userAgent.includes('Chromium'); +k([names]); +function useMultiOriginPresets({ + presetSetting, + defaultSetting }) { - if (isLocked) { + const disableDefault = !use_setting_useSetting(defaultSetting); + const userPresets = use_setting_useSetting(`${presetSetting}.custom`) || duotone_EMPTY_ARRAY; + const themePresets = use_setting_useSetting(`${presetSetting}.theme`) || duotone_EMPTY_ARRAY; + const defaultPresets = use_setting_useSetting(`${presetSetting}.default`) || duotone_EMPTY_ARRAY; + return (0,external_wp_element_namespaceObject.useMemo)(() => [...userPresets, ...themePresets, ...(disableDefault ? duotone_EMPTY_ARRAY : defaultPresets)], [disableDefault, userPresets, themePresets, defaultPresets]); +} +function getColorsFromDuotonePreset(duotone, duotonePalette) { + if (!duotone) { + return; + } + const preset = duotonePalette?.find(({ + slug + }) => { + return duotone === `var:preset|duotone|${slug}`; + }); + return preset ? preset.colors : undefined; +} +function getDuotonePresetFromColors(colors, duotonePalette) { + if (!colors || !Array.isArray(colors)) { + return; + } + const preset = duotonePalette?.find(duotonePreset => { + return duotonePreset?.colors?.every((val, index) => val === colors[index]); + }); + return preset ? `var:preset|duotone|${preset.slug}` : undefined; +} +function DuotonePanel({ + attributes, + setAttributes, + name +}) { + const style = attributes?.style; + const duotoneStyle = style?.color?.duotone; + const settings = useBlockSettings(name); + const duotonePalette = useMultiOriginPresets({ + presetSetting: 'color.duotone', + defaultSetting: 'color.defaultDuotone' + }); + const colorPalette = useMultiOriginPresets({ + presetSetting: 'color.palette', + defaultSetting: 'color.defaultPalette' + }); + const disableCustomColors = !use_setting_useSetting('color.custom'); + const disableCustomDuotone = !use_setting_useSetting('color.customDuotone') || colorPalette?.length === 0 && disableCustomColors; + if (duotonePalette?.length === 0 && disableCustomDuotone) { return null; } - const value = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(placeholder) || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'); - return (0,external_React_.createElement)("div", { - "data-root-client-id": rootClientId || '', - className: classnames_default()('block-editor-default-block-appender', { - 'has-visible-prompt': showPrompt - }) - }, (0,external_React_.createElement)("p", { - tabIndex: "0" - // We want this element to be styled as a paragraph by themes. - // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role - , - role: "button", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Add default block') - // A wrapping container for this one already has the wp-block className. - , - className: "block-editor-default-block-appender__content", - onKeyDown: event => { - if (external_wp_keycodes_namespaceObject.ENTER === event.keyCode || external_wp_keycodes_namespaceObject.SPACE === event.keyCode) { - onAppend(); + const duotonePresetOrColors = !Array.isArray(duotoneStyle) ? getColorsFromDuotonePreset(duotoneStyle, duotonePalette) : duotoneStyle; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "filter" + }, (0,external_wp_element_namespaceObject.createElement)(FiltersPanel, { + value: { + filter: { + duotone: duotonePresetOrColors } }, - onClick: () => onAppend(), - onFocus: () => { - if (showPrompt) { - onAppend(); + onChange: newDuotone => { + const newStyle = { + ...style, + color: { + ...newDuotone?.filter + } + }; + setAttributes({ + style: newStyle + }); + }, + settings: settings + })), (0,external_wp_element_namespaceObject.createElement)(block_controls, { + group: "block", + __experimentalShareWithChildBlocks: true + }, (0,external_wp_element_namespaceObject.createElement)(duotone_control, { + duotonePalette: duotonePalette, + colorPalette: colorPalette, + disableCustomDuotone: disableCustomDuotone, + disableCustomColors: disableCustomColors, + value: duotonePresetOrColors, + onChange: newDuotone => { + const maybePreset = getDuotonePresetFromColors(newDuotone, duotonePalette); + const newStyle = { + ...style, + color: { + ...style?.color, + duotone: maybePreset !== null && maybePreset !== void 0 ? maybePreset : newDuotone // use preset or fallback to custom colors. + } + }; + + setAttributes({ + style: newStyle + }); + }, + settings: settings + }))); +} + +/** + * Filters registered block settings, extending attributes to include + * the `duotone` attribute. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function addDuotoneAttributes(settings) { + // Previous `color.__experimentalDuotone` support flag is migrated via + // block_type_metadata_settings filter in `lib/block-supports/duotone.php`. + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, 'filter.duotone')) { + return settings; + } + + // Allow blocks to specify their own attribute definition with default + // values if needed. + if (!settings.attributes.style) { + Object.assign(settings.attributes, { + style: { + type: 'object' } - } - }, showPrompt ? value : ZWNBSP), (0,external_React_.createElement)(inserter, { - rootClientId: rootClientId, - position: "bottom right", - isAppender: true, - __experimentalIsQuick: true - })); + }); + } + return settings; } -/* harmony default export */ var default_block_appender = ((0,external_wp_compose_namespaceObject.compose)((0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => { - const { - getBlockCount, - getSettings, - getTemplateLock - } = select(store); - const isEmpty = !getBlockCount(ownProps.rootClientId); - const { - bodyPlaceholder - } = getSettings(); - return { - showPrompt: isEmpty, - isLocked: !!getTemplateLock(ownProps.rootClientId), - placeholder: bodyPlaceholder - }; -}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps) => { + +/** + * Override the default edit UI to include toolbar controls for duotone if the + * block supports duotone. + * + * @param {Function} BlockEdit Original component. + * + * @return {Function} Wrapped component. + */ +const withDuotoneControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { + // Previous `color.__experimentalDuotone` support flag is migrated via + // block_type_metadata_settings filter in `lib/block-supports/duotone.php`. + const hasDuotoneSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(props.name, 'filter.duotone'); + const blockEditingMode = useBlockEditingMode(); + + // CAUTION: code added before this line will be executed + // for all blocks, not just those that support duotone. Code added + // above this line should be carefully evaluated for its impact on + // performance. + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasDuotoneSupport && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(DuotonePanel, { + ...props + }), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + })); +}, 'withDuotoneControls'); +function DuotoneStyles({ + clientId, + id: filterId, + selector: duotoneSelector, + attribute: duotoneAttr +}) { + const duotonePalette = useMultiOriginPresets({ + presetSetting: 'color.duotone', + defaultSetting: 'color.defaultDuotone' + }); + + // Possible values for duotone attribute: + // 1. Array of colors - e.g. ['#000000', '#ffffff']. + // 2. Variable for an existing Duotone preset - e.g. 'var:preset|duotone|green-blue' or 'var(--wp--preset--duotone--green-blue)'' + // 3. A CSS string - e.g. 'unset' to remove globally applied duotone. + const isCustom = Array.isArray(duotoneAttr); + const duotonePreset = isCustom ? undefined : getColorsFromDuotonePreset(duotoneAttr, duotonePalette); + const isPreset = typeof duotoneAttr === 'string' && duotonePreset; + const isCSS = typeof duotoneAttr === 'string' && !isPreset; + + // Match the structure of WP_Duotone_Gutenberg::render_duotone_support() in PHP. + let colors = null; + if (isPreset) { + // Array of colors. + colors = duotonePreset; + } else if (isCSS) { + // CSS filter property string (e.g. 'unset'). + colors = duotoneAttr; + } else if (isCustom) { + // Array of colors. + colors = duotoneAttr; + } + + // Build the CSS selectors to which the filter will be applied. + const selectors = duotoneSelector.split(','); + const selectorsScoped = selectors.map(selectorPart => { + // Extra .editor-styles-wrapper specificity is needed in the editor + // since we're not using inline styles to apply the filter. We need to + // override duotone applied by global styles and theme.json. + + // Assuming the selector part is a subclass selector (not a tag name) + // so we can prepend the filter id class. If we want to support elements + // such as `img` or namespaces, we'll need to add a case for that here. + return `.${filterId}${selectorPart.trim()}`; + }); + const selector = selectorsScoped.join(', '); + const isValidFilter = Array.isArray(colors) || colors === 'unset'; const { - insertDefaultBlock, - startTyping - } = dispatch(store); - return { - onAppend() { - const { - rootClientId - } = ownProps; - insertDefaultBlock(undefined, rootClientId); - startTyping(); - } - }; -}))(DefaultBlockAppender)); + setStyleOverride, + deleteStyleOverride + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + const blockElement = useBlockElement(clientId); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!isValidFilter) return; + setStyleOverride(filterId, { + css: colors !== 'unset' ? getDuotoneStylesheet(selector, filterId) : getDuotoneUnsetStylesheet(selector), + __unstableType: 'presets' + }); + setStyleOverride(`duotone-${filterId}`, { + assets: colors !== 'unset' ? getDuotoneFilter(filterId, colors) : '', + __unstableType: 'svgs' + }); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/button-block-appender/index.js + // Safari does not always update the duotone filter when the duotone colors + // are changed. When using Safari, force the block element to be repainted by + // the browser to ensure any changes are reflected visually. This logic matches + // that used on the site frontend in `block-supports/duotone.php`. + if (blockElement && isSafari) { + const display = blockElement.style.display; + // Switch to `inline-block` to force a repaint. In the editor, `inline-block` + // is used instead of `none` to ensure that scroll position is not affected, + // as `none` results in the editor scrolling to the top of the block. + blockElement.style.display = 'inline-block'; + // Simply accessing el.offsetHeight flushes layout and style + // changes in WebKit without having to wait for setTimeout. + // eslint-disable-next-line no-unused-expressions + blockElement.offsetHeight; + blockElement.style.display = display; + } + return () => { + deleteStyleOverride(filterId); + deleteStyleOverride(`duotone-${filterId}`); + }; + }, [isValidFilter, blockElement, colors, selector, filterId, setStyleOverride, deleteStyleOverride]); + return null; +} /** - * External dependencies + * Override the default block element to include duotone styles. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. */ +const withDuotoneStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const id = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock); + const selector = (0,external_wp_element_namespaceObject.useMemo)(() => { + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(props.name); + if (blockType) { + // Backwards compatibility for `supports.color.__experimentalDuotone` + // is provided via the `block_type_metadata_settings` filter. If + // `supports.filter.duotone` has not been set and the + // experimental property has been, the experimental property + // value is copied into `supports.filter.duotone`. + const duotoneSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'filter.duotone', false); + if (!duotoneSupport) { + return null; + } + + // If the experimental duotone support was set, that value is + // to be treated as a selector and requires scoping. + const experimentalDuotone = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, 'color.__experimentalDuotone', false); + if (experimentalDuotone) { + const rootSelector = getBlockCSSSelector(blockType); + return typeof experimentalDuotone === 'string' ? scopeSelector(rootSelector, experimentalDuotone) : rootSelector; + } + // Regular filter.duotone support uses filter.duotone selectors with fallbacks. + return getBlockCSSSelector(blockType, 'filter.duotone', { + fallback: true + }); + } + }, [props.name]); + const attribute = props?.attributes?.style?.color?.duotone; + const filterClass = `wp-duotone-${id}`; + const shouldRender = selector && attribute; + const className = shouldRender ? classnames_default()(props?.className, filterClass) : props?.className; + + // CAUTION: code added before this line will be executed + // for all blocks, not just those that support duotone. Code added + // above this line should be carefully evaluated for its impact on + // performance. + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, shouldRender && (0,external_wp_element_namespaceObject.createElement)(DuotoneStyles, { + clientId: props.clientId, + id: filterClass, + selector: selector, + attribute: attribute + }), (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + className: className + })); +}, 'withDuotoneStyles'); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/duotone/add-attributes', addDuotoneAttributes); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/duotone/with-editor-controls', withDuotoneControls); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/duotone/with-styles', withDuotoneStyles); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-display-information/index.js /** * WordPress dependencies */ @@ -48509,83 +42283,105 @@ function DefaultBlockAppender({ - - /** * Internal dependencies */ -function ButtonBlockAppender({ - rootClientId, - className, - onFocus, - tabIndex -}, ref) { - return (0,external_React_.createElement)(inserter, { - position: "bottom center", - rootClientId: rootClientId, - __experimentalIsQuick: true, - renderToggle: ({ - onToggle, - disabled, - isOpen, - blockTitle, - hasSingleBlockType - }) => { - let label; - if (hasSingleBlockType) { - label = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: the name of the block when there is only one - (0,external_wp_i18n_namespaceObject._x)('Add %s', 'directly add the only allowed block'), blockTitle); - } else { - label = (0,external_wp_i18n_namespaceObject._x)('Add block', 'Generic label for block inserter button'); - } - const isToggleButton = !hasSingleBlockType; - let inserterButton = (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ref: ref, - onFocus: onFocus, - tabIndex: tabIndex, - className: classnames_default()(className, 'block-editor-button-block-appender'), - onClick: onToggle, - "aria-haspopup": isToggleButton ? 'true' : undefined, - "aria-expanded": isToggleButton ? isOpen : undefined, - disabled: disabled, - label: label - }, !hasSingleBlockType && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "span" - }, label), (0,external_React_.createElement)(build_module_icon, { - icon: library_plus - })); - if (isToggleButton || hasSingleBlockType) { - inserterButton = (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: label - }, inserterButton); - } - return inserterButton; - }, - isAppender: true - }); -} + +/** @typedef {import('@wordpress/blocks').WPIcon} WPIcon */ /** - * Use `ButtonBlockAppender` instead. + * Contains basic block's information for display reasons. * - * @deprecated + * @typedef {Object} WPBlockDisplayInformation + * + * @property {boolean} isSynced True if is a reusable block or template part + * @property {string} title Human-readable block type label. + * @property {WPIcon} icon Block type icon. + * @property {string} description A detailed block type description. + * @property {string} anchor HTML anchor. + * @property {name} name A custom, human readable name for the block. */ -const ButtonBlockerAppender = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - external_wp_deprecated_default()(`wp.blockEditor.ButtonBlockerAppender`, { - alternative: 'wp.blockEditor.ButtonBlockAppender', - since: '5.9' - }); - return ButtonBlockAppender(props, ref); -}); /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/button-block-appender/README.md + * Get the display label for a block's position type. + * + * @param {Object} attributes Block attributes. + * @return {string} The position type label. */ -/* harmony default export */ var button_block_appender = ((0,external_wp_element_namespaceObject.forwardRef)(ButtonBlockAppender)); +function getPositionTypeLabel(attributes) { + const positionType = attributes?.style?.position?.type; + if (positionType === 'sticky') { + return (0,external_wp_i18n_namespaceObject.__)('Sticky'); + } + if (positionType === 'fixed') { + return (0,external_wp_i18n_namespaceObject.__)('Fixed'); + } + return null; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list-appender/index.js +/** + * Hook used to try to find a matching block variation and return + * the appropriate information for display reasons. In order to + * to try to find a match we need to things: + * 1. Block's client id to extract it's current attributes. + * 2. A block variation should have set `isActive` prop to a proper function. + * + * If for any reason a block variation match cannot be found, + * the returned information come from the Block Type. + * If no blockType is found with the provided clientId, returns null. + * + * @param {string} clientId Block's client id. + * @return {?WPBlockDisplayInformation} Block's display information, or `null` when the block or its type not found. + */ + +function useBlockDisplayInformation(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + if (!clientId) return null; + const { + getBlockName, + getBlockAttributes, + __experimentalGetReusableBlockTitle + } = select(store); + const { + getBlockType, + getActiveBlockVariation + } = select(external_wp_blocks_namespaceObject.store); + const blockName = getBlockName(clientId); + const blockType = getBlockType(blockName); + if (!blockType) return null; + const attributes = getBlockAttributes(clientId); + const match = getActiveBlockVariation(blockName, attributes); + const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)(blockType); + const resusableTitle = isReusable ? __experimentalGetReusableBlockTitle(attributes.ref) : undefined; + const title = resusableTitle || blockType.title; + const isSynced = isReusable || (0,external_wp_blocks_namespaceObject.isTemplatePart)(blockType); + const positionLabel = getPositionTypeLabel(attributes); + const blockTypeInfo = { + isSynced, + title, + icon: blockType.icon, + description: blockType.description, + anchor: attributes?.anchor, + positionLabel, + positionType: attributes?.style?.position?.type, + name: attributes?.metadata?.name + }; + if (!match) return blockTypeInfo; + return { + isSynced, + title: match.title || blockType.title, + icon: match.icon || blockType.icon, + description: match.description || blockType.description, + anchor: attributes?.anchor, + positionLabel, + positionType: attributes?.style?.position?.type, + name: attributes?.metadata?.name + }; + }, [clientId]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/position.js /** * External dependencies @@ -48598,323 +42394,355 @@ const ButtonBlockerAppender = (0,external_wp_element_namespaceObject.forwardRef) + + + + + /** * Internal dependencies */ -function DefaultAppender({ - rootClientId -}) { - const canInsertDefaultBlock = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).canInsertBlockType((0,external_wp_blocks_namespaceObject.getDefaultBlockName)(), rootClientId)); - if (canInsertDefaultBlock) { - // Render the default block appender if the context supports use - // of the default appender. - return (0,external_React_.createElement)(default_block_appender, { - rootClientId: rootClientId - }); - } - // Fallback in case the default block can't be inserted. - return (0,external_React_.createElement)(button_block_appender, { - rootClientId: rootClientId, - className: "block-list-appender__toggle" - }); -} -function useAppender(rootClientId, CustomAppender) { - const isVisible = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getTemplateLock, - getSelectedBlockClientId, - __unstableGetEditorMode, - getBlockEditingMode - } = select(store); - if (!CustomAppender) { - const selectedBlockClientId = getSelectedBlockClientId(); - const isParentSelected = rootClientId === selectedBlockClientId || !rootClientId && !selectedBlockClientId; - if (!isParentSelected) { - return false; - } - } - if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled' || __unstableGetEditorMode() === 'zoom-out') { - return false; - } - return true; - }, [rootClientId, CustomAppender]); - if (!isVisible) { - return null; - } - return CustomAppender ? (0,external_React_.createElement)(CustomAppender, null) : (0,external_React_.createElement)(DefaultAppender, { - rootClientId: rootClientId - }); -} -function BlockListAppender({ - rootClientId, - renderAppender, - className, - tagName: TagName = 'div' + + + +const { + CustomSelectControl +} = unlock(external_wp_components_namespaceObject.privateApis); +const POSITION_SUPPORT_KEY = 'position'; +const OPTION_CLASSNAME = 'block-editor-hooks__position-selection__select-control__option'; +const DEFAULT_OPTION = { + key: 'default', + value: '', + name: (0,external_wp_i18n_namespaceObject.__)('Default'), + className: OPTION_CLASSNAME +}; +const STICKY_OPTION = { + key: 'sticky', + value: 'sticky', + name: (0,external_wp_i18n_namespaceObject._x)('Sticky', 'Name for the value of the CSS position property'), + className: OPTION_CLASSNAME, + __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('The block will stick to the top of the window instead of scrolling.') +}; +const FIXED_OPTION = { + key: 'fixed', + value: 'fixed', + name: (0,external_wp_i18n_namespaceObject._x)('Fixed', 'Name for the value of the CSS position property'), + className: OPTION_CLASSNAME, + __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('The block will not move when the page is scrolled.') +}; +const POSITION_SIDES = ['top', 'right', 'bottom', 'left']; +const VALID_POSITION_TYPES = ['sticky', 'fixed']; + +/** + * Get calculated position CSS. + * + * @param {Object} props Component props. + * @param {string} props.selector Selector to use. + * @param {Object} props.style Style object. + * @return {string} The generated CSS rules. + */ +function getPositionCSS({ + selector, + style }) { - if (renderAppender === false) { - return null; + let output = ''; + const { + type: positionType + } = style?.position || {}; + if (!VALID_POSITION_TYPES.includes(positionType)) { + return output; } - return (0,external_React_.createElement)(BlockListAppenderInner, { - rootClientId: rootClientId, - renderAppender: renderAppender, - className: className, - tagName: TagName + output += `${selector} {`; + output += `position: ${positionType};`; + POSITION_SIDES.forEach(side => { + if (style?.position?.[side] !== undefined) { + output += `${side}: ${style.position[side]};`; + } }); -} -function BlockListAppenderInner({ - rootClientId, - renderAppender, - className, - tagName: TagName -}) { - const appender = useAppender(rootClientId, renderAppender); - const isDragOver = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockInsertionPoint, - isBlockInsertionPointVisible, - getBlockCount - } = select(store); - const insertionPoint = getBlockInsertionPoint(); - // Ideally we should also check for `isDragging` but currently it - // requires a lot more setup. We can revisit this once we refactor - // the DnD utility hooks. - return isBlockInsertionPointVisible() && rootClientId === insertionPoint?.rootClientId && getBlockCount(rootClientId) === 0; - }, [rootClientId]); - if (!appender) { - return null; + if (positionType === 'sticky' || positionType === 'fixed') { + // TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json. + output += `z-index: 10`; } - return (0,external_React_.createElement)(TagName - // A `tabIndex` is used on the wrapping `div` element in order to - // force a focus event to occur when an appender `button` element - // is clicked. In some browsers (Firefox, Safari), button clicks do - // not emit a focus event, which could cause this event to propagate - // unexpectedly. The `tabIndex` ensures that the interaction is - // captured as a focus, without also adding an extra tab stop. - // - // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus - , { - tabIndex: -1, - className: classnames_default()('block-list-appender wp-block', className, { - 'is-drag-over': isDragOver - }) - // Needed in case the whole editor is content editable (for multi - // selection). It fixes an edge case where ArrowDown and ArrowRight - // should collapse the selection to the end of that selection and - // not into the appender. - , - contentEditable: false - // The appender exists to let you add the first Paragraph before - // any is inserted. To that end, this appender should visually be - // presented as a block. That means theme CSS should style it as if - // it were an empty paragraph block. That means a `wp-block` class to - // ensure the width is correct, and a [data-block] attribute to ensure - // the correct margin is applied, especially for classic themes which - // have commonly targeted that attribute for margins. - , - "data-block": true - }, appender); + output += `}`; + return output; } -/* harmony default export */ var block_list_appender = (BlockListAppender); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/inbetween.js /** - * External dependencies + * Determines if there is sticky position support. + * + * @param {string|Object} blockType Block name or Block Type object. + * + * @return {boolean} Whether there is support. */ - +function hasStickyPositionSupport(blockType) { + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); + return !!(true === support || support?.sticky); +} /** - * WordPress dependencies + * Determines if there is fixed position support. + * + * @param {string|Object} blockType Block name or Block Type object. + * + * @return {boolean} Whether there is support. */ +function hasFixedPositionSupport(blockType) { + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); + return !!(true === support || support?.fixed); +} +/** + * Determines if there is position support. + * + * @param {string|Object} blockType Block name or Block Type object. + * + * @return {boolean} Whether there is support. + */ +function hasPositionSupport(blockType) { + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, POSITION_SUPPORT_KEY); + return !!support; +} - - +/** + * Checks if there is a current value in the position block support attributes. + * + * @param {Object} props Block props. + * @return {boolean} Whether or not the block has a position value set. + */ +function hasPositionValue(props) { + return props.attributes.style?.position?.type !== undefined; +} /** - * Internal dependencies + * Checks if the block is currently set to a sticky or fixed position. + * This check is helpful for determining how to position block toolbars or other elements. + * + * @param {Object} attributes Block attributes. + * @return {boolean} Whether or not the block is set to a sticky or fixed position. */ +function hasStickyOrFixedPositionValue(attributes) { + const positionType = attributes.style?.position?.type; + return positionType === 'sticky' || positionType === 'fixed'; +} +/** + * Resets the position block support attributes. This can be used when disabling + * the position support controls for a block via a `ToolsPanel`. + * + * @param {Object} props Block props. + * @param {Object} props.attributes Block's attributes. + * @param {Object} props.setAttributes Function to set block's attributes. + */ +function resetPosition({ + attributes = {}, + setAttributes +}) { + const { + style = {} + } = attributes; + setAttributes({ + style: cleanEmptyObject({ + ...style, + position: { + ...style?.position, + type: undefined, + top: undefined, + right: undefined, + bottom: undefined, + left: undefined + } + }) + }); +} +/** + * Custom hook that checks if position settings have been disabled. + * + * @param {string} name The name of the block. + * + * @return {boolean} Whether padding setting is disabled. + */ +function useIsPositionDisabled({ + name: blockName +} = {}) { + const allowFixed = use_setting_useSetting('position.fixed'); + const allowSticky = use_setting_useSetting('position.sticky'); + const isDisabled = !allowFixed && !allowSticky; + return !hasPositionSupport(blockName) || isDisabled; +} -const inbetween_MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER; -const InsertionPointOpenRef = (0,external_wp_element_namespaceObject.createContext)(); -function BlockPopoverInbetween({ - previousClientId, - nextClientId, - children, - __unstablePopoverSlot, - __unstableContentRef, - operation = 'insert', - nearestSide = 'right', - ...props -}) { - // This is a temporary hack to get the inbetween inserter to recompute properly. - const [popoverRecomputeCounter, forcePopoverRecompute] = (0,external_wp_element_namespaceObject.useReducer)( - // Module is there to make sure that the counter doesn't overflow. - s => (s + 1) % inbetween_MAX_POPOVER_RECOMPUTE_COUNTER, 0); +/* + * Position controls rendered in an inspector control panel. + * + * @param {Object} props + * + * @return {WPElement} Position panel. + */ +function PositionPanel(props) { const { - orientation, - rootClientId, - isVisible + attributes: { + style = {} + }, + clientId, + name: blockName, + setAttributes + } = props; + const allowFixed = hasFixedPositionSupport(blockName); + const allowSticky = hasStickyPositionSupport(blockName); + const value = style?.position?.type; + const { + firstParentClientId } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlockListSettings, - getBlockRootClientId, - isBlockVisible + getBlockParents } = select(store); - const _rootClientId = getBlockRootClientId(previousClientId !== null && previousClientId !== void 0 ? previousClientId : nextClientId); + const parents = getBlockParents(clientId); return { - orientation: getBlockListSettings(_rootClientId)?.orientation || 'vertical', - rootClientId: _rootClientId, - isVisible: isBlockVisible(previousClientId) && isBlockVisible(nextClientId) + firstParentClientId: parents[parents.length - 1] }; - }, [previousClientId, nextClientId]); - const previousElement = useBlockElement(previousClientId); - const nextElement = useBlockElement(nextClientId); - const isVertical = orientation === 'vertical'; - const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { - if ( - // popoverRecomputeCounter is by definition always equal or greater than 0. - // This check is only there to satisfy the correctness of the - // exhaustive-deps rule for the `useMemo` hook. - popoverRecomputeCounter < 0 || !previousElement && !nextElement || !isVisible) { - return undefined; + }, [clientId]); + const blockInformation = useBlockDisplayInformation(firstParentClientId); + const stickyHelpText = allowSticky && value === STICKY_OPTION.value && blockInformation ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: the name of the parent block. */ + (0,external_wp_i18n_namespaceObject.__)('The block will stick to the scrollable area of the parent %s block.'), blockInformation.title) : null; + const options = (0,external_wp_element_namespaceObject.useMemo)(() => { + const availableOptions = [DEFAULT_OPTION]; + // Display options if they are allowed, or if a block already has a valid value set. + // This allows for a block to be switched off from a position type that is not allowed. + if (allowSticky || value === STICKY_OPTION.value) { + availableOptions.push(STICKY_OPTION); } - const contextElement = operation === 'group' ? nextElement || previousElement : previousElement || nextElement; - return { - contextElement, - getBoundingClientRect() { - const previousRect = previousElement ? previousElement.getBoundingClientRect() : null; - const nextRect = nextElement ? nextElement.getBoundingClientRect() : null; - let left = 0; - let top = 0; - let width = 0; - let height = 0; - if (operation === 'group') { - const targetRect = nextRect || previousRect; - top = targetRect.top; - // No spacing is likely around blocks in this operation. - // So width of the inserter containing rect is set to 0. - width = 0; - height = targetRect.bottom - targetRect.top; - // Popover calculates its distance from mid-block so some - // adjustments are needed to make it appear in the right place. - left = nearestSide === 'left' ? targetRect.left - 2 : targetRect.right - 2; - } else if (isVertical) { - // vertical - top = previousRect ? previousRect.bottom : nextRect.top; - width = previousRect ? previousRect.width : nextRect.width; - height = nextRect && previousRect ? nextRect.top - previousRect.bottom : 0; - left = previousRect ? previousRect.left : nextRect.left; - } else { - top = previousRect ? previousRect.top : nextRect.top; - height = previousRect ? previousRect.height : nextRect.height; - if ((0,external_wp_i18n_namespaceObject.isRTL)()) { - // non vertical, rtl - left = nextRect ? nextRect.right : previousRect.left; - width = previousRect && nextRect ? previousRect.left - nextRect.right : 0; - } else { - // non vertical, ltr - left = previousRect ? previousRect.right : nextRect.left; - width = previousRect && nextRect ? nextRect.left - previousRect.right : 0; - } - } - return new window.DOMRect(left, top, width, height); - } - }; - }, [previousElement, nextElement, popoverRecomputeCounter, isVertical, isVisible, operation, nearestSide]); - const popoverScrollRef = use_popover_scroll(__unstableContentRef); - - // This is only needed for a smooth transition when moving blocks. - // When blocks are moved up/down, their position can be set by - // updating the `transform` property manually (i.e. without using CSS - // transitions or animations). The animation, which can also scroll the block - // editor, can sometimes cause the position of the Popover to get out of sync. - // A MutationObserver is therefore used to make sure that changes to the - // selectedElement's attribute (i.e. `transform`) can be tracked and used to - // trigger the Popover to rerender. - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!previousElement) { - return; + if (allowFixed || value === FIXED_OPTION.value) { + availableOptions.push(FIXED_OPTION); } - const observer = new window.MutationObserver(forcePopoverRecompute); - observer.observe(previousElement, { - attributes: true - }); - return () => { - observer.disconnect(); + return availableOptions; + }, [allowFixed, allowSticky, value]); + const onChangeType = next => { + // For now, use a hard-coded `0px` value for the position. + // `0px` is preferred over `0` as it can be used in `calc()` functions. + // In the future, it could be useful to allow for an offset value. + const placementValue = '0px'; + const newStyle = { + ...style, + position: { + ...style?.position, + type: next, + top: next === 'sticky' || next === 'fixed' ? placementValue : undefined + } }; - }, [previousElement]); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!nextElement) { - return; - } - const observer = new window.MutationObserver(forcePopoverRecompute); - observer.observe(nextElement, { - attributes: true + setAttributes({ + style: utils_cleanEmptyObject(newStyle) }); - return () => { - observer.disconnect(); - }; - }, [nextElement]); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!previousElement) { - return; - } - previousElement.ownerDocument.defaultView.addEventListener('resize', forcePopoverRecompute); - return () => { - previousElement.ownerDocument.defaultView?.removeEventListener('resize', forcePopoverRecompute); - }; - }, [previousElement]); + }; + const selectedOption = value ? options.find(option => option.value === value) || DEFAULT_OPTION : DEFAULT_OPTION; - // If there's either a previous or a next element, show the inbetween popover. - // Note that drag and drop uses the inbetween popover to show the drop indicator - // before the first block and after the last block. - if (!previousElement && !nextElement || !isVisible) { - return null; + // Only display position controls if there is at least one option to choose from. + return external_wp_element_namespaceObject.Platform.select({ + web: options.length > 1 ? (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "position" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.BaseControl, { + className: "block-editor-hooks__position-selection", + __nextHasNoMarginBottom: true, + help: stickyHelpText + }, (0,external_wp_element_namespaceObject.createElement)(CustomSelectControl, { + __nextUnconstrainedWidth: true, + __next36pxDefaultSize: true, + className: "block-editor-hooks__position-selection__select-control", + label: (0,external_wp_i18n_namespaceObject.__)('Position'), + hideLabelFromVision: true, + describedBy: (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Currently selected position. + (0,external_wp_i18n_namespaceObject.__)('Currently selected position: %s'), selectedOption.name), + options: options, + value: selectedOption, + __experimentalShowSelectedHint: true, + onChange: ({ + selectedItem + }) => { + onChangeType(selectedItem.value); + }, + size: '__unstable-large' + }))) : null, + native: null + }); +} + +/** + * Override the default edit UI to include position controls. + * + * @param {Function} BlockEdit Original component. + * + * @return {Function} Wrapped component. + */ +const withInspectorControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { + const { + name: blockName + } = props; + const positionSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, POSITION_SUPPORT_KEY); + const isPositionDisabled = useIsPositionDisabled(props); + const showPositionControls = positionSupport && !isPositionDisabled; + return [showPositionControls && (0,external_wp_element_namespaceObject.createElement)(PositionPanel, { + key: "position", + ...props + }), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + })]; +}, 'withInspectorControls'); + +/** + * Override the default block element to add the position styles. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. + */ +const withPositionStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + name, + attributes + } = props; + const hasPositionBlockSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, POSITION_SUPPORT_KEY); + const isPositionDisabled = useIsPositionDisabled(props); + const allowPositionStyles = hasPositionBlockSupport && !isPositionDisabled; + const id = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock); + const element = (0,external_wp_element_namespaceObject.useContext)(BlockList.__unstableElementContext); + + // Higher specificity to override defaults in editor UI. + const positionSelector = `.wp-container-${id}.wp-container-${id}`; + + // Get CSS string for the current position values. + let css; + if (allowPositionStyles) { + css = getPositionCSS({ + selector: positionSelector, + style: attributes?.style + }) || ''; } - /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ - // While ideally it would be enough to capture the - // bubbling focus event from the Inserter, due to the - // characteristics of click focusing of `button`s in - // Firefox and Safari, it is not reliable. - // - // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - ref: popoverScrollRef, - animate: false, - anchor: popoverAnchor, - focusOnMount: false - // Render in the old slot if needed for backward compatibility, - // otherwise render in place (not in the default popover slot). - , - __unstableSlotName: __unstablePopoverSlot, - inline: !__unstablePopoverSlot - // Forces a remount of the popover when its position changes - // This makes sure the popover doesn't animate from its previous position. - , - key: nextClientId + '--' + rootClientId, - ...props, - className: classnames_default()('block-editor-block-popover', 'block-editor-block-popover__inbetween', props.className), - resize: false, - flip: false, - placement: "overlay", - variant: "unstyled" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-popover__inbetween-container" - }, children)); - /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ -} + // Attach a `wp-container-` id-based class name. + const className = classnames_default()(props?.className, { + [`wp-container-${id}`]: allowPositionStyles && !!css, + // Only attach a container class if there is generated CSS to be attached. + [`is-position-${attributes?.style?.position?.type}`]: allowPositionStyles && !!css && !!attributes?.style?.position?.type + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, allowPositionStyles && element && !!css && (0,external_wp_element_namespaceObject.createPortal)((0,external_wp_element_namespaceObject.createElement)("style", null, css), element), (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + className: className + })); +}, 'withPositionStyles'); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/position/with-position-styles', withPositionStyles); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/position/with-inspector-controls', withInspectorControls); -/* harmony default export */ var inbetween = (BlockPopoverInbetween); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/layout.js + +/** + * External dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-popover/drop-zone.js /** * WordPress dependencies @@ -48923,286 +42751,470 @@ function BlockPopoverInbetween({ -/** - * Internal dependencies - */ -const animateVariants = { - hide: { - opacity: 0, - scaleY: 0.75 - }, - show: { - opacity: 1, - scaleY: 1 - }, - exit: { - opacity: 0, - scaleY: 0.9 - } -}; -function BlockDropZonePopover({ - __unstablePopoverSlot, - __unstableContentRef -}) { - const { - clientId - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockOrder, - getBlockInsertionPoint - } = select(store); - const insertionPoint = getBlockInsertionPoint(); - const order = getBlockOrder(insertionPoint.rootClientId); - if (!order.length) { - return {}; - } - return { - clientId: order[insertionPoint.index] - }; - }, []); - const reducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); - return (0,external_React_.createElement)(block_popover, { - clientId: clientId, - __unstableCoverTarget: true, - __unstablePopoverSlot: __unstablePopoverSlot, - __unstableContentRef: __unstableContentRef, - className: "block-editor-block-popover__drop-zone" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { - "data-testid": "block-popover-drop-zone", - initial: reducedMotion ? animateVariants.show : animateVariants.hide, - animate: animateVariants.show, - exit: reducedMotion ? animateVariants.show : animateVariants.exit, - className: "block-editor-block-popover__drop-zone-foreground" - })); -} -/* harmony default export */ var drop_zone = (BlockDropZonePopover); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/insertion-point.js /** - * External dependencies + * Internal dependencies */ -/** - * WordPress dependencies - */ -/** - * Internal dependencies - */ +const layoutBlockSupportKey = 'layout'; +function hasLayoutBlockSupport(blockName) { + return (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'layout') || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, '__experimentalLayout'); +} +/** + * Generates the utility classnames for the given block's layout attributes. + * + * @param { Object } blockAttributes Block attributes. + * @param { string } blockName Block name. + * + * @return { Array } Array of CSS classname strings. + */ +function useLayoutClasses(blockAttributes = {}, blockName = '') { + const rootPaddingAlignment = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return getSettings().__experimentalFeatures?.useRootPaddingAwareAlignments; + }, []); + const { + layout + } = blockAttributes; + const { + default: defaultBlockLayout + } = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, layoutBlockSupportKey) || {}; + const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { + ...layout, + type: 'constrained' + } : layout || defaultBlockLayout || {}; + const layoutClassnames = []; + if (LAYOUT_DEFINITIONS[usedLayout?.type || 'default']?.className) { + const baseClassName = LAYOUT_DEFINITIONS[usedLayout?.type || 'default']?.className; + const splitBlockName = blockName.split('/'); + const fullBlockName = splitBlockName[0] === 'core' ? splitBlockName.pop() : splitBlockName.join('-'); + const compoundClassName = `wp-block-${fullBlockName}-${baseClassName}`; + layoutClassnames.push(baseClassName, compoundClassName); + } + if ((usedLayout?.inherit || usedLayout?.contentSize || usedLayout?.type === 'constrained') && rootPaddingAlignment) { + layoutClassnames.push('has-global-padding'); + } + if (usedLayout?.orientation) { + layoutClassnames.push(`is-${kebabCase(usedLayout.orientation)}`); + } + if (usedLayout?.justifyContent) { + layoutClassnames.push(`is-content-justification-${kebabCase(usedLayout.justifyContent)}`); + } + if (usedLayout?.flexWrap && usedLayout.flexWrap === 'nowrap') { + layoutClassnames.push('is-nowrap'); + } + return layoutClassnames; +} -const insertion_point_InsertionPointOpenRef = (0,external_wp_element_namespaceObject.createContext)(); -function InbetweenInsertionPointPopover({ - __unstablePopoverSlot, - __unstableContentRef, - operation = 'insert', - nearestSide = 'right' +/** + * Generates a CSS rule with the given block's layout styles. + * + * @param { Object } blockAttributes Block attributes. + * @param { string } blockName Block name. + * @param { string } selector A selector to use in generating the CSS rule. + * + * @return { string } CSS rule. + */ +function useLayoutStyles(blockAttributes = {}, blockName, selector) { + const { + layout = {}, + style = {} + } = blockAttributes; + // Update type for blocks using legacy layouts. + const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { + ...layout, + type: 'constrained' + } : layout || {}; + const fullLayoutType = getLayoutType(usedLayout?.type || 'default'); + const blockGapSupport = use_setting_useSetting('spacing.blockGap'); + const hasBlockGapSupport = blockGapSupport !== null; + const css = fullLayoutType?.getLayoutStyle?.({ + blockName, + selector, + layout, + style, + hasBlockGapSupport + }); + return css; +} +function LayoutPanel({ + setAttributes, + attributes, + name: blockName }) { + const settings = useBlockSettings(blockName); const { - selectBlock, - hideInsertionPoint - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const openRef = (0,external_wp_element_namespaceObject.useContext)(insertion_point_InsertionPointOpenRef); - const ref = (0,external_wp_element_namespaceObject.useRef)(); + layout: { + allowEditing: allowEditingSetting + } + } = settings; const { - orientation, - previousClientId, - nextClientId, - rootClientId, - isInserterShown, - isDistractionFree, - isNavigationMode + layout + } = attributes; + const defaultThemeLayout = use_setting_useSetting('layout'); + const { + themeSupportsLayout } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlockOrder, - getBlockListSettings, - getBlockInsertionPoint, - isBlockBeingDragged, - getPreviousBlockClientId, - getNextBlockClientId, - getSettings, - isNavigationMode: _isNavigationMode + getSettings } = select(store); - const insertionPoint = getBlockInsertionPoint(); - const order = getBlockOrder(insertionPoint.rootClientId); - if (!order.length) { - return {}; - } - let _previousClientId = order[insertionPoint.index - 1]; - let _nextClientId = order[insertionPoint.index]; - while (isBlockBeingDragged(_previousClientId)) { - _previousClientId = getPreviousBlockClientId(_previousClientId); - } - while (isBlockBeingDragged(_nextClientId)) { - _nextClientId = getNextBlockClientId(_nextClientId); - } - const settings = getSettings(); return { - previousClientId: _previousClientId, - nextClientId: _nextClientId, - orientation: getBlockListSettings(insertionPoint.rootClientId)?.orientation || 'vertical', - rootClientId: insertionPoint.rootClientId, - isNavigationMode: _isNavigationMode(), - isDistractionFree: settings.isDistractionFree, - isInserterShown: insertionPoint?.__unstableWithInserter + themeSupportsLayout: getSettings().supportsLayout }; }, []); - const disableMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)(); - function onClick(event) { - if (event.target === ref.current && nextClientId) { - selectBlock(nextClientId, -1); - } + const blockEditingMode = useBlockEditingMode(); + const layoutBlockSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, layoutBlockSupportKey, {}); + const { + allowSwitching, + allowEditing = allowEditingSetting !== null && allowEditingSetting !== void 0 ? allowEditingSetting : true, + allowInheriting = true, + default: defaultBlockLayout + } = layoutBlockSupport; + if (!allowEditing) { + return null; } - function maybeHideInserterPoint(event) { - // Only hide the inserter if it's triggered on the wrapper, - // and the inserter is not open. - if (event.target === ref.current && !openRef.current) { - hideInsertionPoint(); - } + + // Only show the inherit toggle if it's supported, + // a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values), + // and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other. + const showInheritToggle = !!(allowInheriting && !!defaultThemeLayout && (!layout?.type || layout?.type === 'default' || layout?.type === 'constrained' || layout?.inherit)); + const usedLayout = layout || defaultBlockLayout || {}; + const { + inherit = false, + type = 'default', + contentSize = null + } = usedLayout; + /** + * `themeSupportsLayout` is only relevant to the `default/flow` or + * `constrained` layouts and it should not be taken into account when other + * `layout` types are used. + */ + if ((type === 'default' || type === 'constrained') && !themeSupportsLayout) { + return null; } - function onFocus(event) { - // Only handle click on the wrapper specifically, and not an event - // bubbled from the inserter itself. - if (event.target !== ref.current) { - openRef.current = true; + const layoutType = getLayoutType(type); + const constrainedType = getLayoutType('constrained'); + const displayControlsForLegacyLayouts = !usedLayout.type && (contentSize || inherit); + const hasContentSizeOrLegacySettings = !!inherit || !!contentSize; + const onChangeType = newType => setAttributes({ + layout: { + type: newType } - } - const lineVariants = { - // Initial position starts from the center and invisible. - start: { - opacity: 0, - scale: 0 - }, - // The line expands to fill the container. If the inserter is visible it - // is delayed so it appears orchestrated. - rest: { - opacity: 1, - scale: 1, - transition: { - delay: isInserterShown ? 0.5 : 0, - type: 'tween' - } - }, - hover: { - opacity: 1, - scale: 1, - transition: { - delay: 0.5, - type: 'tween' + }); + const onChangeLayout = newLayout => setAttributes({ + layout: newLayout + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(inspector_controls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Layout') + }, showInheritToggle && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-hooks__toggle-control", + label: (0,external_wp_i18n_namespaceObject.__)('Inner blocks use content width'), + checked: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings, + onChange: () => setAttributes({ + layout: { + type: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings ? 'default' : 'constrained' } - } - }; - const inserterVariants = { - start: { - scale: disableMotion ? 1 : 0 - }, - rest: { - scale: 1, - transition: { - delay: 0.4, - type: 'tween' + }), + help: layoutType?.name === 'constrained' || hasContentSizeOrLegacySettings ? (0,external_wp_i18n_namespaceObject.__)('Nested blocks use content width with options for full and wide widths.') : (0,external_wp_i18n_namespaceObject.__)('Nested blocks will fill the width of this container. Toggle to constrain.') + })), !inherit && allowSwitching && (0,external_wp_element_namespaceObject.createElement)(LayoutTypeSwitcher, { + type: type, + onChange: onChangeType + }), layoutType && layoutType.name !== 'default' && (0,external_wp_element_namespaceObject.createElement)(layoutType.inspectorControls, { + layout: usedLayout, + onChange: onChangeLayout, + layoutBlockSupport: layoutBlockSupport + }), constrainedType && displayControlsForLegacyLayouts && (0,external_wp_element_namespaceObject.createElement)(constrainedType.inspectorControls, { + layout: usedLayout, + onChange: onChangeLayout, + layoutBlockSupport: layoutBlockSupport + }))), !inherit && blockEditingMode === 'default' && layoutType && (0,external_wp_element_namespaceObject.createElement)(layoutType.toolBarControls, { + layout: usedLayout, + onChange: onChangeLayout, + layoutBlockSupport: layoutBlockSupport + })); +} +function LayoutTypeSwitcher({ + type, + onChange +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, null, getLayoutTypes().map(({ + name, + label + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: name, + isPressed: type === name, + onClick: () => onChange(name) + }, label); + })); +} + +/** + * Filters registered block settings, extending attributes to include `layout`. + * + * @param {Object} settings Original block settings. + * + * @return {Object} Filtered block settings. + */ +function layout_addAttribute(settings) { + var _settings$attributes$; + if ('type' in ((_settings$attributes$ = settings.attributes?.layout) !== null && _settings$attributes$ !== void 0 ? _settings$attributes$ : {})) { + return settings; + } + if (hasLayoutBlockSupport(settings)) { + settings.attributes = { + ...settings.attributes, + layout: { + type: 'object' } - } - }; - if (isDistractionFree && !isNavigationMode) { - return null; + }; } - const orientationClassname = orientation === 'horizontal' || operation === 'group' ? 'is-horizontal' : 'is-vertical'; - const className = classnames_default()('block-editor-block-list__insertion-point', orientationClassname); - return (0,external_React_.createElement)(inbetween, { - previousClientId: previousClientId, - nextClientId: nextClientId, - __unstablePopoverSlot: __unstablePopoverSlot, - __unstableContentRef: __unstableContentRef, - operation: operation, - nearestSide: nearestSide - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { - layout: !disableMotion, - initial: disableMotion ? 'rest' : 'start', - animate: "rest", - whileHover: "hover", - whileTap: "pressed", - exit: "start", - ref: ref, - tabIndex: -1, - onClick: onClick, - onFocus: onFocus, - className: classnames_default()(className, { - 'is-with-inserter': isInserterShown - }), - onHoverEnd: maybeHideInserterPoint - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { - variants: lineVariants, - className: "block-editor-block-list__insertion-point-indicator", - "data-testid": "block-list-insertion-point-indicator" - }), isInserterShown && (0,external_React_.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { - variants: inserterVariants, - className: classnames_default()('block-editor-block-list__insertion-point-inserter') - }, (0,external_React_.createElement)(inserter, { - position: "bottom center", - clientId: nextClientId, - rootClientId: rootClientId, - __experimentalIsQuick: true, - onToggle: isOpen => { - openRef.current = isOpen; - }, - onSelectOrClose: () => { - openRef.current = false; - } - })))); + return settings; } -function InsertionPoint(props) { + +/** + * Override the default edit UI to include layout controls + * + * @param {Function} BlockEdit Original component. + * + * @return {Function} Wrapped component. + */ +const layout_withInspectorControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { const { - insertionPoint, - isVisible, - isBlockListEmpty - } = (0,external_wp_data_namespaceObject.useSelect)(select => { + name: blockName + } = props; + const supportLayout = hasLayoutBlockSupport(blockName); + const blockEditingMode = useBlockEditingMode(); + return [supportLayout && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(LayoutPanel, { + key: "layout", + ...props + }), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + })]; +}, 'withInspectorControls'); + +/** + * Override the default block element to add the layout styles. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. + */ +const withLayoutStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + name, + attributes + } = props; + const blockSupportsLayout = hasLayoutBlockSupport(name); + const disableLayoutStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return !!getSettings().disableLayoutStyles; + }); + const shouldRenderLayoutStyles = blockSupportsLayout && !disableLayoutStyles; + const id = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock); + const { + layout + } = attributes; + const { + default: defaultBlockLayout + } = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, layoutBlockSupportKey) || {}; + const usedLayout = layout?.inherit || layout?.contentSize || layout?.wideSize ? { + ...layout, + type: 'constrained' + } : layout || defaultBlockLayout || {}; + const layoutClasses = blockSupportsLayout ? useLayoutClasses(attributes, name) : null; + // Higher specificity to override defaults from theme.json. + const selector = `.wp-container-${id}.wp-container-${id}`; + const blockGapSupport = use_setting_useSetting('spacing.blockGap'); + const hasBlockGapSupport = blockGapSupport !== null; + + // Get CSS string for the current layout type. + // The CSS and `style` element is only output if it is not empty. + let css; + if (shouldRenderLayoutStyles) { + const fullLayoutType = getLayoutType(usedLayout?.type || 'default'); + css = fullLayoutType?.getLayoutStyle?.({ + blockName: name, + selector, + layout: usedLayout, + style: attributes?.style, + hasBlockGapSupport + }); + } + + // Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`. + const layoutClassNames = classnames_default()({ + [`wp-container-${id}`]: shouldRenderLayoutStyles && !!css // Only attach a container class if there is generated CSS to be attached. + }, layoutClasses); + const { + setStyleOverride, + deleteStyleOverride + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!css) return; + setStyleOverride(selector, { + css + }); + return () => { + deleteStyleOverride(selector); + }; + }, [selector, css, setStyleOverride, deleteStyleOverride]); + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + __unstableLayoutClassNames: layoutClassNames + }); +}, 'withLayoutStyles'); + +/** + * Override the default block element to add the child layout styles. + * + * @param {Function} BlockListBlock Original component. + * + * @return {Function} Wrapped component. + */ +const withChildLayoutStyles = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockListBlock => props => { + const { + attributes + } = props; + const { + style: { + layout = {} + } = {} + } = attributes; + const { + selfStretch, + flexSize + } = layout; + const hasChildLayout = selfStretch || flexSize; + const disableLayoutStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return !!getSettings().disableLayoutStyles; + }); + const shouldRenderChildLayoutStyles = hasChildLayout && !disableLayoutStyles; + const id = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockListBlock); + const selector = `.wp-container-content-${id}`; + let css = ''; + if (selfStretch === 'fixed' && flexSize) { + css += `${selector} { + flex-basis: ${flexSize}; + box-sizing: border-box; + }`; + } else if (selfStretch === 'fill') { + css += `${selector} { + flex-grow: 1; + }`; + } + + // Attach a `wp-container-content` id-based classname. + const className = classnames_default()(props?.className, { + [`wp-container-content-${id}`]: shouldRenderChildLayoutStyles && !!css // Only attach a container class if there is generated CSS to be attached. + }); + + const { + setStyleOverride, + deleteStyleOverride + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!css) return; + setStyleOverride(selector, { + css + }); + return () => { + deleteStyleOverride(selector); + }; + }, [selector, css, setStyleOverride, deleteStyleOverride]); + return (0,external_wp_element_namespaceObject.createElement)(BlockListBlock, { + ...props, + className: className + }); +}, 'withChildLayoutStyles'); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/layout/addAttribute', layout_addAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/layout/with-layout-styles', withLayoutStyles); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockListBlock', 'core/editor/layout/with-child-layout-styles', withChildLayoutStyles); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/layout/with-inspector-controls', layout_withInspectorControls); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + + +/** + * Contains the properties `ConvertToGroupButton` component needs. + * + * @typedef {Object} ConvertToGroupButtonProps + * @property {string[]} clientIds An array of the selected client ids. + * @property {boolean} isGroupable Indicates if the selected blocks can be grouped. + * @property {boolean} isUngroupable Indicates if the selected blocks can be ungrouped. + * @property {WPBlock[]} blocksSelection An array of the selected blocks. + * @property {string} groupingBlockName The name of block used for handling grouping interactions. + */ + +/** + * Returns the properties `ConvertToGroupButton` component needs to work properly. + * It is used in `BlockSettingsMenuControls` to know if `ConvertToGroupButton` + * should be rendered, to avoid ending up with an empty MenuGroup. + * + * @param {?string[]} selectedClientIds An optional array of clientIds to group. The selected blocks + * from the block editor store are used if this is not provided. + * + * @return {ConvertToGroupButtonProps} Returns the properties needed by `ConvertToGroupButton`. + */ +function useConvertToGroupButtonProps(selectedClientIds) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlockInsertionPoint, - isBlockInsertionPointVisible, - getBlockCount + getBlocksByClientId, + getSelectedBlockClientIds, + isUngroupable, + isGroupable } = select(store); - const blockInsertionPoint = getBlockInsertionPoint(); + const { + getGroupingBlockName, + getBlockType + } = select(external_wp_blocks_namespaceObject.store); + const clientIds = selectedClientIds?.length ? selectedClientIds : getSelectedBlockClientIds(); + const blocksSelection = getBlocksByClientId(clientIds); + const [firstSelectedBlock] = blocksSelection; + const _isUngroupable = clientIds.length === 1 && isUngroupable(clientIds[0]); return { - insertionPoint: blockInsertionPoint, - isVisible: isBlockInsertionPointVisible(), - isBlockListEmpty: getBlockCount(blockInsertionPoint?.rootClientId) === 0 + clientIds, + isGroupable: isGroupable(clientIds), + isUngroupable: _isUngroupable, + blocksSelection, + groupingBlockName: getGroupingBlockName(), + onUngroup: _isUngroupable && getBlockType(firstSelectedBlock.name)?.transforms?.ungroup }; - }, []); - if (!isVisible || - // Don't render the insertion point if the block list is empty. - // The insertion point will be represented by the appender instead. - isBlockListEmpty) { - return null; - } - - /** - * Render a popover that overlays the block when the desired operation is to replace it. - * Otherwise, render a popover in between blocks for the indication of inserting between them. - */ - return insertionPoint.operation === 'replace' ? (0,external_React_.createElement)(drop_zone - // Force remount to trigger the animation. - , { - key: `${insertionPoint.rootClientId}-${insertionPoint.index}`, - ...props - }) : (0,external_React_.createElement)(InbetweenInsertionPointPopover, { - operation: insertionPoint.operation, - nearestSide: insertionPoint.nearestSide, - ...props - }); + }, [selectedClientIds]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-in-between-inserter.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/index.js + /** * WordPress dependencies */ @@ -49216,112 +43228,54 @@ function InsertionPoint(props) { */ -function useInBetweenInserter() { - const openRef = (0,external_wp_element_namespaceObject.useContext)(insertion_point_InsertionPointOpenRef); - const isInBetweenInserterDisabled = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().isDistractionFree || select(store).__unstableGetEditorMode() === 'zoom-out', []); - const { - getBlockListSettings, - getBlockIndex, - isMultiSelecting, - getSelectedBlockClientIds, - getTemplateLock, - __unstableIsWithinBlockOverlay, - getBlockEditingMode, - getBlockName - } = (0,external_wp_data_namespaceObject.useSelect)(store); + +function ConvertToGroupButton({ + clientIds, + isGroupable, + isUngroupable, + onUngroup, + blocksSelection, + groupingBlockName, + onClose = () => {} +}) { const { - showInsertionPoint, - hideInsertionPoint + replaceBlocks } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (isInBetweenInserterDisabled) { + const onConvertToGroup = () => { + // Activate the `transform` on the Grouping Block which does the conversion. + const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocksSelection, groupingBlockName); + if (newBlocks) { + replaceBlocks(clientIds, newBlocks); + } + }; + const onConvertFromGroup = () => { + let innerBlocks = blocksSelection[0].innerBlocks; + if (!innerBlocks.length) { return; } - function onMouseMove(event) { - if (openRef.current) { - return; - } - - // Ignore text nodes sometimes detected in FireFox. - if (event.target.nodeType === event.target.TEXT_NODE) { - return; - } - if (isMultiSelecting()) { - return; - } - if (!event.target.classList.contains('block-editor-block-list__layout')) { - hideInsertionPoint(); - return; - } - let rootClientId; - if (!event.target.classList.contains('is-root-container')) { - const blockElement = !!event.target.getAttribute('data-block') ? event.target : event.target.closest('[data-block]'); - rootClientId = blockElement.getAttribute('data-block'); - } - if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled' || getBlockName(rootClientId) === 'core/block') { - return; - } - const orientation = getBlockListSettings(rootClientId)?.orientation || 'vertical'; - const offsetTop = event.clientY; - const offsetLeft = event.clientX; - const children = Array.from(event.target.children); - let element = children.find(blockEl => { - const blockElRect = blockEl.getBoundingClientRect(); - return blockEl.classList.contains('wp-block') && orientation === 'vertical' && blockElRect.top > offsetTop || blockEl.classList.contains('wp-block') && orientation === 'horizontal' && ((0,external_wp_i18n_namespaceObject.isRTL)() ? blockElRect.right < offsetLeft : blockElRect.left > offsetLeft); - }); - if (!element) { - hideInsertionPoint(); - return; - } - - // The block may be in an alignment wrapper, so check the first direct - // child if the element has no ID. - if (!element.id) { - element = element.firstElementChild; - if (!element) { - hideInsertionPoint(); - return; - } - } - - // Don't show the insertion point if a parent block has an "overlay" - // See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337 - const clientId = element.id.slice('block-'.length); - if (!clientId || __unstableIsWithinBlockOverlay(clientId)) { - return; - } - - // Don't show the inserter when hovering above (conflicts with - // block toolbar) or inside selected block(s). - if (getSelectedBlockClientIds().includes(clientId)) { - return; - } - const elementRect = element.getBoundingClientRect(); - if (orientation === 'horizontal' && (event.clientY > elementRect.bottom || event.clientY < elementRect.top) || orientation === 'vertical' && (event.clientX > elementRect.right || event.clientX < elementRect.left)) { - hideInsertionPoint(); - return; - } - const index = getBlockIndex(clientId); - - // Don't show the in-between inserter before the first block in - // the list (preserves the original behaviour). - if (index === 0) { - hideInsertionPoint(); - return; - } - showInsertionPoint(rootClientId, index, { - __unstableWithInserter: true - }); + if (onUngroup) { + innerBlocks = onUngroup(blocksSelection[0].attributes, blocksSelection[0].innerBlocks); } - node.addEventListener('mousemove', onMouseMove); - return () => { - node.removeEventListener('mousemove', onMouseMove); - }; - }, [openRef, getBlockListSettings, getBlockIndex, isMultiSelecting, showInsertionPoint, hideInsertionPoint, getSelectedBlockClientIds, isInBetweenInserterDisabled]); + replaceBlocks(clientIds, innerBlocks); + }; + if (!isGroupable && !isUngroupable) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isGroupable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + onConvertToGroup(); + onClose(); + } + }, (0,external_wp_i18n_namespaceObject._x)('Group', 'verb')), isUngroupable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + onConvertFromGroup(); + onClose(); + } + }, (0,external_wp_i18n_namespaceObject._x)('Ungroup', 'Ungrouping blocks from within a grouping block back into individual blocks within the Editor '))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/with-client-id.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/use-block-lock.js /** * WordPress dependencies */ @@ -49331,82 +43285,84 @@ function useInBetweenInserter() { * Internal dependencies */ -const withClientId = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { - const { - clientId - } = useBlockEditContext(); - return (0,external_React_.createElement)(WrappedComponent, { - ...props, - clientId: clientId - }); -}, 'withClientId'); -/* harmony default export */ var with_client_id = (withClientId); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/button-block-appender.js /** - * External dependencies + * Return details about the block lock status. + * + * @param {string} clientId The block client Id. + * + * @return {Object} Block lock status */ +function useBlockLock(clientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + canEditBlock, + canMoveBlock, + canRemoveBlock, + canLockBlockType, + getBlockName, + getBlockRootClientId, + getTemplateLock + } = select(store); + const rootClientId = getBlockRootClientId(clientId); + const canEdit = canEditBlock(clientId); + const canMove = canMoveBlock(clientId, rootClientId); + const canRemove = canRemoveBlock(clientId, rootClientId); + return { + canEdit, + canMove, + canRemove, + canLock: canLockBlockType(getBlockName(clientId)), + isContentLocked: getTemplateLock(clientId) === 'contentOnly', + isLocked: !canEdit || !canMove || !canRemove + }; + }, [clientId]); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/unlock.js /** - * Internal dependencies + * WordPress dependencies */ +const unlock_unlock = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8h1.5c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1z" +})); +/* harmony default export */ var library_unlock = (unlock_unlock); -const button_block_appender_ButtonBlockAppender = ({ - clientId, - showSeparator, - isFloating, - onAddBlock, - isToggle -}) => { - return (0,external_React_.createElement)(button_block_appender, { - className: classnames_default()({ - 'block-list-appender__toggle': isToggle - }), - rootClientId: clientId, - showSeparator: showSeparator, - isFloating: isFloating, - onAddBlock: onAddBlock - }); -}; -/* harmony default export */ var inner_blocks_button_block_appender = (with_client_id(button_block_appender_ButtonBlockAppender)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/default-block-appender.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock-outline.js /** * WordPress dependencies */ +const lockOutline = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zM9.8 7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2v3H9.8V7zm6.7 11.5h-9v-7h9v7z" +})); +/* harmony default export */ var lock_outline = (lockOutline); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock.js /** - * Internal dependencies + * WordPress dependencies */ +const lock_lock = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zm-2.8 0H9.8V7c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3z" +})); +/* harmony default export */ var library_lock = (lock_lock); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/modal.js -const default_block_appender_DefaultBlockAppender = ({ - clientId -}) => { - return (0,external_React_.createElement)(default_block_appender, { - rootClientId: clientId - }); -}; -/* harmony default export */ var inner_blocks_default_block_appender = ((0,external_wp_compose_namespaceObject.compose)([with_client_id, (0,external_wp_data_namespaceObject.withSelect)((select, { - clientId -}) => { - const { - getBlockOrder - } = select(store); - const blockClientIds = getBlockOrder(clientId); - return { - lastBlockClientId: blockClientIds[blockClientIds.length - 1] - }; -})])(default_block_appender_DefaultBlockAppender)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-nested-settings-update.js /** * WordPress dependencies */ @@ -49415,143 +43371,211 @@ const default_block_appender_DefaultBlockAppender = ({ + + + /** * Internal dependencies */ -/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */ -const pendingSettingsUpdates = new WeakMap(); -function useShallowMemo(value) { - const [prevValue, setPrevValue] = (0,external_wp_element_namespaceObject.useState)(value); - if (!external_wp_isShallowEqual_default()(prevValue, value)) { - setPrevValue(value); +// Entity based blocks which allow edit locking +const ALLOWS_EDIT_LOCKING = ['core/block', 'core/navigation']; +function getTemplateLockValue(lock) { + // Prevents all operations. + if (lock.remove && lock.move) { + return 'all'; } - return prevValue; -} - -/** - * This hook is a side effect which updates the block-editor store when changes - * happen to inner block settings. The given props are transformed into a - * settings object, and if that is different from the current settings object in - * the block-editor store, then the store is updated with the new settings which - * came from props. - * - * @param {string} clientId The client ID of the block to update. - * @param {string} parentLock - * @param {string[]} allowedBlocks An array of block names which are permitted - * in inner blocks. - * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}. - * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ]. - * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender. - * - * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead. - * - * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead. - * - * @param {string} [templateLock] The template lock specified for the inner - * blocks component. (e.g. "all") - * @param {boolean} captureToolbars Whether or children toolbars should be shown - * in the inner blocks component rather than on - * the child block. - * @param {string} orientation The direction in which the block - * should face. - * @param {Object} layout The layout object for the block container. - */ -function useNestedSettingsUpdate(clientId, parentLock, allowedBlocks, prioritizedInserterBlocks, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, templateLock, captureToolbars, orientation, layout) { - // Instead of adding a useSelect mapping here, please add to the useSelect - // mapping in InnerBlocks! Every subscription impacts performance. + // Prevents inserting or removing blocks, but allows moving existing blocks. + if (lock.remove && !lock.move) { + return 'insert'; + } + return false; +} +function BlockLockModal({ + clientId, + onClose +}) { + const [lock, setLock] = (0,external_wp_element_namespaceObject.useState)({ + move: false, + remove: false + }); const { - updateBlockListSettings + canEdit, + canMove, + canRemove + } = useBlockLock(clientId); + const { + allowsEditLocking, + templateLock, + hasTemplateLock + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + getBlockAttributes + } = select(store); + const blockName = getBlockName(clientId); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName); + return { + allowsEditLocking: ALLOWS_EDIT_LOCKING.includes(blockName), + templateLock: getBlockAttributes(clientId)?.templateLock, + hasTemplateLock: !!blockType?.attributes?.templateLock + }; + }, [clientId]); + const [applyTemplateLock, setApplyTemplateLock] = (0,external_wp_element_namespaceObject.useState)(!!templateLock); + const { + updateBlockAttributes } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const blockInformation = useBlockDisplayInformation(clientId); + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockLockModal, 'block-editor-block-lock-modal__options-title'); + (0,external_wp_element_namespaceObject.useEffect)(() => { + setLock({ + move: !canMove, + remove: !canRemove, + ...(allowsEditLocking ? { + edit: !canEdit + } : {}) + }); + }, [canEdit, canMove, canRemove, allowsEditLocking]); + const isAllChecked = Object.values(lock).every(Boolean); + const isMixed = Object.values(lock).some(Boolean) && !isAllChecked; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block. */ + (0,external_wp_i18n_namespaceObject.__)('Lock %s'), blockInformation.title), + overlayClassName: "block-editor-block-lock-modal", + onRequestClose: onClose + }, (0,external_wp_element_namespaceObject.createElement)("p", null, (0,external_wp_i18n_namespaceObject.__)('Choose specific attributes to restrict or lock all available options.')), (0,external_wp_element_namespaceObject.createElement)("form", { + onSubmit: event => { + event.preventDefault(); + updateBlockAttributes([clientId], { + lock, + templateLock: applyTemplateLock ? getTemplateLockValue(lock) : undefined + }); + onClose(); + } + }, (0,external_wp_element_namespaceObject.createElement)("div", { + role: "group", + "aria-labelledby": instanceId, + className: "block-editor-block-lock-modal__options" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CheckboxControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-block-lock-modal__options-title", + label: (0,external_wp_element_namespaceObject.createElement)("span", { + id: instanceId + }, (0,external_wp_i18n_namespaceObject.__)('Lock all')), + checked: isAllChecked, + indeterminate: isMixed, + onChange: newValue => setLock({ + move: newValue, + remove: newValue, + ...(allowsEditLocking ? { + edit: newValue + } : {}) + }) + }), (0,external_wp_element_namespaceObject.createElement)("ul", { + className: "block-editor-block-lock-modal__checklist" + }, allowsEditLocking && (0,external_wp_element_namespaceObject.createElement)("li", { + className: "block-editor-block-lock-modal__checklist-item" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CheckboxControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Restrict editing'), + checked: !!lock.edit, + onChange: edit => setLock(prevLock => ({ + ...prevLock, + edit + })) + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + className: "block-editor-block-lock-modal__lock-icon", + icon: lock.edit ? library_lock : library_unlock + })), (0,external_wp_element_namespaceObject.createElement)("li", { + className: "block-editor-block-lock-modal__checklist-item" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CheckboxControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Disable movement'), + checked: lock.move, + onChange: move => setLock(prevLock => ({ + ...prevLock, + move + })) + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + className: "block-editor-block-lock-modal__lock-icon", + icon: lock.move ? library_lock : library_unlock + })), (0,external_wp_element_namespaceObject.createElement)("li", { + className: "block-editor-block-lock-modal__checklist-item" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CheckboxControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Prevent removal'), + checked: lock.remove, + onChange: remove => setLock(prevLock => ({ + ...prevLock, + remove + })) + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + className: "block-editor-block-lock-modal__lock-icon", + icon: lock.remove ? library_lock : library_unlock + }))), hasTemplateLock && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-block-lock-modal__template-lock", + label: (0,external_wp_i18n_namespaceObject.__)('Apply to all blocks inside'), + checked: applyTemplateLock, + disabled: lock.move && !lock.remove, + onChange: () => setApplyTemplateLock(!applyTemplateLock) + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + className: "block-editor-block-lock-modal__actions", + justify: "flex-end", + expanded: false + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: onClose + }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "primary", + type: "submit" + }, (0,external_wp_i18n_namespaceObject.__)('Apply')))))); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/menu-item.js + +/** + * WordPress dependencies + */ - // Implementors often pass a new array on every render, - // and the contents of the arrays are just strings, so the entire array - // can be passed as dependencies but We need to include the length of the array, - // otherwise if the arrays change length but the first elements are equal the comparison, - // does not works as expected. - const _allowedBlocks = useShallowMemo(allowedBlocks); - const _prioritizedInserterBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => prioritizedInserterBlocks, - // eslint-disable-next-line react-hooks/exhaustive-deps - prioritizedInserterBlocks); - const _templateLock = templateLock === undefined || parentLock === 'contentOnly' ? parentLock : templateLock; - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - const newSettings = { - allowedBlocks: _allowedBlocks, - prioritizedInserterBlocks: _prioritizedInserterBlocks, - templateLock: _templateLock - }; - // These values are not defined for RN, so only include them if they - // are defined. - if (captureToolbars !== undefined) { - newSettings.__experimentalCaptureToolbars = captureToolbars; - } - // Orientation depends on layout, - // ideally the separate orientation prop should be deprecated. - if (orientation !== undefined) { - newSettings.orientation = orientation; - } else { - const layoutType = getLayoutType(layout?.type); - newSettings.orientation = layoutType.getOrientation(layout); - } - if (__experimentalDefaultBlock !== undefined) { - external_wp_deprecated_default()('__experimentalDefaultBlock', { - alternative: 'defaultBlock', - since: '6.3', - version: '6.4' - }); - newSettings.defaultBlock = __experimentalDefaultBlock; - } - if (defaultBlock !== undefined) { - newSettings.defaultBlock = defaultBlock; - } - if (__experimentalDirectInsert !== undefined) { - external_wp_deprecated_default()('__experimentalDirectInsert', { - alternative: 'directInsert', - since: '6.3', - version: '6.4' - }); - newSettings.directInsert = __experimentalDirectInsert; - } - if (directInsert !== undefined) { - newSettings.directInsert = directInsert; - } - // Batch updates to block list settings to avoid triggering cascading renders - // for each container block included in a tree and optimize initial render. - // To avoid triggering updateBlockListSettings for each container block - // causing X re-renderings for X container blocks, - // we batch all the updatedBlockListSettings in a single "data" batch - // which results in a single re-render. - if (!pendingSettingsUpdates.get(registry)) { - pendingSettingsUpdates.set(registry, []); - } - pendingSettingsUpdates.get(registry).push([clientId, newSettings]); - window.queueMicrotask(() => { - if (pendingSettingsUpdates.get(registry)?.length) { - registry.batch(() => { - pendingSettingsUpdates.get(registry).forEach(args => { - updateBlockListSettings(...args); - }); - pendingSettingsUpdates.set(registry, []); - }); - } - }); - }, [clientId, _allowedBlocks, _prioritizedInserterBlocks, _templateLock, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, captureToolbars, orientation, updateBlockListSettings, layout, registry]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-inner-block-template-sync.js /** - * External dependencies + * Internal dependencies */ +function BlockLockMenuItem({ + clientId +}) { + const { + canLock, + isLocked + } = useBlockLock(clientId); + const [isModalOpen, toggleModal] = (0,external_wp_element_namespaceObject.useReducer)(isActive => !isActive, false); + if (!canLock) { + return null; + } + const label = isLocked ? (0,external_wp_i18n_namespaceObject.__)('Unlock') : (0,external_wp_i18n_namespaceObject.__)('Lock'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + icon: isLocked ? library_unlock : lock_outline, + onClick: toggleModal, + "aria-expanded": isModalOpen, + "aria-haspopup": "dialog" + }, label), isModalOpen && (0,external_wp_element_namespaceObject.createElement)(BlockLockModal, { + clientId: clientId, + onClose: toggleModal + })); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-mode-toggle.js + /** * WordPress dependencies */ @@ -49559,122 +43583,153 @@ function useNestedSettingsUpdate(clientId, parentLock, allowedBlocks, prioritize -/** - * Internal dependencies - */ /** - * This hook makes sure that a block's inner blocks stay in sync with the given - * block "template". The template is a block hierarchy to which inner blocks must - * conform. If the blocks get "out of sync" with the template and the template - * is meant to be locked (e.g. templateLock = "all" or templateLock = "contentOnly"), - * then we replace the inner blocks with the correct value after synchronizing it with the template. - * - * @param {string} clientId The block client ID. - * @param {Array} innerBlocks - * @param {Object} template The template to match. - * @param {string} templateLock The template lock state for the inner blocks. For - * example, if the template lock is set to "all", - * then the inner blocks will stay in sync with the - * template. If not defined or set to false, then - * the inner blocks will not be synchronized with - * the given template. - * @param {boolean} templateInsertUpdatesSelection Whether or not to update the - * block-editor selection state when inner blocks - * are replaced after template synchronization. + * Internal dependencies */ -function useInnerBlockTemplateSync(clientId, innerBlocks, template, templateLock, templateInsertUpdatesSelection) { - // Instead of adding a useSelect mapping here, please add to the useSelect - // mapping in InnerBlocks! Every subscription impacts performance. +const block_mode_toggle_noop = () => {}; +function BlockModeToggle({ + blockType, + mode, + onToggleMode, + small = false, + isCodeEditingEnabled = true +}) { + if (!blockType || !(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'html', true) || !isCodeEditingEnabled) { + return null; + } + const label = mode === 'visual' ? (0,external_wp_i18n_namespaceObject.__)('Edit as HTML') : (0,external_wp_i18n_namespaceObject.__)('Edit visually'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: onToggleMode + }, !small && label); +} +/* harmony default export */ var block_mode_toggle = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, { + clientId +}) => { const { - getBlocks, - getSelectedBlocksInitialCaretPosition, - isBlockSelected - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - replaceInnerBlocks, - __unstableMarkNextChangeAsNotPersistent - } = (0,external_wp_data_namespaceObject.useDispatch)(store); + getBlock, + getBlockMode, + getSettings + } = select(store); + const block = getBlock(clientId); + const isCodeEditingEnabled = getSettings().codeEditingEnabled; + return { + mode: getBlockMode(clientId), + blockType: block ? (0,external_wp_blocks_namespaceObject.getBlockType)(block.name) : null, + isCodeEditingEnabled + }; +}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, { + onToggle = block_mode_toggle_noop, + clientId +}) => ({ + onToggleMode() { + dispatch(store).toggleBlockMode(clientId); + onToggle(); + } +}))])(BlockModeToggle)); - // Maintain a reference to the previous value so we can do a deep equality check. - const existingTemplate = (0,external_wp_element_namespaceObject.useRef)(null); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - let isCancelled = false; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/use-block-rename.js +/** + * WordPress dependencies + */ - // There's an implicit dependency between useInnerBlockTemplateSync and useNestedSettingsUpdate - // The former needs to happen after the latter and since the latter is using microtasks to batch updates (performance optimization), - // we need to schedule this one in a microtask as well. - // Example: If you remove queueMicrotask here, ctrl + click to insert quote block won't close the inserter. - window.queueMicrotask(() => { - if (isCancelled) { - return; - } +function useBlockRename(name) { + const metaDataSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, '__experimentalMetadata', false); + const supportsBlockNaming = !!(true === metaDataSupport || metaDataSupport?.name); + return { + canRename: supportsBlockNaming + }; +} - // Only synchronize innerBlocks with template if innerBlocks are empty - // or a locking "all" or "contentOnly" exists directly on the block. - const currentInnerBlocks = getBlocks(clientId); - const shouldApplyTemplate = currentInnerBlocks.length === 0 || templateLock === 'all' || templateLock === 'contentOnly'; - const hasTemplateChanged = !es6_default()(template, existingTemplate.current); - if (!shouldApplyTemplate || !hasTemplateChanged) { - return; - } - existingTemplate.current = template; - const nextBlocks = (0,external_wp_blocks_namespaceObject.synchronizeBlocksWithTemplate)(currentInnerBlocks, template); - if (!es6_default()(nextBlocks, currentInnerBlocks)) { - __unstableMarkNextChangeAsNotPersistent(); - replaceInnerBlocks(clientId, nextBlocks, currentInnerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0 && isBlockSelected(clientId), - // This ensures the "initialPosition" doesn't change when applying the template - // If we're supposed to focus the block, we'll focus the first inner block - // otherwise, we won't apply any auto-focus. - // This ensures for instance that the focus stays in the inserter when inserting the "buttons" block. - getSelectedBlocksInitialCaretPosition()); - } - }); - return () => { - isCancelled = true; - }; - }, [innerBlocks, template, templateLock, clientId]); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/is-empty-string.js +function isEmptyString(testString) { + return testString?.trim()?.length === 0; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-block-context.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/modal.js + /** * WordPress dependencies */ + + + /** * Internal dependencies */ +function BlockRenameModal({ + blockName, + originalBlockName, + onClose, + onSave +}) { + const [editedBlockName, setEditedBlockName] = (0,external_wp_element_namespaceObject.useState)(blockName); + const nameHasChanged = editedBlockName !== blockName; + const nameIsOriginal = editedBlockName === originalBlockName; + const nameIsEmpty = isEmptyString(editedBlockName); + const isNameValid = nameHasChanged || nameIsOriginal; + const autoSelectInputText = event => event.target.select(); + const dialogDescription = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockRenameModal, `block-editor-rename-modal__description`); + const handleSubmit = () => { + const message = nameIsOriginal || nameIsEmpty ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: new name/label for the block */ + (0,external_wp_i18n_namespaceObject.__)('Block name reset to: "%s".'), editedBlockName) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: new name/label for the block */ + (0,external_wp_i18n_namespaceObject.__)('Block name changed to: "%s".'), editedBlockName); -/** - * Returns a context object for a given block. - * - * @param {string} clientId The block client ID. - * - * @return {Record} Context value. - */ -function useBlockContext(clientId) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const block = select(store).getBlock(clientId); - if (!block) { - return undefined; - } - const blockType = select(external_wp_blocks_namespaceObject.store).getBlockType(block.name); - if (!blockType) { - return undefined; - } - if (Object.keys(blockType.providesContext).length === 0) { - return undefined; + // Must be assertive to immediately announce change. + (0,external_wp_a11y_namespaceObject.speak)(message, 'assertive'); + onSave(editedBlockName); + + // Immediate close avoids ability to hit save multiple times. + onClose(); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: (0,external_wp_i18n_namespaceObject.__)('Rename'), + onRequestClose: onClose, + overlayClassName: "block-editor-block-rename-modal", + aria: { + describedby: dialogDescription + }, + focusOnMount: "firstContentElement" + }, (0,external_wp_element_namespaceObject.createElement)("p", { + id: dialogDescription + }, (0,external_wp_i18n_namespaceObject.__)('Enter a custom name for this block.')), (0,external_wp_element_namespaceObject.createElement)("form", { + onSubmit: e => { + e.preventDefault(); + if (!isNameValid) { + return; + } + handleSubmit(); } - return Object.fromEntries(Object.entries(blockType.providesContext).map(([contextName, attributeName]) => [contextName, block.attributes[attributeName]])); - }, [clientId]); + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: "3" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + value: editedBlockName, + label: (0,external_wp_i18n_namespaceObject.__)('Block name'), + hideLabelFromVision: true, + placeholder: originalBlockName, + onChange: setEditedBlockName, + onFocus: autoSelectInputText + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "right" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: onClose + }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + "aria-disabled": !isNameValid, + variant: "primary", + type: "submit" + }, (0,external_wp_i18n_namespaceObject.__)('Save')))))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-on-block-drop/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-rename/rename-control.js + /** * WordPress dependencies */ @@ -49688,358 +43743,380 @@ function useBlockContext(clientId) { */ -/** @typedef {import('react').SyntheticEvent} SyntheticEvent */ -/** @typedef {import('./types').WPDropOperation} WPDropOperation */ -/** - * Retrieve the data for a block drop event. - * - * @param {SyntheticEvent} event The drop event. - * - * @return {Object} An object with block drag and drop data. - */ -function parseDropEvent(event) { - let result = { - srcRootClientId: null, - srcClientIds: null, - srcIndex: null, - type: null, - blocks: null - }; - if (!event.dataTransfer) { - return result; - } - try { - result = Object.assign(result, JSON.parse(event.dataTransfer.getData('wp-blocks'))); - } catch (err) { - return result; + +function BlockRenameControl({ + clientId +}) { + const [renamingBlock, setRenamingBlock] = (0,external_wp_element_namespaceObject.useState)(false); + const { + metadata + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockAttributes + } = select(store); + const _metadata = getBlockAttributes(clientId)?.metadata; + return { + metadata: _metadata + }; + }, [clientId]); + const { + updateBlockAttributes + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const customName = metadata?.name; + function onChange(newName) { + updateBlockAttributes([clientId], { + metadata: { + ...(metadata && metadata), + name: newName + } + }); } - return result; + const blockInformation = useBlockDisplayInformation(clientId); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + setRenamingBlock(true); + }, + "aria-expanded": renamingBlock, + "aria-haspopup": "dialog" + }, (0,external_wp_i18n_namespaceObject.__)('Rename')), renamingBlock && (0,external_wp_element_namespaceObject.createElement)(BlockRenameModal, { + blockName: customName || '', + originalBlockName: blockInformation?.title, + onClose: () => setRenamingBlock(false), + onSave: newName => { + // If the new value is the block's original name (e.g. `Group`) + // or it is an empty string then assume the intent is to reset + // the value. Therefore reset the metadata. + if (newName === blockInformation?.title || isEmptyString(newName)) { + newName = undefined; + } + onChange(newName); + } + })); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu-controls/index.js + /** - * A function that returns an event handler function for block drop events. - * - * @param {string} targetRootClientId The root client id where the block(s) will be inserted. - * @param {number} targetBlockIndex The index where the block(s) will be inserted. - * @param {Function} getBlockIndex A function that gets the index of a block. - * @param {Function} getClientIdsOfDescendants A function that gets the client ids of descendant blocks. - * @param {Function} moveBlocks A function that moves blocks. - * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. - * @param {Function} clearSelectedBlock A function that clears block selection. - * @param {string} operation The type of operation to perform on drop. Could be `insert` or `replace` or `group`. - * @param {Function} getBlock A function that returns a block given its client id. - * @return {Function} The event handler for a block drop event. + * WordPress dependencies */ -function onBlockDrop(targetRootClientId, targetBlockIndex, getBlockIndex, getClientIdsOfDescendants, moveBlocks, insertOrReplaceBlocks, clearSelectedBlock, operation, getBlock) { - return event => { - const { - srcRootClientId: sourceRootClientId, - srcClientIds: sourceClientIds, - type: dropType, - blocks - } = parseDropEvent(event); - - // If the user is inserting a block. - if (dropType === 'inserter') { - clearSelectedBlock(); - const blocksToInsert = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); - insertOrReplaceBlocks(blocksToInsert, true, null); - } - - // If the user is moving a block. - if (dropType === 'block') { - const sourceBlockIndex = getBlockIndex(sourceClientIds[0]); - // If the user is dropping to the same position, return early. - if (sourceRootClientId === targetRootClientId && sourceBlockIndex === targetBlockIndex) { - return; - } - // If the user is attempting to drop a block within its own - // nested blocks, return early as this would create infinite - // recursion. - if (sourceClientIds.includes(targetRootClientId) || getClientIdsOfDescendants(sourceClientIds).some(id => id === targetRootClientId)) { - return; - } - // If the user is dropping a block over another block, replace both blocks - // with a group block containing them - if (operation === 'group') { - const blocksToInsert = sourceClientIds.map(clientId => getBlock(clientId)); - insertOrReplaceBlocks(blocksToInsert, true, null, sourceClientIds); - return; - } - const isAtSameLevel = sourceRootClientId === targetRootClientId; - const draggedBlockCount = sourceClientIds.length; - // If the block is kept at the same level and moved downwards, - // subtract to take into account that the blocks being dragged - // were removed from the block list above the insertion point. - const insertIndex = isAtSameLevel && sourceBlockIndex < targetBlockIndex ? targetBlockIndex - draggedBlockCount : targetBlockIndex; - moveBlocks(sourceClientIds, sourceRootClientId, insertIndex); - } - }; -} /** - * A function that returns an event handler function for block-related file drop events. - * - * @param {string} targetRootClientId The root client id where the block(s) will be inserted. - * @param {Function} getSettings A function that gets the block editor settings. - * @param {Function} updateBlockAttributes A function that updates a block's attributes. - * @param {Function} canInsertBlockType A function that returns checks whether a block type can be inserted. - * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. - * - * @return {Function} The event handler for a block-related file drop event. + * Internal dependencies */ -function onFilesDrop(targetRootClientId, getSettings, updateBlockAttributes, canInsertBlockType, insertOrReplaceBlocks) { - return files => { - if (!getSettings().mediaUpload) { - return; + + + + + +const { + Fill, + Slot: block_settings_menu_controls_Slot +} = (0,external_wp_components_namespaceObject.createSlotFill)('BlockSettingsMenuControls'); +const BlockSettingsMenuControlsSlot = ({ + fillProps, + clientIds = null, + __unstableDisplayLocation +}) => { + const { + selectedBlocks, + selectedClientIds + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockNamesByClientId, + getSelectedBlockClientIds + } = select(store); + const ids = clientIds !== null ? clientIds : getSelectedBlockClientIds(); + return { + selectedBlocks: getBlockNamesByClientId(ids), + selectedClientIds: ids + }; + }, [clientIds]); + const { + canLock + } = useBlockLock(selectedClientIds[0]); + const { + canRename + } = useBlockRename(selectedBlocks[0]); + const showLockButton = selectedClientIds.length === 1 && canLock; + const showRenameButton = selectedClientIds.length === 1 && canRename; + + // Check if current selection of blocks is Groupable or Ungroupable + // and pass this props down to ConvertToGroupButton. + const convertToGroupButtonProps = useConvertToGroupButtonProps(selectedClientIds); + const { + isGroupable, + isUngroupable + } = convertToGroupButtonProps; + const showConvertToGroupButton = isGroupable || isUngroupable; + return (0,external_wp_element_namespaceObject.createElement)(block_settings_menu_controls_Slot, { + fillProps: { + ...fillProps, + __unstableDisplayLocation, + selectedBlocks, + selectedClientIds } - const transformation = (0,external_wp_blocks_namespaceObject.findTransform)((0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'), transform => transform.type === 'files' && canInsertBlockType(transform.blockName, targetRootClientId) && transform.isMatch(files)); - if (transformation) { - const blocks = transformation.transform(files, updateBlockAttributes); - insertOrReplaceBlocks(blocks); + }, fills => { + if (!fills?.length > 0 && !showConvertToGroupButton && !showLockButton) { + return null; } - }; -} + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, showConvertToGroupButton && (0,external_wp_element_namespaceObject.createElement)(ConvertToGroupButton, { + ...convertToGroupButtonProps, + onClose: fillProps?.onClose + }), showLockButton && (0,external_wp_element_namespaceObject.createElement)(BlockLockMenuItem, { + clientId: selectedClientIds[0] + }), showRenameButton && (0,external_wp_element_namespaceObject.createElement)(BlockRenameControl, { + clientId: selectedClientIds[0] + }), fills, fillProps?.canMove && !fillProps?.onlyBlock && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: (0,external_wp_compose_namespaceObject.pipe)(fillProps?.onClose, fillProps?.onMoveTo) + }, (0,external_wp_i18n_namespaceObject.__)('Move to')), fillProps?.count === 1 && (0,external_wp_element_namespaceObject.createElement)(block_mode_toggle, { + clientId: fillProps?.firstBlockClientId, + onToggle: fillProps?.onClose + })); + }); +}; /** - * A function that returns an event handler function for block-related HTML drop events. - * - * @param {Function} insertOrReplaceBlocks A function that inserts or replaces blocks. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md * - * @return {Function} The event handler for a block-related HTML drop event. + * @param {Object} props Fill props. + * @return {WPElement} Element. */ -function onHTMLDrop(insertOrReplaceBlocks) { - return HTML => { - const blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ - HTML, - mode: 'BLOCKS' - }); - if (blocks.length) { - insertOrReplaceBlocks(blocks); - } - }; +function BlockSettingsMenuControls({ + ...props +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalStyleProvider, { + document: document + }, (0,external_wp_element_namespaceObject.createElement)(Fill, { + ...props + })); } +BlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot; +/* harmony default export */ var block_settings_menu_controls = (BlockSettingsMenuControls); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/content-lock-ui.js + +/** + * WordPress dependencies + */ + + + + + + /** - * A React hook for handling block drop events. - * - * @param {string} targetRootClientId The root client id where the block(s) will be inserted. - * @param {number} targetBlockIndex The index where the block(s) will be inserted. - * @param {Object} options The optional options. - * @param {WPDropOperation} [options.operation] The type of operation to perform on drop. Could be `insert` or `replace` for now. - * - * @return {Function} A function to be passed to the onDrop handler. + * Internal dependencies */ -function useOnBlockDrop(targetRootClientId, targetBlockIndex, options = {}) { - const { - operation = 'insert', - nearestSide = 'right' - } = options; + + +function StopEditingAsBlocksOnOutsideSelect({ + clientId, + stopEditingAsBlock +}) { + const isBlockOrDescendantSelected = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + isBlockSelected, + hasSelectedInnerBlock + } = select(store); + return isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, true); + }, [clientId]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!isBlockOrDescendantSelected) { + stopEditingAsBlock(); + } + }, [isBlockOrDescendantSelected, stopEditingAsBlock]); + return null; +} +const content_lock_ui_withBlockControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { const { - canInsertBlockType, - getBlockIndex, - getClientIdsOfDescendants, - getBlockOrder, - getBlocksByClientId, - getSettings, - getBlock, - isGroupable + getBlockListSettings, + getSettings } = (0,external_wp_data_namespaceObject.useSelect)(store); + const focusModeToRevert = (0,external_wp_element_namespaceObject.useRef)(); const { - getBlockType, - getGroupingBlockName - } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); + templateLock, + isLockedByParent, + isEditingAsBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __unstableGetContentLockingParent, + getTemplateLock, + __unstableGetTemporarilyEditingAsBlocks + } = select(store); + return { + templateLock: getTemplateLock(props.clientId), + isLockedByParent: !!__unstableGetContentLockingParent(props.clientId), + isEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() === props.clientId + }; + }, [props.clientId]); const { - insertBlocks, - moveBlocksToPosition, - updateBlockAttributes, - clearSelectedBlock, - replaceBlocks, - removeBlocks + updateSettings, + updateBlockListSettings, + __unstableSetTemporarilyEditingAsBlocks } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - const insertOrReplaceBlocks = (0,external_wp_element_namespaceObject.useCallback)((blocks, updateSelection = true, initialPosition = 0, clientIdsToReplace = []) => { - const clientIds = getBlockOrder(targetRootClientId); - const clientId = clientIds[targetBlockIndex]; - const blocksClientIds = blocks.map(block => block.clientId); - const areGroupableBlocks = isGroupable([...blocksClientIds, clientId]); - if (operation === 'replace') { - replaceBlocks(clientId, blocks, undefined, initialPosition); - } else if (operation === 'group' && areGroupableBlocks) { - const targetBlock = getBlock(clientId); - if (nearestSide === 'left') { - blocks.push(targetBlock); - } else { - blocks.unshift(targetBlock); - } - const groupInnerBlocks = blocks.map(block => { - return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks); + const isContentLocked = !isLockedByParent && templateLock === 'contentOnly'; + const { + __unstableMarkNextChangeAsNotPersistent, + updateBlockAttributes + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const stopEditingAsBlock = (0,external_wp_element_namespaceObject.useCallback)(() => { + __unstableMarkNextChangeAsNotPersistent(); + updateBlockAttributes(props.clientId, { + templateLock: 'contentOnly' + }); + updateBlockListSettings(props.clientId, { + ...getBlockListSettings(props.clientId), + templateLock: 'contentOnly' + }); + updateSettings({ + focusMode: focusModeToRevert.current + }); + __unstableSetTemporarilyEditingAsBlocks(); + }, [props.clientId, updateSettings, updateBlockListSettings, getBlockListSettings, __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes, __unstableSetTemporarilyEditingAsBlocks]); + if (!isContentLocked && !isEditingAsBlocks) { + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + }); + } + const showStopEditingAsBlocks = isEditingAsBlocks && !isContentLocked; + const showStartEditingAsBlocks = !isEditingAsBlocks && isContentLocked && props.isSelected; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, showStopEditingAsBlocks && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(StopEditingAsBlocksOnOutsideSelect, { + clientId: props.clientId, + stopEditingAsBlock: stopEditingAsBlock + }), (0,external_wp_element_namespaceObject.createElement)(block_controls, { + group: "other" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + onClick: () => { + stopEditingAsBlock(); + } + }, (0,external_wp_i18n_namespaceObject.__)('Done')))), showStartEditingAsBlocks && (0,external_wp_element_namespaceObject.createElement)(block_settings_menu_controls, null, ({ + onClose + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: () => { + __unstableMarkNextChangeAsNotPersistent(); + updateBlockAttributes(props.clientId, { + templateLock: undefined }); - const areAllImages = blocks.every(block => { - return block.name === 'core/image'; + updateBlockListSettings(props.clientId, { + ...getBlockListSettings(props.clientId), + templateLock: false }); - const galleryBlock = !!getBlockType('core/gallery'); - const wrappedBlocks = (0,external_wp_blocks_namespaceObject.createBlock)(areAllImages && galleryBlock ? 'core/gallery' : getGroupingBlockName(), { - layout: { - type: 'flex', - flexWrap: areAllImages ? null : 'nowrap' - } - }, groupInnerBlocks); - // Need to make sure both the target block and the block being dragged are replaced - // otherwise the dragged block will be duplicated. - replaceBlocks([clientId, ...clientIdsToReplace], wrappedBlocks, undefined, initialPosition); - } else { - insertBlocks(blocks, targetBlockIndex, targetRootClientId, updateSelection, initialPosition); - } - }, [getBlockOrder, targetRootClientId, targetBlockIndex, operation, replaceBlocks, getBlock, nearestSide, getBlockType, getGroupingBlockName, insertBlocks]); - const moveBlocks = (0,external_wp_element_namespaceObject.useCallback)((sourceClientIds, sourceRootClientId, insertIndex) => { - if (operation === 'replace') { - const sourceBlocks = getBlocksByClientId(sourceClientIds); - const targetBlockClientIds = getBlockOrder(targetRootClientId); - const targetBlockClientId = targetBlockClientIds[targetBlockIndex]; - registry.batch(() => { - // Remove the source blocks. - removeBlocks(sourceClientIds, false); - // Replace the target block with the source blocks. - replaceBlocks(targetBlockClientId, sourceBlocks, undefined, 0); + focusModeToRevert.current = getSettings().focusMode; + updateSettings({ + focusMode: true }); - } else { - moveBlocksToPosition(sourceClientIds, sourceRootClientId, targetRootClientId, insertIndex); - } - }, [operation, getBlockOrder, getBlocksByClientId, moveBlocksToPosition, registry, removeBlocks, replaceBlocks, targetBlockIndex, targetRootClientId]); - const _onDrop = onBlockDrop(targetRootClientId, targetBlockIndex, getBlockIndex, getClientIdsOfDescendants, moveBlocks, insertOrReplaceBlocks, clearSelectedBlock, operation, getBlock); - const _onFilesDrop = onFilesDrop(targetRootClientId, getSettings, updateBlockAttributes, canInsertBlockType, insertOrReplaceBlocks); - const _onHTMLDrop = onHTMLDrop(insertOrReplaceBlocks); - return event => { - const files = (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(event.dataTransfer); - const html = event.dataTransfer.getData('text/html'); - - /** - * From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML. - * The order of the checks is important to recognise the HTML drop. - */ - if (html) { - _onHTMLDrop(html); - } else if (files.length) { - _onFilesDrop(files); - } else { - _onDrop(event); + __unstableSetTemporarilyEditingAsBlocks(props.clientId); + onClose(); } - }; -} + }, (0,external_wp_i18n_namespaceObject.__)('Modify'))), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + })); +}, 'withToolbarControls'); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/content-lock-ui/with-block-controls', content_lock_ui_withBlockControls); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/math.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/metadata.js /** - * A string representing the name of an edge. - * - * @typedef {'top'|'right'|'bottom'|'left'} WPEdgeName + * WordPress dependencies */ -/** - * @typedef {Object} WPPoint - * @property {number} x The horizontal position. - * @property {number} y The vertical position. - */ + +const META_ATTRIBUTE_NAME = 'metadata'; +function hasBlockMetadataSupport(blockType, feature = '') { + // Only core blocks are allowed to use __experimentalMetadata until the fetaure is stablised. + if (!blockType.name.startsWith('core/')) { + return false; + } + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockType, '__experimentalMetadata'); + return !!(true === support || support?.[feature]); +} /** - * Given a point, a DOMRect and the name of an edge, returns the distance to - * that edge of the rect. - * - * This function works for edges that are horizontal or vertical (e.g. not - * rotated), the following terms are used so that the function works in both - * orientations: + * Filters registered block settings, extending attributes to include `metadata`. * - * - Forward, meaning the axis running horizontally when an edge is vertical - * and vertically when an edge is horizontal. - * - Lateral, meaning the axis running vertically when an edge is vertical - * and horizontally when an edge is horizontal. + * see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012 * - * @param {WPPoint} point The point to measure distance from. - * @param {DOMRect} rect A DOM Rect containing edge positions. - * @param {WPEdgeName} edge The edge to measure to. + * @param {Object} blockTypeSettings Original block settings. + * @return {Object} Filtered block settings. */ -function getDistanceFromPointToEdge(point, rect, edge) { - const isHorizontal = edge === 'top' || edge === 'bottom'; - const { - x, - y - } = point; - const pointLateralPosition = isHorizontal ? x : y; - const pointForwardPosition = isHorizontal ? y : x; - const edgeStart = isHorizontal ? rect.left : rect.top; - const edgeEnd = isHorizontal ? rect.right : rect.bottom; - const edgeForwardPosition = rect[edge]; - - // Measure the straight line distance to the edge of the rect, when the - // point is adjacent to the edge. - // Else, if the point is positioned diagonally to the edge of the rect, - // measure diagonally to the nearest corner that the edge meets. - let edgeLateralPosition; - if (pointLateralPosition >= edgeStart && pointLateralPosition <= edgeEnd) { - edgeLateralPosition = pointLateralPosition; - } else if (pointLateralPosition < edgeEnd) { - edgeLateralPosition = edgeStart; - } else { - edgeLateralPosition = edgeEnd; +function addMetaAttribute(blockTypeSettings) { + // Allow blocks to specify their own attribute definition with default values if needed. + if (blockTypeSettings?.attributes?.[META_ATTRIBUTE_NAME]?.type) { + return blockTypeSettings; } - return Math.sqrt((pointLateralPosition - edgeLateralPosition) ** 2 + (pointForwardPosition - edgeForwardPosition) ** 2); + const supportsBlockNaming = hasBlockMetadataSupport(blockTypeSettings, 'name'); + if (supportsBlockNaming) { + blockTypeSettings.attributes = { + ...blockTypeSettings.attributes, + [META_ATTRIBUTE_NAME]: { + type: 'object' + } + }; + } + return blockTypeSettings; } +function metadata_addSaveProps(extraProps, blockType, attributes) { + if (hasBlockMetadataSupport(blockType)) { + extraProps[META_ATTRIBUTE_NAME] = attributes[META_ATTRIBUTE_NAME]; + } + return extraProps; +} +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/metadata/addMetaAttribute', addMetaAttribute); +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.getSaveContent.extraProps', 'core/metadata/save-props', metadata_addSaveProps); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/metadata-name.js /** - * Given a point, a DOMRect and a list of allowed edges returns the name of and - * distance to the nearest edge. - * - * @param {WPPoint} point The point to measure distance from. - * @param {DOMRect} rect A DOM Rect containing edge positions. - * @param {WPEdgeName[]} allowedEdges A list of the edges included in the - * calculation. Defaults to all edges. - * - * @return {[number, string]} An array where the first value is the distance - * and a second is the edge name. + * WordPress dependencies */ -function getDistanceToNearestEdge(point, rect, allowedEdges = ['top', 'bottom', 'left', 'right']) { - let candidateDistance; - let candidateEdge; - allowedEdges.forEach(edge => { - const distance = getDistanceFromPointToEdge(point, rect, edge); - if (candidateDistance === undefined || distance < candidateDistance) { - candidateDistance = distance; - candidateEdge = edge; - } - }); - return [candidateDistance, candidateEdge]; -} /** - * Is the point contained by the rectangle. - * - * @param {WPPoint} point The point. - * @param {DOMRect} rect The rectangle. - * - * @return {boolean} True if the point is contained by the rectangle, false otherwise. + * Internal dependencies */ -function isPointContainedByRect(point, rect) { - return rect.left <= point.x && rect.right >= point.x && rect.top <= point.y && rect.bottom >= point.y; -} + /** - * Is the point within the top and bottom boundaries of the rectangle. + * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist. * - * @param {WPPoint} point The point. - * @param {DOMRect} rect The rectangle. + * @param {Object} settings Original block settings. * - * @return {boolean} True if the point is within top and bottom of rectangle, false otherwise. + * @return {Object} Filtered block settings. */ -function isPointWithinTopAndBottomBoundariesOfRect(point, rect) { - return rect.top <= point.y && rect.bottom >= point.y; +function addLabelCallback(settings) { + // If blocks provide their own label callback, do not override it. + if (settings.__experimentalLabel) { + return settings; + } + const supportsBlockNaming = hasBlockMetadataSupport(settings, 'name', false // default value + ); + + // Check whether block metadata is supported before using it. + if (supportsBlockNaming) { + settings.__experimentalLabel = (attributes, { + context + }) => { + const { + metadata + } = attributes; + + // In the list view, use the block's name attribute as the label. + if (context === 'list-view' && metadata?.name) { + return metadata.name; + } + }; + } + return settings; } +(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/custom-fields.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-drop-zone/index.js /** * WordPress dependencies */ @@ -50055,301 +44132,286 @@ function isPointWithinTopAndBottomBoundariesOfRect(point, rect) { -const THRESHOLD_DISTANCE = 30; -const MINIMUM_HEIGHT_FOR_THRESHOLD = 120; -const MINIMUM_WIDTH_FOR_THRESHOLD = 120; - -/** @typedef {import('../../utils/math').WPPoint} WPPoint */ -/** @typedef {import('../use-on-block-drop/types').WPDropOperation} WPDropOperation */ - /** - * The orientation of a block list. + * Filters registered block settings, extending attributes to include `connections`. * - * @typedef {'horizontal'|'vertical'|undefined} WPBlockListOrientation - */ - -/** - * The insert position when dropping a block. + * @param {Object} settings Original block settings. * - * @typedef {'before'|'after'} WPInsertPosition - */ - -/** - * @typedef {Object} WPBlockData - * @property {boolean} isUnmodifiedDefaultBlock Is the block unmodified default block. - * @property {() => DOMRect} getBoundingClientRect Get the bounding client rect of the block. - * @property {number} blockIndex The index of the block. + * @return {Object} Filtered block settings. */ +function custom_fields_addAttribute(settings) { + if ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(settings, '__experimentalConnections', true)) { + // Gracefully handle if settings.attributes.connections is undefined. + settings.attributes = { + ...settings.attributes, + connections: { + type: 'object' + } + }; + } + return settings; +} /** - * Get the drop target position from a given drop point and the orientation. + * Override the default edit UI to include a new block inspector control for + * assigning a connection to blocks that has support for connections. + * Currently, only the `core/paragraph` block is supported and there is only a relation + * between paragraph content and a custom field. * - * @param {WPBlockData[]} blocksData The block data list. - * @param {WPPoint} position The position of the item being dragged. - * @param {WPBlockListOrientation} orientation The orientation of the block list. - * @param {Object} options Additional options. - * @return {[number, WPDropOperation]} The drop target position. + * @param {WPComponent} BlockEdit Original component. + * + * @return {WPComponent} Wrapped component. */ -function getDropTargetPosition(blocksData, position, orientation = 'vertical', options = {}) { - const allowedEdges = orientation === 'horizontal' ? ['left', 'right'] : ['top', 'bottom']; - let nearestIndex = 0; - let insertPosition = 'before'; - let minDistance = Infinity; - let targetBlockIndex = null; - let nearestSide = 'right'; - const { - dropZoneElement, - parentBlockOrientation, - rootBlockIndex = 0 - } = options; +const custom_fields_withInspectorControl = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => { + return props => { + const blockEditingMode = useBlockEditingMode(); + const hasCustomFieldsSupport = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(props.name, '__experimentalConnections', false); - // Allow before/after when dragging over the top/bottom edges of the drop zone. - if (dropZoneElement && parentBlockOrientation !== 'horizontal') { - const rect = dropZoneElement.getBoundingClientRect(); - const [distance, edge] = getDistanceToNearestEdge(position, rect, ['top', 'bottom']); + // Check if the current block is a paragraph or image block. + // Currently, only these two blocks are supported. + if (!['core/paragraph', 'core/image'].includes(props.name)) { + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }); + } - // If dragging over the top or bottom of the drop zone, insert the block - // before or after the parent block. This only applies to blocks that use - // a drop zone element, typically container blocks such as Group or Cover. - if (rect.height > MINIMUM_HEIGHT_FOR_THRESHOLD && distance < THRESHOLD_DISTANCE) { - if (edge === 'top') { - return [rootBlockIndex, 'before']; - } - if (edge === 'bottom') { - return [rootBlockIndex + 1, 'after']; - } + // If the block is a paragraph or image block, we need to know which + // attribute to use for the connection. Only the `content` attribute + // of the paragraph block and the `url` attribute of the image block are supported. + let attributeName; + if (props.name === 'core/paragraph') attributeName = 'content'; + if (props.name === 'core/image') attributeName = 'url'; + if (hasCustomFieldsSupport && props.isSelected) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }), blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(inspector_controls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Connections'), + initialOpen: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + autoComplete: "off", + label: (0,external_wp_i18n_namespaceObject.__)('Custom field meta_key'), + value: props.attributes?.connections?.attributes?.[attributeName]?.value || '', + onChange: nextValue => { + if (nextValue === '') { + props.setAttributes({ + connections: undefined, + [attributeName]: undefined, + placeholder: undefined + }); + } else { + props.setAttributes({ + connections: { + attributes: { + // The attributeName will be either `content` or `url`. + [attributeName]: { + // Source will be variable, could be post_meta, user_meta, term_meta, etc. + // Could even be a custom source like a social media attribute. + source: 'meta_fields', + value: nextValue + } + } + }, + [attributeName]: undefined, + placeholder: (0,external_wp_i18n_namespaceObject.sprintf)('This content will be replaced on the frontend by the value of "%s" custom field.', nextValue) + }); + } + } + })))); } - } - const isRightToLeft = (0,external_wp_i18n_namespaceObject.isRTL)(); + return (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + ...props + }); + }; +}, 'withInspectorControl'); +if (window.__experimentalConnections) { + (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/connections/attribute', custom_fields_addAttribute); + (0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/connections/with-inspector-control', custom_fields_withInspectorControl); +} - // Allow before/after when dragging over the left/right edges of the drop zone. - if (dropZoneElement && parentBlockOrientation === 'horizontal') { - const rect = dropZoneElement.getBoundingClientRect(); - const [distance, edge] = getDistanceToNearestEdge(position, rect, ['left', 'right']); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/block-hooks.js - // If dragging over the left or right of the drop zone, insert the block - // before or after the parent block. This only applies to blocks that use - // a drop zone element, typically container blocks such as Group. - if (rect.width > MINIMUM_WIDTH_FOR_THRESHOLD && distance < THRESHOLD_DISTANCE) { - if (isRightToLeft && edge === 'right' || !isRightToLeft && edge === 'left') { - return [rootBlockIndex, 'before']; - } - if (isRightToLeft && edge === 'left' || !isRightToLeft && edge === 'right') { - return [rootBlockIndex + 1, 'after']; - } - } - } - blocksData.forEach(({ - isUnmodifiedDefaultBlock, - getBoundingClientRect, - blockIndex, - blockOrientation - }) => { - const rect = getBoundingClientRect(); - let [distance, edge] = getDistanceToNearestEdge(position, rect, allowedEdges); - // If the the point is close to a side, prioritize that side. - const [sideDistance, sideEdge] = getDistanceToNearestEdge(position, rect, ['left', 'right']); - const isPointInsideRect = isPointContainedByRect(position, rect); +/** + * WordPress dependencies + */ - // Prioritize the element if the point is inside of an unmodified default block. - if (isUnmodifiedDefaultBlock && isPointInsideRect) { - distance = 0; - } else if (orientation === 'vertical' && blockOrientation !== 'horizontal' && (isPointInsideRect && sideDistance < THRESHOLD_DISTANCE || !isPointInsideRect && isPointWithinTopAndBottomBoundariesOfRect(position, rect))) { - /** - * This condition should only apply when the layout is vertical (otherwise there's - * no need to create a Row) and dropzones should only activate when the block is - * either within and close to the sides of the target block or on its outer sides. - */ - targetBlockIndex = blockIndex; - nearestSide = sideEdge; - } - if (distance < minDistance) { - // Where the dropped block will be inserted on the nearest block. - insertPosition = edge === 'bottom' || !isRightToLeft && edge === 'right' || isRightToLeft && edge === 'left' ? 'after' : 'before'; - // Update the currently known best candidate. - minDistance = distance; - nearestIndex = blockIndex; - } - }); - const adjacentIndex = nearestIndex + (insertPosition === 'after' ? 1 : -1); - const isNearestBlockUnmodifiedDefaultBlock = !!blocksData[nearestIndex]?.isUnmodifiedDefaultBlock; - const isAdjacentBlockUnmodifiedDefaultBlock = !!blocksData[adjacentIndex]?.isUnmodifiedDefaultBlock; - // If the target index is set then group with the block at that index. - if (targetBlockIndex !== null) { - return [targetBlockIndex, 'group', nearestSide]; - } - // If both blocks are not unmodified default blocks then just insert between them. - if (!isNearestBlockUnmodifiedDefaultBlock && !isAdjacentBlockUnmodifiedDefaultBlock) { - // If the user is dropping to the trailing edge of the block - // add 1 to the index to represent dragging after. - const insertionIndex = insertPosition === 'after' ? nearestIndex + 1 : nearestIndex; - return [insertionIndex, 'insert']; - } - // Otherwise, replace the nearest unmodified default block. - return [isNearestBlockUnmodifiedDefaultBlock ? nearestIndex : adjacentIndex, 'replace']; -} -/** - * Check if the dragged blocks can be dropped on the target. - * @param {Function} getBlockType - * @param {Object[]} allowedBlocks - * @param {string[]} draggedBlockNames - * @param {string} targetBlockName - * @return {boolean} Whether the dragged blocks can be dropped on the target. - */ -function isDropTargetValid(getBlockType, allowedBlocks, draggedBlockNames, targetBlockName) { - // At root level allowedBlocks is undefined and all blocks are allowed. - // Otherwise, check if all dragged blocks are allowed. - let areBlocksAllowed = true; - if (allowedBlocks) { - const allowedBlockNames = allowedBlocks?.map(({ - name - }) => name); - areBlocksAllowed = draggedBlockNames.every(name => allowedBlockNames?.includes(name)); - } - // Work out if dragged blocks have an allowed parent and if so - // check target block matches the allowed parent. - const draggedBlockTypes = draggedBlockNames.map(name => getBlockType(name)); - const targetMatchesDraggedBlockParents = draggedBlockTypes.every(block => { - const [allowedParentName] = block?.parent || []; - if (!allowedParentName) { - return true; - } - return allowedParentName === targetBlockName; - }); - return areBlocksAllowed && targetMatchesDraggedBlockParents; -} -/** - * @typedef {Object} WPBlockDropZoneConfig - * @property {?HTMLElement} dropZoneElement Optional element to be used as the drop zone. - * @property {string} rootClientId The root client id for the block list. - */ /** - * A React hook that can be used to make a block list handle drag and drop. - * - * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone. + * Internal dependencies */ -function useBlockDropZone({ - dropZoneElement, - // An undefined value represents a top-level block. Default to an empty - // string for this so that `targetRootClientId` can be easily compared to - // values returned by the `getRootBlockClientId` selector, which also uses - // an empty string to represent top-level blocks. - rootClientId: targetRootClientId = '', - parentClientId: parentBlockClientId = '', - isDisabled = false -} = {}) { - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - const [dropTarget, setDropTarget] = (0,external_wp_element_namespaceObject.useState)({ - index: null, - operation: 'insert' - }); - const { - getBlockType - } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); - const { - getBlockListSettings, - getBlocks, - getBlockIndex, - getDraggedBlockClientIds, - getBlockNamesByClientId, - getAllowedBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(store); + + +const block_hooks_EMPTY_OBJECT = {}; +function BlockHooksControl(props) { + const blockTypes = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getBlockTypes(), []); + const hookedBlocksForCurrentBlock = (0,external_wp_element_namespaceObject.useMemo)(() => blockTypes?.filter(({ + blockHooks + }) => blockHooks && props.blockName in blockHooks), [blockTypes, props.blockName]); const { - showInsertionPoint, - hideInsertionPoint - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const onBlockDrop = useOnBlockDrop(dropTarget.operation === 'before' || dropTarget.operation === 'after' ? parentBlockClientId : targetRootClientId, dropTarget.index, { - operation: dropTarget.operation, - nearestSide: dropTarget.nearestSide - }); - const throttled = (0,external_wp_compose_namespaceObject.useThrottle)((0,external_wp_element_namespaceObject.useCallback)((event, ownerDocument) => { - const allowedBlocks = getAllowedBlocks(targetRootClientId); - const targetBlockName = getBlockNamesByClientId([targetRootClientId])[0]; - const draggedBlockNames = getBlockNamesByClientId(getDraggedBlockClientIds()); - const isBlockDroppingAllowed = isDropTargetValid(getBlockType, allowedBlocks, draggedBlockNames, targetBlockName); - if (!isBlockDroppingAllowed) { - return; - } - const blocks = getBlocks(targetRootClientId); + blockIndex, + rootClientId, + innerBlocksLength + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlock, + getBlockIndex, + getBlockRootClientId + } = select(store); + return { + blockIndex: getBlockIndex(props.clientId), + innerBlocksLength: getBlock(props.clientId)?.innerBlocks?.length, + rootClientId: getBlockRootClientId(props.clientId) + }; + }, [props.clientId]); + const hookedBlockClientIds = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlock, + getGlobalBlockCount + } = select(store); + const _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce((clientIds, block) => { + // If the block doesn't exist anywhere in the block tree, + // we know that we have to display the toggle for it, and set + // it to disabled. + if (getGlobalBlockCount(block.name) === 0) { + return clientIds; + } + const relativePosition = block?.blockHooks?.[props.blockName]; + let candidates; + switch (relativePosition) { + case 'before': + case 'after': + // Any of the current block's siblings (with the right block type) qualifies + // as a hooked block (inserted `before` or `after` the current one), as the block + // might've been automatically inserted and then moved around a bit by the user. + candidates = getBlock(rootClientId)?.innerBlocks; + break; + case 'first_child': + case 'last_child': + // Any of the current block's child blocks (with the right block type) qualifies + // as a hooked first or last child block, as the block might've been automatically + // inserted and then moved around a bit by the user. + candidates = getBlock(props.clientId).innerBlocks; + break; + } + const hookedBlock = candidates?.find(({ + name + }) => name === block.name); - // The block list is empty, don't show the insertion point but still allow dropping. - if (blocks.length === 0) { - registry.batch(() => { - setDropTarget({ - index: 0, - operation: 'insert' - }); - showInsertionPoint(targetRootClientId, 0, { - operation: 'insert' - }); - }); - return; - } - const blocksData = blocks.map(block => { - const clientId = block.clientId; - return { - isUnmodifiedDefaultBlock: (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(block), - getBoundingClientRect: () => ownerDocument.getElementById(`block-${clientId}`).getBoundingClientRect(), - blockIndex: getBlockIndex(clientId), - blockOrientation: getBlockListSettings(clientId)?.orientation - }; - }); - const [targetIndex, operation, nearestSide] = getDropTargetPosition(blocksData, { - x: event.clientX, - y: event.clientY - }, getBlockListSettings(targetRootClientId)?.orientation, { - dropZoneElement, - parentBlockClientId, - parentBlockOrientation: parentBlockClientId ? getBlockListSettings(parentBlockClientId)?.orientation : undefined, - rootBlockIndex: getBlockIndex(targetRootClientId) - }); - registry.batch(() => { - setDropTarget({ - index: targetIndex, - operation, - nearestSide - }); - const insertionPointClientId = ['before', 'after'].includes(operation) ? parentBlockClientId : targetRootClientId; - showInsertionPoint(insertionPointClientId, targetIndex, { - operation, - nearestSide - }); - }); - }, [getAllowedBlocks, targetRootClientId, getBlockNamesByClientId, getDraggedBlockClientIds, getBlockType, getBlocks, getBlockListSettings, dropZoneElement, parentBlockClientId, getBlockIndex, registry, showInsertionPoint]), 200); - return (0,external_wp_compose_namespaceObject.__experimentalUseDropZone)({ - dropZoneElement, - isDisabled, - onDrop: onBlockDrop, - onDragOver(event) { - // `currentTarget` is only available while the event is being - // handled, so get it now and pass it to the thottled function. - // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget - throttled(event, event.currentTarget.ownerDocument); - }, - onDragLeave() { - throttled.cancel(); - hideInsertionPoint(); - }, - onDragEnd() { - throttled.cancel(); - hideInsertionPoint(); + // If the block exists in the designated location, we consider it hooked + // and show the toggle as enabled. + if (hookedBlock) { + return { + ...clientIds, + [block.name]: hookedBlock.clientId + }; + } + + // If no hooked block was found in any of its designated locations, + // but it exists elsewhere in the block tree, we consider it manually inserted. + // In this case, we take note and will remove the corresponding toggle from the + // block inspector panel. + return { + ...clientIds, + [block.name]: false + }; + }, {}); + if (Object.values(_hookedBlockClientIds).length > 0) { + return _hookedBlockClientIds; } - }); -} + return block_hooks_EMPTY_OBJECT; + }, [hookedBlocksForCurrentBlock, props.blockName, props.clientId, rootClientId]); + const { + insertBlock, + removeBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/index.js + // Remove toggle if block isn't present in the designated location but elsewhere in the block tree. + const hookedBlocksForCurrentBlockIfNotPresentElsewhere = hookedBlocksForCurrentBlock?.filter(block => hookedBlockClientIds?.[block.name] !== false); + if (!hookedBlocksForCurrentBlockIfNotPresentElsewhere.length) { + return null; + } -/** - * External dependencies - */ + // Group by block namespace (i.e. prefix before the slash). + const groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce((groups, block) => { + const [namespace] = block.name.split('/'); + if (!groups[namespace]) { + groups[namespace] = []; + } + groups[namespace].push(block); + return groups; + }, {}); + const insertBlockIntoDesignatedLocation = (block, relativePosition) => { + switch (relativePosition) { + case 'before': + case 'after': + insertBlock(block, relativePosition === 'after' ? blockIndex + 1 : blockIndex, rootClientId, + // Insert as a child of the current block's parent + false); + break; + case 'first_child': + case 'last_child': + insertBlock(block, + // TODO: It'd be great if insertBlock() would accept negative indices for insertion. + relativePosition === 'first_child' ? 0 : innerBlocksLength, props.clientId, + // Insert as a child of the current block. + false); + break; + } + }; + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + className: "block-editor-hooks__block-hooks", + title: (0,external_wp_i18n_namespaceObject.__)('Plugins'), + initialOpen: true + }, Object.keys(groupedHookedBlocks).map(vendor => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, { + key: vendor + }, (0,external_wp_element_namespaceObject.createElement)("h3", null, vendor), groupedHookedBlocks[vendor].map(block => { + const checked = (block.name in hookedBlockClientIds); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + checked: checked, + key: block.title, + label: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: block.icon + }), (0,external_wp_element_namespaceObject.createElement)("span", null, block.title)), + onChange: () => { + if (!checked) { + // Create and insert block. + const relativePosition = block.blockHooks[props.blockName]; + insertBlockIntoDesignatedLocation((0,external_wp_blocks_namespaceObject.createBlock)(block.name), relativePosition); + return; + } + + // Remove block. + const clientId = hookedBlockClientIds[block.name]; + removeBlock(clientId, false); + } + }); + })); + }))); +} +const withBlockHooks = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => { + return props => { + const blockEdit = (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, blockEdit, (0,external_wp_element_namespaceObject.createElement)(BlockHooksControl, { + blockName: props.name, + clientId: props.clientId + })); + }; +}, 'withBlockHooks'); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/block-hooks/with-inspector-control', withBlockHooks); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/block-rename.js /** * WordPress dependencies @@ -50359,482 +44421,320 @@ function useBlockDropZone({ + /** * Internal dependencies */ +const withBlockRenameControl = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => { + const { + name, + attributes, + setAttributes, + isSelected + } = props; + const supportsBlockNaming = (0,external_wp_blocks_namespaceObject.hasBlockSupport)(name, '__experimentalMetadata', false); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isSelected && supportsBlockNaming && (0,external_wp_element_namespaceObject.createElement)(inspector_controls, { + group: "advanced" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Block name'), + value: attributes?.metadata?.name || '', + onChange: newName => { + setAttributes({ + metadata: { + ...attributes?.metadata, + name: newName + } + }); + } + })), (0,external_wp_element_namespaceObject.createElement)(BlockEdit, { + key: "edit", + ...props + })); +}, 'withToolbarControls'); +(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/block-rename-ui/with-block-rename-control', withBlockRenameControl); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-border-props.js +/** + * Internal dependencies + */ - - - - - - -const inner_blocks_EMPTY_OBJECT = {}; -function BlockContext({ - children, - clientId -}) { - const context = useBlockContext(clientId); - return (0,external_React_.createElement)(BlockContextProvider, { - value: context - }, children); -} +// This utility is intended to assist where the serialization of the border +// block support is being skipped for a block but the border related CSS classes +// & styles still need to be generated so they can be applied to inner elements. /** - * InnerBlocks is a component which allows a single block to have multiple blocks - * as children. The UncontrolledInnerBlocks component is used whenever the inner - * blocks are not controlled by another entity. In other words, it is normally - * used for inner blocks in the post editor + * Provides the CSS class names and inline styles for a block's border support + * attributes. * - * @param {Object} props The component props. + * @param {Object} attributes Block attributes. + * @return {Object} Border block support derived CSS classes & styles. */ -function UncontrolledInnerBlocks(props) { - const { - clientId, - allowedBlocks, - prioritizedInserterBlocks, - defaultBlock, - directInsert, - __experimentalDefaultBlock, - __experimentalDirectInsert, - template, - templateLock, - wrapperRef, - templateInsertUpdatesSelection, - __experimentalCaptureToolbars: captureToolbars, - __experimentalAppenderTagName, - renderAppender, - orientation, - placeholder, - layout, - name, - blockType, - innerBlocks, - parentLock - } = props; - useNestedSettingsUpdate(clientId, parentLock, allowedBlocks, prioritizedInserterBlocks, defaultBlock, directInsert, __experimentalDefaultBlock, __experimentalDirectInsert, templateLock, captureToolbars, orientation, layout); - useInnerBlockTemplateSync(clientId, innerBlocks, template, templateLock, templateInsertUpdatesSelection); - const defaultLayoutBlockSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'layout') || (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, '__experimentalLayout') || inner_blocks_EMPTY_OBJECT; - const { - allowSizingOnChildren = false - } = defaultLayoutBlockSupport; - const [defaultLayout] = use_settings_useSettings('layout'); - const usedLayout = layout || defaultLayoutBlockSupport; - const memoedLayout = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - // Default layout will know about any content/wide size defined by the theme. - ...defaultLayout, - ...usedLayout, - ...(allowSizingOnChildren && { - allowSizingOnChildren: true +function getBorderClassesAndStyles(attributes) { + const border = attributes.style?.border || {}; + const className = getBorderClasses(attributes); + return { + className: className || undefined, + style: getInlineStyles({ + border }) - }), [defaultLayout, usedLayout, allowSizingOnChildren]); - const items = (0,external_React_.createElement)(BlockListItems, { - rootClientId: clientId, - renderAppender: renderAppender, - __experimentalAppenderTagName: __experimentalAppenderTagName, - layout: memoedLayout, - wrapperRef: wrapperRef, - placeholder: placeholder - }); - if (Object.keys(blockType.providesContext).length === 0) { - return items; - } - return (0,external_React_.createElement)(BlockContext, { - clientId: clientId - }, items); + }; } /** - * The controlled inner blocks component wraps the uncontrolled inner blocks - * component with the blockSync hook. This keeps the innerBlocks of the block in - * the block-editor store in sync with the blocks of the controlling entity. An - * example of an inner block controller is a template part block, which provides - * its own blocks from the template part entity data source. + * Derives the border related props for a block from its border block support + * attributes. * - * @param {Object} props The component props. - */ -function ControlledInnerBlocks(props) { - useBlockSync(props); - return (0,external_React_.createElement)(UncontrolledInnerBlocks, { - ...props - }); -} -const ForwardedInnerBlocks = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - const innerBlocksProps = useInnerBlocksProps({ - ref - }, props); - return (0,external_React_.createElement)("div", { - className: "block-editor-inner-blocks" - }, (0,external_React_.createElement)("div", { - ...innerBlocksProps - })); -}); - -/** - * This hook is used to lightly mark an element as an inner blocks wrapper - * element. Call this hook and pass the returned props to the element to mark as - * an inner blocks wrapper, automatically rendering inner blocks as children. If - * you define a ref for the element, it is important to pass the ref to this - * hook, which the hook in turn will pass to the component through the props it - * returns. Optionally, you can also pass any other props through this hook, and - * they will be merged and returned. + * Inline styles are forced for named colors to ensure these selections are + * reflected when themes do not load their color stylesheets in the editor. * - * @param {Object} props Optional. Props to pass to the element. Must contain - * the ref if one is defined. - * @param {Object} options Optional. Inner blocks options. + * @param {Object} attributes Block attributes. * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md + * @return {Object} ClassName & style props from border block support. */ -function useInnerBlocksProps(props = {}, options = {}) { - const { - __unstableDisableLayoutClassNames, - __unstableDisableDropZone, - dropZoneElement - } = options; +function useBorderProps(attributes) { const { - clientId, - layout = null, - __unstableLayoutClassNames: layoutClassNames = '' - } = useBlockEditContext(); + colors + } = useMultipleOriginColorsAndGradients(); + const borderProps = getBorderClassesAndStyles(attributes); const { - __experimentalCaptureToolbars, - hasOverlay, - name, - blockType, - innerBlocks, - parentLock, - parentClientId, - isDropZoneDisabled - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - if (!clientId) { - return {}; - } - const { - getBlockName, - isBlockSelected, - hasSelectedInnerBlock, - __unstableGetEditorMode, - getBlocks, - getTemplateLock, - getBlockRootClientId, - __unstableIsWithinBlockOverlay, - __unstableHasActiveBlockOverlayActive, - getBlockEditingMode - } = select(store); - const { - hasBlockSupport, - getBlockType - } = select(external_wp_blocks_namespaceObject.store); - const blockName = getBlockName(clientId); - const enableClickThrough = __unstableGetEditorMode() === 'navigation'; - const blockEditingMode = getBlockEditingMode(clientId); - const _parentClientId = getBlockRootClientId(clientId); - return { - __experimentalCaptureToolbars: hasBlockSupport(blockName, '__experimentalExposeControlsToChildren', false), - hasOverlay: blockName !== 'core/template' && !isBlockSelected(clientId) && !hasSelectedInnerBlock(clientId, true) && enableClickThrough, - name: blockName, - blockType: getBlockType(blockName), - innerBlocks: getBlocks(clientId), - parentLock: getTemplateLock(_parentClientId), - parentClientId: _parentClientId, - isDropZoneDisabled: blockEditingMode !== 'default' || __unstableHasActiveBlockOverlayActive(clientId) || __unstableIsWithinBlockOverlay(clientId) - }; - }, [clientId]); - const blockDropZoneRef = useBlockDropZone({ - dropZoneElement, - rootClientId: clientId, - parentClientId, - isDisabled: isDropZoneDisabled - }); - const ref = (0,external_wp_compose_namespaceObject.useMergeRefs)([props.ref, __unstableDisableDropZone ? null : blockDropZoneRef]); - const innerBlocksProps = { - __experimentalCaptureToolbars, - layout, - name, - blockType, - innerBlocks, - parentLock, - ...options - }; - const InnerBlocks = innerBlocksProps.value && innerBlocksProps.onChange ? ControlledInnerBlocks : UncontrolledInnerBlocks; - return { - ...props, - ref, - className: classnames_default()(props.className, 'block-editor-block-list__layout', __unstableDisableLayoutClassNames ? '' : layoutClassNames, { - 'has-overlay': hasOverlay - }), - children: clientId ? (0,external_React_.createElement)(InnerBlocks, { - ...innerBlocksProps, - clientId: clientId - }) : (0,external_React_.createElement)(BlockListItems, { - ...options - }) - }; -} -useInnerBlocksProps.save = external_wp_blocks_namespaceObject.__unstableGetInnerBlocksProps; + borderColor + } = attributes; -// Expose default appender placeholders as components. -ForwardedInnerBlocks.DefaultBlockAppender = inner_blocks_default_block_appender; -ForwardedInnerBlocks.ButtonBlockAppender = inner_blocks_button_block_appender; -ForwardedInnerBlocks.Content = () => useInnerBlocksProps.save().children; + // Force inline styles to apply named border colors when themes do not load + // their color stylesheets in the editor. + if (borderColor) { + const borderColorObject = getMultiOriginColor({ + colors, + namedColor: borderColor + }); + borderProps.style.borderColor = borderColorObject.color; + } + return borderProps; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-color-props.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md + * External dependencies */ -/* harmony default export */ var inner_blocks = (ForwardedInnerBlocks); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/observe-typing/index.js /** * WordPress dependencies */ - - - /** * Internal dependencies */ -/** - * Set of key codes upon which typing is to be initiated on a keydown event. - * - * @type {Set} - */ -const KEY_DOWN_ELIGIBLE_KEY_CODES = new Set([external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.RIGHT, external_wp_keycodes_namespaceObject.DOWN, external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.ENTER, external_wp_keycodes_namespaceObject.BACKSPACE]); + + + +// The code in this file has largely been lifted from the color block support +// hook. +// +// This utility is intended to assist where the serialization of the colors +// block support is being skipped for a block but the color related CSS classes +// & styles still need to be generated so they can be applied to inner elements. /** - * Returns true if a given keydown event can be inferred as intent to start - * typing, or false otherwise. A keydown is considered eligible if it is a - * text navigation without shift active. + * Provides the CSS class names and inline styles for a block's color support + * attributes. * - * @param {KeyboardEvent} event Keydown event to test. + * @param {Object} attributes Block attributes. * - * @return {boolean} Whether event is eligible to start typing. + * @return {Object} Color block support derived CSS classes & styles. */ -function isKeyDownEligibleForStartTyping(event) { +function getColorClassesAndStyles(attributes) { const { - keyCode, - shiftKey - } = event; - return !shiftKey && KEY_DOWN_ELIGIBLE_KEY_CODES.has(keyCode); -} + backgroundColor, + textColor, + gradient, + style + } = attributes; -/** - * Removes the `isTyping` flag when the mouse moves in the document of the given - * element. - */ -function useMouseMoveTypingReset() { - const isTyping = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isTyping(), []); - const { - stopTyping - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - if (!isTyping) { - return; - } - const { - ownerDocument - } = node; - let lastClientX; - let lastClientY; + // Collect color CSS classes. + const backgroundClass = getColorClassName('background-color', backgroundColor); + const textClass = getColorClassName('color', textColor); + const gradientClass = __experimentalGetGradientClass(gradient); + const hasGradient = gradientClass || style?.color?.gradient; - /** - * On mouse move, unset typing flag if user has moved cursor. - * - * @param {MouseEvent} event Mousemove event. - */ - function stopTypingOnMouseMove(event) { - const { - clientX, - clientY - } = event; + // Determine color CSS class name list. + const className = classnames_default()(textClass, gradientClass, { + // Don't apply the background class if there's a gradient. + [backgroundClass]: !hasGradient && !!backgroundClass, + 'has-text-color': textColor || style?.color?.text, + 'has-background': backgroundColor || style?.color?.background || gradient || style?.color?.gradient, + 'has-link-color': style?.elements?.link?.color + }); - // We need to check that the mouse really moved because Safari - // triggers mousemove events when shift or ctrl are pressed. - if (lastClientX && lastClientY && (lastClientX !== clientX || lastClientY !== clientY)) { - stopTyping(); - } - lastClientX = clientX; - lastClientY = clientY; - } - ownerDocument.addEventListener('mousemove', stopTypingOnMouseMove); - return () => { - ownerDocument.removeEventListener('mousemove', stopTypingOnMouseMove); - }; - }, [isTyping, stopTyping]); + // Collect inline styles for colors. + const colorStyles = style?.color || {}; + const styleProp = getInlineStyles({ + color: colorStyles + }); + return { + className: className || undefined, + style: styleProp + }; } +const use_color_props_EMPTY_OBJECT = {}; /** - * Sets and removes the `isTyping` flag based on user actions: + * Determines the color related props for a block derived from its color block + * support attributes. * - * - Sets the flag if the user types within the given element. - * - Removes the flag when the user selects some text, focusses a non-text - * field, presses ESC or TAB, or moves the mouse in the document. + * Inline styles are forced for named colors to ensure these selections are + * reflected when themes do not load their color stylesheets in the editor. + * + * @param {Object} attributes Block attributes. + * + * @return {Object} ClassName & style props from colors block support. */ -function useTypingObserver() { - const { - isTyping, - hasInlineToolbar - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - isTyping: _isTyping, - getSettings - } = select(store); - return { - isTyping: _isTyping(), - hasInlineToolbar: getSettings().hasInlineToolbar - }; - }, []); +function useColorProps(attributes) { const { - startTyping, - stopTyping - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const ref1 = useMouseMoveTypingReset(); - const ref2 = (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - const { - ownerDocument - } = node; - const { - defaultView - } = ownerDocument; - const selection = defaultView.getSelection(); - - // Listeners to stop typing should only be added when typing. - // Listeners to start typing should only be added when not typing. - if (isTyping) { - let timerId; + backgroundColor, + textColor, + gradient + } = attributes; - /** - * Stops typing when focus transitions to a non-text field element. - * - * @param {FocusEvent} event Focus event. - */ - function stopTypingOnNonTextField(event) { - const { - target - } = event; + // Some color settings have a special handling for deprecated flags in `useSetting`, + // so we can't unwrap them by doing const { ... } = useSetting('color') + // until https://github.com/WordPress/gutenberg/issues/37094 is fixed. + const userPalette = use_setting_useSetting('color.palette.custom'); + const themePalette = use_setting_useSetting('color.palette.theme'); + const defaultPalette = use_setting_useSetting('color.palette.default'); + const gradientsPerOrigin = use_setting_useSetting('color.gradients') || use_color_props_EMPTY_OBJECT; + const colors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); + const gradients = (0,external_wp_element_namespaceObject.useMemo)(() => [...(gradientsPerOrigin?.custom || []), ...(gradientsPerOrigin?.theme || []), ...(gradientsPerOrigin?.default || [])], [gradientsPerOrigin]); + const colorProps = getColorClassesAndStyles(attributes); - // Since focus to a non-text field via arrow key will trigger - // before the keydown event, wait until after current stack - // before evaluating whether typing is to be stopped. Otherwise, - // typing will re-start. - timerId = defaultView.setTimeout(() => { - if (!(0,external_wp_dom_namespaceObject.isTextField)(target)) { - stopTyping(); - } - }); - } + // Force inline styles to apply colors when themes do not load their color + // stylesheets in the editor. + if (backgroundColor) { + const backgroundColorObject = getColorObjectByAttributeValues(colors, backgroundColor); + colorProps.style.backgroundColor = backgroundColorObject.color; + } + if (gradient) { + colorProps.style.background = getGradientValueBySlug(gradients, gradient); + } + if (textColor) { + const textColorObject = getColorObjectByAttributeValues(colors, textColor); + colorProps.style.color = textColorObject.color; + } + return colorProps; +} - /** - * Unsets typing flag if user presses Escape while typing flag is - * active. - * - * @param {KeyboardEvent} event Keypress or keydown event to - * interpret. - */ - function stopTypingOnEscapeKey(event) { - const { - keyCode - } = event; - if (keyCode === external_wp_keycodes_namespaceObject.ESCAPE || keyCode === external_wp_keycodes_namespaceObject.TAB) { - stopTyping(); - } - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-spacing-props.js +/** + * Internal dependencies + */ - /** - * On selection change, unset typing flag if user has made an - * uncollapsed (shift) selection. - */ - function stopTypingOnSelectionUncollapse() { - if (!selection.isCollapsed) { - stopTyping(); - } - } - node.addEventListener('focus', stopTypingOnNonTextField); - node.addEventListener('keydown', stopTypingOnEscapeKey); - if (!hasInlineToolbar) { - ownerDocument.addEventListener('selectionchange', stopTypingOnSelectionUncollapse); - } - return () => { - defaultView.clearTimeout(timerId); - node.removeEventListener('focus', stopTypingOnNonTextField); - node.removeEventListener('keydown', stopTypingOnEscapeKey); - ownerDocument.removeEventListener('selectionchange', stopTypingOnSelectionUncollapse); - }; - } - /** - * Handles a keypress or keydown event to infer intention to start - * typing. - * - * @param {KeyboardEvent} event Keypress or keydown event to interpret. - */ - function startTypingInTextField(event) { - const { - type, - target - } = event; +// This utility is intended to assist where the serialization of the spacing +// block support is being skipped for a block but the spacing related CSS +// styles still need to be generated so they can be applied to inner elements. - // Abort early if already typing, or key press is incurred outside a - // text field (e.g. arrow-ing through toolbar buttons). - // Ignore typing if outside the current DOM container - if (!(0,external_wp_dom_namespaceObject.isTextField)(target) || !node.contains(target)) { - return; - } +/** + * Provides the CSS class names and inline styles for a block's spacing support + * attributes. + * + * @param {Object} attributes Block attributes. + * + * @return {Object} Spacing block support derived CSS classes & styles. + */ +function getSpacingClassesAndStyles(attributes) { + const { + style + } = attributes; - // Special-case keydown because certain keys do not emit a keypress - // event. Conversely avoid keydown as the canonical event since - // there are many keydown which are explicitly not targeted for - // typing. - if (type === 'keydown' && !isKeyDownEligibleForStartTyping(event)) { - return; - } - startTyping(); - } - node.addEventListener('keypress', startTypingInTextField); - node.addEventListener('keydown', startTypingInTextField); - return () => { - node.removeEventListener('keypress', startTypingInTextField); - node.removeEventListener('keydown', startTypingInTextField); - }; - }, [isTyping, hasInlineToolbar, startTyping, stopTyping]); - return (0,external_wp_compose_namespaceObject.useMergeRefs)([ref1, ref2]); -} -function ObserveTyping({ - children -}) { - return (0,external_React_.createElement)("div", { - ref: useTypingObserver() - }, children); + // Collect inline styles for spacing. + const spacingStyles = style?.spacing || {}; + const styleProp = getInlineStyles({ + spacing: spacingStyles + }); + return { + style: styleProp + }; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-typography-props.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/observe-typing/README.md + * External dependencies */ -/* harmony default export */ var observe_typing = (ObserveTyping); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/index.js /** - * External dependencies + * Internal dependencies */ + + + +/* + * This utility is intended to assist where the serialization of the typography + * block support is being skipped for a block but the typography related CSS + * styles still need to be generated so they can be applied to inner elements. + */ /** - * WordPress dependencies + * Provides the CSS class names and inline styles for a block's typography support + * attributes. + * + * @param {Object} attributes Block attributes. + * @param {Object|boolean} settings Merged theme.json settings + * + * @return {Object} Typography block support derived CSS classes & styles. */ +function getTypographyClassesAndStyles(attributes, settings) { + let typographyStyles = attributes?.style?.typography || {}; + const fluidTypographySettings = getFluidTypographyOptionsFromSettings(settings); + typographyStyles = { + ...typographyStyles, + fontSize: getTypographyFontSizeValue({ + size: attributes?.style?.typography?.fontSize + }, fluidTypographySettings) + }; + const style = getInlineStyles({ + typography: typographyStyles + }); + const fontFamilyClassName = !!attributes?.fontFamily ? `has-${kebabCase(attributes.fontFamily)}-font-family` : ''; + const className = classnames_default()(fontFamilyClassName, getFontSizeClass(attributes?.fontSize)); + return { + className, + style + }; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-cached-truthy.js +/** + * WordPress dependencies + */ +/** + * Keeps an up-to-date copy of the passed value and returns it. If value becomes falsy, it will return the last truthy copy. + * + * @param {any} value + * @return {any} value + */ +function useCachedTruthy(value) { + const [cachedValue, setCachedValue] = (0,external_wp_element_namespaceObject.useState)(value); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (value) { + setCachedValue(value); + } + }, [value]); + return cachedValue; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/index.js /** * Internal dependencies */ @@ -50848,315 +44748,239 @@ function ObserveTyping({ -const block_list_IntersectionObserver = (0,external_wp_element_namespaceObject.createContext)(); -const pendingBlockVisibilityUpdatesPerRegistry = new WeakMap(); -function block_list_Root({ - className, - ...settings -}) { - const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); - const { - isOutlineMode, - isFocusMode, - editorMode - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings, - __unstableGetEditorMode - } = select(store); - const { - outlineMode, - focusMode - } = getSettings(); - return { - isOutlineMode: outlineMode, - isFocusMode: focusMode, - editorMode: __unstableGetEditorMode() - }; - }, []); - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - const { - setBlockVisibility - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const delayedBlockVisibilityUpdates = (0,external_wp_compose_namespaceObject.useDebounce)((0,external_wp_element_namespaceObject.useCallback)(() => { - const updates = {}; - pendingBlockVisibilityUpdatesPerRegistry.get(registry).forEach(([id, isIntersecting]) => { - updates[id] = isIntersecting; - }); - setBlockVisibility(updates); - }, [registry]), 300, { - trailing: true - }); - const intersectionObserver = (0,external_wp_element_namespaceObject.useMemo)(() => { - const { - IntersectionObserver: Observer - } = window; - if (!Observer) { - return; - } - return new Observer(entries => { - if (!pendingBlockVisibilityUpdatesPerRegistry.get(registry)) { - pendingBlockVisibilityUpdatesPerRegistry.set(registry, []); - } - for (const entry of entries) { - const clientId = entry.target.getAttribute('data-block'); - pendingBlockVisibilityUpdatesPerRegistry.get(registry).push([clientId, entry.isIntersecting]); - } - delayedBlockVisibilityUpdates(); - }); - }, []); - const innerBlocksProps = useInnerBlocksProps({ - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([useBlockSelectionClearer(), useInBetweenInserter(), useTypingObserver()]), - className: classnames_default()('is-root-container', className, { - 'is-outline-mode': isOutlineMode, - 'is-focus-mode': isFocusMode && isLargeViewport, - 'is-navigate-mode': editorMode === 'navigation' - }) - }, settings); - return (0,external_React_.createElement)(block_list_IntersectionObserver.Provider, { - value: intersectionObserver - }, (0,external_React_.createElement)("div", { - ...innerBlocksProps - })); -} -function StopEditingAsBlocksOnOutsideSelect({ - clientId -}) { - const { - stopEditingAsBlocks - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - const isBlockOrDescendantSelected = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - isBlockSelected, - hasSelectedInnerBlock - } = select(store); - return isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, true); - }, [clientId]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!isBlockOrDescendantSelected) { - stopEditingAsBlocks(clientId); - } - }, [isBlockOrDescendantSelected, clientId, stopEditingAsBlocks]); - return null; -} -function BlockList(settings) { - return (0,external_React_.createElement)(Provider, { - value: DEFAULT_BLOCK_EDIT_CONTEXT - }, (0,external_React_.createElement)(block_list_Root, { - ...settings - })); -} -function Items({ - placeholder, - rootClientId, - renderAppender, - __experimentalAppenderTagName, - layout = defaultLayout -}) { - const { - order, - selectedBlocks, - visibleBlocks, - temporarilyEditingAsBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockOrder, - getSelectedBlockClientIds, - __unstableGetVisibleBlocks, - __unstableGetTemporarilyEditingAsBlocks - } = select(store); - return { - order: getBlockOrder(rootClientId), - selectedBlocks: getSelectedBlockClientIds(), - visibleBlocks: __unstableGetVisibleBlocks(), - temporarilyEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks() - }; - }, [rootClientId]); - return (0,external_React_.createElement)(LayoutProvider, { - value: layout - }, order.map(clientId => (0,external_React_.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { - key: clientId, - value: - // Only provide data asynchronously if the block is - // not visible and not selected. - !visibleBlocks.has(clientId) && !selectedBlocks.includes(clientId) - }, (0,external_React_.createElement)(block_list_block, { - rootClientId: rootClientId, - clientId: clientId - }))), order.length < 1 && placeholder, !!temporarilyEditingAsBlocks && (0,external_React_.createElement)(StopEditingAsBlocksOnOutsideSelect, { - clientId: temporarilyEditingAsBlocks - }), (0,external_React_.createElement)(block_list_appender, { - tagName: __experimentalAppenderTagName, - rootClientId: rootClientId, - renderAppender: renderAppender - })); -} -function BlockListItems(props) { - // This component needs to always be synchronous as it's the one changing - // the async mode depending on the block selection. - return (0,external_React_.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { - value: false - }, (0,external_React_.createElement)(Items, { - ...props - })); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/use-block-toolbar-popover-props.js -/** - * WordPress dependencies - */ + + + + + + + + + + + + + + + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/with-colors.js + /** - * Internal dependencies + * WordPress dependencies */ -const COMMON_PROPS = { - placement: 'top-start' -}; +/** + * Internal dependencies + */ + -// By default the toolbar sets the `shift` prop. If the user scrolls the page -// down the toolbar will stay on screen by adopting a sticky position at the -// top of the viewport. -const use_block_toolbar_popover_props_DEFAULT_PROPS = { - ...COMMON_PROPS, - flip: false, - shift: true -}; -// When there isn't enough height between the top of the block and the editor -// canvas, the `shift` prop is set to `false`, as it will cause the block to be -// obscured. The `flip` behavior is enabled, which positions the toolbar below -// the block. This only happens if the block is smaller than the viewport, as -// otherwise the toolbar will be off-screen. -const RESTRICTED_HEIGHT_PROPS = { - ...COMMON_PROPS, - flip: true, - shift: false -}; /** - * Get the popover props for the block toolbar, determined by the space at the top of the canvas and the toolbar height. + * Capitalizes the first letter in a string. * - * @param {Element} contentElement The DOM element that represents the editor content or canvas. - * @param {Element} selectedBlockElement The outer DOM element of the first selected block. - * @param {Element} scrollContainer The scrollable container for the contentElement. - * @param {number} toolbarHeight The height of the toolbar in pixels. - * @param {boolean} isSticky Whether or not the selected block is sticky or fixed. + * @param {string} str The string whose first letter the function will capitalize. * - * @return {Object} The popover props used to determine the position of the toolbar. + * @return {string} Capitalized string. */ -function getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky) { - if (!contentElement || !selectedBlockElement) { - return use_block_toolbar_popover_props_DEFAULT_PROPS; - } - - // Get how far the content area has been scrolled. - const scrollTop = scrollContainer?.scrollTop || 0; - const blockRect = selectedBlockElement.getBoundingClientRect(); - const contentRect = contentElement.getBoundingClientRect(); +const upperFirst = ([firstLetter, ...rest]) => firstLetter.toUpperCase() + rest.join(''); - // Get the vertical position of top of the visible content area. - const topOfContentElementInViewport = scrollTop + contentRect.top; +/** + * Higher order component factory for injecting the `colorsArray` argument as + * the colors prop in the `withCustomColors` HOC. + * + * @param {Array} colorsArray An array of color objects. + * + * @return {Function} The higher order component. + */ +const withCustomColorPalette = colorsArray => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...props, + colors: colorsArray +}), 'withCustomColorPalette'); - // The document element's clientHeight represents the viewport height. - const viewportHeight = contentElement.ownerDocument.documentElement.clientHeight; +/** + * Higher order component factory for injecting the editor colors as the + * `colors` prop in the `withColors` HOC. + * + * @return {Function} The higher order component. + */ +const withEditorColorPalette = () => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { + // Some color settings have a special handling for deprecated flags in `useSetting`, + // so we can't unwrap them by doing const { ... } = useSetting('color') + // until https://github.com/WordPress/gutenberg/issues/37094 is fixed. + const userPalette = use_setting_useSetting('color.palette.custom'); + const themePalette = use_setting_useSetting('color.palette.theme'); + const defaultPalette = use_setting_useSetting('color.palette.default'); + const allColors = (0,external_wp_element_namespaceObject.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]); + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...props, + colors: allColors + }); +}, 'withEditorColorPalette'); - // The restricted height area is calculated as the sum of the - // vertical position of the visible content area, plus the height - // of the block toolbar. - const restrictedTopArea = topOfContentElementInViewport + toolbarHeight; - const hasSpaceForToolbarAbove = blockRect.top > restrictedTopArea; - const isBlockTallerThanViewport = blockRect.height > viewportHeight - toolbarHeight; +/** + * Helper function used with `createHigherOrderComponent` to create + * higher order components for managing color logic. + * + * @param {Array} colorTypes An array of color types (e.g. 'backgroundColor, borderColor). + * @param {Function} withColorPalette A HOC for injecting the 'colors' prop into the WrappedComponent. + * + * @return {WPComponent} The component that can be used as a HOC. + */ +function createColorHOC(colorTypes, withColorPalette) { + const colorMap = colorTypes.reduce((colorObject, colorType) => { + return { + ...colorObject, + ...(typeof colorType === 'string' ? { + [colorType]: kebabCase(colorType) + } : colorType) + }; + }, {}); + return (0,external_wp_compose_namespaceObject.compose)([withColorPalette, WrappedComponent => { + return class extends external_wp_element_namespaceObject.Component { + constructor(props) { + super(props); + this.setters = this.createSetters(); + this.colorUtils = { + getMostReadableColor: this.getMostReadableColor.bind(this) + }; + this.state = {}; + } + getMostReadableColor(colorValue) { + const { + colors + } = this.props; + return getMostReadableColor(colors, colorValue); + } + createSetters() { + return Object.keys(colorMap).reduce((settersAccumulator, colorAttributeName) => { + const upperFirstColorAttributeName = upperFirst(colorAttributeName); + const customColorAttributeName = `custom${upperFirstColorAttributeName}`; + settersAccumulator[`set${upperFirstColorAttributeName}`] = this.createSetColor(colorAttributeName, customColorAttributeName); + return settersAccumulator; + }, {}); + } + createSetColor(colorAttributeName, customColorAttributeName) { + return colorValue => { + const colorObject = getColorObjectByColorValue(this.props.colors, colorValue); + this.props.setAttributes({ + [colorAttributeName]: colorObject && colorObject.slug ? colorObject.slug : undefined, + [customColorAttributeName]: colorObject && colorObject.slug ? undefined : colorValue + }); + }; + } + static getDerivedStateFromProps({ + attributes, + colors + }, previousState) { + return Object.entries(colorMap).reduce((newState, [colorAttributeName, colorContext]) => { + const colorObject = getColorObjectByAttributeValues(colors, attributes[colorAttributeName], attributes[`custom${upperFirst(colorAttributeName)}`]); + const previousColorObject = previousState[colorAttributeName]; + const previousColor = previousColorObject?.color; + /** + * The "and previousColorObject" condition checks that a previous color object was already computed. + * At the start previousColorObject and colorValue are both equal to undefined + * bus as previousColorObject does not exist we should compute the object. + */ + if (previousColor === colorObject.color && previousColorObject) { + newState[colorAttributeName] = previousColorObject; + } else { + newState[colorAttributeName] = { + ...colorObject, + class: getColorClassName(colorContext, colorObject.slug) + }; + } + return newState; + }, {}); + } + render() { + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...this.props, + colors: undefined, + ...this.state, + ...this.setters, + colorUtils: this.colorUtils + }); + } + }; + }]); +} - // Sticky blocks are treated as if they will never have enough space for the toolbar above. - if (!isSticky && (hasSpaceForToolbarAbove || isBlockTallerThanViewport)) { - return use_block_toolbar_popover_props_DEFAULT_PROPS; - } - return RESTRICTED_HEIGHT_PROPS; +/** + * A higher-order component factory for creating a 'withCustomColors' HOC, which handles color logic + * for class generation color value, retrieval and color attribute setting. + * + * Use this higher-order component to work with a custom set of colors. + * + * @example + * + * ```jsx + * const CUSTOM_COLORS = [ { name: 'Red', slug: 'red', color: '#ff0000' }, { name: 'Blue', slug: 'blue', color: '#0000ff' } ]; + * const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS ); + * // ... + * export default compose( + * withCustomColors( 'backgroundColor', 'borderColor' ), + * MyColorfulComponent, + * ); + * ``` + * + * @param {Array} colorsArray The array of color objects (name, slug, color, etc... ). + * + * @return {Function} Higher-order component. + */ +function createCustomColorsHOC(colorsArray) { + return (...colorTypes) => { + const withColorPalette = withCustomColorPalette(colorsArray); + return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(createColorHOC(colorTypes, withColorPalette), 'withCustomColors'); + }; } /** - * Determines the desired popover positioning behavior, returning a set of appropriate props. + * A higher-order component, which handles color logic for class generation color value, retrieval and color attribute setting. * - * @param {Object} elements - * @param {Element} elements.contentElement The DOM element that represents the editor content or canvas. - * @param {string} elements.clientId The clientId of the first selected block. + * For use with the default editor/theme color palette. + * + * @example + * + * ```jsx + * export default compose( + * withColors( 'backgroundColor', { textColor: 'color' } ), + * MyColorfulComponent, + * ); + * ``` * - * @return {Object} The popover props used to determine the position of the toolbar. + * @param {...(Object|string)} colorTypes The arguments can be strings or objects. If the argument is an object, + * it should contain the color attribute name as key and the color context as value. + * If the argument is a string the value should be the color attribute name, + * the color context is computed by applying a kebab case transform to the value. + * Color context represents the context/place where the color is going to be used. + * The class name of the color is generated using 'has' followed by the color name + * and ending with the color context all in kebab case e.g: has-green-background-color. + * + * @return {Function} Higher-order component. */ -function useBlockToolbarPopoverProps({ - contentElement, - clientId -}) { - const selectedBlockElement = useBlockElement(clientId); - const [toolbarHeight, setToolbarHeight] = (0,external_wp_element_namespaceObject.useState)(0); - const { - blockIndex, - isSticky - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockIndex, - getBlockAttributes - } = select(store); - return { - blockIndex: getBlockIndex(clientId), - isSticky: hasStickyOrFixedPositionValue(getBlockAttributes(clientId)) - }; - }, [clientId]); - const scrollContainer = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!contentElement) { - return; - } - return (0,external_wp_dom_namespaceObject.getScrollContainer)(contentElement); - }, [contentElement]); - const [props, setProps] = (0,external_wp_element_namespaceObject.useState)(() => getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky)); - const popoverRef = (0,external_wp_compose_namespaceObject.useRefEffect)(popoverNode => { - setToolbarHeight(popoverNode.offsetHeight); - }, []); - const updateProps = (0,external_wp_element_namespaceObject.useCallback)(() => setProps(getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky)), [contentElement, selectedBlockElement, scrollContainer, toolbarHeight]); +function withColors(...colorTypes) { + const withColorPalette = withEditorColorPalette(); + return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(createColorHOC(colorTypes, withColorPalette), 'withColors'); +} - // Update props when the block is moved. This also ensures the props are - // correct on initial mount, and when the selected block or content element - // changes (since the callback ref will update). - (0,external_wp_element_namespaceObject.useLayoutEffect)(updateProps, [blockIndex, updateProps]); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/index.js - // Update props when the viewport is resized or the block is resized. - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - if (!contentElement || !selectedBlockElement) { - return; - } - // Update the toolbar props on viewport resize. - const contentView = contentElement?.ownerDocument?.defaultView; - contentView?.addEventHandler?.('resize', updateProps); - // Update the toolbar props on block resize. - let resizeObserver; - const blockView = selectedBlockElement?.ownerDocument?.defaultView; - if (blockView.ResizeObserver) { - resizeObserver = new blockView.ResizeObserver(updateProps); - resizeObserver.observe(selectedBlockElement); - } - return () => { - contentView?.removeEventHandler?.('resize', updateProps); - if (resizeObserver) { - resizeObserver.disconnect(); - } - }; - }, [updateProps, contentElement, selectedBlockElement]); - return { - ...props, - ref: popoverRef - }; -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/index.js + + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/font-size-picker.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/use-selected-block-tool-props.js /** * WordPress dependencies */ @@ -51166,620 +44990,471 @@ function useBlockToolbarPopoverProps({ * Internal dependencies */ +function font_size_picker_FontSizePicker(props) { + const fontSizes = use_setting_useSetting('typography.fontSizes'); + const disableCustomFontSizes = !use_setting_useSetting('typography.customFontSize'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FontSizePicker, { + ...props, + fontSizes: fontSizes, + disableCustomFontSizes: disableCustomFontSizes + }); +} /** - * Returns props for the selected block tools and empty block inserter. - * - * @param {string} clientId Selected block client ID. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md */ -function useSelectedBlockToolProps(clientId) { - const selectedBlockProps = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockRootClientId, - getBlockParents, - __experimentalGetBlockListSettingsForBlocks, - isBlockInsertionPointVisible, - getBlockInsertionPoint, - getBlockOrder, - hasMultiSelection, - getLastMultiSelectedBlockClientId - } = select(store); - const blockParentsClientIds = getBlockParents(clientId); - - // Get Block List Settings for all ancestors of the current Block clientId. - const parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(blockParentsClientIds); - - // Get the clientId of the topmost parent with the capture toolbars setting. - const capturingClientId = blockParentsClientIds.find(parentClientId => parentBlockListSettings[parentClientId]?.__experimentalCaptureToolbars); - let isInsertionPointVisible = false; - if (isBlockInsertionPointVisible()) { - const insertionPoint = getBlockInsertionPoint(); - const order = getBlockOrder(insertionPoint.rootClientId); - isInsertionPointVisible = order[insertionPoint.index] === clientId; - } - return { - capturingClientId, - isInsertionPointVisible, - lastClientId: hasMultiSelection() ? getLastMultiSelectedBlockClientId() : null, - rootClientId: getBlockRootClientId(clientId) - }; - }, [clientId]); - return selectedBlockProps; -} +/* harmony default export */ var font_size_picker = (font_size_picker_FontSizePicker); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/empty-block-inserter.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/with-font-sizes.js /** - * External dependencies + * WordPress dependencies */ + /** * Internal dependencies */ +const DEFAULT_FONT_SIZES = []; - -function EmptyBlockInserter({ - clientId, - __unstableContentRef -}) { - const { - capturingClientId, - isInsertionPointVisible, - lastClientId, - rootClientId - } = useSelectedBlockToolProps(clientId); - const popoverProps = useBlockToolbarPopoverProps({ - contentElement: __unstableContentRef?.current, - clientId - }); - return (0,external_React_.createElement)(block_popover, { - clientId: capturingClientId || clientId, - __unstableCoverTarget: true, - bottomClientId: lastClientId, - className: classnames_default()('block-editor-block-list__block-side-inserter-popover', { - 'is-insertion-point-visible': isInsertionPointVisible - }), - __unstableContentRef: __unstableContentRef, - resize: false, - shift: false, - ...popoverProps - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-list__empty-block-inserter" - }, (0,external_React_.createElement)(inserter, { - position: "bottom right", - rootClientId: rootClientId, - clientId: clientId, - __experimentalIsQuick: true - }))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/use-scroll-when-dragging.js /** - * WordPress dependencies + * Capitalizes the first letter in a string. + * + * @param {string} str The string whose first letter the function will capitalize. + * + * @return {string} Capitalized string. */ - - -const SCROLL_INACTIVE_DISTANCE_PX = 50; -const SCROLL_INTERVAL_MS = 25; -const PIXELS_PER_SECOND_PER_PERCENTAGE = 1000; -const VELOCITY_MULTIPLIER = PIXELS_PER_SECOND_PER_PERCENTAGE * (SCROLL_INTERVAL_MS / 1000); +const with_font_sizes_upperFirst = ([firstLetter, ...rest]) => firstLetter.toUpperCase() + rest.join(''); /** - * React hook that scrolls the scroll container when a block is being dragged. + * Higher-order component, which handles font size logic for class generation, + * font size value retrieval, and font size change handling. * - * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling` - * functions to be called in `onDragStart`, `onDragOver` - * and `onDragEnd` events respectively. + * @param {...(Object|string)} fontSizeNames The arguments should all be strings. + * Each string contains the font size + * attribute name e.g: 'fontSize'. + * + * @return {Function} Higher-order component. */ -function useScrollWhenDragging() { - const dragStartY = (0,external_wp_element_namespaceObject.useRef)(null); - const velocityY = (0,external_wp_element_namespaceObject.useRef)(null); - const scrollParentY = (0,external_wp_element_namespaceObject.useRef)(null); - const scrollEditorInterval = (0,external_wp_element_namespaceObject.useRef)(null); +/* harmony default export */ var with_font_sizes = ((...fontSizeNames) => { + /* + * Computes an object whose key is the font size attribute name as passed in the array, + * and the value is the custom font size attribute name. + * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized. + */ + const fontSizeAttributeNames = fontSizeNames.reduce((fontSizeAttributeNamesAccumulator, fontSizeAttributeName) => { + fontSizeAttributeNamesAccumulator[fontSizeAttributeName] = `custom${with_font_sizes_upperFirst(fontSizeAttributeName)}`; + return fontSizeAttributeNamesAccumulator; + }, {}); + return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => { + const fontSizes = use_setting_useSetting('typography.fontSizes') || DEFAULT_FONT_SIZES; + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...props, + fontSizes: fontSizes + }); + }, 'withFontSizes'), WrappedComponent => { + return class extends external_wp_element_namespaceObject.Component { + constructor(props) { + super(props); + this.setters = this.createSetters(); + this.state = {}; + } + createSetters() { + return Object.entries(fontSizeAttributeNames).reduce((settersAccumulator, [fontSizeAttributeName, customFontSizeAttributeName]) => { + const upperFirstFontSizeAttributeName = with_font_sizes_upperFirst(fontSizeAttributeName); + settersAccumulator[`set${upperFirstFontSizeAttributeName}`] = this.createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName); + return settersAccumulator; + }, {}); + } + createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName) { + return fontSizeValue => { + const fontSizeObject = this.props.fontSizes?.find(({ + size + }) => size === Number(fontSizeValue)); + this.props.setAttributes({ + [fontSizeAttributeName]: fontSizeObject && fontSizeObject.slug ? fontSizeObject.slug : undefined, + [customFontSizeAttributeName]: fontSizeObject && fontSizeObject.slug ? undefined : fontSizeValue + }); + }; + } + static getDerivedStateFromProps({ + attributes, + fontSizes + }, previousState) { + const didAttributesChange = (customFontSizeAttributeName, fontSizeAttributeName) => { + if (previousState[fontSizeAttributeName]) { + // If new font size is name compare with the previous slug. + if (attributes[fontSizeAttributeName]) { + return attributes[fontSizeAttributeName] !== previousState[fontSizeAttributeName].slug; + } + // If font size is not named, update when the font size value changes. + return previousState[fontSizeAttributeName].size !== attributes[customFontSizeAttributeName]; + } + // In this case we need to build the font size object. + return true; + }; + if (!Object.values(fontSizeAttributeNames).some(didAttributesChange)) { + return null; + } + const newState = Object.entries(fontSizeAttributeNames).filter(([key, value]) => didAttributesChange(value, key)).reduce((newStateAccumulator, [fontSizeAttributeName, customFontSizeAttributeName]) => { + const fontSizeAttributeValue = attributes[fontSizeAttributeName]; + const fontSizeObject = utils_getFontSize(fontSizes, fontSizeAttributeValue, attributes[customFontSizeAttributeName]); + newStateAccumulator[fontSizeAttributeName] = { + ...fontSizeObject, + class: getFontSizeClass(fontSizeAttributeValue) + }; + return newStateAccumulator; + }, {}); + return { + ...previousState, + ...newState + }; + } + render() { + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...this.props, + fontSizes: undefined, + ...this.state, + ...this.setters + }); + } + }; + }]), 'withFontSizes'); +}); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/index.js - // Clear interval when unmounting. - (0,external_wp_element_namespaceObject.useEffect)(() => () => { - if (scrollEditorInterval.current) { - clearInterval(scrollEditorInterval.current); - scrollEditorInterval.current = null; - } - }, []); - const startScrolling = (0,external_wp_element_namespaceObject.useCallback)(event => { - dragStartY.current = event.clientY; - // Find nearest parent(s) to scroll. - scrollParentY.current = (0,external_wp_dom_namespaceObject.getScrollContainer)(event.target); - scrollEditorInterval.current = setInterval(() => { - if (scrollParentY.current && velocityY.current) { - const newTop = scrollParentY.current.scrollTop + velocityY.current; - // Setting `behavior: 'smooth'` as a scroll property seems to hurt performance. - // Better to use a small scroll interval. - scrollParentY.current.scroll({ - top: newTop - }); - } - }, SCROLL_INTERVAL_MS); - }, []); - const scrollOnDragOver = (0,external_wp_element_namespaceObject.useCallback)(event => { - if (!scrollParentY.current) { - return; - } - const scrollParentHeight = scrollParentY.current.offsetHeight; - const offsetDragStartPosition = dragStartY.current - scrollParentY.current.offsetTop; - const offsetDragPosition = event.clientY - scrollParentY.current.offsetTop; - if (event.clientY > offsetDragStartPosition) { - // User is dragging downwards. - const moveableDistance = Math.max(scrollParentHeight - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); - const dragDistance = Math.max(offsetDragPosition - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); - const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance; - velocityY.current = VELOCITY_MULTIPLIER * distancePercentage; - } else if (event.clientY < offsetDragStartPosition) { - // User is dragging upwards. - const moveableDistance = Math.max(offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); - const dragDistance = Math.max(offsetDragStartPosition - offsetDragPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); - const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance; - velocityY.current = -VELOCITY_MULTIPLIER * distancePercentage; - } else { - velocityY.current = 0; - } - }, []); - const stopScrolling = () => { - dragStartY.current = null; - scrollParentY.current = null; - if (scrollEditorInterval.current) { - clearInterval(scrollEditorInterval.current); - scrollEditorInterval.current = null; - } - }; - return [startScrolling, scrollOnDragOver, stopScrolling]; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/index.js + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js /** * WordPress dependencies */ +const alignLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z" +})); +/* harmony default export */ var align_left = (alignLeft); - - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js /** - * Internal dependencies + * WordPress dependencies */ +const align_center_alignCenter = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z" +})); +/* harmony default export */ var align_center = (align_center_alignCenter); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js +/** + * WordPress dependencies + */ +const alignRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z" +})); +/* harmony default export */ var align_right = (alignRight); -const BlockDraggable = ({ - appendToOwnerDocument, - children, - clientIds, - cloneClassname, - elementId, - onDragStart, - onDragEnd, - fadeWhenDisabled = false, - dragComponent -}) => { - const { - srcRootClientId, - isDraggable, - icon, - visibleInserter, - getBlockType - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - canMoveBlocks, - getBlockRootClientId, - getBlockName, - getBlockAttributes, - isBlockInsertionPointVisible - } = select(store); - const { - getBlockType: _getBlockType, - getActiveBlockVariation - } = select(external_wp_blocks_namespaceObject.store); - const rootClientId = getBlockRootClientId(clientIds[0]); - const blockName = getBlockName(clientIds[0]); - const variation = getActiveBlockVariation(blockName, getBlockAttributes(clientIds[0])); - return { - srcRootClientId: rootClientId, - isDraggable: canMoveBlocks(clientIds, rootClientId), - icon: variation?.icon || _getBlockType(blockName)?.icon, - visibleInserter: isBlockInsertionPointVisible(), - getBlockType: _getBlockType - }; - }, [clientIds]); - const isDragging = (0,external_wp_element_namespaceObject.useRef)(false); - const [startScrolling, scrollOnDragOver, stopScrolling] = useScrollWhenDragging(); - const { - getAllowedBlocks, - getBlockNamesByClientId, - getBlockRootClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - startDraggingBlocks, - stopDraggingBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - - // Stop dragging blocks if the block draggable is unmounted. - (0,external_wp_element_namespaceObject.useEffect)(() => { - return () => { - if (isDragging.current) { - stopDraggingBlocks(); - } - }; - }, []); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/alignment-control/ui.js - // Find the root of the editor iframe. - const blockRef = useBlockRef(clientIds[0]); - const editorRoot = blockRef.current?.closest('body'); +/** + * WordPress dependencies + */ - /* - * Add a dragover event listener to the editor root to track the blocks being dragged over. - * The listener has to be inside the editor iframe otherwise the target isn't accessible. - */ - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!editorRoot || !fadeWhenDisabled) { - return; - } - const onDragOver = event => { - if (!event.target.closest('[data-block]')) { - return; - } - const draggedBlockNames = getBlockNamesByClientId(clientIds); - const targetClientId = event.target.closest('[data-block]').getAttribute('data-block'); - const allowedBlocks = getAllowedBlocks(targetClientId); - const targetBlockName = getBlockNamesByClientId([targetClientId])[0]; - /* - * Check if the target is valid to drop in. - * If the target's allowedBlocks is an empty array, - * it isn't a container block, in which case we check - * its parent's validity instead. - */ - let dropTargetValid; - if (allowedBlocks?.length === 0) { - const targetRootClientId = getBlockRootClientId(targetClientId); - const targetRootBlockName = getBlockNamesByClientId([targetRootClientId])[0]; - const rootAllowedBlocks = getAllowedBlocks(targetRootClientId); - dropTargetValid = isDropTargetValid(getBlockType, rootAllowedBlocks, draggedBlockNames, targetRootBlockName); - } else { - dropTargetValid = isDropTargetValid(getBlockType, allowedBlocks, draggedBlockNames, targetBlockName); - } - /* - * Update the body class to reflect if drop target is valid. - * This has to be done on the document body because the draggable - * chip is rendered outside of the editor iframe. - */ - if (!dropTargetValid && !visibleInserter) { - window?.document?.body?.classList?.add('block-draggable-invalid-drag-token'); - } else { - window?.document?.body?.classList?.remove('block-draggable-invalid-drag-token'); - } - }; - const throttledOnDragOver = (0,external_wp_compose_namespaceObject.throttle)(onDragOver, 200); - editorRoot.addEventListener('dragover', throttledOnDragOver); - return () => { - editorRoot.removeEventListener('dragover', throttledOnDragOver); - }; - }, [clientIds, editorRoot, fadeWhenDisabled, getAllowedBlocks, getBlockNamesByClientId, getBlockRootClientId, getBlockType, visibleInserter]); - if (!isDraggable) { - return children({ - draggable: false - }); +const DEFAULT_ALIGNMENT_CONTROLS = [{ + icon: align_left, + title: (0,external_wp_i18n_namespaceObject.__)('Align text left'), + align: 'left' +}, { + icon: align_center, + title: (0,external_wp_i18n_namespaceObject.__)('Align text center'), + align: 'center' +}, { + icon: align_right, + title: (0,external_wp_i18n_namespaceObject.__)('Align text right'), + align: 'right' +}]; +const ui_POPOVER_PROPS = { + placement: 'bottom-start' +}; +function AlignmentUI({ + value, + onChange, + alignmentControls = DEFAULT_ALIGNMENT_CONTROLS, + label = (0,external_wp_i18n_namespaceObject.__)('Align text'), + describedBy = (0,external_wp_i18n_namespaceObject.__)('Change text alignment'), + isCollapsed = true, + isToolbar +}) { + function applyOrUnset(align) { + return () => onChange(value === align ? undefined : align); } - const transferData = { - type: 'block', - srcClientIds: clientIds, - srcRootClientId - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Draggable, { - appendToOwnerDocument: appendToOwnerDocument, - cloneClassname: cloneClassname, - __experimentalTransferDataType: "wp-blocks", - transferData: transferData, - onDragStart: event => { - // Defer hiding the dragged source element to the next - // frame to enable dragging. - window.requestAnimationFrame(() => { - startDraggingBlocks(clientIds); - isDragging.current = true; - startScrolling(event); - if (onDragStart) { - onDragStart(); - } - }); - }, - onDragOver: scrollOnDragOver, - onDragEnd: () => { - stopDraggingBlocks(); - isDragging.current = false; - stopScrolling(); - if (onDragEnd) { - onDragEnd(); - } + const activeAlignment = alignmentControls.find(control => control.align === value); + function setIcon() { + if (activeAlignment) return activeAlignment.icon; + return (0,external_wp_i18n_namespaceObject.isRTL)() ? align_right : align_left; + } + const UIComponent = isToolbar ? external_wp_components_namespaceObject.ToolbarGroup : external_wp_components_namespaceObject.ToolbarDropdownMenu; + const extraProps = isToolbar ? { + isCollapsed + } : { + toggleProps: { + describedBy }, - __experimentalDragComponent: - // Check against `undefined` so that `null` can be used to disable - // the default drag component. - dragComponent !== undefined ? dragComponent : (0,external_React_.createElement)(BlockDraggableChip, { - count: clientIds.length, - icon: icon, - fadeWhenDisabled: true + popoverProps: ui_POPOVER_PROPS + }; + return (0,external_wp_element_namespaceObject.createElement)(UIComponent, { + icon: setIcon(), + label: label, + controls: alignmentControls.map(control => { + const { + align + } = control; + const isActive = value === align; + return { + ...control, + isActive, + role: isCollapsed ? 'menuitemradio' : undefined, + onClick: applyOrUnset(align) + }; }), - elementId: elementId - }, ({ - onDraggableStart, - onDraggableEnd - }) => { - return children({ - draggable: true, - onDragStart: onDraggableStart, - onDragEnd: onDraggableEnd - }); + ...extraProps + }); +} +/* harmony default export */ var alignment_control_ui = (AlignmentUI); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/alignment-control/index.js + +/** + * Internal dependencies + */ + +const AlignmentControl = props => { + return (0,external_wp_element_namespaceObject.createElement)(alignment_control_ui, { + ...props, + isToolbar: false + }); +}; +const AlignmentToolbar = props => { + return (0,external_wp_element_namespaceObject.createElement)(alignment_control_ui, { + ...props, + isToolbar: true }); }; -/* harmony default export */ var block_draggable = (BlockDraggable); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/alignment-control/README.md */ -const chevronUp = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z" -})); -/* harmony default export */ var chevron_up = (chevronUp); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/autocompleters/block.js /** * WordPress dependencies */ -const chevronDown = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z" -})); -/* harmony default export */ var chevron_down = (chevronDown); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/mover-description.js + + /** - * WordPress dependencies + * Internal dependencies */ -const getMovementDirection = (moveDirection, orientation) => { - if (moveDirection === 'up') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? 'right' : 'left'; - } - return 'up'; - } else if (moveDirection === 'down') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right'; - } - return 'down'; - } - return null; -}; + + + + + +const block_noop = () => {}; +const block_SHOWN_BLOCK_TYPES = 9; + +/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */ /** - * Return a label for the block movement controls depending on block position. - * - * @param {number} selectedCount Number of blocks selected. - * @param {string} type Block type - in the case of a single block, should - * define its 'type'. I.e. 'Text', 'Heading', 'Image' etc. - * @param {number} firstIndex The index (position - 1) of the first block selected. - * @param {boolean} isFirst This is the first block. - * @param {boolean} isLast This is the last block. - * @param {number} dir Direction of movement (> 0 is considered to be going - * down, < 0 is up). - * @param {string} orientation The orientation of the block movers, vertical or - * horizontal. + * Creates a blocks repeater for replacing the current block with a selected block type. * - * @return {string | undefined} Label for the block movement controls. + * @return {WPCompleter} A blocks completer. */ -function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLast, dir, orientation) { - const position = firstIndex + 1; - if (selectedCount > 1) { - return getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir, orientation); - } - if (isFirst && isLast) { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %s is the only block, and cannot be moved'), type); - } - if (dir > 0 && !isLast) { - // Moving down. - const movementDirection = getMovementDirection('down', orientation); - if (movementDirection === 'down') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d down to position %3$d'), type, position, position + 1); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d left to position %3$d'), type, position, position + 1); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d right to position %3$d'), type, position, position + 1); - } - } - if (dir > 0 && isLast) { - // Moving down, and is the last item. - const movementDirection = getMovementDirection('down', orientation); - if (movementDirection === 'down') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved down'), type); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved left'), type); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved right'), type); - } - } - if (dir < 0 && !isFirst) { - // Moving up. - const movementDirection = getMovementDirection('up', orientation); - if (movementDirection === 'up') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d up to position %3$d'), type, position, position - 1); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d left to position %3$d'), type, position, position - 1); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position - (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d right to position %3$d'), type, position, position - 1); - } - } - if (dir < 0 && isFirst) { - // Moving up, and is the first item. - const movementDirection = getMovementDirection('up', orientation); - if (movementDirection === 'up') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved up'), type); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved left'), type); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Type of block (i.e. Text, Image etc) - (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved right'), type); +function createBlockCompleter() { + return { + name: 'blocks', + className: 'block-editor-autocompleters__block', + triggerPrefix: '/', + useItems(filterValue) { + const { + rootClientId, + selectedBlockName, + prioritizedBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSelectedBlockClientId, + getBlockName, + getBlockListSettings, + getBlockRootClientId + } = select(store); + const selectedBlockClientId = getSelectedBlockClientId(); + const _rootClientId = getBlockRootClientId(selectedBlockClientId); + return { + selectedBlockName: selectedBlockClientId ? getBlockName(selectedBlockClientId) : null, + rootClientId: _rootClientId, + prioritizedBlocks: getBlockListSettings(_rootClientId)?.prioritizedInserterBlocks + }; + }, []); + const [items, categories, collections] = use_block_types_state(rootClientId, block_noop); + const filteredItems = (0,external_wp_element_namespaceObject.useMemo)(() => { + const initialFilteredItems = !!filterValue.trim() ? searchBlockItems(items, categories, collections, filterValue) : orderInserterBlockItems(orderBy(items, 'frecency', 'desc'), prioritizedBlocks); + return initialFilteredItems.filter(item => item.name !== selectedBlockName).slice(0, block_SHOWN_BLOCK_TYPES); + }, [filterValue, selectedBlockName, items, categories, collections, prioritizedBlocks]); + const options = (0,external_wp_element_namespaceObject.useMemo)(() => filteredItems.map(blockItem => { + const { + title, + icon, + isDisabled + } = blockItem; + return { + key: `block-${blockItem.id}`, + value: blockItem, + label: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + key: "icon", + icon: icon, + showColors: true + }), title), + isDisabled + }; + }), [filteredItems]); + return [options]; + }, + allowContext(before, after) { + return !(/\S/.test(before) || /\S/.test(after)); + }, + getOptionCompletion(inserterItem) { + const { + name, + initialAttributes, + innerBlocks, + syncStatus, + content + } = inserterItem; + return { + action: 'replace', + value: syncStatus === 'unsynced' ? (0,external_wp_blocks_namespaceObject.parse)(content, { + __unstableSkipMigrationLogs: true + }) : (0,external_wp_blocks_namespaceObject.createBlock)(name, initialAttributes, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocks)) + }; } - } + }; } /** - * Return a label for the block movement controls depending on block position. - * - * @param {number} selectedCount Number of blocks selected. - * @param {number} firstIndex The index (position - 1) of the first block selected. - * @param {boolean} isFirst This is the first block. - * @param {boolean} isLast This is the last block. - * @param {number} dir Direction of movement (> 0 is considered to be going - * down, < 0 is up). - * @param {string} orientation The orientation of the block movers, vertical or - * horizontal. + * Creates a blocks repeater for replacing the current block with a selected block type. * - * @return {string | undefined} Label for the block movement controls. + * @return {WPCompleter} A blocks completer. */ -function getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir, orientation) { - const position = firstIndex + 1; - if (isFirst && isLast) { - // All blocks are selected - return (0,external_wp_i18n_namespaceObject.__)('All blocks are selected, and cannot be moved'); - } - if (dir > 0 && !isLast) { - // moving down - const movementDirection = getMovementDirection('down', orientation); - if (movementDirection === 'down') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d down by one place'), selectedCount, position); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d left by one place'), selectedCount, position); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d right by one place'), selectedCount, position); - } - } - if (dir > 0 && isLast) { - // moving down, and the selected blocks are the last item - const movementDirection = getMovementDirection('down', orientation); - if (movementDirection === 'down') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved down as they are already at the bottom'); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved left as they are already are at the leftmost position'); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved right as they are already are at the rightmost position'); - } - } - if (dir < 0 && !isFirst) { - // moving up - const movementDirection = getMovementDirection('up', orientation); - if (movementDirection === 'up') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d up by one place'), selectedCount, position); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d left by one place'), selectedCount, position); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Number of selected blocks, 2: Position of selected blocks - (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d right by one place'), selectedCount, position); - } - } - if (dir < 0 && isFirst) { - // moving up, and the selected blocks are the first item - const movementDirection = getMovementDirection('up', orientation); - if (movementDirection === 'up') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved up as they are already at the top'); - } - if (movementDirection === 'left') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved left as they are already are at the leftmost position'); - } - if (movementDirection === 'right') { - return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved right as they are already are at the rightmost position'); - } - } -} +/* harmony default export */ var autocompleters_block = (createBlockCompleter()); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/button.js +;// CONCATENATED MODULE: external ["wp","apiFetch"] +var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"]; +var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post.js /** - * External dependencies + * WordPress dependencies */ +const post = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z" +})); +/* harmony default export */ var library_post = (post); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/autocompleters/link.js /** * WordPress dependencies */ +// Disable Reason: Needs to be refactored. +// eslint-disable-next-line no-restricted-imports + + + +const SHOWN_SUGGESTIONS = 10; + +/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */ + +/** + * Creates a suggestion list for links to posts or pages. + * + * @return {WPCompleter} A links completer. + */ +function createLinkCompleter() { + return { + name: 'links', + className: 'block-editor-autocompleters__link', + triggerPrefix: '[[', + options: async letters => { + let options = await external_wp_apiFetch_default()({ + path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/search', { + per_page: SHOWN_SUGGESTIONS, + search: letters, + type: 'post', + order_by: 'menu_order' + }) + }); + options = options.filter(option => option.title !== ''); + return options; + }, + getOptionKeywords(item) { + const expansionWords = item.title.split(/\s+/); + return [...expansionWords]; + }, + getOptionLabel(item) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + key: "icon", + icon: item.subtype === 'page' ? library_page : library_post + }), item.title); + }, + getOptionCompletion(item) { + return (0,external_wp_element_namespaceObject.createElement)("a", { + href: item.url + }, item.title); + } + }; +} + +/** + * Creates a suggestion list for links to posts or pages.. + * + * @return {WPCompleter} A link completer. + */ +/* harmony default export */ var autocompleters_link = (createLinkCompleter()); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/autocomplete/index.js +/** + * WordPress dependencies + */ @@ -51791,213 +45466,154 @@ function getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLas -const getArrowIcon = (direction, orientation) => { - if (direction === 'up') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left; - } - return chevron_up; - } else if (direction === 'down') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right; - } - return chevron_down; - } - return null; -}; -const getMovementDirectionLabel = (moveDirection, orientation) => { - if (moveDirection === 'up') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? (0,external_wp_i18n_namespaceObject.__)('Move right') : (0,external_wp_i18n_namespaceObject.__)('Move left'); - } - return (0,external_wp_i18n_namespaceObject.__)('Move up'); - } else if (moveDirection === 'down') { - if (orientation === 'horizontal') { - return (0,external_wp_i18n_namespaceObject.isRTL)() ? (0,external_wp_i18n_namespaceObject.__)('Move left') : (0,external_wp_i18n_namespaceObject.__)('Move right'); - } - return (0,external_wp_i18n_namespaceObject.__)('Move down'); - } - return null; -}; -const BlockMoverButton = (0,external_wp_element_namespaceObject.forwardRef)(({ - clientIds, - direction, - orientation: moverOrientation, - ...props -}, ref) => { - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockMoverButton); - const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; - const blocksCount = normalizedClientIds.length; - const { - blockType, - isDisabled, - rootClientId, - isFirst, - isLast, - firstIndex, - orientation = 'vertical' - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockIndex, - getBlockRootClientId, - getBlockOrder, - getBlock, - getBlockListSettings - } = select(store); - const firstClientId = normalizedClientIds[0]; - const blockRootClientId = getBlockRootClientId(firstClientId); - const firstBlockIndex = getBlockIndex(firstClientId); - const lastBlockIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]); - const blockOrder = getBlockOrder(blockRootClientId); - const block = getBlock(firstClientId); - const isFirstBlock = firstBlockIndex === 0; - const isLastBlock = lastBlockIndex === blockOrder.length - 1; - const { - orientation: blockListOrientation - } = getBlockListSettings(blockRootClientId) || {}; - return { - blockType: block ? (0,external_wp_blocks_namespaceObject.getBlockType)(block.name) : null, - isDisabled: direction === 'up' ? isFirstBlock : isLastBlock, - rootClientId: blockRootClientId, - firstIndex: firstBlockIndex, - isFirst: isFirstBlock, - isLast: isLastBlock, - orientation: moverOrientation || blockListOrientation - }; - }, [clientIds, direction]); + +/** + * Shared reference to an empty array for cases where it is important to avoid + * returning a new array reference on every invocation. + * + * @type {Array} + */ +const autocomplete_EMPTY_ARRAY = []; +function useCompleters({ + completers = autocomplete_EMPTY_ARRAY +}) { const { - moveBlocksDown, - moveBlocksUp - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const moverFunction = direction === 'up' ? moveBlocksUp : moveBlocksDown; - const onClick = event => { - moverFunction(clientIds, rootClientId); - if (props.onClick) { - props.onClick(event); + name + } = useBlockEditContext(); + return (0,external_wp_element_namespaceObject.useMemo)(() => { + let filteredCompleters = [...completers, autocompleters_link]; + if (name === (0,external_wp_blocks_namespaceObject.getDefaultBlockName)() || (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, '__experimentalSlashInserter', false)) { + filteredCompleters = [...filteredCompleters, autocompleters_block]; } - }; - const descriptionId = `block-editor-block-mover-button__description-${instanceId}`; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ref: ref, - className: classnames_default()('block-editor-block-mover-button', `is-${direction}-button`), - icon: getArrowIcon(direction, orientation), - label: getMovementDirectionLabel(direction, orientation), - "aria-describedby": descriptionId, + if ((0,external_wp_hooks_namespaceObject.hasFilter)('editor.Autocomplete.completers')) { + // Provide copies so filters may directly modify them. + if (filteredCompleters === completers) { + filteredCompleters = filteredCompleters.map(completer => ({ + ...completer + })); + } + filteredCompleters = (0,external_wp_hooks_namespaceObject.applyFilters)('editor.Autocomplete.completers', filteredCompleters, name); + } + return filteredCompleters; + }, [completers, name]); +} +function useBlockEditorAutocompleteProps(props) { + return (0,external_wp_components_namespaceObject.__unstableUseAutocompleteProps)({ ...props, - onClick: isDisabled ? null : onClick, - disabled: isDisabled, - __experimentalIsFocusable: true - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: descriptionId - }, getBlockMoverDescription(blocksCount, blockType && blockType.title, firstIndex, isFirst, isLast, direction === 'up' ? -1 : 1, orientation))); -}); -const BlockMoverUpButton = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - return (0,external_React_.createElement)(BlockMoverButton, { - direction: "up", - ref: ref, - ...props - }); -}); -const BlockMoverDownButton = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - return (0,external_React_.createElement)(BlockMoverButton, { - direction: "down", - ref: ref, - ...props + completers: useCompleters(props) }); -}); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/index.js +/** + * Wrap the default Autocomplete component with one that supports a filter hook + * for customizing its list of autocompleters. + * + * @type {import('react').FC} + */ +function BlockEditorAutocomplete(props) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Autocomplete, { + ...props, + completers: useCompleters(props) + }); +} /** - * External dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/autocomplete/README.md */ +/* harmony default export */ var autocomplete = (BlockEditorAutocomplete); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/fullscreen.js /** * WordPress dependencies */ +const fullscreen = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z" +})); +/* harmony default export */ var library_fullscreen = (fullscreen); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-full-height-alignment-control/index.js + +/** + * WordPress dependencies + */ +function BlockFullHeightAlignmentControl({ + isActive, + label = (0,external_wp_i18n_namespaceObject.__)('Toggle full height'), + onToggle, + isDisabled +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + isActive: isActive, + icon: library_fullscreen, + label: label, + onClick: () => onToggle(!isActive), + disabled: isDisabled + }); +} +/* harmony default export */ var block_full_height_alignment_control = (BlockFullHeightAlignmentControl); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-matrix-control/index.js /** - * Internal dependencies + * WordPress dependencies */ -function BlockMover({ - clientIds, - hideDragHandle -}) { +const block_alignment_matrix_control_noop = () => {}; +function BlockAlignmentMatrixControl(props) { const { - canMove, - rootClientId, - isFirst, - isLast, - orientation - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockIndex, - getBlockListSettings, - canMoveBlocks, - getBlockOrder, - getBlockRootClientId - } = select(store); - const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; - const firstClientId = normalizedClientIds[0]; - const _rootClientId = getBlockRootClientId(firstClientId); - const firstIndex = getBlockIndex(firstClientId); - const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]); - const blockOrder = getBlockOrder(_rootClientId); - return { - canMove: canMoveBlocks(clientIds, _rootClientId), - rootClientId: _rootClientId, - isFirst: firstIndex === 0, - isLast: lastIndex === blockOrder.length - 1, - orientation: getBlockListSettings(_rootClientId)?.orientation - }; - }, [clientIds]); - if (!canMove || isFirst && isLast && !rootClientId) { - return null; - } - const dragHandleLabel = (0,external_wp_i18n_namespaceObject.__)('Drag'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { - className: classnames_default()('block-editor-block-mover', { - 'is-horizontal': orientation === 'horizontal' + label = (0,external_wp_i18n_namespaceObject.__)('Change matrix alignment'), + onChange = block_alignment_matrix_control_noop, + value = 'center', + isDisabled + } = props; + const icon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalAlignmentMatrixControl.Icon, { + value: value + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: { + placement: 'bottom-start' + }, + renderToggle: ({ + onToggle, + isOpen + }) => { + const openOnArrowDown = event => { + if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { + event.preventDefault(); + onToggle(); + } + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + onClick: onToggle, + "aria-haspopup": "true", + "aria-expanded": isOpen, + onKeyDown: openOnArrowDown, + label: label, + icon: icon, + showTooltip: true, + disabled: isDisabled + }); + }, + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalAlignmentMatrixControl, { + hasFocusBorder: false, + onChange: onChange, + value: value }) - }, !hideDragHandle && (0,external_React_.createElement)(block_draggable, { - clientIds: clientIds, - fadeWhenDisabled: true - }, draggableProps => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: drag_handle, - className: "block-editor-block-mover__drag-handle", - "aria-hidden": "true", - label: dragHandleLabel - // Should not be able to tab to drag handle as this - // button can only be used with a pointer device. - , - tabIndex: "-1", - ...draggableProps - })), (0,external_React_.createElement)("div", { - className: "block-editor-block-mover__move-button-container" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, itemProps => (0,external_React_.createElement)(BlockMoverUpButton, { - clientIds: clientIds, - ...itemProps - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, itemProps => (0,external_React_.createElement)(BlockMoverDownButton, { - clientIds: clientIds, - ...itemProps - })))); + }); } +/* harmony default export */ var block_alignment_matrix_control = (BlockAlignmentMatrixControl); -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md - */ -/* harmony default export */ var block_mover = (BlockMover); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/utils.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-title/use-block-display-title.js /** * WordPress dependencies */ @@ -52008,156 +45624,108 @@ function BlockMover({ * Internal dependencies */ -const { - clearTimeout: utils_clearTimeout, - setTimeout: utils_setTimeout -} = window; -const DEBOUNCE_TIMEOUT = 200; + /** - * Hook that creates debounced callbacks when the node is hovered or focused. + * Returns the block's configured title as a string, or empty if the title + * cannot be determined. * - * @param {Object} props Component props. - * @param {Object} props.ref Element reference. - * @param {boolean} props.isFocused Whether the component has current focus. - * @param {number} props.highlightParent Whether to highlight the parent block. It defaults in highlighting the selected block. - * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds. + * @example + * + * ```js + * useBlockDisplayTitle( { clientId: 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', maximumLength: 17 } ); + * ``` + * + * @param {Object} props + * @param {string} props.clientId Client ID of block. + * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated. + * @param {string|undefined} props.context The context to pass to `getBlockLabel`. + * @return {?string} Block title. */ -function useDebouncedShowGestures({ - ref, - isFocused, - highlightParent, - debounceTimeout = DEBOUNCE_TIMEOUT +function useBlockDisplayTitle({ + clientId, + maximumLength, + context }) { const { - getSelectedBlockClientId, - getBlockRootClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - toggleBlockHighlight - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); - const isDistractionFree = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().isDistractionFree, []); - const handleOnChange = nextIsFocused => { - if (nextIsFocused && isDistractionFree) { - return; - } - const selectedBlockClientId = getSelectedBlockClientId(); - const clientId = highlightParent ? getBlockRootClientId(selectedBlockClientId) : selectedBlockClientId; - toggleBlockHighlight(clientId, nextIsFocused); - }; - const getIsHovered = () => { - return ref?.current && ref.current.matches(':hover'); - }; - const shouldHideGestures = () => { - const isHovered = getIsHovered(); - return !isFocused && !isHovered; - }; - const clearTimeoutRef = () => { - const timeout = timeoutRef.current; - if (timeout && utils_clearTimeout) { - utils_clearTimeout(timeout); - } - }; - const debouncedShowGestures = event => { - if (event) { - event.stopPropagation(); + attributes, + name, + reusableBlockTitle + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + if (!clientId) { + return {}; } - clearTimeoutRef(); - handleOnChange(true); - }; - const debouncedHideGestures = event => { - if (event) { - event.stopPropagation(); + const { + getBlockName, + getBlockAttributes, + __experimentalGetReusableBlockTitle + } = select(store); + const blockName = getBlockName(clientId); + if (!blockName) { + return {}; } - clearTimeoutRef(); - timeoutRef.current = utils_setTimeout(() => { - if (shouldHideGestures()) { - handleOnChange(false); - } - }, debounceTimeout); - }; - (0,external_wp_element_namespaceObject.useEffect)(() => () => { - /** - * We need to call the change handler with `isFocused` - * set to false on unmount because we also clear the - * timeout that would handle that. - */ - handleOnChange(false); - clearTimeoutRef(); - }, []); - return { - debouncedShowGestures, - debouncedHideGestures - }; + const isReusable = (0,external_wp_blocks_namespaceObject.isReusableBlock)((0,external_wp_blocks_namespaceObject.getBlockType)(blockName)); + return { + attributes: getBlockAttributes(clientId), + name: blockName, + reusableBlockTitle: isReusable && __experimentalGetReusableBlockTitle(getBlockAttributes(clientId).ref) + }; + }, [clientId]); + const blockInformation = useBlockDisplayInformation(clientId); + if (!name || !blockInformation) { + return null; + } + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + const blockLabel = blockType ? (0,external_wp_blocks_namespaceObject.__experimentalGetBlockLabel)(blockType, attributes, context) : null; + const label = reusableBlockTitle || blockLabel; + // Label will fallback to the title if no label is defined for the current + // label context. If the label is defined we prioritize it over a + // possible block variation title match. + const blockTitle = label && label !== blockType.title ? label : blockInformation.title; + if (maximumLength && maximumLength > 0 && blockTitle.length > maximumLength) { + const omission = '...'; + return blockTitle.slice(0, maximumLength - omission.length) + omission; + } + return blockTitle; } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-title/index.js /** - * Hook that provides gesture events for DOM elements - * that interact with the isFocused state. + * Internal dependencies + */ + + + +/** + * Renders the block's configured title as a string, or empty if the title + * cannot be determined. * - * @param {Object} props Component props. - * @param {Object} props.ref Element reference. - * @param {number} [props.highlightParent=false] Whether to highlight the parent block. It defaults to highlighting the selected block. - * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds. + * @example + * + * ```jsx + * + * ``` + * + * @param {Object} props + * @param {string} props.clientId Client ID of block. + * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated. + * @param {string|undefined} props.context The context to pass to `getBlockLabel`. + * + * @return {JSX.Element} Block title. */ -function useShowHoveredOrFocusedGestures({ - ref, - highlightParent = false, - debounceTimeout = DEBOUNCE_TIMEOUT +function BlockTitle({ + clientId, + maximumLength, + context }) { - const [isFocused, setIsFocused] = (0,external_wp_element_namespaceObject.useState)(false); - const { - debouncedShowGestures, - debouncedHideGestures - } = useDebouncedShowGestures({ - ref, - debounceTimeout, - isFocused, - highlightParent + return useBlockDisplayTitle({ + clientId, + maximumLength, + context }); - const registerRef = (0,external_wp_element_namespaceObject.useRef)(false); - const isFocusedWithin = () => { - return ref?.current && ref.current.contains(ref.current.ownerDocument.activeElement); - }; - (0,external_wp_element_namespaceObject.useEffect)(() => { - const node = ref.current; - const handleOnFocus = () => { - if (isFocusedWithin()) { - setIsFocused(true); - debouncedShowGestures(); - } - }; - const handleOnBlur = () => { - if (!isFocusedWithin()) { - setIsFocused(false); - debouncedHideGestures(); - } - }; - - /** - * Events are added via DOM events (vs. React synthetic events), - * as the child React components swallow mouse events. - */ - if (node && !registerRef.current) { - node.addEventListener('focus', handleOnFocus, true); - node.addEventListener('blur', handleOnBlur, true); - registerRef.current = true; - } - return () => { - if (node) { - node.removeEventListener('focus', handleOnFocus); - node.removeEventListener('blur', handleOnBlur); - } - }; - }, [ref, registerRef, setIsFocused, debouncedShowGestures, debouncedHideGestures]); - return { - onMouseMove: debouncedShowGestures, - onMouseLeave: debouncedHideGestures - }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-parent-selector/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-breadcrumb/index.js /** * WordPress dependencies @@ -52167,7 +45735,6 @@ function useShowHoveredOrFocusedGestures({ - /** * Internal dependencies */ @@ -52175,70 +45742,161 @@ function useShowHoveredOrFocusedGestures({ - /** - * Block parent selector component, displaying the hierarchy of the - * current block selection as a single icon to "go up" a level. + * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb. * - * @return {Component} Parent block selector. + * @param {Object} props Component props. + * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail. + * @return {WPElement} Block Breadcrumb. */ -function BlockParentSelector() { +function BlockBreadcrumb({ + rootLabelText +}) { const { - selectBlock + selectBlock, + clearSelectedBlock } = (0,external_wp_data_namespaceObject.useDispatch)(store); const { - firstParentClientId, - isVisible + clientId, + parents, + hasSelection } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlockName, - getBlockParents, + getSelectionStart, getSelectedBlockClientId, - getBlockEditingMode - } = select(store); - const { - hasBlockSupport - } = select(external_wp_blocks_namespaceObject.store); + getEnabledBlockParents + } = unlock(select(store)); const selectedBlockClientId = getSelectedBlockClientId(); - const parents = getBlockParents(selectedBlockClientId); - const _firstParentClientId = parents[parents.length - 1]; - const parentBlockName = getBlockName(_firstParentClientId); - const _parentBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(parentBlockName); return { - firstParentClientId: _firstParentClientId, - isVisible: _firstParentClientId && getBlockEditingMode(_firstParentClientId) === 'default' && hasBlockSupport(_parentBlockType, '__experimentalParentSelector', true) + parents: getEnabledBlockParents(selectedBlockClientId), + clientId: selectedBlockClientId, + hasSelection: !!getSelectionStart().clientId }; }, []); - const blockInformation = useBlockDisplayInformation(firstParentClientId); + const rootLabel = rootLabelText || (0,external_wp_i18n_namespaceObject.__)('Document'); - // Allows highlighting the parent block outline when focusing or hovering - // the parent block selector within the child. - const nodeRef = (0,external_wp_element_namespaceObject.useRef)(); - const showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures({ - ref: nodeRef, - highlightParent: true - }); - if (!isVisible) { - return null; + /* + * Disable reason: The `list` ARIA role is redundant but + * Safari+VoiceOver won't announce the list otherwise. + */ + /* eslint-disable jsx-a11y/no-redundant-roles */ + return (0,external_wp_element_namespaceObject.createElement)("ul", { + className: "block-editor-block-breadcrumb", + role: "list", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block breadcrumb') + }, (0,external_wp_element_namespaceObject.createElement)("li", { + className: !hasSelection ? 'block-editor-block-breadcrumb__current' : undefined, + "aria-current": !hasSelection ? 'true' : undefined + }, hasSelection && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-block-breadcrumb__button", + variant: "tertiary", + onClick: clearSelectedBlock + }, rootLabel), !hasSelection && rootLabel, !!clientId && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: chevron_right_small, + className: "block-editor-block-breadcrumb__separator" + })), parents.map(parentClientId => (0,external_wp_element_namespaceObject.createElement)("li", { + key: parentClientId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-block-breadcrumb__button", + variant: "tertiary", + onClick: () => selectBlock(parentClientId) + }, (0,external_wp_element_namespaceObject.createElement)(BlockTitle, { + clientId: parentClientId, + maximumLength: 35 + })), (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: chevron_right_small, + className: "block-editor-block-breadcrumb__separator" + }))), !!clientId && (0,external_wp_element_namespaceObject.createElement)("li", { + className: "block-editor-block-breadcrumb__current", + "aria-current": "true" + }, (0,external_wp_element_namespaceObject.createElement)(BlockTitle, { + clientId: clientId, + maximumLength: 35 + }))) + /* eslint-enable jsx-a11y/no-redundant-roles */; +} + +/* harmony default export */ var block_breadcrumb = (BlockBreadcrumb); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/pasting.js +/** + * WordPress dependencies + */ + +function getPasteEventData({ + clipboardData +}) { + let plainText = ''; + let html = ''; + + // IE11 only supports `Text` as an argument for `getData` and will + // otherwise throw an invalid argument error, so we try the standard + // arguments first, then fallback to `Text` if they fail. + try { + plainText = clipboardData.getData('text/plain'); + html = clipboardData.getData('text/html'); + } catch (error1) { + try { + html = clipboardData.getData('Text'); + } catch (error2) { + // Some browsers like UC Browser paste plain text by default and + // don't support clipboardData at all, so allow default + // behaviour. + return; + } } - return (0,external_React_.createElement)("div", { - className: "block-editor-block-parent-selector", - key: firstParentClientId, - ref: nodeRef, - ...showHoveredOrFocusedGestures - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - className: "block-editor-block-parent-selector__button", - onClick: () => selectBlock(firstParentClientId), - label: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block's parent. */ - (0,external_wp_i18n_namespaceObject.__)('Select parent block: %s'), blockInformation?.title), - showTooltip: true, - icon: (0,external_React_.createElement)(block_icon, { - icon: blockInformation?.icon - }) - })); + const files = (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(clipboardData); + if (files.length && !shouldDismissPastedFiles(files, html, plainText)) { + return { + files + }; + } + return { + html, + plainText, + files: [] + }; +} + +/** + * Given a collection of DataTransfer files and HTML and plain text strings, + * determine whether the files are to be dismissed in favor of the HTML. + * + * Certain office-type programs, like Microsoft Word or Apple Numbers, + * will, upon copy, generate a screenshot of the content being copied and + * attach it to the clipboard alongside the actual rich text that the user + * sought to copy. In those cases, we should let Gutenberg handle the rich text + * content and not the screenshot, since this allows Gutenberg to insert + * meaningful blocks, like paragraphs, lists or even tables. + * + * @param {File[]} files File objects obtained from a paste event + * @param {string} html HTML content obtained from a paste event + * @return {boolean} True if the files should be dismissed + */ +function shouldDismissPastedFiles(files, html /*, plainText */) { + // The question is only relevant when there is actual HTML content and when + // there is exactly one image file. + if (html && files?.length === 1 && files[0].type.indexOf('image/') === 0) { + // A single tag found in the HTML source suggests that the + // content being pasted revolves around an image. Sometimes there are + // other elements found, like
, but we assume that the user's + // intention is to paste the actual image file. + const IMAGE_TAG = /<\s*img\b/gi; + if (html.match(IMAGE_TAG)?.length !== 1) return true; + + // Even when there is exactly one tag in the HTML payload, we + // choose to weed out local images, i.e. those whose source starts with + // "file://". These payloads occur in specific configurations, such as + // when copying an entire document from Microsoft Word, that contains + // text and exactly one image, and pasting that content using Google + // Chrome. + const IMG_WITH_LOCAL_SRC = /<\s*img\b[^>]*\bsrc="file:\/\//i; + if (html.match(IMG_WITH_LOCAL_SRC)) return true; + } + return false; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/preview-block-popover.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/copy-handler/index.js /** * WordPress dependencies @@ -52246,36 +45904,6 @@ function BlockParentSelector() { -/** - * Internal dependencies - */ - -function PreviewBlockPopover({ - blocks -}) { - return (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__popover__preview__parent" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__popover__preview__container" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - className: "block-editor-block-switcher__preview__popover", - placement: "bottom-start", - focusOnMount: false - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__preview" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__preview-title" - }, (0,external_wp_i18n_namespaceObject.__)('Preview')), (0,external_React_.createElement)(block_preview, { - viewportWidth: 500, - blocks: blocks - }))))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-variation-transformations.js - -/** - * WordPress dependencies - */ @@ -52286,94 +45914,213 @@ function PreviewBlockPopover({ */ - -const block_variation_transformations_EMPTY_OBJECT = {}; -function useBlockVariationTransforms({ - clientIds, - blocks -}) { +function useNotifyCopy() { const { - activeBlockVariation, - blockVariationTransformations - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockRootClientId, - getBlockAttributes, - canRemoveBlocks - } = select(store); - const { - getActiveBlockVariation, - getBlockVariations - } = select(external_wp_blocks_namespaceObject.store); - const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds); - const canRemove = canRemoveBlocks(clientIds, rootClientId); - // Only handle single selected blocks for now. - if (blocks.length !== 1 || !canRemove) { - return block_variation_transformations_EMPTY_OBJECT; + getBlockName + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + getBlockType + } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); + const { + createSuccessNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + return (0,external_wp_element_namespaceObject.useCallback)((eventType, selectedBlockClientIds) => { + let notice = ''; + if (selectedBlockClientIds.length === 1) { + const clientId = selectedBlockClientIds[0]; + const title = getBlockType(getBlockName(clientId))?.title; + notice = eventType === 'copy' ? (0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: Name of the block being copied, e.g. "Paragraph". + (0,external_wp_i18n_namespaceObject.__)('Copied "%s" to clipboard.'), title) : (0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: Name of the block being cut, e.g. "Paragraph". + (0,external_wp_i18n_namespaceObject.__)('Moved "%s" to clipboard.'), title); + } else { + notice = eventType === 'copy' ? (0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: %d: Number of blocks being copied. + (0,external_wp_i18n_namespaceObject._n)('Copied %d block to clipboard.', 'Copied %d blocks to clipboard.', selectedBlockClientIds.length), selectedBlockClientIds.length) : (0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: %d: Number of blocks being cut. + (0,external_wp_i18n_namespaceObject._n)('Moved %d block to clipboard.', 'Moved %d blocks to clipboard.', selectedBlockClientIds.length), selectedBlockClientIds.length); } - const [firstBlock] = blocks; - return { - blockVariationTransformations: getBlockVariations(firstBlock.name, 'transform'), - activeBlockVariation: getActiveBlockVariation(firstBlock.name, getBlockAttributes(firstBlock.clientId)) - }; - }, [clientIds, blocks]); - const transformations = (0,external_wp_element_namespaceObject.useMemo)(() => { - return blockVariationTransformations?.filter(({ - name - }) => name !== activeBlockVariation?.name); - }, [blockVariationTransformations, activeBlockVariation]); - return transformations; + createSuccessNotice(notice, { + type: 'snackbar' + }); + }, []); } -const BlockVariationTransformations = ({ - transformations, - onSelect, - blocks -}) => { - const [hoveredTransformItemName, setHoveredTransformItemName] = (0,external_wp_element_namespaceObject.useState)(); - return (0,external_React_.createElement)(external_React_.Fragment, null, hoveredTransformItemName && (0,external_React_.createElement)(PreviewBlockPopover, { - blocks: (0,external_wp_blocks_namespaceObject.cloneBlock)(blocks[0], transformations.find(({ - name - }) => name === hoveredTransformItemName).attributes) - }), transformations?.map(item => (0,external_React_.createElement)(BlockVariationTranformationItem, { - key: item.name, - item: item, - onSelect: onSelect, - setHoveredTransformItemName: setHoveredTransformItemName - }))); -}; -function BlockVariationTranformationItem({ - item, - onSelect, - setHoveredTransformItemName -}) { +function useClipboardHandler() { const { - name, - icon, - title - } = item; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(name), - onClick: event => { + getBlocksByClientId, + getSelectedBlockClientIds, + hasMultiSelection, + getSettings, + __unstableIsFullySelected, + __unstableIsSelectionCollapsed, + __unstableIsSelectionMergeable, + __unstableGetSelectedBlocksWithPartialSelection, + canInsertBlockType + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + flashBlock, + removeBlocks, + replaceBlocks, + __unstableDeleteSelection, + __unstableExpandSelection, + insertBlocks + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const notifyCopy = useNotifyCopy(); + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function handler(event) { + if (event.defaultPrevented) { + // This was likely already handled in rich-text/use-paste-handler.js. + return; + } + const selectedBlockClientIds = getSelectedBlockClientIds(); + if (selectedBlockClientIds.length === 0) { + return; + } + + // Always handle multiple selected blocks. + if (!hasMultiSelection()) { + const { + target + } = event; + const { + ownerDocument + } = target; + // If copying, only consider actual text selection as selection. + // Otherwise, any focus on an input field is considered. + const hasSelection = event.type === 'copy' || event.type === 'cut' ? (0,external_wp_dom_namespaceObject.documentHasUncollapsedSelection)(ownerDocument) : (0,external_wp_dom_namespaceObject.documentHasSelection)(ownerDocument); + + // Let native copy behaviour take over in input fields. + if (hasSelection) { + return; + } + } + if (!node.contains(event.target.ownerDocument.activeElement)) { + return; + } event.preventDefault(); - onSelect(name); - }, - onMouseLeave: () => setHoveredTransformItemName(null), - onMouseEnter: () => setHoveredTransformItemName(name) - }, (0,external_React_.createElement)(block_icon, { - icon: icon, - showColors: true - }), title); + const isSelectionMergeable = __unstableIsSelectionMergeable(); + const shouldHandleWholeBlocks = __unstableIsSelectionCollapsed() || __unstableIsFullySelected(); + const expandSelectionIsNeeded = !shouldHandleWholeBlocks && !isSelectionMergeable; + if (event.type === 'copy' || event.type === 'cut') { + if (selectedBlockClientIds.length === 1) { + flashBlock(selectedBlockClientIds[0]); + } + // If we have a partial selection that is not mergeable, just + // expand the selection to the whole blocks. + if (expandSelectionIsNeeded) { + __unstableExpandSelection(); + } else { + notifyCopy(event.type, selectedBlockClientIds); + let blocks; + // Check if we have partial selection. + if (shouldHandleWholeBlocks) { + blocks = getBlocksByClientId(selectedBlockClientIds); + } else { + const [head, tail] = __unstableGetSelectedBlocksWithPartialSelection(); + const inBetweenBlocks = getBlocksByClientId(selectedBlockClientIds.slice(1, selectedBlockClientIds.length - 1)); + blocks = [head, ...inBetweenBlocks, tail]; + } + const wrapperBlockName = event.clipboardData.getData('__unstableWrapperBlockName'); + if (wrapperBlockName) { + blocks = (0,external_wp_blocks_namespaceObject.createBlock)(wrapperBlockName, JSON.parse(event.clipboardData.getData('__unstableWrapperBlockAttributes')), blocks); + } + const serialized = (0,external_wp_blocks_namespaceObject.serialize)(blocks); + event.clipboardData.setData('text/plain', toPlainText(serialized)); + event.clipboardData.setData('text/html', serialized); + } + } + if (event.type === 'cut') { + // We need to also check if at the start we needed to + // expand the selection, as in this point we might have + // programmatically fully selected the blocks above. + if (shouldHandleWholeBlocks && !expandSelectionIsNeeded) { + removeBlocks(selectedBlockClientIds); + } else { + event.target.ownerDocument.activeElement.contentEditable = false; + __unstableDeleteSelection(); + } + } else if (event.type === 'paste') { + const { + __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML + } = getSettings(); + const { + plainText, + html, + files + } = getPasteEventData(event); + let blocks = []; + if (files.length) { + const fromTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'); + blocks = files.reduce((accumulator, file) => { + const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file])); + if (transformation) { + accumulator.push(transformation.transform([file])); + } + return accumulator; + }, []).flat(); + } else { + blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ + HTML: html, + plainText, + mode: 'BLOCKS', + canUserUseUnfilteredHTML + }); + } + if (selectedBlockClientIds.length === 1) { + const [selectedBlockClientId] = selectedBlockClientIds; + if (blocks.every(block => canInsertBlockType(block.name, selectedBlockClientId))) { + insertBlocks(blocks, undefined, selectedBlockClientId); + return; + } + } + replaceBlocks(selectedBlockClientIds, blocks, blocks.length - 1, -1); + } + } + node.ownerDocument.addEventListener('copy', handler); + node.ownerDocument.addEventListener('cut', handler); + node.ownerDocument.addEventListener('paste', handler); + return () => { + node.ownerDocument.removeEventListener('copy', handler); + node.ownerDocument.removeEventListener('cut', handler); + node.ownerDocument.removeEventListener('paste', handler); + }; + }, []); +} +function CopyHandler({ + children +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: useClipboardHandler() + }, children); } -/* harmony default export */ var block_variation_transformations = (BlockVariationTransformations); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-transformations-menu.js /** - * WordPress dependencies + * Given a string of HTML representing serialized blocks, returns the plain + * text extracted after stripping the HTML of any tags and fixing line breaks. + * + * @param {string} html Serialized blocks. + * @return {string} The plain-text content with any html removed. */ +function toPlainText(html) { + // Manually handle BR tags as line breaks prior to `stripHTML` call + html = html.replace(/
/g, '\n'); + const plainText = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(html).trim(); + + // Merge any consecutive line breaks + return plainText.replace(/\n\n+/g, '\n\n'); +} +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md + */ +/* harmony default export */ var copy_handler = (CopyHandler); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-canvas/index.js +/** + * WordPress dependencies + */ /** @@ -52383,320 +46130,235 @@ function BlockVariationTranformationItem({ + + + +function ExperimentalBlockCanvas({ + shouldIframe = true, + height = '300px', + children = (0,external_wp_element_namespaceObject.createElement)(BlockList, null), + styles, + contentRef: contentRefProp, + iframeProps +}) { + const resetTypingRef = useMouseMoveTypingReset(); + const copyHandler = useClipboardHandler(); + const clearerRef = useBlockSelectionClearer(); + const contentRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([copyHandler, contentRefProp, clearerRef]); + if (!shouldIframe) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(EditorStyles, { + styles: styles, + scope: ".editor-styles-wrapper" + }), (0,external_wp_element_namespaceObject.createElement)(writing_flow, { + ref: contentRef, + className: "editor-styles-wrapper", + tabIndex: -1, + style: { + height + } + }, children)); + } + return (0,external_wp_element_namespaceObject.createElement)(iframe, { + ...iframeProps, + ref: resetTypingRef, + contentRef: contentRef, + style: { + width: '100%', + height, + ...iframeProps?.style + }, + name: "editor-canvas" + }, (0,external_wp_element_namespaceObject.createElement)(EditorStyles, { + styles: styles + }), children); +} + /** - * Helper hook to group transformations to display them in a specific order in the UI. - * For now we group only priority content driven transformations(ex. paragraph -> heading). + * BlockCanvas component is a component used to display the canvas of the block editor. + * What we call the canvas is an iframe containing the block list that you can manipulate. + * The component is also responsible of wiring up all the necessary hooks to enable + * the keyboard navigation across blocks in the editor and inject content styles into the iframe. * - * Later on we could also group 'layout' transformations(ex. paragraph -> group) and - * display them in different sections. + * @example * - * @param {Object[]} possibleBlockTransformations The available block transformations. - * @return {Record} The grouped block transformations. + * ```jsx + * function MyBlockEditor() { + * const [ blocks, updateBlocks ] = useState([]); + * return ( + * + * + * + * ); + * } + * ``` + * + * @param {Object} props Component props. + * @param {string} props.height Canvas height, defaults to 300px. + * @param {Array} props.styles Content styles to inject into the iframe. + * @param {WPElement} props.children Content of the canvas, defaults to the BlockList component. + * @return {WPElement} Block Breadcrumb. */ -function useGroupedTransforms(possibleBlockTransformations) { - const priorityContentTranformationBlocks = { - 'core/paragraph': 1, - 'core/heading': 2, - 'core/list': 3, - 'core/quote': 4 - }; - const transformations = (0,external_wp_element_namespaceObject.useMemo)(() => { - const priorityTextTranformsNames = Object.keys(priorityContentTranformationBlocks); - const groupedPossibleTransforms = possibleBlockTransformations.reduce((accumulator, item) => { - const { - name - } = item; - if (priorityTextTranformsNames.includes(name)) { - accumulator.priorityTextTransformations.push(item); - } else { - accumulator.restTransformations.push(item); - } - return accumulator; - }, { - priorityTextTransformations: [], - restTransformations: [] - }); - /** - * If there is only one priority text transformation and it's a Quote, - * is should move to the rest transformations. This is because Quote can - * be a container for any block type, so in multi-block selection it will - * always be suggested, even for non-text blocks. - */ - if (groupedPossibleTransforms.priorityTextTransformations.length === 1 && groupedPossibleTransforms.priorityTextTransformations[0].name === 'core/quote') { - const singleQuote = groupedPossibleTransforms.priorityTextTransformations.pop(); - groupedPossibleTransforms.restTransformations.push(singleQuote); - } - return groupedPossibleTransforms; - }, [possibleBlockTransformations]); - - // Order the priority text transformations. - transformations.priorityTextTransformations.sort(({ - name: currentName - }, { - name: nextName - }) => { - return priorityContentTranformationBlocks[currentName] < priorityContentTranformationBlocks[nextName] ? -1 : 1; - }); - return transformations; -} -const BlockTransformationsMenu = ({ - className, - possibleBlockTransformations, - possibleBlockVariationTransformations, - onSelect, - onSelectVariation, - blocks -}) => { - const [hoveredTransformItemName, setHoveredTransformItemName] = (0,external_wp_element_namespaceObject.useState)(); - const { - priorityTextTransformations, - restTransformations - } = useGroupedTransforms(possibleBlockTransformations); - // We have to check if both content transformations(priority and rest) are set - // in order to create a separate MenuGroup for them. - const hasBothContentTransformations = priorityTextTransformations.length && restTransformations.length; - const restTransformItems = !!restTransformations.length && (0,external_React_.createElement)(RestTransformationItems, { - restTransformations: restTransformations, - onSelect: onSelect, - setHoveredTransformItemName: setHoveredTransformItemName - }); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Transform to'), - className: className - }, hoveredTransformItemName && (0,external_React_.createElement)(PreviewBlockPopover, { - blocks: (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, hoveredTransformItemName) - }), !!possibleBlockVariationTransformations?.length && (0,external_React_.createElement)(block_variation_transformations, { - transformations: possibleBlockVariationTransformations, - blocks: blocks, - onSelect: onSelectVariation - }), priorityTextTransformations.map(item => (0,external_React_.createElement)(BlockTranformationItem, { - key: item.name, - item: item, - onSelect: onSelect, - setHoveredTransformItemName: setHoveredTransformItemName - })), !hasBothContentTransformations && restTransformItems), !!hasBothContentTransformations && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - className: className - }, restTransformItems)); -}; -function RestTransformationItems({ - restTransformations, - onSelect, - setHoveredTransformItemName -}) { - return restTransformations.map(item => (0,external_React_.createElement)(BlockTranformationItem, { - key: item.name, - item: item, - onSelect: onSelect, - setHoveredTransformItemName: setHoveredTransformItemName - })); -} -function BlockTranformationItem({ - item, - onSelect, - setHoveredTransformItemName +function BlockCanvas({ + children, + height, + styles }) { - const { - name, - icon, - title, - isDisabled - } = item; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(name), - onClick: event => { - event.preventDefault(); - onSelect(name); - }, - disabled: isDisabled, - onMouseLeave: () => setHoveredTransformItemName(null), - onMouseEnter: () => setHoveredTransformItemName(name) - }, (0,external_React_.createElement)(block_icon, { - icon: icon, - showColors: true - }), title); + return (0,external_wp_element_namespaceObject.createElement)(ExperimentalBlockCanvas, { + height: height, + styles: styles + }, children); } -/* harmony default export */ var block_transformations_menu = (BlockTransformationsMenu); +/* harmony default export */ var block_canvas = (BlockCanvas); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-style-selector/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/utils.js /** * WordPress dependencies */ -/** - * Returns the active style from the given className. - * - * @param {Array} styles Block styles. - * @param {string} className Class name - * - * @return {Object?} The active style. - */ -function getActiveStyle(styles, className) { - for (const style of new (external_wp_tokenList_default())(className).values()) { - if (style.indexOf('is-style-') === -1) { - continue; - } - const potentialStyleName = style.substring(9); - const activeStyle = styles?.find(({ - name - }) => name === potentialStyleName); - if (activeStyle) { - return activeStyle; - } - } - return getDefaultStyle(styles); -} -/** - * Replaces the active style in the block's className. - * - * @param {string} className Class name. - * @param {Object?} activeStyle The replaced style. - * @param {Object} newStyle The replacing style. - * - * @return {string} The updated className. - */ -function replaceActiveStyle(className, activeStyle, newStyle) { - const list = new (external_wp_tokenList_default())(className); - if (activeStyle) { - list.remove('is-style-' + activeStyle.name); - } - list.add('is-style-' + newStyle.name); - return list.value; -} +const ColorSelectorSVGIcon = () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 20 20" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z" +})); /** - * Returns a collection of styles that can be represented on the frontend. - * The function checks a style collection for a default style. If none is found, it adds one to - * act as a fallback for when there is no active style applied to a block. The default item also serves - * as a switch on the frontend to deactivate non-default styles. + * Color Selector Icon component. * - * @param {Array} styles Block styles. + * @param {Object} props Component properties. + * @param {Object} props.style Style object. + * @param {string} props.className Class name for component. * - * @return {Array} The style collection. + * @return {*} React Icon component. */ -function getRenderedStyles(styles) { - if (!styles || styles.length === 0) { - return []; - } - return getDefaultStyle(styles) ? styles : [{ - name: 'default', - label: (0,external_wp_i18n_namespaceObject._x)('Default', 'block style'), - isDefault: true - }, ...styles]; -} +const ColorSelectorIcon = ({ + style, + className +}) => { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-library-colors-selector__icon-container" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${className} block-library-colors-selector__state-selection`, + style: style + }, (0,external_wp_element_namespaceObject.createElement)(ColorSelectorSVGIcon, null))); +}; /** - * Returns a style object from a collection of styles where that style object is the default block style. + * Renders the Colors Selector Toolbar with the icon button. * - * @param {Array} styles Block styles. + * @param {Object} props Component properties. + * @param {Object} props.TextColor Text color component that wraps icon. + * @param {Object} props.BackgroundColor Background color component that wraps icon. * - * @return {Object?} The default style object, if found. + * @return {*} React toggle button component. */ -function getDefaultStyle(styles) { - return styles?.find(style => style.isDefault); -} +const renderToggleComponent = ({ + TextColor, + BackgroundColor +}) => ({ + onToggle, + isOpen +}) => { + const openOnArrowDown = event => { + if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { + event.preventDefault(); + onToggle(); + } + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + className: "components-toolbar__control block-library-colors-selector__toggle", + label: (0,external_wp_i18n_namespaceObject.__)('Open Colors Selector'), + onClick: onToggle, + onKeyDown: openOnArrowDown, + icon: (0,external_wp_element_namespaceObject.createElement)(BackgroundColor, null, (0,external_wp_element_namespaceObject.createElement)(TextColor, null, (0,external_wp_element_namespaceObject.createElement)(ColorSelectorIcon, null))) + })); +}; +const BlockColorsStyleSelector = ({ + children, + ...other +}) => { + external_wp_deprecated_default()(`wp.blockEditor.BlockColorsStyleSelector`, { + alternative: 'block supports API', + since: '6.1', + version: '6.3' + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: { + placement: 'bottom-start' + }, + className: "block-library-colors-selector", + contentClassName: "block-library-colors-selector__popover", + renderToggle: renderToggleComponent(other), + renderContent: () => children + }); +}; +/* harmony default export */ var color_style_selector = (BlockColorsStyleSelector); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list-view.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/use-styles-for-block.js /** * WordPress dependencies */ +const listView = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z" +})); +/* harmony default export */ var list_view = (listView); - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/context.js /** - * Internal dependencies + * WordPress dependencies */ +const ListViewContext = (0,external_wp_element_namespaceObject.createContext)({}); +const useListViewContext = () => (0,external_wp_element_namespaceObject.useContext)(ListViewContext); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/aria-referenced-text.js /** - * - * @param {WPBlock} block Block object. - * @param {WPBlockType} type Block type settings. - * @return {WPBlock} A generic block ready for styles preview. + * WordPress dependencies */ -function useGenericPreviewBlock(block, type) { - return (0,external_wp_element_namespaceObject.useMemo)(() => { - const example = type?.example; - const blockName = type?.name; - if (example && blockName) { - return (0,external_wp_blocks_namespaceObject.getBlockFromExample)(blockName, { - attributes: example.attributes, - innerBlocks: example.innerBlocks - }); - } - if (block) { - return (0,external_wp_blocks_namespaceObject.cloneBlock)(block); - } - }, [type?.example ? block?.name : block, type]); -} -/** - * @typedef useStylesForBlocksArguments - * @property {string} clientId Block client ID. - * @property {() => void} onSwitch Block style switch callback function. - */ /** + * A component specifically designed to be used as an element referenced + * by ARIA attributes such as `aria-labelledby` or `aria-describedby`. * - * @param {useStylesForBlocksArguments} useStylesForBlocks arguments. - * @return {Object} Results of the select methods. + * @param {Object} props Props. + * @param {import('react').ReactNode} props.children */ -function useStylesForBlocks({ - clientId, - onSwitch +function AriaReferencedText({ + children, + ...props }) { - const selector = select => { - const { - getBlock - } = select(store); - const block = getBlock(clientId); - if (!block) { - return {}; + const ref = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (ref.current) { + // This seems like a no-op, but it fixes a bug in Firefox where + // it fails to recompute the text when only the text node changes. + // @see https://github.com/WordPress/gutenberg/pull/51035 + ref.current.textContent = ref.current.textContent; } - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(block.name); - const { - getBlockStyles - } = select(external_wp_blocks_namespaceObject.store); - return { - block, - blockType, - styles: getBlockStyles(block.name), - className: block.attributes.className || '' - }; - }; - const { - styles, - block, - blockType, - className - } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId]); - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const stylesToRender = getRenderedStyles(styles); - const activeStyle = getActiveStyle(stylesToRender, className); - const genericPreviewBlock = useGenericPreviewBlock(block, blockType); - const onSelect = style => { - const styleClassName = replaceActiveStyle(className, activeStyle, style); - updateBlockAttributes(clientId, { - className: styleClassName - }); - onSwitch(); - }; - return { - onSelect, - stylesToRender, - activeStyle, - genericPreviewBlock, - className - }; + }, [children]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + hidden: true, + ...props, + ref: ref + }, children); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/menu-items.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/appender.js /** * WordPress dependencies @@ -52704,42 +46366,88 @@ function useStylesForBlocks({ + + + /** * Internal dependencies */ -const menu_items_noop = () => {}; -function BlockStylesMenuItems({ + + + + +const Appender = (0,external_wp_element_namespaceObject.forwardRef)(({ + nestingLevel, + blockCount, clientId, - onSwitch = menu_items_noop -}) { + ...props +}, ref) => { const { - onSelect, - stylesToRender, - activeStyle - } = useStylesForBlocks({ + insertedBlock, + setInsertedBlock + } = useListViewContext(); + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(Appender); + const hideInserter = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getTemplateLock, + __unstableGetEditorMode + } = select(store); + return !!getTemplateLock(clientId) || __unstableGetEditorMode() === 'zoom-out'; + }, [clientId]); + const blockTitle = useBlockDisplayTitle({ clientId, - onSwitch + context: 'list-view' }); - if (!stylesToRender || stylesToRender.length === 0) { + const insertedBlockTitle = useBlockDisplayTitle({ + clientId: insertedBlock?.clientId, + context: 'list-view' + }); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!insertedBlockTitle?.length) { + return; + } + (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: name of block being inserted (i.e. Paragraph, Image, Group etc) + (0,external_wp_i18n_namespaceObject.__)('%s block inserted'), insertedBlockTitle), 'assertive'); + }, [insertedBlockTitle]); + if (hideInserter) { return null; } - return (0,external_React_.createElement)(external_React_.Fragment, null, stylesToRender.map(style => { - const menuItemText = style.label || style.name; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - key: style.name, - icon: activeStyle.name === style.name ? library_check : null, - onClick: () => onSelect(style) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalText, { - as: "span", - limit: 18, - ellipsizeMode: "tail", - truncate: true - }, menuItemText)); - })); -} + const descriptionId = `list-view-appender__${instanceId}`; + const description = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The name of the block. 2: The numerical position of the block. 3: The level of nesting for the block. */ + (0,external_wp_i18n_namespaceObject.__)('Append to %1$s block at position %2$d, Level %3$d'), blockTitle, blockCount + 1, nestingLevel); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "list-view-appender" + }, (0,external_wp_element_namespaceObject.createElement)(inserter, { + ref: ref, + rootClientId: clientId, + position: "bottom right", + isAppender: true, + selectBlockOnInsert: false, + shouldDirectInsert: false, + __experimentalIsQuick: true, + ...props, + toggleProps: { + 'aria-describedby': descriptionId + }, + onSelectOrClose: maybeInsertedBlock => { + if (maybeInsertedBlock?.clientId) { + setInsertedBlock(maybeInsertedBlock); + } + } + }), (0,external_wp_element_namespaceObject.createElement)(AriaReferencedText, { + id: descriptionId + }, description)); +}); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/leaf.js + +/** + * External dependencies + */ + -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-styles-menu.js /** * WordPress dependencies @@ -52747,283 +46455,328 @@ function BlockStylesMenuItems({ + /** * Internal dependencies */ -function BlockStylesMenu({ - hoveredBlock, - onSwitch +const AnimatedTreeGridRow = animated(external_wp_components_namespaceObject.__experimentalTreeGridRow); +const ListViewLeaf = (0,external_wp_element_namespaceObject.forwardRef)(({ + isSelected, + position, + level, + rowCount, + children, + className, + path, + ...props +}, ref) => { + const animationRef = use_moving_animation({ + isSelected, + adjustScrolling: false, + enableAnimation: true, + triggerAnimationOnChange: path + }); + const mergedRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, animationRef]); + return (0,external_wp_element_namespaceObject.createElement)(AnimatedTreeGridRow, { + ref: mergedRef, + className: classnames_default()('block-editor-list-view-leaf', className), + level: level, + positionInSet: position, + setSize: rowCount, + isExpanded: undefined, + ...props + }, children); +}); +/* harmony default export */ var leaf = (ListViewLeaf); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-scroll-into-view.js +/** + * WordPress dependencies + */ + + +function useListViewScrollIntoView({ + isSelected, + selectedClientIds, + rowItemRef }) { - const { - clientId - } = hoveredBlock; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Styles'), - className: "block-editor-block-switcher__styles__menugroup" - }, (0,external_React_.createElement)(BlockStylesMenuItems, { - clientId: clientId, - onSwitch: onSwitch - })); + const isSingleSelection = selectedClientIds.length === 1; + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + // Skip scrolling into view if this particular block isn't selected, + // or if more than one block is selected overall. This is to avoid + // scrolling the view in a multi selection where the user has intentionally + // selected multiple blocks within the list view, but the initially + // selected block may be out of view. + if (!isSelected || !isSingleSelection || !rowItemRef.current) { + return; + } + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(rowItemRef.current); + const { + ownerDocument + } = rowItemRef.current; + const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; + + // If the there is no scroll container, of if the scroll container is the window, + // do not scroll into view, as the block is already in view. + if (windowScroll || !scrollContainer) { + return; + } + const rowRect = rowItemRef.current.getBoundingClientRect(); + const scrollContainerRect = scrollContainer.getBoundingClientRect(); + + // If the selected block is not currently visible, scroll to it. + if (rowRect.top < scrollContainerRect.top || rowRect.bottom > scrollContainerRect.bottom) { + rowItemRef.current.scrollIntoView(); + } + }, [isSelected, isSingleSelection, rowItemRef]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/utils.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js + +/** + * WordPress dependencies + */ + +const chevronUp = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z" +})); +/* harmony default export */ var chevron_up = (chevronUp); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js + /** * WordPress dependencies */ +const chevronDown = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z" +})); +/* harmony default export */ var chevron_down = (chevronDown); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/mover-description.js /** - * Try to find a matching block by a block's name in a provided - * block. We recurse through InnerBlocks and return the reference - * of the matched block (it could be an InnerBlock). - * If no match is found return nothing. + * WordPress dependencies + */ + +const getMovementDirection = (moveDirection, orientation) => { + if (moveDirection === 'up') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? 'right' : 'left'; + } + return 'up'; + } else if (moveDirection === 'down') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right'; + } + return 'down'; + } + return null; +}; + +/** + * Return a label for the block movement controls depending on block position. * - * @param {WPBlock} block The block to try to find a match. - * @param {string} selectedBlockName The block's name to use for matching condition. - * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks. + * @param {number} selectedCount Number of blocks selected. + * @param {string} type Block type - in the case of a single block, should + * define its 'type'. I.e. 'Text', 'Heading', 'Image' etc. + * @param {number} firstIndex The index (position - 1) of the first block selected. + * @param {boolean} isFirst This is the first block. + * @param {boolean} isLast This is the last block. + * @param {number} dir Direction of movement (> 0 is considered to be going + * down, < 0 is up). + * @param {string} orientation The orientation of the block movers, vertical or + * horizontal. * - * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`). + * @return {string | undefined} Label for the block movement controls. */ -const getMatchingBlockByName = (block, selectedBlockName, consumedBlocks = new Set()) => { - const { - clientId, - name, - innerBlocks = [] - } = block; - // Check if block has been consumed already. - if (consumedBlocks.has(clientId)) return; - if (name === selectedBlockName) return block; - // Try to find a matching block from InnerBlocks recursively. - for (const innerBlock of innerBlocks) { - const match = getMatchingBlockByName(innerBlock, selectedBlockName, consumedBlocks); - if (match) return match; +function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLast, dir, orientation) { + const position = firstIndex + 1; + if (selectedCount > 1) { + return getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir, orientation); + } + if (isFirst && isLast) { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %s is the only block, and cannot be moved'), type); + } + if (dir > 0 && !isLast) { + // Moving down. + const movementDirection = getMovementDirection('down', orientation); + if (movementDirection === 'down') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d down to position %3$d'), type, position, position + 1); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d left to position %3$d'), type, position, position + 1); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d right to position %3$d'), type, position, position + 1); + } + } + if (dir > 0 && isLast) { + // Moving down, and is the last item. + const movementDirection = getMovementDirection('down', orientation); + if (movementDirection === 'down') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved down'), type); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved left'), type); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the end of the content and can’t be moved right'), type); + } + } + if (dir < 0 && !isFirst) { + // Moving up. + const movementDirection = getMovementDirection('up', orientation); + if (movementDirection === 'up') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d up to position %3$d'), type, position, position - 1); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d left to position %3$d'), type, position, position - 1); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position + (0,external_wp_i18n_namespaceObject.__)('Move %1$s block from position %2$d right to position %3$d'), type, position, position - 1); + } + } + if (dir < 0 && isFirst) { + // Moving up, and is the first item. + const movementDirection = getMovementDirection('up', orientation); + if (movementDirection === 'up') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved up'), type); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved left'), type); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Type of block (i.e. Text, Image etc) + (0,external_wp_i18n_namespaceObject.__)('Block %1$s is at the beginning of the content and can’t be moved right'), type); + } } -}; - -/** - * Find and return the block attributes to retain through - * the transformation, based on Block Type's `role:content` - * attributes. If no `role:content` attributes exist, - * return selected block's attributes. - * - * @param {string} name Block type's namespaced name. - * @param {Object} attributes Selected block's attributes. - * @return {Object} The block's attributes to retain. - */ -const getRetainedBlockAttributes = (name, attributes) => { - const contentAttributes = (0,external_wp_blocks_namespaceObject.__experimentalGetBlockAttributesNamesByRole)(name, 'content'); - if (!contentAttributes?.length) return attributes; - return contentAttributes.reduce((_accumulator, attribute) => { - if (attributes[attribute]) _accumulator[attribute] = attributes[attribute]; - return _accumulator; - }, {}); -}; - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/use-transformed-patterns.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - +} /** - * Mutate the matched block's attributes by getting - * which block type's attributes to retain and prioritize - * them in the merging of the attributes. + * Return a label for the block movement controls depending on block position. * - * @param {WPBlock} match The matched block. - * @param {WPBlock} selectedBlock The selected block. - * @return {void} - */ -const transformMatchingBlock = (match, selectedBlock) => { - // Get the block attributes to retain through the transformation. - const retainedBlockAttributes = getRetainedBlockAttributes(selectedBlock.name, selectedBlock.attributes); - match.attributes = { - ...match.attributes, - ...retainedBlockAttributes - }; -}; - -/** - * By providing the selected blocks and pattern's blocks - * find the matching blocks, transform them and return them. - * If not all selected blocks are matched, return nothing. + * @param {number} selectedCount Number of blocks selected. + * @param {number} firstIndex The index (position - 1) of the first block selected. + * @param {boolean} isFirst This is the first block. + * @param {boolean} isLast This is the last block. + * @param {number} dir Direction of movement (> 0 is considered to be going + * down, < 0 is up). + * @param {string} orientation The orientation of the block movers, vertical or + * horizontal. * - * @param {WPBlock[]} selectedBlocks The selected blocks. - * @param {WPBlock[]} patternBlocks The pattern's blocks. - * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched. + * @return {string | undefined} Label for the block movement controls. */ -const getPatternTransformedBlocks = (selectedBlocks, patternBlocks) => { - // Clone Pattern's blocks to produce new clientIds and be able to mutate the matches. - const _patternBlocks = patternBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); - /** - * Keep track of the consumed pattern blocks. - * This is needed because we loop the selected blocks - * and for example we may have selected two paragraphs and - * the pattern's blocks could have more `paragraphs`. - */ - const consumedBlocks = new Set(); - for (const selectedBlock of selectedBlocks) { - let isMatch = false; - for (const patternBlock of _patternBlocks) { - const match = getMatchingBlockByName(patternBlock, selectedBlock.name, consumedBlocks); - if (!match) continue; - isMatch = true; - consumedBlocks.add(match.clientId); - // We update (mutate) the matching pattern block. - transformMatchingBlock(match, selectedBlock); - // No need to loop through other pattern's blocks. - break; +function getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir, orientation) { + const position = firstIndex + 1; + if (isFirst && isLast) { + // All blocks are selected + return (0,external_wp_i18n_namespaceObject.__)('All blocks are selected, and cannot be moved'); + } + if (dir > 0 && !isLast) { + // moving down + const movementDirection = getMovementDirection('down', orientation); + if (movementDirection === 'down') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d down by one place'), selectedCount, position); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d left by one place'), selectedCount, position); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d right by one place'), selectedCount, position); } - // Bail eary if a selected block has not been matched. - if (!isMatch) return; } - return _patternBlocks; -}; - -/** - * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern - */ - -/** - * Custom hook that accepts patterns from state and the selected - * blocks and tries to match these with the pattern's blocks. - * If all selected blocks are matched with a Pattern's block, - * we transform them by retaining block's attributes with `role:content`. - * The transformed pattern's blocks are set to a new pattern - * property `transformedBlocks`. - * - * @param {WPBlockPattern[]} patterns Patterns from state. - * @param {WPBlock[]} selectedBlocks The currently selected blocks. - * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks. - */ -const useTransformedPatterns = (patterns, selectedBlocks) => { - return (0,external_wp_element_namespaceObject.useMemo)(() => patterns.reduce((accumulator, _pattern) => { - const transformedBlocks = getPatternTransformedBlocks(selectedBlocks, _pattern.blocks); - if (transformedBlocks) { - accumulator.push({ - ..._pattern, - transformedBlocks - }); + if (dir > 0 && isLast) { + // moving down, and the selected blocks are the last item + const movementDirection = getMovementDirection('down', orientation); + if (movementDirection === 'down') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved down as they are already at the bottom'); } - return accumulator; - }, []), [patterns, selectedBlocks]); -}; -/* harmony default export */ var use_transformed_patterns = (useTransformedPatterns); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/pattern-transformations-menu.js - -/** - * WordPress dependencies - */ - - - - + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved left as they are already are at the leftmost position'); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved right as they are already are at the rightmost position'); + } + } + if (dir < 0 && !isFirst) { + // moving up + const movementDirection = getMovementDirection('up', orientation); + if (movementDirection === 'up') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d up by one place'), selectedCount, position); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d left by one place'), selectedCount, position); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Number of selected blocks, 2: Position of selected blocks + (0,external_wp_i18n_namespaceObject.__)('Move %1$d blocks from position %2$d right by one place'), selectedCount, position); + } + } + if (dir < 0 && isFirst) { + // moving up, and the selected blocks are the first item + const movementDirection = getMovementDirection('up', orientation); + if (movementDirection === 'up') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved up as they are already at the top'); + } + if (movementDirection === 'left') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved left as they are already are at the leftmost position'); + } + if (movementDirection === 'right') { + return (0,external_wp_i18n_namespaceObject.__)('Blocks cannot be moved right as they are already are at the rightmost position'); + } + } +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/button.js /** - * Internal dependencies + * External dependencies */ - -const { - CompositeV2: pattern_transformations_menu_Composite, - CompositeItemV2: pattern_transformations_menu_CompositeItem, - useCompositeStoreV2: pattern_transformations_menu_useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); -function PatternTransformationsMenu({ - blocks, - patterns: statePatterns, - onSelect -}) { - const [showTransforms, setShowTransforms] = (0,external_wp_element_namespaceObject.useState)(false); - const patterns = use_transformed_patterns(statePatterns, blocks); - if (!patterns.length) return null; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - className: "block-editor-block-switcher__pattern__transforms__menugroup" - }, showTransforms && (0,external_React_.createElement)(PreviewPatternsPopover, { - patterns: patterns, - onSelect: onSelect - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: event => { - event.preventDefault(); - setShowTransforms(!showTransforms); - }, - icon: chevron_right - }, (0,external_wp_i18n_namespaceObject.__)('Patterns'))); -} -function PreviewPatternsPopover({ - patterns, - onSelect -}) { - return (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__popover__preview__parent" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__popover__preview__container" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - className: "block-editor-block-switcher__preview__popover", - position: "bottom right" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__preview is-pattern-list-preview" - }, (0,external_React_.createElement)(pattern_transformations_menu_BlockPatternsList, { - patterns: patterns, - onSelect: onSelect - }))))); -} -function pattern_transformations_menu_BlockPatternsList({ - patterns, - onSelect -}) { - const composite = pattern_transformations_menu_useCompositeStore(); - return (0,external_React_.createElement)(pattern_transformations_menu_Composite, { - store: composite, - role: "listbox", - className: "block-editor-block-switcher__preview-patterns-container", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Patterns list') - }, patterns.map(pattern => (0,external_React_.createElement)(pattern_transformations_menu_BlockPattern, { - key: pattern.name, - pattern: pattern, - onSelect: onSelect - }))); -} -function pattern_transformations_menu_BlockPattern({ - pattern, - onSelect -}) { - // TODO check pattern/preview width... - const baseClassName = 'block-editor-block-switcher__preview-patterns-container'; - const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(pattern_transformations_menu_BlockPattern, `${baseClassName}-list__item-description`); - return (0,external_React_.createElement)("div", { - className: `${baseClassName}-list__list-item` - }, (0,external_React_.createElement)(pattern_transformations_menu_CompositeItem, { - render: (0,external_React_.createElement)("div", { - role: "option", - "aria-label": pattern.title, - "aria-describedby": pattern.description ? descriptionId : undefined, - className: `${baseClassName}-list__item` - }), - onClick: () => onSelect(pattern.transformedBlocks) - }, (0,external_React_.createElement)(block_preview, { - blocks: pattern.transformedBlocks, - viewportWidth: pattern.viewportWidth || 500 - }), (0,external_React_.createElement)("div", { - className: `${baseClassName}-list__item-title` - }, pattern.title)), !!pattern.description && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: descriptionId - }, pattern.description)); -} -/* harmony default export */ var pattern_transformations_menu = (PatternTransformationsMenu); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/index.js - /** * WordPress dependencies */ @@ -53033,783 +46786,692 @@ function pattern_transformations_menu_BlockPattern({ + /** * Internal dependencies */ - - - - - -function BlockSwitcherDropdownMenuContents({ - onClose, - clientIds, - hasBlockStyles, - canRemove -}) { - const { - replaceBlocks, - multiSelect, - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - possibleBlockTransformations, - patterns, - blocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlocksByClientId, - getBlockRootClientId, - getBlockTransformItems, - __experimentalGetPatternTransformItems - } = select(store); - const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds); - const _blocks = getBlocksByClientId(clientIds); - return { - blocks: _blocks, - possibleBlockTransformations: getBlockTransformItems(_blocks, rootClientId), - patterns: __experimentalGetPatternTransformItems(_blocks, rootClientId) - }; - }, [clientIds]); - const blockVariationTransformations = useBlockVariationTransforms({ - clientIds, - blocks - }); - function selectForMultipleBlocks(insertedBlocks) { - if (insertedBlocks.length > 1) { - multiSelect(insertedBlocks[0].clientId, insertedBlocks[insertedBlocks.length - 1].clientId); +const getArrowIcon = (direction, orientation) => { + if (direction === 'up') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left; } + return chevron_up; + } else if (direction === 'down') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right; + } + return chevron_down; } - // Simple block tranformation based on the `Block Transforms` API. - function onBlockTransform(name) { - const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, name); - replaceBlocks(clientIds, newBlocks); - selectForMultipleBlocks(newBlocks); - } - function onBlockVariationTransform(name) { - updateBlockAttributes(blocks[0].clientId, { - ...blockVariationTransformations.find(({ - name: variationName - }) => variationName === name).attributes - }); - } - // Pattern transformation through the `Patterns` API. - function onPatternTransform(transformedBlocks) { - replaceBlocks(clientIds, transformedBlocks); - selectForMultipleBlocks(transformedBlocks); - } - /** - * The `isTemplate` check is a stopgap solution here. - * Ideally, the Transforms API should handle this - * by allowing to exclude blocks from wildcard transformations. - */ - const isSingleBlock = blocks.length === 1; - const isTemplate = isSingleBlock && (0,external_wp_blocks_namespaceObject.isTemplatePart)(blocks[0]); - const hasPossibleBlockTransformations = !!possibleBlockTransformations.length && canRemove && !isTemplate; - const hasPossibleBlockVariationTransformations = !!blockVariationTransformations?.length; - const hasPatternTransformation = !!patterns?.length && canRemove; - const hasBlockOrBlockVariationTransforms = hasPossibleBlockTransformations || hasPossibleBlockVariationTransformations; - const hasContents = hasBlockStyles || hasBlockOrBlockVariationTransforms || hasPatternTransformation; - if (!hasContents) { - return (0,external_React_.createElement)("p", { - className: "block-editor-block-switcher__no-transforms" - }, (0,external_wp_i18n_namespaceObject.__)('No transforms.')); - } - return (0,external_React_.createElement)("div", { - className: "block-editor-block-switcher__container" - }, hasPatternTransformation && (0,external_React_.createElement)(pattern_transformations_menu, { - blocks: blocks, - patterns: patterns, - onSelect: transformedBlocks => { - onPatternTransform(transformedBlocks); - onClose(); + return null; +}; +const getMovementDirectionLabel = (moveDirection, orientation) => { + if (moveDirection === 'up') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? (0,external_wp_i18n_namespaceObject.__)('Move right') : (0,external_wp_i18n_namespaceObject.__)('Move left'); } - }), hasBlockOrBlockVariationTransforms && (0,external_React_.createElement)(block_transformations_menu, { - className: "block-editor-block-switcher__transforms__menugroup", - possibleBlockTransformations: possibleBlockTransformations, - possibleBlockVariationTransformations: blockVariationTransformations, - blocks: blocks, - onSelect: name => { - onBlockTransform(name); - onClose(); - }, - onSelectVariation: name => { - onBlockVariationTransform(name); - onClose(); + return (0,external_wp_i18n_namespaceObject.__)('Move up'); + } else if (moveDirection === 'down') { + if (orientation === 'horizontal') { + return (0,external_wp_i18n_namespaceObject.isRTL)() ? (0,external_wp_i18n_namespaceObject.__)('Move left') : (0,external_wp_i18n_namespaceObject.__)('Move right'); } - }), hasBlockStyles && (0,external_React_.createElement)(BlockStylesMenu, { - hoveredBlock: blocks[0], - onSwitch: onClose - })); -} -const BlockSwitcher = ({ - clientIds -}) => { - const blockInformation = useBlockDisplayInformation(clientIds?.[0]); + return (0,external_wp_i18n_namespaceObject.__)('Move down'); + } + return null; +}; +const BlockMoverButton = (0,external_wp_element_namespaceObject.forwardRef)(({ + clientIds, + direction, + orientation: moverOrientation, + ...props +}, ref) => { + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockMoverButton); + const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; + const blocksCount = normalizedClientIds.length; const { - canRemove, - hasBlockStyles, - icon, - invalidBlocks, - isReusable, - isTemplate + blockType, + isDisabled, + rootClientId, + isFirst, + isLast, + firstIndex, + orientation = 'vertical' } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { + getBlockIndex, getBlockRootClientId, - getBlocksByClientId, - canRemoveBlocks + getBlockOrder, + getBlock, + getBlockListSettings } = select(store); + const firstClientId = normalizedClientIds[0]; + const blockRootClientId = getBlockRootClientId(firstClientId); + const firstBlockIndex = getBlockIndex(firstClientId); + const lastBlockIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]); + const blockOrder = getBlockOrder(blockRootClientId); + const block = getBlock(firstClientId); + const isFirstBlock = firstBlockIndex === 0; + const isLastBlock = lastBlockIndex === blockOrder.length - 1; const { - getBlockStyles, - getBlockType - } = select(external_wp_blocks_namespaceObject.store); - const _blocks = getBlocksByClientId(clientIds); - if (!_blocks.length || _blocks.some(block => !block)) { - return { - invalidBlocks: true - }; - } - const rootClientId = getBlockRootClientId(clientIds); - const [{ - name: firstBlockName - }] = _blocks; - const _isSingleBlockSelected = _blocks.length === 1; - let _icon; - if (_isSingleBlockSelected) { - _icon = blockInformation?.icon; // Take into account active block variations. - } else { - const isSelectionOfSameType = new Set(_blocks.map(({ - name - }) => name)).size === 1; - // When selection consists of blocks of multiple types, display an - // appropriate icon to communicate the non-uniformity. - _icon = isSelectionOfSameType ? getBlockType(firstBlockName)?.icon : library_copy; - } + orientation: blockListOrientation + } = getBlockListSettings(blockRootClientId) || {}; return { - canRemove: canRemoveBlocks(clientIds, rootClientId), - hasBlockStyles: _isSingleBlockSelected && !!getBlockStyles(firstBlockName)?.length, - icon: _icon, - isReusable: _isSingleBlockSelected && (0,external_wp_blocks_namespaceObject.isReusableBlock)(_blocks[0]), - isTemplate: _isSingleBlockSelected && (0,external_wp_blocks_namespaceObject.isTemplatePart)(_blocks[0]) + blockType: block ? (0,external_wp_blocks_namespaceObject.getBlockType)(block.name) : null, + isDisabled: direction === 'up' ? isFirstBlock : isLastBlock, + rootClientId: blockRootClientId, + firstIndex: firstBlockIndex, + isFirst: isFirstBlock, + isLast: isLastBlock, + orientation: moverOrientation || blockListOrientation }; - }, [clientIds, blockInformation?.icon]); - const blockTitle = useBlockDisplayTitle({ - clientId: clientIds?.[0], - maximumLength: 35 - }); - if (invalidBlocks) { - return null; - } - const hideDropdown = !hasBlockStyles && !canRemove; - if (hideDropdown) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - disabled: true, - className: "block-editor-block-switcher__no-switcher-icon", - title: blockTitle, - icon: (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_icon, { - icon: icon, - showColors: true - }), (isReusable || isTemplate) && (0,external_React_.createElement)("span", { - className: "block-editor-block-switcher__toggle-text" - }, blockTitle)) - })); - } - const isSingleBlock = clientIds.length === 1; - const blockSwitcherLabel = isSingleBlock ? blockTitle : (0,external_wp_i18n_namespaceObject.__)('Multiple blocks selected'); - const blockSwitcherDescription = isSingleBlock ? (0,external_wp_i18n_namespaceObject.__)('Change block type or style') : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of blocks. */ - (0,external_wp_i18n_namespaceObject._n)('Change type of %d block', 'Change type of %d blocks', clientIds.length), clientIds.length); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - className: "block-editor-block-switcher", - label: blockSwitcherLabel, - popoverProps: { - placement: 'bottom-start', - className: 'block-editor-block-switcher__popover' - }, - icon: (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_icon, { - icon: icon, - className: "block-editor-block-switcher__toggle", - showColors: true - }), (isReusable || isTemplate) && (0,external_React_.createElement)("span", { - className: "block-editor-block-switcher__toggle-text" - }, blockTitle)), - toggleProps: { - describedBy: blockSwitcherDescription, - ...toggleProps - }, - menuProps: { - orientation: 'both' + }, [clientIds, direction]); + const { + moveBlocksDown, + moveBlocksUp + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const moverFunction = direction === 'up' ? moveBlocksUp : moveBlocksDown; + const onClick = event => { + moverFunction(clientIds, rootClientId); + if (props.onClick) { + props.onClick(event); } - }, ({ - onClose - }) => (0,external_React_.createElement)(BlockSwitcherDropdownMenuContents, { - onClose: onClose, - clientIds: clientIds, - hasBlockStyles: hasBlockStyles, - canRemove: canRemove - })))); -}; -/* harmony default export */ var block_switcher = (BlockSwitcher); + }; + const descriptionId = `block-editor-block-mover-button__description-${instanceId}`; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ref: ref, + className: classnames_default()('block-editor-block-mover-button', `is-${direction}-button`), + icon: getArrowIcon(direction, orientation), + label: getMovementDirectionLabel(direction, orientation), + "aria-describedby": descriptionId, + ...props, + onClick: isDisabled ? null : onClick, + disabled: isDisabled, + __experimentalIsFocusable: true + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: descriptionId + }, getBlockMoverDescription(blocksCount, blockType && blockType.title, firstIndex, isFirst, isLast, direction === 'up' ? -1 : 1, orientation))); +}); +const BlockMoverUpButton = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + return (0,external_wp_element_namespaceObject.createElement)(BlockMoverButton, { + direction: "up", + ref: ref, + ...props + }); +}); +const BlockMoverDownButton = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + return (0,external_wp_element_namespaceObject.createElement)(BlockMoverButton, { + direction: "down", + ref: ref, + ...props + }); +}); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin-small.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/block-toolbar-last-item.js /** * WordPress dependencies */ -const { - Fill: __unstableBlockToolbarLastItem, - Slot: block_toolbar_last_item_Slot -} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableBlockToolbarLastItem'); -__unstableBlockToolbarLastItem.Slot = block_toolbar_last_item_Slot; -/* harmony default export */ var block_toolbar_last_item = (__unstableBlockToolbarLastItem); +const pinSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + width: "24", + height: "24", + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M10.97 10.159a3.382 3.382 0 0 0-2.857.955l1.724 1.723-2.836 2.913L7 17h1.25l2.913-2.837 1.723 1.723a3.38 3.38 0 0 0 .606-.825c.33-.63.446-1.343.35-2.032L17 10.695 13.305 7l-2.334 3.159Z" +})); +/* harmony default export */ var pin_small = (pinSmall); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock-small.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/supports.js /** * WordPress dependencies */ +const lockSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M15 11h-.2V9c0-1.5-1.2-2.8-2.8-2.8S9.2 7.5 9.2 9v2H9c-.6 0-1 .4-1 1v4c0 .6.4 1 1 1h6c.6 0 1-.4 1-1v-4c0-.6-.4-1-1-1zm-1.8 0h-2.5V9c0-.7.6-1.2 1.2-1.2s1.2.6 1.2 1.2v2z" +})); +/* harmony default export */ var lock_small = (lockSmall); -const ALIGN_SUPPORT_KEY = 'align'; -const ALIGN_WIDE_SUPPORT_KEY = 'alignWide'; -const supports_BORDER_SUPPORT_KEY = '__experimentalBorder'; -const supports_COLOR_SUPPORT_KEY = 'color'; -const CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName'; -const supports_FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily'; -const supports_FONT_SIZE_SUPPORT_KEY = 'typography.fontSize'; -const supports_LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight'; -/** - * Key within block settings' support array indicating support for font style. - */ -const supports_FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle'; -/** - * Key within block settings' support array indicating support for font weight. - */ -const supports_FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight'; -/** - * Key within block settings' supports array indicating support for text - * columns e.g. settings found in `block.json`. - */ -const supports_TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns'; -/** - * Key within block settings' supports array indicating support for text - * decorations e.g. settings found in `block.json`. - */ -const supports_TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration'; -/** - * Key within block settings' supports array indicating support for writing mode - * e.g. settings found in `block.json`. - */ -const supports_WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode'; -/** - * Key within block settings' supports array indicating support for text - * transforms e.g. settings found in `block.json`. - */ -const supports_TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform'; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/expander.js /** - * Key within block settings' supports array indicating support for letter-spacing - * e.g. settings found in `block.json`. + * WordPress dependencies */ -const supports_LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing'; -const LAYOUT_SUPPORT_KEY = 'layout'; -const supports_TYPOGRAPHY_SUPPORT_KEYS = [supports_LINE_HEIGHT_SUPPORT_KEY, supports_FONT_SIZE_SUPPORT_KEY, supports_FONT_STYLE_SUPPORT_KEY, supports_FONT_WEIGHT_SUPPORT_KEY, supports_FONT_FAMILY_SUPPORT_KEY, supports_TEXT_COLUMNS_SUPPORT_KEY, supports_TEXT_DECORATION_SUPPORT_KEY, supports_TEXT_TRANSFORM_SUPPORT_KEY, supports_WRITING_MODE_SUPPORT_KEY, supports_LETTER_SPACING_SUPPORT_KEY]; -const supports_EFFECTS_SUPPORT_KEYS = ['shadow']; -const supports_SPACING_SUPPORT_KEY = 'spacing'; -const supports_styleSupportKeys = [...supports_EFFECTS_SUPPORT_KEYS, ...supports_TYPOGRAPHY_SUPPORT_KEYS, supports_BORDER_SUPPORT_KEY, supports_COLOR_SUPPORT_KEY, supports_SPACING_SUPPORT_KEY]; -/** - * Returns true if the block defines support for align. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const hasAlignSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, ALIGN_SUPPORT_KEY); -/** - * Returns the block support value for align, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getAlignSupport = nameOrType => getBlockSupport(nameOrType, ALIGN_SUPPORT_KEY); +function ListViewExpander({ + onClick +}) { + return ( + // Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js + // + // The expander component is implemented as a pseudo element in the w3 example + // https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html + // + // We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree. + // For the current tree grid implementation, please do not try to make this a button. + // + // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions + (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view__expander", + onClick: event => onClick(event, { + forceToggle: true + }), + "aria-hidden": "true", + "data-testid": "list-view-expander" + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left_small : chevron_right_small + })) + ); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-images.js /** - * Returns true if the block defines support for align wide. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. + * WordPress dependencies */ -const hasAlignWideSupport = nameOrType => hasBlockSupport(nameOrType, ALIGN_WIDE_SUPPORT_KEY); -/** - * Returns the block support value for align wide, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getAlignWideSupport = nameOrType => getBlockSupport(nameOrType, ALIGN_WIDE_SUPPORT_KEY); + /** - * Determine whether there is block support for border properties. - * - * @param {string|Object} nameOrType Block name or type object. - * @param {string} feature Border feature to check support for. - * - * @return {boolean} Whether there is support. + * Internal dependencies */ -function supports_hasBorderSupport(nameOrType, feature = 'any') { - if (external_wp_element_namespaceObject.Platform.OS !== 'web') { - return false; + + +// Maximum number of images to display in a list view row. +const MAX_IMAGES = 3; +function getImage(block) { + if (block.name !== 'core/image') { + return; } - const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_BORDER_SUPPORT_KEY); - if (support === true) { - return true; + if (block.attributes?.url) { + return { + url: block.attributes.url, + alt: block.attributes.alt, + clientId: block.clientId + }; } - if (feature === 'any') { - return !!(support?.color || support?.radius || support?.width || support?.style); +} +function getImagesFromGallery(block) { + if (block.name !== 'core/gallery' || !block.innerBlocks) { + return []; } - return !!support?.[feature]; + const images = []; + for (const innerBlock of block.innerBlocks) { + const img = getImage(innerBlock); + if (img) { + images.push(img); + } + if (images.length >= MAX_IMAGES) { + return images; + } + } + return images; +} +function getImagesFromBlock(block, isExpanded) { + const img = getImage(block); + if (img) { + return [img]; + } + return isExpanded ? [] : getImagesFromGallery(block); } /** - * Get block support for border properties. + * Get a block's preview images for display within a list view row. * - * @param {string|Object} nameOrType Block name or type object. - * @param {string} feature Border feature to get. + * TODO: Currently only supports images from the core/image and core/gallery + * blocks. This should be expanded to support other blocks that have images, + * potentially via an API that blocks can opt into / provide their own logic. * - * @return {unknown} The block support. + * @param {Object} props Hook properties. + * @param {string} props.clientId The block's clientId. + * @param {boolean} props.isExpanded Whether or not the block is expanded in the list view. + * @return {Array} Images. */ -const getBorderSupport = (nameOrType, feature) => getBlockSupport(nameOrType, [supports_BORDER_SUPPORT_KEY, feature]); +function useListViewImages({ + clientId, + isExpanded +}) { + const { + block + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const _block = select(store).getBlock(clientId); + return { + block: _block + }; + }, [clientId]); + const images = (0,external_wp_element_namespaceObject.useMemo)(() => { + return getImagesFromBlock(block, isExpanded); + }, [block, isExpanded]); + return images; +} -/** - * Returns true if the block defines support for color. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const supports_hasColorSupport = nameOrType => { - const colorSupport = getBlockSupport(nameOrType, supports_COLOR_SUPPORT_KEY); - return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false); -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block-select-button.js /** - * Returns true if the block defines support for link color. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. + * External dependencies */ -const supports_hasLinkColorSupport = nameOrType => { - if (Platform.OS !== 'web') { - return false; - } - const colorSupport = getBlockSupport(nameOrType, supports_COLOR_SUPPORT_KEY); - return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link; -}; -/** - * Returns true if the block defines support for gradient color. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const supports_hasGradientSupport = nameOrType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); - return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients; -}; /** - * Returns true if the block defines support for background color. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. + * WordPress dependencies */ -const supports_hasBackgroundColorSupport = nameOrType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); - return colorSupport && colorSupport.background !== false; -}; -/** - * Returns true if the block defines support for background color. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const supports_hasTextColorSupport = nameOrType => { - const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); - return colorSupport && colorSupport.text !== false; -}; -/** - * Get block support for color properties. - * - * @param {string|Object} nameOrType Block name or type object. - * @param {string} feature Color feature to get. - * - * @return {unknown} The block support. - */ -const getColorSupport = (nameOrType, feature) => getBlockSupport(nameOrType, [supports_COLOR_SUPPORT_KEY, feature]); -/** - * Returns true if the block defines support for custom class name. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const hasCustomClassNameSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true); -/** - * Returns the block support value for custom class name, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getCustomClassNameSupport = nameOrType => getBlockSupport(nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true); -/** - * Returns true if the block defines support for font family. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const hasFontFamilySupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, supports_FONT_FAMILY_SUPPORT_KEY); -/** - * Returns the block support value for font family, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getFontFamilySupport = nameOrType => getBlockSupport(nameOrType, supports_FONT_FAMILY_SUPPORT_KEY); -/** - * Returns true if the block defines support for font size. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const hasFontSizeSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, supports_FONT_SIZE_SUPPORT_KEY); -/** - * Returns the block support value for font size, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getFontSizeSupport = nameOrType => getBlockSupport(nameOrType, supports_FONT_SIZE_SUPPORT_KEY); /** - * Returns true if the block defines support for layout. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. + * Internal dependencies */ -const hasLayoutSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, LAYOUT_SUPPORT_KEY); -/** - * Returns the block support value for layout, if defined. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {unknown} The block support value. - */ -const getLayoutSupport = nameOrType => getBlockSupport(nameOrType, LAYOUT_SUPPORT_KEY); -/** - * Returns true if the block defines support for style. - * - * @param {string|Object} nameOrType Block name or type object. - * @return {boolean} Whether the block supports the feature. - */ -const supports_hasStyleSupport = nameOrType => supports_styleSupportKeys.some(key => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, key)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-paste-styles/index.js -/** - * WordPress dependencies - */ +function ListViewBlockSelectButton({ + className, + block: { + clientId + }, + onClick, + onToggleExpanded, + tabIndex, + onFocus, + onDragStart, + onDragEnd, + draggable, + isExpanded, + ariaLabel, + ariaDescribedBy, + updateFocusAndSelection +}, ref) { + const blockInformation = useBlockDisplayInformation(clientId); + const blockTitle = useBlockDisplayTitle({ + clientId, + context: 'list-view' + }); + const { + isLocked + } = useBlockLock(clientId); + const { + canInsertBlockType, + getSelectedBlockClientIds, + getPreviousBlockClientId, + getBlockRootClientId, + getBlockOrder, + getBlocksByClientId, + canRemoveBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + duplicateBlocks, + removeBlocks + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); + const isSticky = blockInformation?.positionType === 'sticky'; + const images = useListViewImages({ + clientId, + isExpanded + }); + const positionLabel = blockInformation?.positionLabel ? (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: 1: Position of selected block, e.g. "Sticky" or "Fixed". + (0,external_wp_i18n_namespaceObject.__)('Position: %1$s'), blockInformation.positionLabel) : ''; + + // The `href` attribute triggers the browser's native HTML drag operations. + // When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html. + // We need to clear any HTML drag data to prevent `pasteHandler` from firing + // inside the `useOnBlockDrop` hook. + const onDragStartHandler = event => { + event.dataTransfer.clearData(); + onDragStart?.(event); + }; + // Determine which blocks to update: + // If the current (focused) block is part of the block selection, use the whole selection. + // If the focused block is not part of the block selection, only update the focused block. + function getBlocksToUpdate() { + const selectedBlockClientIds = getSelectedBlockClientIds(); + const isUpdatingSelectedBlocks = selectedBlockClientIds.includes(clientId); + const firstBlockClientId = isUpdatingSelectedBlocks ? selectedBlockClientIds[0] : clientId; + const firstBlockRootClientId = getBlockRootClientId(firstBlockClientId); + const blocksToUpdate = isUpdatingSelectedBlocks ? selectedBlockClientIds : [clientId]; + return { + blocksToUpdate, + firstBlockClientId, + firstBlockRootClientId, + selectedBlockClientIds + }; + } -/** - * Internal dependencies - */ + /** + * @param {KeyboardEvent} event + */ + async function onKeyDownHandler(event) { + if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER || event.keyCode === external_wp_keycodes_namespaceObject.SPACE) { + onClick(event); + } else if (event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE || isMatch('core/block-editor/remove', event)) { + var _getPreviousBlockClie; + const { + blocksToUpdate: blocksToDelete, + firstBlockClientId, + firstBlockRootClientId, + selectedBlockClientIds + } = getBlocksToUpdate(); + // Don't update the selection if the blocks cannot be deleted. + if (!canRemoveBlocks(blocksToDelete, firstBlockRootClientId)) { + return; + } + let blockToFocus = (_getPreviousBlockClie = getPreviousBlockClientId(firstBlockClientId)) !== null && _getPreviousBlockClie !== void 0 ? _getPreviousBlockClie : + // If the previous block is not found (when the first block is deleted), + // fallback to focus the parent block. + firstBlockRootClientId; + removeBlocks(blocksToDelete, false); + // Update the selection if the original selection has been removed. + const shouldUpdateSelection = selectedBlockClientIds.length > 0 && getSelectedBlockClientIds().length === 0; -/** - * Determine if the copied text looks like serialized blocks or not. - * Since plain text will always get parsed into a freeform block, - * we check that if the parsed blocks is anything other than that. - * - * @param {string} text The copied text. - * @return {boolean} True if the text looks like serialized blocks, false otherwise. - */ -function hasSerializedBlocks(text) { - try { - const blocks = (0,external_wp_blocks_namespaceObject.parse)(text, { - __unstableSkipMigrationLogs: true, - __unstableSkipAutop: true - }); - if (blocks.length === 1 && blocks[0].name === 'core/freeform') { - // It's likely that the text is just plain text and not serialized blocks. - return false; + // If there's no previous block nor parent block, focus the first block. + if (!blockToFocus) { + blockToFocus = getBlockOrder()[0]; + } + updateFocusAndSelection(blockToFocus, shouldUpdateSelection); + } else if (isMatch('core/block-editor/duplicate', event)) { + if (event.defaultPrevented) { + return; + } + event.preventDefault(); + const { + blocksToUpdate, + firstBlockRootClientId + } = getBlocksToUpdate(); + const canDuplicate = getBlocksByClientId(blocksToUpdate).every(block => { + return !!block && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, firstBlockRootClientId); + }); + if (canDuplicate) { + const updatedBlocks = await duplicateBlocks(blocksToUpdate, false); + if (updatedBlocks?.length) { + // If blocks have been duplicated, focus the first duplicated block. + updateFocusAndSelection(updatedBlocks[0], false); + } + } + } + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: classnames_default()('block-editor-list-view-block-select-button', className), + onClick: onClick, + onKeyDown: onKeyDownHandler, + ref: ref, + tabIndex: tabIndex, + onFocus: onFocus, + onDragStart: onDragStartHandler, + onDragEnd: onDragEnd, + draggable: draggable, + href: `#block-${clientId}`, + "aria-label": ariaLabel, + "aria-describedby": ariaDescribedBy, + "aria-expanded": isExpanded + }, (0,external_wp_element_namespaceObject.createElement)(ListViewExpander, { + onClick: onToggleExpanded + }), (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: blockInformation?.icon, + showColors: true, + context: "list-view" + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + alignment: "center", + className: "block-editor-list-view-block-select-button__label-wrapper", + justify: "flex-start", + spacing: 1 + }, (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view-block-select-button__title" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { + ellipsizeMode: "auto" + }, blockTitle)), blockInformation?.anchor && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view-block-select-button__anchor-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { + className: "block-editor-list-view-block-select-button__anchor", + ellipsizeMode: "auto" + }, blockInformation.anchor)), positionLabel && isSticky && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { + text: positionLabel + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: pin_small + })), images.length ? (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view-block-select-button__images", + "aria-hidden": true + }, images.map((image, index) => (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view-block-select-button__image", + key: image.clientId, + style: { + backgroundImage: `url(${image.url})`, + zIndex: images.length - index // Ensure the first image is on top, and subsequent images are behind. } - return true; - } catch (err) { - // Parsing error, the text is not serialized blocks. - // (Even though that it technically won't happen) - return false; - } + }))) : null, isLocked && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-list-view-block-select-button__lock" + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: lock_small + }))))); } +/* harmony default export */ var block_select_button = ((0,external_wp_element_namespaceObject.forwardRef)(ListViewBlockSelectButton)); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/use-scroll-when-dragging.js /** - * Style attributes are attributes being added in `block-editor/src/hooks/*`. - * (Except for some unrelated to style like `anchor` or `settings`.) - * They generally represent the default block supports. + * WordPress dependencies */ -const STYLE_ATTRIBUTES = { - align: hasAlignSupport, - borderColor: nameOrType => supports_hasBorderSupport(nameOrType, 'color'), - backgroundColor: supports_hasBackgroundColorSupport, - textColor: supports_hasTextColorSupport, - gradient: supports_hasGradientSupport, - className: hasCustomClassNameSupport, - fontFamily: hasFontFamilySupport, - fontSize: hasFontSizeSupport, - layout: hasLayoutSupport, - style: supports_hasStyleSupport -}; + + +const SCROLL_INACTIVE_DISTANCE_PX = 50; +const SCROLL_INTERVAL_MS = 25; +const PIXELS_PER_SECOND_PER_PERCENTAGE = 1000; +const VELOCITY_MULTIPLIER = PIXELS_PER_SECOND_PER_PERCENTAGE * (SCROLL_INTERVAL_MS / 1000); /** - * Get the "style attributes" from a given block to a target block. + * React hook that scrolls the scroll container when a block is being dragged. * - * @param {WPBlock} sourceBlock The source block. - * @param {WPBlock} targetBlock The target block. - * @return {Object} the filtered attributes object. + * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling` + * functions to be called in `onDragStart`, `onDragOver` + * and `onDragEnd` events respectively. */ -function getStyleAttributes(sourceBlock, targetBlock) { - return Object.entries(STYLE_ATTRIBUTES).reduce((attributes, [attributeKey, hasSupport]) => { - // Only apply the attribute if both blocks support it. - if (hasSupport(sourceBlock.name) && hasSupport(targetBlock.name)) { - // Override attributes that are not present in the block to their defaults. - attributes[attributeKey] = sourceBlock.attributes[attributeKey]; +function useScrollWhenDragging() { + const dragStartY = (0,external_wp_element_namespaceObject.useRef)(null); + const velocityY = (0,external_wp_element_namespaceObject.useRef)(null); + const scrollParentY = (0,external_wp_element_namespaceObject.useRef)(null); + const scrollEditorInterval = (0,external_wp_element_namespaceObject.useRef)(null); + + // Clear interval when unmounting. + (0,external_wp_element_namespaceObject.useEffect)(() => () => { + if (scrollEditorInterval.current) { + clearInterval(scrollEditorInterval.current); + scrollEditorInterval.current = null; } - return attributes; - }, {}); -} + }, []); + const startScrolling = (0,external_wp_element_namespaceObject.useCallback)(event => { + dragStartY.current = event.clientY; -/** - * Update the target blocks with style attributes recursively. - * - * @param {WPBlock[]} targetBlocks The target blocks to be updated. - * @param {WPBlock[]} sourceBlocks The source blocks to get th style attributes from. - * @param {Function} updateBlockAttributes The function to update the attributes. - */ -function recursivelyUpdateBlockAttributes(targetBlocks, sourceBlocks, updateBlockAttributes) { - for (let index = 0; index < Math.min(sourceBlocks.length, targetBlocks.length); index += 1) { - updateBlockAttributes(targetBlocks[index].clientId, getStyleAttributes(sourceBlocks[index], targetBlocks[index])); - recursivelyUpdateBlockAttributes(targetBlocks[index].innerBlocks, sourceBlocks[index].innerBlocks, updateBlockAttributes); - } -} + // Find nearest parent(s) to scroll. + scrollParentY.current = (0,external_wp_dom_namespaceObject.getScrollContainer)(event.target); + scrollEditorInterval.current = setInterval(() => { + if (scrollParentY.current && velocityY.current) { + const newTop = scrollParentY.current.scrollTop + velocityY.current; -/** - * A hook to return a pasteStyles event function for handling pasting styles to blocks. - * - * @return {Function} A function to update the styles to the blocks. - */ -function usePasteStyles() { - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - createSuccessNotice, - createWarningNotice, - createErrorNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - return (0,external_wp_element_namespaceObject.useCallback)(async targetBlocks => { - let html = ''; - try { - // `http:` sites won't have the clipboard property on navigator. - // (with the exception of localhost.) - if (!window.navigator.clipboard) { - createErrorNotice((0,external_wp_i18n_namespaceObject.__)('Unable to paste styles. This feature is only available on secure (https) sites in supporting browsers.'), { - type: 'snackbar' + // Setting `behavior: 'smooth'` as a scroll property seems to hurt performance. + // Better to use a small scroll interval. + scrollParentY.current.scroll({ + top: newTop }); - return; } - html = await window.navigator.clipboard.readText(); - } catch (error) { - // Possibly the permission is denied. - createErrorNotice((0,external_wp_i18n_namespaceObject.__)('Unable to paste styles. Please allow browser clipboard permissions before continuing.'), { - type: 'snackbar' - }); - return; - } - - // Abort if the copied text is empty or doesn't look like serialized blocks. - if (!html || !hasSerializedBlocks(html)) { - createWarningNotice((0,external_wp_i18n_namespaceObject.__)("Unable to paste styles. Block styles couldn't be found within the copied content."), { - type: 'snackbar' - }); + }, SCROLL_INTERVAL_MS); + }, []); + const scrollOnDragOver = (0,external_wp_element_namespaceObject.useCallback)(event => { + if (!scrollParentY.current) { return; } - const copiedBlocks = (0,external_wp_blocks_namespaceObject.parse)(html); - if (copiedBlocks.length === 1) { - // Apply styles of the block to all the target blocks. - registry.batch(() => { - recursivelyUpdateBlockAttributes(targetBlocks, targetBlocks.map(() => copiedBlocks[0]), updateBlockAttributes); - }); + const scrollParentHeight = scrollParentY.current.offsetHeight; + const offsetDragStartPosition = dragStartY.current - scrollParentY.current.offsetTop; + const offsetDragPosition = event.clientY - scrollParentY.current.offsetTop; + if (event.clientY > offsetDragStartPosition) { + // User is dragging downwards. + const moveableDistance = Math.max(scrollParentHeight - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); + const dragDistance = Math.max(offsetDragPosition - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); + const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance; + velocityY.current = VELOCITY_MULTIPLIER * distancePercentage; + } else if (event.clientY < offsetDragStartPosition) { + // User is dragging upwards. + const moveableDistance = Math.max(offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); + const dragDistance = Math.max(offsetDragStartPosition - offsetDragPosition - SCROLL_INACTIVE_DISTANCE_PX, 0); + const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance; + velocityY.current = -VELOCITY_MULTIPLIER * distancePercentage; } else { - registry.batch(() => { - recursivelyUpdateBlockAttributes(targetBlocks, copiedBlocks, updateBlockAttributes); - }); + velocityY.current = 0; } - if (targetBlocks.length === 1) { - const title = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlocks[0].name)?.title; - createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: Name of the block being pasted, e.g. "Paragraph". - (0,external_wp_i18n_namespaceObject.__)('Pasted styles to %s.'), title), { - type: 'snackbar' - }); - } else { - createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( - // Translators: The number of the blocks. - (0,external_wp_i18n_namespaceObject.__)('Pasted styles to %d blocks.'), targetBlocks.length), { - type: 'snackbar' - }); + }, []); + const stopScrolling = () => { + dragStartY.current = null; + scrollParentY.current = null; + if (scrollEditorInterval.current) { + clearInterval(scrollEditorInterval.current); + scrollEditorInterval.current = null; } - }, [registry.batch, updateBlockAttributes, createSuccessNotice, createWarningNotice, createErrorNotice]); + }; + return [startScrolling, scrollOnDragOver, stopScrolling]; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-actions/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/index.js + /** * WordPress dependencies */ + + /** * Internal dependencies */ -function BlockActions({ - clientIds, +const BlockDraggable = ({ children, - __experimentalUpdateSelection: updateSelection -}) { - const { - canInsertBlockType, - getBlockRootClientId, - getBlocksByClientId, - canMoveBlocks, - canRemoveBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(store); + clientIds, + cloneClassname, + onDragStart, + onDragEnd +}) => { const { - getDefaultBlockName, - getGroupingBlockName - } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); - const blocks = getBlocksByClientId(clientIds); - const rootClientId = getBlockRootClientId(clientIds[0]); - const canCopyStyles = blocks.every(block => { - return !!block && ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'color') || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'typography')); - }); - const canDuplicate = blocks.every(block => { - return !!block && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId); - }); - const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId); - const canMove = canMoveBlocks(clientIds, rootClientId); - const canRemove = canRemoveBlocks(clientIds, rootClientId); + srcRootClientId, + isDraggable, + icon + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + canMoveBlocks, + getBlockRootClientId, + getBlockName, + getBlockAttributes + } = select(store); + const { + getBlockType, + getActiveBlockVariation + } = select(external_wp_blocks_namespaceObject.store); + const rootClientId = getBlockRootClientId(clientIds[0]); + const blockName = getBlockName(clientIds[0]); + const variation = getActiveBlockVariation(blockName, getBlockAttributes(clientIds[0])); + return { + srcRootClientId: rootClientId, + isDraggable: canMoveBlocks(clientIds, rootClientId), + icon: variation?.icon || getBlockType(blockName)?.icon + }; + }, [clientIds]); + const isDragging = (0,external_wp_element_namespaceObject.useRef)(false); + const [startScrolling, scrollOnDragOver, stopScrolling] = useScrollWhenDragging(); const { - removeBlocks, - replaceBlocks, - duplicateBlocks, - insertAfterBlock, - insertBeforeBlock, - flashBlock, - setBlockMovingClientId, - setNavigationMode, - selectBlock + startDraggingBlocks, + stopDraggingBlocks } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const notifyCopy = useNotifyCopy(); - const pasteStyles = usePasteStyles(); - return children({ - canCopyStyles, - canDuplicate, - canInsertDefaultBlock, - canMove, - canRemove, - rootClientId, - blocks, - onDuplicate() { - return duplicateBlocks(clientIds, updateSelection); - }, - onRemove() { - return removeBlocks(clientIds, updateSelection); - }, - onInsertBefore() { - const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId; - insertBeforeBlock(clientId); - }, - onInsertAfter() { - const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId; - insertAfterBlock(clientId); - }, - onMoveTo() { - setNavigationMode(true); - selectBlock(clientIds[0]); - setBlockMovingClientId(clientIds[0]); - }, - onGroup() { - if (!blocks.length) { - return; - } - const groupingBlockName = getGroupingBlockName(); - // Activate the `transform` on `core/group` which does the conversion. - const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, groupingBlockName); - if (!newBlocks) { - return; - } - replaceBlocks(clientIds, newBlocks); - }, - onUngroup() { - if (!blocks.length) { - return; - } - const innerBlocks = blocks[0].innerBlocks; - if (!innerBlocks.length) { - return; + // Stop dragging blocks if the block draggable is unmounted. + (0,external_wp_element_namespaceObject.useEffect)(() => { + return () => { + if (isDragging.current) { + stopDraggingBlocks(); } - replaceBlocks(clientIds, innerBlocks); + }; + }, []); + if (!isDraggable) { + return children({ + draggable: false + }); + } + const transferData = { + type: 'block', + srcClientIds: clientIds, + srcRootClientId + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Draggable, { + cloneClassname: cloneClassname, + __experimentalTransferDataType: "wp-blocks", + transferData: transferData, + onDragStart: event => { + // Defer hiding the dragged source element to the next + // frame to enable dragging. + window.requestAnimationFrame(() => { + startDraggingBlocks(clientIds); + isDragging.current = true; + startScrolling(event); + if (onDragStart) { + onDragStart(); + } + }); }, - onCopy() { - const selectedBlockClientIds = blocks.map(({ - clientId - }) => clientId); - if (blocks.length === 1) { - flashBlock(selectedBlockClientIds[0]); + onDragOver: scrollOnDragOver, + onDragEnd: () => { + stopDraggingBlocks(); + isDragging.current = false; + stopScrolling(); + if (onDragEnd) { + onDragEnd(); } - notifyCopy('copy', selectedBlockClientIds); }, - async onPasteStyles() { - await pasteStyles(blocks); - } + __experimentalDragComponent: (0,external_wp_element_namespaceObject.createElement)(BlockDraggableChip, { + count: clientIds.length, + icon: icon + }) + }, ({ + onDraggableStart, + onDraggableEnd + }) => { + return children({ + draggable: true, + onDragStart: onDraggableStart, + onDragEnd: onDraggableEnd + }); }); -} +}; +/* harmony default export */ var block_draggable = (BlockDraggable); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-html-convert-button.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block-contents.js /** - * WordPress dependencies + * External dependencies */ +/** + * WordPress dependencies + */ @@ -53817,37 +47479,165 @@ function BlockActions({ * Internal dependencies */ -function BlockHTMLConvertButton({ - clientId -}) { - const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlock(clientId), [clientId]); + + + +const ListViewBlockContents = (0,external_wp_element_namespaceObject.forwardRef)(({ + onClick, + onToggleExpanded, + block, + isSelected, + position, + siblingBlockCount, + level, + isExpanded, + selectedClientIds, + ...props +}, ref) => { const { - replaceBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - if (!block || block.name !== 'core/html') { - return null; + clientId + } = block; + const { + blockMovingClientId, + selectedBlockInBlockEditor + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + hasBlockMovingClientId, + getSelectedBlockClientId + } = select(store); + return { + blockMovingClientId: hasBlockMovingClientId(), + selectedBlockInBlockEditor: getSelectedBlockClientId() + }; + }, []); + const { + AdditionalBlockContent, + insertedBlock, + setInsertedBlock + } = useListViewContext(); + const isBlockMoveTarget = blockMovingClientId && selectedBlockInBlockEditor === clientId; + const className = classnames_default()('block-editor-list-view-block-contents', { + 'is-dropping-before': isBlockMoveTarget + }); + + // Only include all selected blocks if the currently clicked on block + // is one of the selected blocks. This ensures that if a user attempts + // to drag a block that isn't part of the selection, they're still able + // to drag it and rearrange its position. + const draggableClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId]; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, AdditionalBlockContent && (0,external_wp_element_namespaceObject.createElement)(AdditionalBlockContent, { + block: block, + insertedBlock: insertedBlock, + setInsertedBlock: setInsertedBlock + }), (0,external_wp_element_namespaceObject.createElement)(block_draggable, { + clientIds: draggableClientIds + }, ({ + draggable, + onDragStart, + onDragEnd + }) => (0,external_wp_element_namespaceObject.createElement)(block_select_button, { + ref: ref, + className: className, + block: block, + onClick: onClick, + onToggleExpanded: onToggleExpanded, + isSelected: isSelected, + position: position, + siblingBlockCount: siblingBlockCount, + level: level, + draggable: draggable, + onDragStart: onDragStart, + onDragEnd: onDragEnd, + isExpanded: isExpanded, + ...props + }))); +}); +/* harmony default export */ var block_contents = (ListViewBlockContents); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/utils.js +/** + * WordPress dependencies + */ + + +const getBlockPositionDescription = (position, siblingCount, level) => (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */ +(0,external_wp_i18n_namespaceObject.__)('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level); + +/** + * Returns true if the client ID occurs within the block selection or multi-selection, + * or false otherwise. + * + * @param {string} clientId Block client ID. + * @param {string|string[]} selectedBlockClientIds Selected block client ID, or an array of multi-selected blocks client IDs. + * + * @return {boolean} Whether the block is in multi-selection set. + */ +const isClientIdSelected = (clientId, selectedBlockClientIds) => Array.isArray(selectedBlockClientIds) && selectedBlockClientIds.length ? selectedBlockClientIds.indexOf(clientId) !== -1 : selectedBlockClientIds === clientId; + +/** + * From a start and end clientId of potentially different nesting levels, + * return the nearest-depth ids that have a common level of depth in the + * nesting hierarchy. For multiple block selection, this ensure that the + * selection is always at the same nesting level, and not split across + * separate levels. + * + * @param {string} startId The first id of a selection. + * @param {string} endId The end id of a selection, usually one that has been clicked on. + * @param {string[]} startParents An array of ancestor ids for the start id, in descending order. + * @param {string[]} endParents An array of ancestor ids for the end id, in descending order. + * @return {Object} An object containing the start and end ids. + */ +function getCommonDepthClientIds(startId, endId, startParents, endParents) { + const startPath = [...startParents, startId]; + const endPath = [...endParents, endId]; + const depth = Math.min(startPath.length, endPath.length) - 1; + const start = startPath[depth]; + const end = endPath[depth]; + return { + start, + end + }; +} + +/** + * Shift focus to the list view item associated with a particular clientId. + * + * @typedef {import('@wordpress/element').RefObject} RefObject + * + * @param {string} focusClientId The client ID of the block to focus. + * @param {RefObject} treeGridElementRef The container element to search within. + */ +function focusListItem(focusClientId, treeGridElementRef) { + const getFocusElement = () => { + const row = treeGridElementRef.current?.querySelector(`[role=row][data-block="${focusClientId}"]`); + if (!row) return null; + // Focus the first focusable in the row, which is the ListViewBlockSelectButton. + return external_wp_dom_namespaceObject.focus.focusable.find(row)[0]; + }; + let focusElement = getFocusElement(); + if (focusElement) { + focusElement.focus(); + } else { + // The element hasn't been painted yet. Defer focusing on the next frame. + // This could happen when all blocks have been deleted and the default block + // hasn't been added to the editor yet. + window.requestAnimationFrame(() => { + focusElement = getFocusElement(); + + // Ignore if the element still doesn't exist. + if (focusElement) { + focusElement.focus(); + } + }); } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: () => replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({ - HTML: (0,external_wp_blocks_namespaceObject.getBlockContent)(block) - })) - }, (0,external_wp_i18n_namespaceObject.__)('Convert to Blocks')); } -/* harmony default export */ var block_html_convert_button = (BlockHTMLConvertButton); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-menu-first-item.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block.js + /** - * WordPress dependencies + * External dependencies */ -const { - Fill: __unstableBlockSettingsMenuFirstItem, - Slot: block_settings_menu_first_item_Slot -} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableBlockSettingsMenuFirstItem'); -__unstableBlockSettingsMenuFirstItem.Slot = block_settings_menu_first_item_Slot; -/* harmony default export */ var block_settings_menu_first_item = (__unstableBlockSettingsMenuFirstItem); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-dropdown.js /** * WordPress dependencies @@ -53872,381 +47662,253 @@ __unstableBlockSettingsMenuFirstItem.Slot = block_settings_menu_first_item_Slot; -const block_settings_dropdown_POPOVER_PROPS = { - className: 'block-editor-block-settings-menu__popover', - placement: 'bottom-start' -}; -function CopyMenuItem({ - blocks, - onCopy, - label -}) { - const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(() => (0,external_wp_blocks_namespaceObject.serialize)(blocks), onCopy); - const copyMenuItemLabel = label ? label : (0,external_wp_i18n_namespaceObject.__)('Copy'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - ref: ref - }, copyMenuItemLabel); -} -function ParentSelectorMenuItem({ - parentClientId, - parentBlockType -}) { - const isSmallViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); - const { - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - // Allows highlighting the parent block outline when focusing or hovering - // the parent block selector within the child. - const menuItemRef = (0,external_wp_element_namespaceObject.useRef)(); - const gesturesProps = useShowHoveredOrFocusedGestures({ - ref: menuItemRef, - highlightParent: true - }); - if (!isSmallViewport) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - ...gesturesProps, - ref: menuItemRef, - icon: (0,external_React_.createElement)(block_icon, { - icon: parentBlockType.icon - }), - onClick: () => selectBlock(parentClientId) - }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block's parent. */ - (0,external_wp_i18n_namespaceObject.__)('Select parent block (%s)'), parentBlockType.title)); -} -function BlockSettingsDropdown({ - block, - clientIds, - __experimentalSelectBlock, - children, - __unstableDisplayLocation, - ...props + +function ListViewBlock({ + block: { + clientId + }, + isDragged, + isSelected, + isBranchSelected, + selectBlock, + position, + level, + rowCount, + siblingBlockCount, + showBlockMovers, + path, + isExpanded, + selectedClientIds, + isSyncedBranch }) { - // Get the client id of the current block for this menu, if one is set. - const currentClientId = block?.clientId; - const blockClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; - const count = blockClientIds.length; - const firstBlockClientId = blockClientIds[0]; + const cellRef = (0,external_wp_element_namespaceObject.useRef)(null); + const rowRef = (0,external_wp_element_namespaceObject.useRef)(null); + const [isHovered, setIsHovered] = (0,external_wp_element_namespaceObject.useState)(false); const { - firstParentClientId, - onlyBlock, - parentBlockType, - previousBlockClientId, - selectedBlockClientIds - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockCount, - getBlockName, - getBlockRootClientId, - getPreviousBlockClientId, - getSelectedBlockClientIds, - getBlockAttributes - } = select(store); - const { - getActiveBlockVariation - } = select(external_wp_blocks_namespaceObject.store); - const _firstParentClientId = getBlockRootClientId(firstBlockClientId); - const parentBlockName = _firstParentClientId && getBlockName(_firstParentClientId); - return { - firstParentClientId: _firstParentClientId, - onlyBlock: 1 === getBlockCount(_firstParentClientId), - parentBlockType: _firstParentClientId && (getActiveBlockVariation(parentBlockName, getBlockAttributes(_firstParentClientId)) || (0,external_wp_blocks_namespaceObject.getBlockType)(parentBlockName)), - previousBlockClientId: getPreviousBlockClientId(firstBlockClientId), - selectedBlockClientIds: getSelectedBlockClientIds() - }; - }, [firstBlockClientId]); + isLocked, + canEdit + } = useBlockLock(clientId); + const isFirstSelectedBlock = isSelected && selectedClientIds[0] === clientId; + const isLastSelectedBlock = isSelected && selectedClientIds[selectedClientIds.length - 1] === clientId; const { - getBlockOrder, - getSelectedBlockClientIds - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const openedBlockSettingsMenu = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getOpenedBlockSettingsMenu(), []); + toggleBlockHighlight + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const blockInformation = useBlockDisplayInformation(clientId); + const blockTitle = blockInformation?.name || blockInformation?.title || (0,external_wp_i18n_namespaceObject.__)('Untitled'); + const block = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlock(clientId), [clientId]); + const blockName = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockName(clientId), [clientId]); + const blockEditingMode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlockEditingMode(clientId), [clientId]); + const showBlockActions = + // When a block hides its toolbar it also hides the block settings menu, + // since that menu is part of the toolbar in the editor canvas. + // List View respects this by also hiding the block settings menu. + (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, '__experimentalToolbar', true) && + // Don't show the settings menu if block is disabled or content only. + blockEditingMode === 'default'; + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ListViewBlock); + const descriptionId = `list-view-block-select-button__${instanceId}`; + const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level); + const blockAriaLabel = isLocked ? (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: The title of the block. This string indicates a link to select the locked block. + (0,external_wp_i18n_namespaceObject.__)('%s (locked)'), blockTitle) : blockTitle; + const settingsAriaLabel = (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: The title of the block. + (0,external_wp_i18n_namespaceObject.__)('Options for %s'), blockTitle); const { - setOpenedBlockSettingsMenu - } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); - const shortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getShortcutRepresentation - } = select(external_wp_keyboardShortcuts_namespaceObject.store); - return { - duplicate: getShortcutRepresentation('core/block-editor/duplicate'), - remove: getShortcutRepresentation('core/block-editor/remove'), - insertAfter: getShortcutRepresentation('core/block-editor/insert-after'), - insertBefore: getShortcutRepresentation('core/block-editor/insert-before') - }; - }, []); - const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); - const hasSelectedBlocks = selectedBlockClientIds.length > 0; - const updateSelectionAfterDuplicate = (0,external_wp_element_namespaceObject.useCallback)(async clientIdsPromise => { - if (__experimentalSelectBlock) { - const ids = await clientIdsPromise; - if (ids && ids[0]) { - __experimentalSelectBlock(ids[0], false); - } - } - }, [__experimentalSelectBlock]); - const updateSelectionAfterRemove = (0,external_wp_element_namespaceObject.useCallback)(() => { - if (__experimentalSelectBlock) { - let blockToFocus = previousBlockClientId || firstParentClientId; - - // Focus the first block if there's no previous block nor parent block. - if (!blockToFocus) { - blockToFocus = getBlockOrder()[0]; - } + expand, + collapse, + BlockSettingsMenu, + listViewInstanceId, + expandedState, + setInsertedBlock, + treeGridElementRef + } = useListViewContext(); + const hasSiblings = siblingBlockCount > 0; + const hasRenderedMovers = showBlockMovers && hasSiblings; + const moverCellClassName = classnames_default()('block-editor-list-view-block__mover-cell', { + 'is-visible': isHovered || isSelected + }); + const listViewBlockSettingsClassName = classnames_default()('block-editor-list-view-block__menu-cell', { + 'is-visible': isHovered || isFirstSelectedBlock + }); - // Only update the selection if the original selection is removed. - const shouldUpdateSelection = hasSelectedBlocks && getSelectedBlockClientIds().length === 0; - __experimentalSelectBlock(blockToFocus, shouldUpdateSelection); + // If multiple blocks are selected, deselect all blocks when the user + // presses the escape key. + const onKeyDown = event => { + if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented && selectedClientIds.length > 0) { + event.stopPropagation(); + event.preventDefault(); + selectBlock(event, undefined); } - }, [__experimentalSelectBlock, previousBlockClientId, firstParentClientId, getBlockOrder, hasSelectedBlocks, getSelectedBlockClientIds]); - - // This can occur when the selected block (the parent) - // displays child blocks within a List View. - const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId); - - // When a currentClientId is in use, treat the menu as a controlled component. - // This ensures that only one block settings menu is open at a time. - // This is a temporary solution to work around an issue with `onFocusOutside` - // where it does not allow a dropdown to be closed if focus was never within - // the dropdown to begin with. Examples include a user either CMD+Clicking or - // right clicking into an inactive window. - // See: https://github.com/WordPress/gutenberg/pull/54083 - const open = !currentClientId ? undefined : openedBlockSettingsMenu === currentClientId || false; - const onToggle = (0,external_wp_element_namespaceObject.useCallback)(localOpen => { - if (localOpen && openedBlockSettingsMenu !== currentClientId) { - setOpenedBlockSettingsMenu(currentClientId); - } else if (!localOpen && openedBlockSettingsMenu && openedBlockSettingsMenu === currentClientId) { - setOpenedBlockSettingsMenu(undefined); + }; + const onMouseEnter = (0,external_wp_element_namespaceObject.useCallback)(() => { + setIsHovered(true); + toggleBlockHighlight(clientId, true); + }, [clientId, setIsHovered, toggleBlockHighlight]); + const onMouseLeave = (0,external_wp_element_namespaceObject.useCallback)(() => { + setIsHovered(false); + toggleBlockHighlight(clientId, false); + }, [clientId, setIsHovered, toggleBlockHighlight]); + const selectEditorBlock = (0,external_wp_element_namespaceObject.useCallback)(event => { + selectBlock(event, clientId); + event.preventDefault(); + }, [clientId, selectBlock]); + const updateFocusAndSelection = (0,external_wp_element_namespaceObject.useCallback)((focusClientId, shouldSelectBlock) => { + if (shouldSelectBlock) { + selectBlock(undefined, focusClientId, null, null); } - }, [currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu]); - return (0,external_React_.createElement)(BlockActions, { - clientIds: clientIds, - __experimentalUpdateSelection: !__experimentalSelectBlock - }, ({ - canCopyStyles, - canDuplicate, - canInsertDefaultBlock, - canMove, - canRemove, - onDuplicate, - onInsertAfter, - onInsertBefore, - onRemove, - onCopy, - onPasteStyles, - onMoveTo, - blocks - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - icon: more_vertical, - label: (0,external_wp_i18n_namespaceObject.__)('Options'), - className: "block-editor-block-settings-menu", - popoverProps: block_settings_dropdown_POPOVER_PROPS, - open: open, - onToggle: onToggle, - noIcons: true, - menuProps: { - /** - * @param {KeyboardEvent} event - */ - onKeyDown(event) { - if (event.defaultPrevented) return; - if (isMatch('core/block-editor/remove', event) && canRemove) { - event.preventDefault(); - updateSelectionAfterRemove(onRemove()); - } else if (isMatch('core/block-editor/duplicate', event) && canDuplicate) { - event.preventDefault(); - updateSelectionAfterDuplicate(onDuplicate()); - } else if (isMatch('core/block-editor/insert-after', event) && canInsertDefaultBlock) { - event.preventDefault(); - setOpenedBlockSettingsMenu(undefined); - onInsertAfter(); - } else if (isMatch('core/block-editor/insert-before', event) && canInsertDefaultBlock) { - event.preventDefault(); - setOpenedBlockSettingsMenu(undefined); - onInsertBefore(); - } - } - }, - ...props - }, ({ - onClose - }) => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(block_settings_menu_first_item.Slot, { - fillProps: { - onClose + focusListItem(focusClientId, treeGridElementRef); + }, [selectBlock, treeGridElementRef]); + const toggleExpanded = (0,external_wp_element_namespaceObject.useCallback)(event => { + // Prevent shift+click from opening link in a new window when toggling. + event.preventDefault(); + event.stopPropagation(); + if (isExpanded === true) { + collapse(clientId); + } else if (isExpanded === false) { + expand(clientId); } - }), !parentBlockIsSelected && !!firstParentClientId && (0,external_React_.createElement)(ParentSelectorMenuItem, { - parentClientId: firstParentClientId, - parentBlockType: parentBlockType - }), count === 1 && (0,external_React_.createElement)(block_html_convert_button, { - clientId: firstBlockClientId - }), (0,external_React_.createElement)(CopyMenuItem, { - blocks: blocks, - onCopy: onCopy - }), canDuplicate && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onDuplicate, updateSelectionAfterDuplicate), - shortcut: shortcuts.duplicate - }, (0,external_wp_i18n_namespaceObject.__)('Duplicate')), canInsertDefaultBlock && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onInsertBefore), - shortcut: shortcuts.insertBefore - }, (0,external_wp_i18n_namespaceObject.__)('Add before')), (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onInsertAfter), - shortcut: shortcuts.insertAfter - }, (0,external_wp_i18n_namespaceObject.__)('Add after')))), canCopyStyles && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(CopyMenuItem, { - blocks: blocks, - onCopy: onCopy, - label: (0,external_wp_i18n_namespaceObject.__)('Copy styles') - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: onPasteStyles - }, (0,external_wp_i18n_namespaceObject.__)('Paste styles'))), (0,external_React_.createElement)(block_settings_menu_controls.Slot, { - fillProps: { - onClose, - canMove, - onMoveTo, - onlyBlock, - count, - firstBlockClientId - }, - clientIds: clientIds, - __unstableDisplayLocation: __unstableDisplayLocation - }), typeof children === 'function' ? children({ - onClose - }) : external_wp_element_namespaceObject.Children.map(child => (0,external_wp_element_namespaceObject.cloneElement)(child, { - onClose - })), canRemove && (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onRemove, updateSelectionAfterRemove), - shortcut: shortcuts.remove - }, (0,external_wp_i18n_namespaceObject.__)('Delete')))))); -} -/* harmony default export */ var block_settings_dropdown = (BlockSettingsDropdown); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/index.js - -/** - * WordPress dependencies - */ + }, [clientId, expand, collapse, isExpanded]); + let colSpan; + if (hasRenderedMovers) { + colSpan = 2; + } else if (!showBlockActions) { + colSpan = 3; + } + const classes = classnames_default()({ + 'is-selected': isSelected, + 'is-first-selected': isFirstSelectedBlock, + 'is-last-selected': isLastSelectedBlock, + 'is-branch-selected': isBranchSelected, + 'is-synced-branch': isSyncedBranch, + 'is-dragging': isDragged, + 'has-single-cell': !showBlockActions, + 'is-synced': blockInformation?.isSynced + }); + // Only include all selected blocks if the currently clicked on block + // is one of the selected blocks. This ensures that if a user attempts + // to alter a block that isn't part of the selection, they're still able + // to do so. + const dropdownClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId]; -/** - * Internal dependencies - */ + // Pass in a ref to the row, so that it can be scrolled + // into view when selected. For long lists, the placeholder for the + // selected block is also observed, within ListViewLeafPlaceholder. + useListViewScrollIntoView({ + isSelected, + rowItemRef: rowRef, + selectedClientIds + }); -function BlockSettingsMenu({ - clientIds, - ...props -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_React_.createElement)(block_settings_dropdown, { - clientIds: clientIds, - toggleProps: toggleProps, - ...props + // Detect if there is a block in the canvas currently being edited and multi-selection is not happening. + const currentlyEditingBlockInCanvas = isSelected && selectedClientIds.length === 1; + return (0,external_wp_element_namespaceObject.createElement)(leaf, { + className: classes, + onKeyDown: onKeyDown, + onMouseEnter: onMouseEnter, + onMouseLeave: onMouseLeave, + onFocus: onMouseEnter, + onBlur: onMouseLeave, + level: level, + position: position, + rowCount: rowCount, + path: path, + id: `list-view-${listViewInstanceId}-block-${clientId}`, + "data-block": clientId, + "data-expanded": canEdit ? isExpanded : undefined, + ref: rowRef + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { + className: "block-editor-list-view-block__contents-cell", + colSpan: colSpan, + ref: cellRef, + "aria-selected": !!isSelected + }, ({ + ref, + tabIndex, + onFocus + }) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-list-view-block__contents-container" + }, (0,external_wp_element_namespaceObject.createElement)(block_contents, { + block: block, + onClick: selectEditorBlock, + onToggleExpanded: toggleExpanded, + isSelected: isSelected, + position: position, + siblingBlockCount: siblingBlockCount, + level: level, + ref: ref, + tabIndex: currentlyEditingBlockInCanvas ? 0 : tabIndex, + onFocus: onFocus, + isExpanded: canEdit ? isExpanded : undefined, + selectedClientIds: selectedClientIds, + ariaLabel: blockAriaLabel, + ariaDescribedBy: descriptionId, + updateFocusAndSelection: updateFocusAndSelection + }), (0,external_wp_element_namespaceObject.createElement)(AriaReferencedText, { + id: descriptionId + }, blockPositionDescription))), hasRenderedMovers && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { + className: moverCellClassName, + withoutGridItem: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridItem, null, ({ + ref, + tabIndex, + onFocus + }) => (0,external_wp_element_namespaceObject.createElement)(BlockMoverUpButton, { + orientation: "vertical", + clientIds: [clientId], + ref: ref, + tabIndex: tabIndex, + onFocus: onFocus + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridItem, null, ({ + ref, + tabIndex, + onFocus + }) => (0,external_wp_element_namespaceObject.createElement)(BlockMoverDownButton, { + orientation: "vertical", + clientIds: [clientId], + ref: ref, + tabIndex: tabIndex, + onFocus: onFocus + })))), showBlockActions && BlockSettingsMenu && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { + className: listViewBlockSettingsClassName, + "aria-selected": !!isSelected + }, ({ + ref, + tabIndex, + onFocus + }) => (0,external_wp_element_namespaceObject.createElement)(BlockSettingsMenu, { + clientIds: dropdownClientIds, + block: block, + icon: more_vertical, + label: settingsAriaLabel, + toggleProps: { + ref, + className: 'block-editor-list-view-block__menu', + tabIndex, + onFocus + }, + disableOpenOnArrowDown: true, + expand: expand, + expandedState: expandedState, + setInsertedBlock: setInsertedBlock, + __experimentalSelectBlock: updateFocusAndSelection }))); } -/* harmony default export */ var block_settings_menu = (BlockSettingsMenu); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/toolbar.js - -/** - * WordPress dependencies - */ - - - - - -/** - * Internal dependencies - */ - - -function BlockLockToolbar({ - clientId -}) { - const { - canLock, - isLocked - } = useBlockLock(clientId); - const [isModalOpen, toggleModal] = (0,external_wp_element_namespaceObject.useReducer)(isActive => !isActive, false); - const hasLockButtonShown = (0,external_wp_element_namespaceObject.useRef)(false); - - // If the block lock button has been shown, we don't want to remove it - // from the toolbar until the toolbar is rendered again without it. - // Removing it beforehand can cause focus loss issues, such as when - // unlocking the block from the modal. It needs to return focus from - // whence it came, and to do that, we need to leave the button in the toolbar. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (isLocked) { - hasLockButtonShown.current = true; - } - }, [isLocked]); - if (!isLocked && !hasLockButtonShown.current) { - return null; - } - let label = isLocked ? (0,external_wp_i18n_namespaceObject.__)('Unlock') : (0,external_wp_i18n_namespaceObject.__)('Lock'); - if (!canLock && isLocked) { - label = (0,external_wp_i18n_namespaceObject.__)('Locked'); - } - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { - className: "block-editor-block-lock-toolbar" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - accessibleWhenDisabled: true, - disabled: !canLock, - icon: isLocked ? library_lock : library_unlock, - label: label, - onClick: toggleModal, - "aria-expanded": isModalOpen, - "aria-haspopup": "dialog" - })), isModalOpen && (0,external_React_.createElement)(BlockLockModal, { - clientId: clientId, - onClose: toggleModal - })); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js - -/** - * WordPress dependencies - */ - -const group_group = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z" -})); -/* harmony default export */ var library_group = (group_group); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js - -/** - * WordPress dependencies - */ - -const row = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M4 6.5h5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H4V16h5a.5.5 0 0 0 .5-.5v-7A.5.5 0 0 0 9 8H4V6.5Zm16 0h-5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h5V16h-5a.5.5 0 0 1-.5-.5v-7A.5.5 0 0 1 15 8h5V6.5Z" -})); -/* harmony default export */ var library_row = (row); +/* harmony default export */ var list_view_block = ((0,external_wp_element_namespaceObject.memo)(ListViewBlock)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/branch.js /** * WordPress dependencies */ -const stack = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17.5 4v5a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V4H8v5a.5.5 0 0 0 .5.5h7A.5.5 0 0 0 16 9V4h1.5Zm0 16v-5a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v5H8v-5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v5h1.5Z" -})); -/* harmony default export */ var library_stack = (stack); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/toolbar.js + /** - * WordPress dependencies + * Internal dependencies */ @@ -54254,94 +47916,168 @@ const stack = (0,external_React_.createElement)(external_wp_primitives_namespace + /** - * Internal dependencies + * Given a block, returns the total number of blocks in that subtree. This is used to help determine + * the list position of a block. + * + * When a block is collapsed, we do not count their children as part of that total. In the current drag + * implementation dragged blocks and their children are not counted. + * + * @param {Object} block block tree + * @param {Object} expandedState state that notes which branches are collapsed + * @param {Array} draggedClientIds a list of dragged client ids + * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state. + * @return {number} block count */ - - -const layouts = { - group: { - type: 'constrained' - }, - row: { - type: 'flex', - flexWrap: 'nowrap' - }, - stack: { - type: 'flex', - orientation: 'vertical' +function countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault) { + var _expandedState$block$; + const isDragged = draggedClientIds?.includes(block.clientId); + if (isDragged) { + return 0; + } + const isExpanded = (_expandedState$block$ = expandedState[block.clientId]) !== null && _expandedState$block$ !== void 0 ? _expandedState$block$ : isExpandedByDefault; + if (isExpanded) { + return 1 + block.innerBlocks.reduce(countReducer(expandedState, draggedClientIds, isExpandedByDefault), 0); + } + return 1; +} +const countReducer = (expandedState, draggedClientIds, isExpandedByDefault) => (count, block) => { + var _expandedState$block$2; + const isDragged = draggedClientIds?.includes(block.clientId); + if (isDragged) { + return count; + } + const isExpanded = (_expandedState$block$2 = expandedState[block.clientId]) !== null && _expandedState$block$2 !== void 0 ? _expandedState$block$2 : isExpandedByDefault; + if (isExpanded && block.innerBlocks.length > 0) { + return count + countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault); } + return count + 1; }; -function BlockGroupToolbar() { - const { - blocksSelection, - clientIds, - groupingBlockName, - isGroupable - } = useConvertToGroupButtonProps(); +const branch_noop = () => {}; +function ListViewBranch(props) { const { - replaceBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); + blocks, + selectBlock = branch_noop, + showBlockMovers, + selectedClientIds, + level = 1, + path = '', + isBranchDragged = false, + isBranchSelected = false, + listPosition = 0, + fixedListWindow, + isExpanded, + parentId, + shouldShowInnerBlocks = true, + isSyncedBranch = false, + showAppender: showAppenderProp = true + } = props; + const parentBlockInformation = useBlockDisplayInformation(parentId); + const syncedBranch = isSyncedBranch || !!parentBlockInformation?.isSynced; + const canParentExpand = (0,external_wp_data_namespaceObject.useSelect)(select => { + if (!parentId) { + return true; + } + return select(store).canEditBlock(parentId); + }, [parentId]); const { - canRemove, - variations - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - canRemoveBlocks - } = select(store); + expandedState, + draggedClientIds + } = useListViewContext(); + if (!canParentExpand) { + return null; + } + + // Only show the appender at the first level. + const showAppender = showAppenderProp && level === 1; + const filteredBlocks = blocks.filter(Boolean); + const blockCount = filteredBlocks.length; + // The appender means an extra row in List View, so add 1 to the row count. + const rowCount = showAppender ? blockCount + 1 : blockCount; + let nextPosition = listPosition; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, filteredBlocks.map((block, index) => { + var _expandedState$client; const { - getBlockVariations - } = select(external_wp_blocks_namespaceObject.store); - return { - canRemove: canRemoveBlocks(clientIds), - variations: getBlockVariations(groupingBlockName, 'transform') - }; - }, [clientIds, groupingBlockName]); - const onConvertToGroup = layout => { - const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocksSelection, groupingBlockName); - if (typeof layout !== 'string') { - layout = 'group'; - } - if (newBlocks && newBlocks.length > 0) { - // Because the block is not in the store yet we can't use - // updateBlockAttributes so need to manually update attributes. - newBlocks[0].attributes.layout = layouts[layout]; - replaceBlocks(clientIds, newBlocks); + clientId, + innerBlocks + } = block; + if (index > 0) { + nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded); } - }; - const onConvertToRow = () => onConvertToGroup('row'); - const onConvertToStack = () => onConvertToGroup('stack'); + const { + itemInView + } = fixedListWindow; + const blockInView = itemInView(nextPosition); + const position = index + 1; + const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`; + const hasNestedBlocks = !!innerBlocks?.length; + const shouldExpand = hasNestedBlocks && shouldShowInnerBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined; + const isDragged = !!draggedClientIds?.includes(clientId); - // Don't render the button if the current selection cannot be grouped. - // A good example is selecting multiple button blocks within a Buttons block: - // The group block is not a valid child of Buttons, so we should not show the button. - // Any blocks that are locked against removal also cannot be grouped. - if (!isGroupable || !canRemove) { - return null; - } - const canInsertRow = !!variations.find(({ - name - }) => name === 'group-row'); - const canInsertStack = !!variations.find(({ - name - }) => name === 'group-stack'); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: library_group, - label: (0,external_wp_i18n_namespaceObject._x)('Group', 'verb'), - onClick: onConvertToGroup - }), canInsertRow && (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: library_row, - label: (0,external_wp_i18n_namespaceObject._x)('Row', 'single horizontal line'), - onClick: onConvertToRow - }), canInsertStack && (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: library_stack, - label: (0,external_wp_i18n_namespaceObject._x)('Stack', 'verb'), - onClick: onConvertToStack - })); + // Make updates to the selected or dragged blocks synchronous, + // but asynchronous for any other block. + const isSelected = isClientIdSelected(clientId, selectedClientIds); + const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks; + + // To avoid performance issues, we only render blocks that are in view, + // or blocks that are selected or dragged. If a block is selected, + // it is only counted if it is the first of the block selection. + // This prevents the entire tree from being rendered when a branch is + // selected, or a user selects all blocks, while still enabling scroll + // into view behavior when selecting a block or opening the list view. + const showBlock = isDragged || blockInView || isBranchDragged || isSelected && clientId === selectedClientIds[0]; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { + key: clientId, + value: !isSelected + }, showBlock && (0,external_wp_element_namespaceObject.createElement)(list_view_block, { + block: block, + selectBlock: selectBlock, + isSelected: isSelected, + isBranchSelected: isSelectedBranch, + isDragged: isDragged || isBranchDragged, + level: level, + position: position, + rowCount: rowCount, + siblingBlockCount: blockCount, + showBlockMovers: showBlockMovers, + path: updatedPath, + isExpanded: shouldExpand, + listPosition: nextPosition, + selectedClientIds: selectedClientIds, + isSyncedBranch: syncedBranch + }), !showBlock && (0,external_wp_element_namespaceObject.createElement)("tr", null, (0,external_wp_element_namespaceObject.createElement)("td", { + className: "block-editor-list-view-placeholder" + })), hasNestedBlocks && shouldExpand && (0,external_wp_element_namespaceObject.createElement)(ListViewBranch, { + parentId: clientId, + blocks: innerBlocks, + selectBlock: selectBlock, + showBlockMovers: showBlockMovers, + level: level + 1, + path: updatedPath, + listPosition: nextPosition + 1, + fixedListWindow: fixedListWindow, + isBranchSelected: isSelectedBranch, + isBranchDragged: isDragged || isBranchDragged, + selectedClientIds: selectedClientIds, + isExpanded: isExpanded, + isSyncedBranch: syncedBranch + })); + }), showAppender && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridRow, { + level: level, + setSize: rowCount, + positionInSet: rowCount, + isExpanded: true + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, null, treeGridCellProps => (0,external_wp_element_namespaceObject.createElement)(Appender, { + clientId: parentId, + nestingLevel: level, + blockCount: blockCount, + ...treeGridCellProps + })))); } -/* harmony default export */ var toolbar = (BlockGroupToolbar); +/* harmony default export */ var branch = ((0,external_wp_element_namespaceObject.memo)(ListViewBranch)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit-visually-button/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/drop-indicator.js /** * WordPress dependencies @@ -54350,286 +48086,329 @@ function BlockGroupToolbar() { -/** - * Internal dependencies - */ - -function BlockEditVisuallyButton({ - clientIds +function ListViewDropIndicator({ + listViewRef, + blockDropTarget }) { - // Edit visually only works for single block selection. - const clientId = clientIds.length === 1 ? clientIds[0] : undefined; - const canEditVisually = (0,external_wp_data_namespaceObject.useSelect)(select => !!clientId && select(store).getBlockMode(clientId) === 'html', [clientId]); const { - toggleBlockMode - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - if (!canEditVisually) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - onClick: () => { - toggleBlockMode(clientId); + rootClientId, + clientId, + dropPosition + } = blockDropTarget || {}; + const [rootBlockElement, blockElement] = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!listViewRef.current) { + return []; } - }, (0,external_wp_i18n_namespaceObject.__)('Edit visually'))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/block-name-context.js -/** - * WordPress dependencies - */ - -const __unstableBlockNameContext = (0,external_wp_element_namespaceObject.createContext)(''); -/* harmony default export */ var block_name_context = (__unstableBlockNameContext); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/navigable-toolbar/index.js - -/** - * WordPress dependencies - */ - - + // The rootClientId will be defined whenever dropping into inner + // block lists, but is undefined when dropping at the root level. + const _rootBlockElement = rootClientId ? listViewRef.current.querySelector(`[data-block="${rootClientId}"]`) : undefined; + // The clientId represents the sibling block, the dragged block will + // usually be inserted adjacent to it. It will be undefined when + // dropping a block into an empty block list. + const _blockElement = clientId ? listViewRef.current.querySelector(`[data-block="${clientId}"]`) : undefined; + return [_rootBlockElement, _blockElement]; + }, [rootClientId, clientId]); + // The targetElement is the element that the drop indicator will appear + // before or after. When dropping into an empty block list, blockElement + // is undefined, so the indicator will appear after the rootBlockElement. + const targetElement = blockElement || rootBlockElement; + const rtl = (0,external_wp_i18n_namespaceObject.isRTL)(); + const getDropIndicatorIndent = (0,external_wp_element_namespaceObject.useCallback)(targetElementRect => { + if (!rootBlockElement) { + return 0; + } + // Calculate the indent using the block icon of the root block. + // Using a classname selector here might be flaky and could be + // improved. + const rootBlockIconElement = rootBlockElement.querySelector('.block-editor-block-icon'); + const rootBlockIconRect = rootBlockIconElement.getBoundingClientRect(); + return rtl ? targetElementRect.right - rootBlockIconRect.left : rootBlockIconRect.right - targetElementRect.left; + }, [rootBlockElement, rtl]); + const getDropIndicatorWidth = (0,external_wp_element_namespaceObject.useCallback)((targetElementRect, indent) => { + if (!targetElement) { + return 0; + } + // Default to assuming that the width of the drop indicator + // should be the same as the target element. + let width = targetElement.offsetWidth; -/** - * Internal dependencies - */ + // In deeply nested lists, where a scrollbar is present, + // the width of the drop indicator should be the width of + // the scroll container, minus the distance from the left + // edge of the scroll container to the left edge of the + // target element. + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(targetElement, 'horizontal'); + const ownerDocument = targetElement.ownerDocument; + const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; + if (scrollContainer && !windowScroll) { + const scrollContainerRect = scrollContainer.getBoundingClientRect(); + const distanceBetweenContainerAndTarget = (0,external_wp_i18n_namespaceObject.isRTL)() ? scrollContainerRect.right - targetElementRect.right : targetElementRect.left - scrollContainerRect.left; + const scrollContainerWidth = scrollContainer.clientWidth; + if (scrollContainerWidth < width + distanceBetweenContainerAndTarget) { + width = scrollContainerWidth - distanceBetweenContainerAndTarget; + } + // LTR logic for ensuring the drop indicator does not extend + // beyond the right edge of the scroll container. + if (!rtl && targetElementRect.left + indent < scrollContainerRect.left) { + width -= scrollContainerRect.left - targetElementRect.left; + return width; + } -function hasOnlyToolbarItem(elements) { - const dataProp = 'toolbarItem'; - return !elements.some(element => !(dataProp in element.dataset)); -} -function getAllFocusableToolbarItemsIn(container) { - return Array.from(container.querySelectorAll('[data-toolbar-item]:not([disabled]):not([aria-disabled="true"])')); -} -function hasFocusWithin(container) { - return container.contains(container.ownerDocument.activeElement); -} -function focusFirstTabbableIn(container) { - const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container); - if (firstTabbable) { - firstTabbable.focus({ - // When focusing newly mounted toolbars, - // the position of the popover is often not right on the first render - // This prevents the layout shifts when focusing the dialogs. - preventScroll: true - }); - } -} -function useIsAccessibleToolbar(toolbarRef) { - /* - * By default, we'll assume the starting accessible state of the Toolbar - * is true, as it seems to be the most common case. - * - * Transitioning from an (initial) false to true state causes the - * component to mount twice, which is causing undesired - * side-effects. These side-effects appear to only affect certain - * E2E tests. - * - * This was initial discovered in this pull-request: - * https://github.com/WordPress/gutenberg/pull/23425 - */ - const initialAccessibleToolbarState = true; + // RTL logic for ensuring the drop indicator does not extend + // beyond the right edge of the scroll container. + if (rtl && targetElementRect.right - indent > scrollContainerRect.right) { + width -= targetElementRect.right - scrollContainerRect.right; + return width; + } + } - // By default, it's gonna render NavigableMenu. If all the tabbable elements - // inside the toolbar are ToolbarItem components (or derived components like - // ToolbarButton), then we can wrap them with the accessible Toolbar - // component. - const [isAccessibleToolbar, setIsAccessibleToolbar] = (0,external_wp_element_namespaceObject.useState)(initialAccessibleToolbarState); - const determineIsAccessibleToolbar = (0,external_wp_element_namespaceObject.useCallback)(() => { - const tabbables = external_wp_dom_namespaceObject.focus.tabbable.find(toolbarRef.current); - const onlyToolbarItem = hasOnlyToolbarItem(tabbables); - if (!onlyToolbarItem) { - external_wp_deprecated_default()('Using custom components as toolbar controls', { - since: '5.6', - alternative: 'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components', - link: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols' - }); + // Subtract the indent from the final width of the indicator. + return width - indent; + }, [rtl, targetElement]); + const style = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!targetElement) { + return {}; } - setIsAccessibleToolbar(onlyToolbarItem); - }, [toolbarRef]); - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - // Toolbar buttons may be rendered asynchronously, so we use - // MutationObserver to check if the toolbar subtree has been modified. - const observer = new window.MutationObserver(determineIsAccessibleToolbar); - observer.observe(toolbarRef.current, { - childList: true, - subtree: true - }); - return () => observer.disconnect(); - }, [determineIsAccessibleToolbar, isAccessibleToolbar, toolbarRef]); - return isAccessibleToolbar; -} -function useToolbarFocus({ - toolbarRef, - focusOnMount, - isAccessibleToolbar, - defaultIndex, - onIndexChange, - shouldUseKeyboardFocusShortcut, - focusEditorOnEscape -}) { - // Make sure we don't use modified versions of this prop. - const [initialFocusOnMount] = (0,external_wp_element_namespaceObject.useState)(focusOnMount); - const [initialIndex] = (0,external_wp_element_namespaceObject.useState)(defaultIndex); - const focusToolbar = (0,external_wp_element_namespaceObject.useCallback)(() => { - focusFirstTabbableIn(toolbarRef.current); - }, [toolbarRef]); - const focusToolbarViaShortcut = () => { - if (shouldUseKeyboardFocusShortcut) { - focusToolbar(); + const targetElementRect = targetElement.getBoundingClientRect(); + const indent = getDropIndicatorIndent(targetElementRect); + return { + width: getDropIndicatorWidth(targetElementRect, indent) + }; + }, [getDropIndicatorIndent, getDropIndicatorWidth, targetElement]); + const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { + const isValidDropPosition = dropPosition === 'top' || dropPosition === 'bottom' || dropPosition === 'inside'; + if (!targetElement || !isValidDropPosition) { + return undefined; } - }; + return { + contextElement: targetElement, + getBoundingClientRect() { + const rect = targetElement.getBoundingClientRect(); + const indent = getDropIndicatorIndent(rect); + // In RTL languages, the drop indicator should be positioned + // to the left of the target element, with the width of the + // indicator determining the indent at the right edge of the + // target element. In LTR languages, the drop indicator should + // end at the right edge of the target element, with the indent + // added to the position of the left edge of the target element. + let left = rtl ? rect.left : rect.left + indent; + let top = 0; + let bottom = 0; - // Focus on toolbar when pressing alt+F10 when the toolbar is visible. - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/focus-toolbar', focusToolbarViaShortcut); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (initialFocusOnMount) { - focusToolbar(); - } - }, [isAccessibleToolbar, initialFocusOnMount, focusToolbar]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing - const navigableToolbarRef = toolbarRef.current; - // If initialIndex is passed, we focus on that toolbar item when the - // toolbar gets mounted and initial focus is not forced. - // We have to wait for the next browser paint because block controls aren't - // rendered right away when the toolbar gets mounted. - let raf = 0; - if (!initialFocusOnMount) { - raf = window.requestAnimationFrame(() => { - const items = getAllFocusableToolbarItemsIn(navigableToolbarRef); - const index = initialIndex || 0; - if (items[index] && hasFocusWithin(navigableToolbarRef)) { - items[index].focus({ - // When focusing newly mounted toolbars, - // the position of the popover is often not right on the first render - // This prevents the layout shifts when focusing the dialogs. - preventScroll: true - }); + // In deeply nested lists, where a scrollbar is present, + // the width of the drop indicator should be the width of + // the visible area of the scroll container. Additionally, + // the left edge of the drop indicator line needs to be + // offset by the distance the left edge of the target element + // and the left edge of the scroll container. The ensures + // that the drop indicator position never breaks out of the + // visible area of the scroll container. + const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(targetElement, 'horizontal'); + const doc = targetElement.ownerDocument; + const windowScroll = scrollContainer === doc.body || scrollContainer === doc.documentElement; + + // If the scroll container is not the window, offset the left position, if need be. + if (scrollContainer && !windowScroll) { + const scrollContainerRect = scrollContainer.getBoundingClientRect(); + + // In RTL languages, a vertical scrollbar is present on the + // left edge of the scroll container. The width of the + // scrollbar needs to be accounted for when positioning the + // drop indicator. + const scrollbarWidth = rtl ? scrollContainer.offsetWidth - scrollContainer.clientWidth : 0; + if (left < scrollContainerRect.left + scrollbarWidth) { + left = scrollContainerRect.left + scrollbarWidth; + } } - }); - } - return () => { - window.cancelAnimationFrame(raf); - if (!onIndexChange || !navigableToolbarRef) return; - // When the toolbar element is unmounted and onIndexChange is passed, we - // pass the focused toolbar item index so it can be hydrated later. - const items = getAllFocusableToolbarItemsIn(navigableToolbarRef); - const index = items.findIndex(item => item.tabIndex === 0); - onIndexChange(index); - }; - }, [initialIndex, initialFocusOnMount, onIndexChange, toolbarRef]); - const { - getLastFocus - } = unlock((0,external_wp_data_namespaceObject.useSelect)(store)); - /** - * Handles returning focus to the block editor canvas when pressing escape. - */ - (0,external_wp_element_namespaceObject.useEffect)(() => { - const navigableToolbarRef = toolbarRef.current; - if (focusEditorOnEscape) { - const handleKeyDown = event => { - const lastFocus = getLastFocus(); - if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && lastFocus?.current) { - // Focus the last focused element when pressing escape. - event.preventDefault(); - lastFocus.current.focus(); + if (dropPosition === 'top') { + top = rect.top; + bottom = rect.top; + } else { + // `dropPosition` is either `bottom` or `inside` + top = rect.bottom; + bottom = rect.bottom; } - }; - navigableToolbarRef.addEventListener('keydown', handleKeyDown); - return () => { - navigableToolbarRef.removeEventListener('keydown', handleKeyDown); - }; - } - }, [focusEditorOnEscape, getLastFocus, toolbarRef]); -} -function NavigableToolbar({ - children, - focusOnMount, - focusEditorOnEscape = false, - shouldUseKeyboardFocusShortcut = true, - __experimentalInitialIndex: initialIndex, - __experimentalOnIndexChange: onIndexChange, - ...props -}) { - const toolbarRef = (0,external_wp_element_namespaceObject.useRef)(); - const isAccessibleToolbar = useIsAccessibleToolbar(toolbarRef); - useToolbarFocus({ - toolbarRef, - focusOnMount, - defaultIndex: initialIndex, - onIndexChange, - isAccessibleToolbar, - shouldUseKeyboardFocusShortcut, - focusEditorOnEscape - }); - if (isAccessibleToolbar) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Toolbar, { - label: props['aria-label'], - ref: toolbarRef, - ...props - }, children); + const width = getDropIndicatorWidth(rect, indent); + const height = bottom - top; + return new window.DOMRect(left, top, width, height); + } + }; + }, [targetElement, dropPosition, getDropIndicatorIndent, getDropIndicatorWidth, rtl]); + if (!targetElement) { + return null; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.NavigableMenu, { - orientation: "horizontal", - role: "toolbar", - ref: toolbarRef, - ...props - }, children); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + animate: false, + anchor: popoverAnchor, + focusOnMount: false, + className: "block-editor-list-view-drop-indicator", + variant: "unstyled" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + style: style, + className: "block-editor-list-view-drop-indicator__line" + })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/use-has-block-controls.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-block-selection.js /** * WordPress dependencies */ + + + + /** * Internal dependencies */ -function useHasAnyBlockControls() { - let hasAnyBlockControls = false; - for (const group in block_controls_groups) { - // It is safe to violate the rules of hooks here as the `groups` object - // is static and will not change length between renders. Do not return - // early as that will cause the hook to be called a different number of - // times between renders. - // eslint-disable-next-line react-hooks/rules-of-hooks - if (useHasBlockControls(group)) { - hasAnyBlockControls = true; + +function useBlockSelection() { + const { + clearSelectedBlock, + multiSelect, + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + getBlockName, + getBlockParents, + getBlockSelectionStart, + getSelectedBlockClientIds, + hasMultiSelection, + hasSelectedBlock + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + getBlockType + } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); + const updateBlockSelection = (0,external_wp_element_namespaceObject.useCallback)(async (event, clientId, destinationClientId, focusPosition) => { + if (!event?.shiftKey && event?.keyCode !== external_wp_keycodes_namespaceObject.ESCAPE) { + selectBlock(clientId, focusPosition); + return; } - } - return hasAnyBlockControls; -} -function useHasBlockControls(group = 'default') { - const Slot = block_controls_groups[group]?.Slot; - const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(Slot?.__unstableName); - if (!Slot) { - true ? external_wp_warning_default()(`Unknown BlockControls group "${group}" provided.`) : 0; - return null; - } - return !!fills?.length; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/index.js + // To handle multiple block selection via the `SHIFT` key, prevent + // the browser default behavior of opening the link in a new window. + event.preventDefault(); + const isOnlyDeselection = event.type === 'keydown' && event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE; + const isKeyPress = event.type === 'keydown' && (event.keyCode === external_wp_keycodes_namespaceObject.UP || event.keyCode === external_wp_keycodes_namespaceObject.DOWN || event.keyCode === external_wp_keycodes_namespaceObject.HOME || event.keyCode === external_wp_keycodes_namespaceObject.END); + + // Handle clicking on a block when no blocks are selected, and return early. + if (!isKeyPress && !hasSelectedBlock() && !hasMultiSelection()) { + selectBlock(clientId, null); + return; + } + const selectedBlocks = getSelectedBlockClientIds(); + const clientIdWithParents = [...getBlockParents(clientId), clientId]; + if (isOnlyDeselection || isKeyPress && !selectedBlocks.some(blockId => clientIdWithParents.includes(blockId))) { + // Ensure that shift-selecting blocks via the keyboard only + // expands the current selection if focusing over already + // selected blocks. Otherwise, clear the selection so that + // a user can create a new selection entirely by keyboard. + await clearSelectedBlock(); + } + + // Update selection, if not only clearing the selection. + if (!isOnlyDeselection) { + let startTarget = getBlockSelectionStart(); + let endTarget = clientId; + + // Handle keyboard behavior for selecting multiple blocks. + if (isKeyPress) { + if (!hasSelectedBlock() && !hasMultiSelection()) { + // Set the starting point of the selection to the currently + // focused block, if there are no blocks currently selected. + // This ensures that as the selection is expanded or contracted, + // the starting point of the selection is anchored to that block. + startTarget = clientId; + } + if (destinationClientId) { + // If the user presses UP or DOWN, we want to ensure that the block they're + // moving to is the target for selection, and not the currently focused one. + endTarget = destinationClientId; + } + } + const startParents = getBlockParents(startTarget); + const endParents = getBlockParents(endTarget); + const { + start, + end + } = getCommonDepthClientIds(startTarget, endTarget, startParents, endParents); + await multiSelect(start, end, null); + } + + // Announce deselected block, or number of deselected blocks if + // the total number of blocks deselected is greater than one. + const updatedSelectedBlocks = getSelectedBlockClientIds(); + + // If the selection is greater than 1 and the Home or End keys + // were used to generate the selection, then skip announcing the + // deselected blocks. + if ((event.keyCode === external_wp_keycodes_namespaceObject.HOME || event.keyCode === external_wp_keycodes_namespaceObject.END) && updatedSelectedBlocks.length > 1) { + return; + } + const selectionDiff = selectedBlocks.filter(blockId => !updatedSelectedBlocks.includes(blockId)); + let label; + if (selectionDiff.length === 1) { + const title = getBlockType(getBlockName(selectionDiff[0]))?.title; + if (title) { + label = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */ + (0,external_wp_i18n_namespaceObject.__)('%s deselected.'), title); + } + } else if (selectionDiff.length > 1) { + label = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of deselected blocks */ + (0,external_wp_i18n_namespaceObject.__)('%s blocks deselected.'), selectionDiff.length); + } + if (label) { + (0,external_wp_a11y_namespaceObject.speak)(label, 'assertive'); + } + }, [clearSelectedBlock, getBlockName, getBlockType, getBlockParents, getBlockSelectionStart, getSelectedBlockClientIds, hasMultiSelection, hasSelectedBlock, multiSelect, selectBlock]); + return { + updateBlockSelection + }; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-client-ids.js /** - * External dependencies + * WordPress dependencies */ + /** - * WordPress dependencies + * Internal dependencies */ +function useListViewClientIds({ + blocks, + rootClientId +}) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getDraggedBlockClientIds, + getSelectedBlockClientIds, + getEnabledClientIdsTree + } = unlock(select(store)); + return { + selectedClientIds: getSelectedBlockClientIds(), + draggedClientIds: getDraggedBlockClientIds(), + clientIdsTree: blocks !== null && blocks !== void 0 ? blocks : getEnabledClientIdsTree(rootClientId) + }; + }, [blocks, rootClientId]); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-drop-zone.js +/** + * WordPress dependencies + */ @@ -54642,178 +48421,374 @@ function useHasBlockControls(group = 'default') { +/** @typedef {import('../../utils/math').WPPoint} WPPoint */ + +/** + * The type of a drag event. + * + * @typedef {'default'|'file'|'html'} WPDragEventType + */ +/** + * An object representing data for blocks in the DOM used by drag and drop. + * + * @typedef {Object} WPListViewDropZoneBlock + * @property {string} clientId The client id for the block. + * @property {string} rootClientId The root client id for the block. + * @property {number} blockIndex The block's index. + * @property {Element} element The DOM element representing the block. + * @property {number} innerBlockCount The number of inner blocks the block has. + * @property {boolean} isDraggedBlock Whether the block is currently being dragged. + * @property {boolean} isExpanded Whether the block is expanded in the UI. + * @property {boolean} canInsertDraggedBlocksAsSibling Whether the dragged block can be a sibling of this block. + * @property {boolean} canInsertDraggedBlocksAsChild Whether the dragged block can be a child of this block. + */ +/** + * An array representing data for blocks in the DOM used by drag and drop. + * + * @typedef {WPListViewDropZoneBlock[]} WPListViewDropZoneBlocks + */ +/** + * An object containing details of a drop target. + * + * @typedef {Object} WPListViewDropZoneTarget + * @property {string} blockIndex The insertion index. + * @property {string} rootClientId The root client id for the block. + * @property {string|undefined} clientId The client id for the block. + * @property {'top'|'bottom'|'inside'} dropPosition The position relative to the block that the user is dropping to. + * 'inside' refers to nesting as an inner block. + */ +// When the indentation level, the corresponding left margin in `style.scss` +// must be updated as well to ensure the drop zone is aligned with the indentation. +const NESTING_LEVEL_INDENTATION = 28; +/** + * Determines whether the user is positioning the dragged block to be + * moved up to a parent level. + * + * Determined based on nesting level indentation of the current block. + * + * @param {WPPoint} point The point representing the cursor position when dragging. + * @param {DOMRect} rect The rectangle. + * @param {number} nestingLevel The nesting level of the block. + * @param {boolean} rtl Whether the editor is in RTL mode. + * @return {boolean} Whether the gesture is an upward gesture. + */ +function isUpGesture(point, rect, nestingLevel = 1, rtl = false) { + // If the block is nested, and the user is dragging to the bottom + // left of the block (or bottom right in RTL languages), then it is an upward gesture. + const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; + return rtl ? point.x > blockIndentPosition : point.x < blockIndentPosition; +} +/** + * Returns how many nesting levels up the user is attempting to drag to. + * + * The relative parent level is calculated based on how far + * the cursor is from the provided nesting level (e.g. of a candidate block + * that the user is hovering over). The nesting level is considered "desired" + * because it is not guaranteed that the user will be able to drag to the desired level. + * + * The returned integer can be used to access an ascending array + * of parent blocks, where the first item is the block the user + * is hovering over, and the last item is the root block. + * + * @param {WPPoint} point The point representing the cursor position when dragging. + * @param {DOMRect} rect The rectangle. + * @param {number} nestingLevel The nesting level of the block. + * @param {boolean} rtl Whether the editor is in RTL mode. + * @return {number} The desired relative parent level. + */ +function getDesiredRelativeParentLevel(point, rect, nestingLevel = 1, rtl = false) { + // In RTL languages, the block indent position is from the right edge of the block. + // In LTR languages, the block indent position is from the left edge of the block. + const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; + const distanceBetweenPointAndBlockIndentPosition = rtl ? blockIndentPosition - point.x : point.x - blockIndentPosition; + const desiredParentLevel = Math.round(distanceBetweenPointAndBlockIndentPosition / NESTING_LEVEL_INDENTATION); + return Math.abs(desiredParentLevel); +} +/** + * Returns an array of the parent blocks of the block the user is dropping to. + * + * @param {WPListViewDropZoneBlock} candidateBlockData The block the user is dropping to. + * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. + * @return {WPListViewDropZoneBlocks} An array of block parents, including the block the user is dropping to. + */ +function getCandidateBlockParents(candidateBlockData, blocksData) { + const candidateBlockParents = []; + let currentBlockData = candidateBlockData; + while (currentBlockData) { + candidateBlockParents.push({ + ...currentBlockData + }); + currentBlockData = blocksData.find(blockData => blockData.clientId === currentBlockData.rootClientId); + } + return candidateBlockParents; +} +/** + * Given a list of blocks data and a block index, return the next non-dragged + * block. This is used to determine the block that the user is dropping to, + * while ignoring the dragged block. + * + * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. + * @param {number} index The index to begin searching from. + * @return {WPListViewDropZoneBlock | undefined} The next non-dragged block. + */ +function getNextNonDraggedBlock(blocksData, index) { + const nextBlockData = blocksData[index + 1]; + if (nextBlockData && nextBlockData.isDraggedBlock) { + return getNextNonDraggedBlock(blocksData, index + 1); + } + return nextBlockData; +} +/** + * Determines whether the user positioning the dragged block to nest as an + * inner block. + * + * Determined based on nesting level indentation of the current block, plus + * the indentation of the next level of nesting. The vertical position of the + * cursor must also be within the block. + * + * @param {WPPoint} point The point representing the cursor position when dragging. + * @param {DOMRect} rect The rectangle. + * @param {number} nestingLevel The nesting level of the block. + * @param {boolean} rtl Whether the editor is in RTL mode. + */ +function isNestingGesture(point, rect, nestingLevel = 1, rtl = false) { + const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; + const isNestingHorizontalGesture = rtl ? point.x < blockIndentPosition - NESTING_LEVEL_INDENTATION : point.x > blockIndentPosition + NESTING_LEVEL_INDENTATION; + return isNestingHorizontalGesture && point.y < rect.bottom; +} +// Block navigation is always a vertical list, so only allow dropping +// to the above or below a block. +const ALLOWED_DROP_EDGES = ['top', 'bottom']; /** - * Renders the block toolbar. + * Given blocks data and the cursor position, compute the drop target. * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md + * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. + * @param {WPPoint} position The point representing the cursor position when dragging. + * @param {boolean} rtl Whether the editor is in RTL mode. * - * @param {Object} props Components props. - * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality. - * @param {boolean} props.focusOnMount Focus the toolbar when mounted. - * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus. - * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes. - * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons. + * @return {WPListViewDropZoneTarget | undefined} An object containing data about the drop target. */ -function PrivateBlockToolbar({ - hideDragHandle, - focusOnMount, - __experimentalInitialIndex, - __experimentalOnIndexChange, - variant = 'unstyled' -}) { - const { - blockClientId, - blockClientIds, - isDefaultEditingMode, - blockType, - shouldShowVisualToolbar, - showParentSelector - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockName, - getBlockMode, - getBlockParents, - getSelectedBlockClientIds, - isBlockValid, - getBlockRootClientId, - getBlockEditingMode - } = select(store); - const selectedBlockClientIds = getSelectedBlockClientIds(); - const selectedBlockClientId = selectedBlockClientIds[0]; - const blockRootClientId = getBlockRootClientId(selectedBlockClientId); - const parents = getBlockParents(selectedBlockClientId); - const firstParentClientId = parents[parents.length - 1]; - const parentBlockName = getBlockName(firstParentClientId); - const parentBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(parentBlockName); - const _isDefaultEditingMode = getBlockEditingMode(selectedBlockClientId) === 'default'; - const isValid = selectedBlockClientIds.every(id => isBlockValid(id)); - const isVisual = selectedBlockClientIds.every(id => getBlockMode(id) === 'visual'); +function getListViewDropTarget(blocksData, position, rtl = false) { + let candidateEdge; + let candidateBlockData; + let candidateDistance; + let candidateRect; + let candidateBlockIndex; + for (let i = 0; i < blocksData.length; i++) { + const blockData = blocksData[i]; + if (blockData.isDraggedBlock) { + continue; + } + const rect = blockData.element.getBoundingClientRect(); + const [distance, edge] = getDistanceToNearestEdge(position, rect, ALLOWED_DROP_EDGES); + const isCursorWithinBlock = isPointContainedByRect(position, rect); + if (candidateDistance === undefined || distance < candidateDistance || isCursorWithinBlock) { + candidateDistance = distance; + const index = blocksData.indexOf(blockData); + const previousBlockData = blocksData[index - 1]; + + // If dragging near the top of a block and the preceding block + // is at the same level, use the preceding block as the candidate + // instead, as later it makes determining a nesting drop easier. + if (edge === 'top' && previousBlockData && previousBlockData.rootClientId === blockData.rootClientId && !previousBlockData.isDraggedBlock) { + candidateBlockData = previousBlockData; + candidateEdge = 'bottom'; + candidateRect = previousBlockData.element.getBoundingClientRect(); + candidateBlockIndex = index - 1; + } else { + candidateBlockData = blockData; + candidateEdge = edge; + candidateRect = rect; + candidateBlockIndex = index; + } + + // If the mouse position is within the block, break early + // as the user would intend to drop either before or after + // this block. + // + // This solves an issue where some rows in the list view + // tree overlap slightly due to sub-pixel rendering. + if (isCursorWithinBlock) { + break; + } + } + } + if (!candidateBlockData) { + return; + } + const candidateBlockParents = getCandidateBlockParents(candidateBlockData, blocksData); + const isDraggingBelow = candidateEdge === 'bottom'; + + // If the user is dragging towards the bottom of the block check whether + // they might be trying to nest the block as a child. + // If the block already has inner blocks, and is expanded, this should be treated + // as nesting since the next block in the tree will be the first child. + // However, if the block is collapsed, dragging beneath the block should + // still be allowed, as the next visible block in the tree will be a sibling. + if (isDraggingBelow && candidateBlockData.canInsertDraggedBlocksAsChild && (candidateBlockData.innerBlockCount > 0 && candidateBlockData.isExpanded || isNestingGesture(position, candidateRect, candidateBlockParents.length, rtl))) { + // If the block is expanded, insert the block as the first child. + // Otherwise, for collapsed blocks, insert the block as the last child. + const newBlockIndex = candidateBlockData.isExpanded ? 0 : candidateBlockData.innerBlockCount || 0; return { - blockClientId: selectedBlockClientId, - blockClientIds: selectedBlockClientIds, - isDefaultEditingMode: _isDefaultEditingMode, - blockType: selectedBlockClientId && (0,external_wp_blocks_namespaceObject.getBlockType)(getBlockName(selectedBlockClientId)), - shouldShowVisualToolbar: isValid && isVisual, - rootClientId: blockRootClientId, - showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length === 1 && _isDefaultEditingMode + rootClientId: candidateBlockData.clientId, + blockIndex: newBlockIndex, + dropPosition: 'inside' }; - }, []); - const toolbarWrapperRef = (0,external_wp_element_namespaceObject.useRef)(null); + } - // Handles highlighting the current block outline on hover or focus of the - // block type toolbar area. - const nodeRef = (0,external_wp_element_namespaceObject.useRef)(); - const showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures({ - ref: nodeRef - }); - const isLargeViewport = !(0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); - const isToolbarEnabled = blockType && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, '__experimentalToolbar', true); - const hasAnyBlockControls = useHasAnyBlockControls(); - if (!isToolbarEnabled || !isDefaultEditingMode && !hasAnyBlockControls) { - return null; + // If the user is dragging towards the bottom of the block check whether + // they might be trying to move the block to be at a parent level. + if (isDraggingBelow && candidateBlockData.rootClientId && isUpGesture(position, candidateRect, candidateBlockParents.length, rtl)) { + const nextBlock = getNextNonDraggedBlock(blocksData, candidateBlockIndex); + const currentLevel = candidateBlockData.nestingLevel; + const nextLevel = nextBlock ? nextBlock.nestingLevel : 1; + if (currentLevel && nextLevel) { + // Determine the desired relative level of the block to be dropped. + const desiredRelativeLevel = getDesiredRelativeParentLevel(position, candidateRect, candidateBlockParents.length, rtl); + const targetParentIndex = Math.max(Math.min(desiredRelativeLevel, currentLevel - nextLevel), 0); + if (candidateBlockParents[targetParentIndex]) { + // Default to the block index of the candidate block. + let newBlockIndex = candidateBlockData.blockIndex; + + // If the next block is at the same level, use that as the default + // block index. This ensures that the block is dropped in the correct + // position when dragging to the bottom of a block. + if (candidateBlockParents[targetParentIndex].nestingLevel === nextBlock?.nestingLevel) { + newBlockIndex = nextBlock?.blockIndex; + } else { + // Otherwise, search from the current block index back + // to find the last block index within the same target parent. + for (let i = candidateBlockIndex; i >= 0; i--) { + const blockData = blocksData[i]; + if (blockData.rootClientId === candidateBlockParents[targetParentIndex].rootClientId) { + newBlockIndex = blockData.blockIndex + 1; + break; + } + } + } + return { + rootClientId: candidateBlockParents[targetParentIndex].rootClientId, + clientId: candidateBlockData.clientId, + blockIndex: newBlockIndex, + dropPosition: candidateEdge + }; + } + } } - const isMultiToolbar = blockClientIds.length > 1; - const isSynced = (0,external_wp_blocks_namespaceObject.isReusableBlock)(blockType) || (0,external_wp_blocks_namespaceObject.isTemplatePart)(blockType); - // Shifts the toolbar to make room for the parent block selector. - const classes = classnames_default()('block-editor-block-contextual-toolbar', { - 'has-parent': showParentSelector - }); - const innerClasses = classnames_default()('block-editor-block-toolbar', { - 'is-synced': isSynced - }); - return (0,external_React_.createElement)(NavigableToolbar, { - focusEditorOnEscape: true, - className: classes - /* translators: accessibility text for the block toolbar */, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block tools') - // The variant is applied as "toolbar" when undefined, which is the black border style of the dropdown from the toolbar popover. - , - variant: variant === 'toolbar' ? undefined : variant, - focusOnMount: focusOnMount, - __experimentalInitialIndex: __experimentalInitialIndex, - __experimentalOnIndexChange: __experimentalOnIndexChange - // Resets the index whenever the active block changes so - // this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169 - , - key: blockClientId - }, (0,external_React_.createElement)("div", { - ref: toolbarWrapperRef, - className: innerClasses - }, !isMultiToolbar && isLargeViewport && isDefaultEditingMode && (0,external_React_.createElement)(BlockParentSelector, null), (shouldShowVisualToolbar || isMultiToolbar) && isDefaultEditingMode && (0,external_React_.createElement)("div", { - ref: nodeRef, - ...showHoveredOrFocusedGestures - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { - className: "block-editor-block-toolbar__block-controls" - }, (0,external_React_.createElement)(block_switcher, { - clientIds: blockClientIds - }), !isMultiToolbar && (0,external_React_.createElement)(BlockLockToolbar, { - clientId: blockClientId - }), (0,external_React_.createElement)(block_mover, { - clientIds: blockClientIds, - hideDragHandle: hideDragHandle - }))), shouldShowVisualToolbar && isMultiToolbar && (0,external_React_.createElement)(toolbar, null), shouldShowVisualToolbar && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(block_controls.Slot, { - group: "parent", - className: "block-editor-block-toolbar__slot" - }), (0,external_React_.createElement)(block_controls.Slot, { - group: "block", - className: "block-editor-block-toolbar__slot" - }), (0,external_React_.createElement)(block_controls.Slot, { - className: "block-editor-block-toolbar__slot" - }), (0,external_React_.createElement)(block_controls.Slot, { - group: "inline", - className: "block-editor-block-toolbar__slot" - }), (0,external_React_.createElement)(block_controls.Slot, { - group: "other", - className: "block-editor-block-toolbar__slot" - }), (0,external_React_.createElement)(block_name_context.Provider, { - value: blockType?.name - }, (0,external_React_.createElement)(block_toolbar_last_item.Slot, null))), (0,external_React_.createElement)(BlockEditVisuallyButton, { - clientIds: blockClientIds - }), isDefaultEditingMode && (0,external_React_.createElement)(block_settings_menu, { - clientIds: blockClientIds - }))); + // If dropping as a sibling, but block cannot be inserted in + // this context, return early. + if (!candidateBlockData.canInsertDraggedBlocksAsSibling) { + return; + } + const offset = isDraggingBelow ? 1 : 0; + return { + rootClientId: candidateBlockData.rootClientId, + clientId: candidateBlockData.clientId, + blockIndex: candidateBlockData.blockIndex + offset, + dropPosition: candidateEdge + }; } -/** - * Renders the block toolbar. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md - * - * @param {Object} props Components props. - * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality. - * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons. - */ -function BlockToolbar({ - hideDragHandle, - variant -}) { - return (0,external_React_.createElement)(PrivateBlockToolbar, { - hideDragHandle: hideDragHandle, - variant: variant, - focusOnMount: undefined, - __experimentalInitialIndex: undefined, - __experimentalOnIndexChange: undefined +/** + * A react hook for implementing a drop zone in list view. + * + * @param {Object} props Named parameters. + * @param {?HTMLElement} [props.dropZoneElement] Optional element to be used as the drop zone. + * + * @return {WPListViewDropZoneTarget} The drop target. + */ +function useListViewDropZone({ + dropZoneElement +}) { + const { + getBlockRootClientId, + getBlockIndex, + getBlockCount, + getDraggedBlockClientIds, + canInsertBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const [target, setTarget] = (0,external_wp_element_namespaceObject.useState)(); + const { + rootClientId: targetRootClientId, + blockIndex: targetBlockIndex + } = target || {}; + const onBlockDrop = useOnBlockDrop(targetRootClientId, targetBlockIndex); + const rtl = (0,external_wp_i18n_namespaceObject.isRTL)(); + const draggedBlockClientIds = getDraggedBlockClientIds(); + const throttled = (0,external_wp_compose_namespaceObject.useThrottle)((0,external_wp_element_namespaceObject.useCallback)((event, currentTarget) => { + const position = { + x: event.clientX, + y: event.clientY + }; + const isBlockDrag = !!draggedBlockClientIds?.length; + const blockElements = Array.from(currentTarget.querySelectorAll('[data-block]')); + const blocksData = blockElements.map(blockElement => { + const clientId = blockElement.dataset.block; + const isExpanded = blockElement.dataset.expanded === 'true'; + const isDraggedBlock = blockElement.classList.contains('is-dragging'); + + // Get nesting level from `aria-level` attribute because Firefox does not support `element.ariaLevel`. + const nestingLevel = parseInt(blockElement.getAttribute('aria-level'), 10); + const rootClientId = getBlockRootClientId(clientId); + return { + clientId, + isExpanded, + rootClientId, + blockIndex: getBlockIndex(clientId), + element: blockElement, + nestingLevel: nestingLevel || undefined, + isDraggedBlock: isBlockDrag ? isDraggedBlock : false, + innerBlockCount: getBlockCount(clientId), + canInsertDraggedBlocksAsSibling: isBlockDrag ? canInsertBlocks(draggedBlockClientIds, rootClientId) : true, + canInsertDraggedBlocksAsChild: isBlockDrag ? canInsertBlocks(draggedBlockClientIds, clientId) : true + }; + }); + const newTarget = getListViewDropTarget(blocksData, position, rtl); + if (newTarget) { + setTarget(newTarget); + } + }, [canInsertBlocks, draggedBlockClientIds, getBlockCount, getBlockIndex, getBlockRootClientId, rtl]), 200); + const ref = (0,external_wp_compose_namespaceObject.__experimentalUseDropZone)({ + dropZoneElement, + onDrop(event) { + if (target) { + onBlockDrop(event); + } + }, + onDragLeave() { + throttled.cancel(); + setTarget(null); + }, + onDragOver(event) { + // `currentTarget` is only available while the event is being + // handled, so get it now and pass it to the thottled function. + // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget + throttled(event, event.currentTarget); + }, + onDragEnd() { + throttled.cancel(); + setTarget(null); + } }); + return { + ref, + target + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/block-toolbar-popover.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-expand-selected-item.js /** * WordPress dependencies */ @@ -54824,398 +48799,304 @@ function BlockToolbar({ * Internal dependencies */ - - - - -function BlockToolbarPopover({ - clientId, - isTyping, - __unstableContentRef +function useListViewExpandSelectedItem({ + firstSelectedBlockClientId, + setExpandedState }) { + const [selectedTreeId, setSelectedTreeId] = (0,external_wp_element_namespaceObject.useState)(null); const { - capturingClientId, - isInsertionPointVisible, - lastClientId - } = useSelectedBlockToolProps(clientId); + selectedBlockParentClientIds + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockParents + } = select(store); + return { + selectedBlockParentClientIds: getBlockParents(firstSelectedBlockClientId, false) + }; + }, [firstSelectedBlockClientId]); + const parentClientIds = Array.isArray(selectedBlockParentClientIds) && selectedBlockParentClientIds.length ? selectedBlockParentClientIds : null; - // Stores the active toolbar item index so the block toolbar can return focus - // to it when re-mounting. - const initialToolbarItemIndexRef = (0,external_wp_element_namespaceObject.useRef)(); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // Resets the index whenever the active block changes so this is not - // persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169 - initialToolbarItemIndexRef.current = undefined; - }, [clientId]); - const { - stopTyping - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const isToolbarForced = (0,external_wp_element_namespaceObject.useRef)(false); - (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/focus-toolbar', () => { - isToolbarForced.current = true; - stopTyping(true); - }); + // Expand tree when a block is selected. (0,external_wp_element_namespaceObject.useEffect)(() => { - isToolbarForced.current = false; - }); - const popoverProps = useBlockToolbarPopoverProps({ - contentElement: __unstableContentRef?.current, - clientId - }); - return !isTyping && (0,external_React_.createElement)(block_popover, { - clientId: capturingClientId || clientId, - bottomClientId: lastClientId, - className: classnames_default()('block-editor-block-list__block-popover', { - 'is-insertion-point-visible': isInsertionPointVisible - }), - resize: false, - ...popoverProps - }, (0,external_React_.createElement)(PrivateBlockToolbar - // If the toolbar is being shown because of being forced - // it should focus the toolbar right after the mount. - , { - focusOnMount: isToolbarForced.current, - __experimentalInitialIndex: initialToolbarItemIndexRef.current, - __experimentalOnIndexChange: index => { - initialToolbarItemIndexRef.current = index; - }, - variant: "toolbar" - })); -} + // If the selectedTreeId is the same as the selected block, + // it means that the block was selected using the block list tree. + if (selectedTreeId === firstSelectedBlockClientId) { + return; + } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/block-selection-button.js + // If the selected block has parents, get the top-level parent. + if (parentClientIds) { + // If the selected block has parents, + // expand the tree branch. + setExpandedState({ + type: 'expand', + clientIds: selectedBlockParentClientIds + }); + } + }, [firstSelectedBlockClientId]); + return { + setSelectedTreeId + }; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/supports.js /** - * External dependencies + * WordPress dependencies */ +const ALIGN_SUPPORT_KEY = 'align'; +const ALIGN_WIDE_SUPPORT_KEY = 'alignWide'; +const supports_BORDER_SUPPORT_KEY = '__experimentalBorder'; +const supports_COLOR_SUPPORT_KEY = 'color'; +const CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName'; +const supports_FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily'; +const supports_FONT_SIZE_SUPPORT_KEY = 'typography.fontSize'; +const supports_LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight'; /** - * WordPress dependencies + * Key within block settings' support array indicating support for font style. */ - - - - - - - - - - +const supports_FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle'; /** - * Internal dependencies + * Key within block settings' support array indicating support for font weight. */ +const supports_FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight'; +/** + * Key within block settings' supports array indicating support for text + * columns e.g. settings found in `block.json`. + */ +const supports_TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns'; +/** + * Key within block settings' supports array indicating support for text + * decorations e.g. settings found in `block.json`. + */ +const supports_TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration'; +/** + * Key within block settings' supports array indicating support for writing mode + * e.g. settings found in `block.json`. + */ +const supports_WRITING_MODE_SUPPORT_KEY = 'typography.__experimentalWritingMode'; +/** + * Key within block settings' supports array indicating support for text + * transforms e.g. settings found in `block.json`. + */ +const supports_TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform'; +/** + * Key within block settings' supports array indicating support for letter-spacing + * e.g. settings found in `block.json`. + */ +const supports_LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing'; +const LAYOUT_SUPPORT_KEY = 'layout'; +const supports_TYPOGRAPHY_SUPPORT_KEYS = [supports_LINE_HEIGHT_SUPPORT_KEY, supports_FONT_SIZE_SUPPORT_KEY, supports_FONT_STYLE_SUPPORT_KEY, supports_FONT_WEIGHT_SUPPORT_KEY, supports_FONT_FAMILY_SUPPORT_KEY, supports_TEXT_COLUMNS_SUPPORT_KEY, supports_TEXT_DECORATION_SUPPORT_KEY, supports_TEXT_TRANSFORM_SUPPORT_KEY, supports_WRITING_MODE_SUPPORT_KEY, supports_LETTER_SPACING_SUPPORT_KEY]; +const supports_SPACING_SUPPORT_KEY = 'spacing'; +const supports_styleSupportKeys = [...supports_TYPOGRAPHY_SUPPORT_KEYS, supports_BORDER_SUPPORT_KEY, supports_COLOR_SUPPORT_KEY, supports_SPACING_SUPPORT_KEY]; +/** + * Returns true if the block defines support for align. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasAlignSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, ALIGN_SUPPORT_KEY); +/** + * Returns the block support value for align, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. + */ +const getAlignSupport = nameOrType => getBlockSupport(nameOrType, ALIGN_SUPPORT_KEY); +/** + * Returns true if the block defines support for align wide. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasAlignWideSupport = nameOrType => hasBlockSupport(nameOrType, ALIGN_WIDE_SUPPORT_KEY); - - +/** + * Returns the block support value for align wide, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. + */ +const getAlignWideSupport = nameOrType => getBlockSupport(nameOrType, ALIGN_WIDE_SUPPORT_KEY); /** - * Block selection button component, displaying the label of the block. If the block - * descends from a root block, a button is displayed enabling the user to select - * the root block. + * Determine whether there is block support for border properties. * - * @param {string} props Component props. - * @param {string} props.clientId Client ID of block. + * @param {string|Object} nameOrType Block name or type object. + * @param {string} feature Border feature to check support for. * - * @return {Component} The component to be rendered. + * @return {boolean} Whether there is support. */ -function BlockSelectionButton({ - clientId, - rootClientId -}) { - const blockInformation = useBlockDisplayInformation(clientId); - const selected = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlock, - getBlockIndex, - hasBlockMovingClientId, - getBlockListSettings, - __unstableGetEditorMode - } = select(store); - const index = getBlockIndex(clientId); - const { - name, - attributes - } = getBlock(clientId); - const blockMovingMode = hasBlockMovingClientId(); - return { - index, - name, - attributes, - blockMovingMode, - orientation: getBlockListSettings(rootClientId)?.orientation, - editorMode: __unstableGetEditorMode() - }; - }, [clientId, rootClientId]); - const { - index, - name, - attributes, - blockMovingMode, - orientation, - editorMode - } = selected; - const { - setNavigationMode, - removeBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const ref = (0,external_wp_element_namespaceObject.useRef)(); - const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); - const label = (0,external_wp_blocks_namespaceObject.__experimentalGetAccessibleBlockLabel)(blockType, attributes, index + 1, orientation); - - // Focus the breadcrumb in navigation mode. - (0,external_wp_element_namespaceObject.useEffect)(() => { - ref.current.focus(); - (0,external_wp_a11y_namespaceObject.speak)(label); - }, [label]); - const blockElement = useBlockElement(clientId); - const { - hasBlockMovingClientId, - getBlockIndex, - getBlockRootClientId, - getClientIdsOfDescendants, - getSelectedBlockClientId, - getMultiSelectedBlocksEndClientId, - getPreviousBlockClientId, - getNextBlockClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - selectBlock, - clearSelectedBlock, - setBlockMovingClientId, - moveBlockToPosition - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - function onKeyDown(event) { - const { - keyCode - } = event; - const isUp = keyCode === external_wp_keycodes_namespaceObject.UP; - const isDown = keyCode === external_wp_keycodes_namespaceObject.DOWN; - const isLeft = keyCode === external_wp_keycodes_namespaceObject.LEFT; - const isRight = keyCode === external_wp_keycodes_namespaceObject.RIGHT; - const isTab = keyCode === external_wp_keycodes_namespaceObject.TAB; - const isEscape = keyCode === external_wp_keycodes_namespaceObject.ESCAPE; - const isEnter = keyCode === external_wp_keycodes_namespaceObject.ENTER; - const isSpace = keyCode === external_wp_keycodes_namespaceObject.SPACE; - const isShift = event.shiftKey; - if (keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || keyCode === external_wp_keycodes_namespaceObject.DELETE) { - removeBlock(clientId); - event.preventDefault(); - return; - } - const selectedBlockClientId = getSelectedBlockClientId(); - const selectionEndClientId = getMultiSelectedBlocksEndClientId(); - const selectionBeforeEndClientId = getPreviousBlockClientId(selectionEndClientId || selectedBlockClientId); - const selectionAfterEndClientId = getNextBlockClientId(selectionEndClientId || selectedBlockClientId); - const navigateUp = isTab && isShift || isUp; - const navigateDown = isTab && !isShift || isDown; - // Move out of current nesting level (no effect if at root level). - const navigateOut = isLeft; - // Move into next nesting level (no effect if the current block has no innerBlocks). - const navigateIn = isRight; - let focusedBlockUid; - if (navigateUp) { - focusedBlockUid = selectionBeforeEndClientId; - } else if (navigateDown) { - focusedBlockUid = selectionAfterEndClientId; - } else if (navigateOut) { - var _getBlockRootClientId; - focusedBlockUid = (_getBlockRootClientId = getBlockRootClientId(selectedBlockClientId)) !== null && _getBlockRootClientId !== void 0 ? _getBlockRootClientId : selectedBlockClientId; - } else if (navigateIn) { - var _getClientIdsOfDescen; - focusedBlockUid = (_getClientIdsOfDescen = getClientIdsOfDescendants(selectedBlockClientId)[0]) !== null && _getClientIdsOfDescen !== void 0 ? _getClientIdsOfDescen : selectedBlockClientId; - } - const startingBlockClientId = hasBlockMovingClientId(); - if (isEscape && startingBlockClientId && !event.defaultPrevented) { - setBlockMovingClientId(null); - event.preventDefault(); - } - if ((isEnter || isSpace) && startingBlockClientId) { - const sourceRoot = getBlockRootClientId(startingBlockClientId); - const destRoot = getBlockRootClientId(selectedBlockClientId); - const sourceBlockIndex = getBlockIndex(startingBlockClientId); - let destinationBlockIndex = getBlockIndex(selectedBlockClientId); - if (sourceBlockIndex < destinationBlockIndex && sourceRoot === destRoot) { - destinationBlockIndex -= 1; - } - moveBlockToPosition(startingBlockClientId, sourceRoot, destRoot, destinationBlockIndex); - selectBlock(startingBlockClientId); - setBlockMovingClientId(null); - } - // Prevent the block from being moved into itself. - if (startingBlockClientId && selectedBlockClientId === startingBlockClientId && navigateIn) { - return; - } - if (navigateDown || navigateUp || navigateOut || navigateIn) { - if (focusedBlockUid) { - event.preventDefault(); - selectBlock(focusedBlockUid); - } else if (isTab && selectedBlockClientId) { - let nextTabbable; - if (navigateDown) { - nextTabbable = blockElement; - do { - nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findNext(nextTabbable); - } while (nextTabbable && blockElement.contains(nextTabbable)); - if (!nextTabbable) { - nextTabbable = blockElement.ownerDocument.defaultView.frameElement; - nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findNext(nextTabbable); - } - } else { - nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findPrevious(blockElement); - } - if (nextTabbable) { - event.preventDefault(); - nextTabbable.focus(); - clearSelectedBlock(); - } - } - } +function supports_hasBorderSupport(nameOrType, feature = 'any') { + if (external_wp_element_namespaceObject.Platform.OS !== 'web') { + return false; } - const classNames = classnames_default()('block-editor-block-list__block-selection-button', { - 'is-block-moving-mode': !!blockMovingMode - }); - const dragHandleLabel = (0,external_wp_i18n_namespaceObject.__)('Drag'); - return (0,external_React_.createElement)("div", { - className: classNames - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, { - justify: "center", - className: "block-editor-block-list__block-selection-button__content" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(block_icon, { - icon: blockInformation?.icon, - showColors: true - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, editorMode === 'zoom-out' && (0,external_React_.createElement)(block_mover, { - clientIds: [clientId], - hideDragHandle: true - }), editorMode === 'navigation' && (0,external_React_.createElement)(block_draggable, { - clientIds: [clientId] - }, draggableProps => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: drag_handle, - className: "block-selection-button_drag-handle", - "aria-hidden": "true", - label: dragHandleLabel - // Should not be able to tab to drag handle as this - // button can only be used with a pointer device. - , - tabIndex: "-1", - ...draggableProps - }))), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ref: ref, - onClick: editorMode === 'navigation' ? () => setNavigationMode(false) : undefined, - onKeyDown: onKeyDown, - label: label, - showTooltip: false, - className: "block-selection-button_select-button" - }, (0,external_React_.createElement)(BlockTitle, { - clientId: clientId, - maximumLength: 35 - }))))); + const support = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_BORDER_SUPPORT_KEY); + if (support === true) { + return true; + } + if (feature === 'any') { + return !!(support?.color || support?.radius || support?.width || support?.style); + } + return !!support?.[feature]; } -/* harmony default export */ var block_selection_button = (BlockSelectionButton); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/block-toolbar-breadcrumb.js /** - * External dependencies + * Get block support for border properties. + * + * @param {string|Object} nameOrType Block name or type object. + * @param {string} feature Border feature to get. + * + * @return {unknown} The block support. */ +const getBorderSupport = (nameOrType, feature) => getBlockSupport(nameOrType, [supports_BORDER_SUPPORT_KEY, feature]); +/** + * Returns true if the block defines support for color. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const supports_hasColorSupport = nameOrType => { + const colorSupport = getBlockSupport(nameOrType, supports_COLOR_SUPPORT_KEY); + return colorSupport && (colorSupport.link === true || colorSupport.gradient === true || colorSupport.background !== false || colorSupport.text !== false); +}; /** - * Internal dependencies + * Returns true if the block defines support for link color. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. */ +const supports_hasLinkColorSupport = nameOrType => { + if (Platform.OS !== 'web') { + return false; + } + const colorSupport = getBlockSupport(nameOrType, supports_COLOR_SUPPORT_KEY); + return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.link; +}; +/** + * Returns true if the block defines support for gradient color. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const supports_hasGradientSupport = nameOrType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); + return colorSupport !== null && typeof colorSupport === 'object' && !!colorSupport.gradients; +}; +/** + * Returns true if the block defines support for background color. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const supports_hasBackgroundColorSupport = nameOrType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); + return colorSupport && colorSupport.background !== false; +}; +/** + * Returns true if the block defines support for background color. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const supports_hasTextColorSupport = nameOrType => { + const colorSupport = (0,external_wp_blocks_namespaceObject.getBlockSupport)(nameOrType, supports_COLOR_SUPPORT_KEY); + return colorSupport && colorSupport.text !== false; +}; -function BlockToolbarBreadcrumb({ - clientId, - __unstableContentRef -}) { - const { - capturingClientId, - isInsertionPointVisible, - lastClientId, - rootClientId - } = useSelectedBlockToolProps(clientId); - const popoverProps = useBlockToolbarPopoverProps({ - contentElement: __unstableContentRef?.current, - clientId - }); - return (0,external_React_.createElement)(block_popover, { - clientId: capturingClientId || clientId, - bottomClientId: lastClientId, - className: classnames_default()('block-editor-block-list__block-popover', { - 'is-insertion-point-visible': isInsertionPointVisible - }), - resize: false, - ...popoverProps - }, (0,external_React_.createElement)(block_selection_button, { - clientId: clientId, - rootClientId: rootClientId - })); -} +/** + * Get block support for color properties. + * + * @param {string|Object} nameOrType Block name or type object. + * @param {string} feature Color feature to get. + * + * @return {unknown} The block support. + */ +const getColorSupport = (nameOrType, feature) => getBlockSupport(nameOrType, [supports_COLOR_SUPPORT_KEY, feature]); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/zoom-out-mode-inserters.js +/** + * Returns true if the block defines support for custom class name. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasCustomClassNameSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true); /** - * WordPress dependencies + * Returns the block support value for custom class name, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. */ +const getCustomClassNameSupport = nameOrType => getBlockSupport(nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true); - +/** + * Returns true if the block defines support for font family. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasFontFamilySupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, supports_FONT_FAMILY_SUPPORT_KEY); /** - * Internal dependencies + * Returns the block support value for font family, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. */ +const getFontFamilySupport = nameOrType => getBlockSupport(nameOrType, supports_FONT_FAMILY_SUPPORT_KEY); +/** + * Returns true if the block defines support for font size. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasFontSizeSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, supports_FONT_SIZE_SUPPORT_KEY); +/** + * Returns the block support value for font size, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. + */ +const getFontSizeSupport = nameOrType => getBlockSupport(nameOrType, supports_FONT_SIZE_SUPPORT_KEY); -function ZoomOutModeInserters({ - __unstableContentRef -}) { - const [isReady, setIsReady] = (0,external_wp_element_namespaceObject.useState)(false); - const blockOrder = (0,external_wp_data_namespaceObject.useSelect)(select => { - return select(store).getBlockOrder(); - }, []); +/** + * Returns true if the block defines support for layout. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const hasLayoutSupport = nameOrType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, LAYOUT_SUPPORT_KEY); - // Defer the initial rendering to avoid the jumps due to the animation. - (0,external_wp_element_namespaceObject.useEffect)(() => { - const timeout = setTimeout(() => { - setIsReady(true); - }, 500); - return () => { - clearTimeout(timeout); - }; - }, []); - if (!isReady) { - return null; - } - return blockOrder.map((clientId, index) => { - if (index === blockOrder.length - 1) { - return null; - } - return (0,external_React_.createElement)(inbetween, { - key: clientId, - previousClientId: clientId, - nextClientId: blockOrder[index + 1], - __unstableContentRef: __unstableContentRef - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-list__insertion-point-inserter is-with-inserter" - }, (0,external_React_.createElement)(inserter, { - position: "bottom center", - clientId: blockOrder[index + 1], - __experimentalIsQuick: true - }))); - }); -} -/* harmony default export */ var zoom_out_mode_inserters = (ZoomOutModeInserters); +/** + * Returns the block support value for layout, if defined. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {unknown} The block support value. + */ +const getLayoutSupport = nameOrType => getBlockSupport(nameOrType, LAYOUT_SUPPORT_KEY); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/index.js +/** + * Returns true if the block defines support for style. + * + * @param {string|Object} nameOrType Block name or type object. + * @return {boolean} Whether the block supports the feature. + */ +const supports_hasStyleSupport = nameOrType => supports_styleSupportKeys.some(key => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(nameOrType, key)); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-paste-styles/index.js /** * WordPress dependencies */ @@ -55231,186 +49112,153 @@ function ZoomOutModeInserters({ +/** + * Determine if the copied text looks like serialized blocks or not. + * Since plain text will always get parsed into a freeform block, + * we check that if the parsed blocks is anything other than that. + * + * @param {string} text The copied text. + * @return {boolean} True if the text looks like serialized blocks, false otherwise. + */ +function hasSerializedBlocks(text) { + try { + const blocks = (0,external_wp_blocks_namespaceObject.parse)(text, { + __unstableSkipMigrationLogs: true, + __unstableSkipAutop: true + }); + if (blocks.length === 1 && blocks[0].name === 'core/freeform') { + // It's likely that the text is just plain text and not serialized blocks. + return false; + } + return true; + } catch (err) { + // Parsing error, the text is not serialized blocks. + // (Even though that it technically won't happen) + return false; + } +} +/** + * Style attributes are attributes being added in `block-editor/src/hooks/*`. + * (Except for some unrelated to style like `anchor` or `settings`.) + * They generally represent the default block supports. + */ +const STYLE_ATTRIBUTES = { + align: hasAlignSupport, + borderColor: nameOrType => supports_hasBorderSupport(nameOrType, 'color'), + backgroundColor: supports_hasBackgroundColorSupport, + textColor: supports_hasTextColorSupport, + gradient: supports_hasGradientSupport, + className: hasCustomClassNameSupport, + fontFamily: hasFontFamilySupport, + fontSize: hasFontSizeSupport, + layout: hasLayoutSupport, + style: supports_hasStyleSupport +}; +/** + * Get the "style attributes" from a given block to a target block. + * + * @param {WPBlock} sourceBlock The source block. + * @param {WPBlock} targetBlock The target block. + * @return {Object} the filtered attributes object. + */ +function getStyleAttributes(sourceBlock, targetBlock) { + return Object.entries(STYLE_ATTRIBUTES).reduce((attributes, [attributeKey, hasSupport]) => { + // Only apply the attribute if both blocks support it. + if (hasSupport(sourceBlock.name) && hasSupport(targetBlock.name)) { + // Override attributes that are not present in the block to their defaults. + attributes[attributeKey] = sourceBlock.attributes[attributeKey]; + } + return attributes; + }, {}); +} - -function block_tools_selector(select) { - const { - getSelectedBlockClientId, - getFirstMultiSelectedBlockClientId, - getBlock, - getSettings, - hasMultiSelection, - __unstableGetEditorMode, - isTyping - } = select(store); - const clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId(); - const { - name = '', - attributes = {} - } = getBlock(clientId) || {}; - const editorMode = __unstableGetEditorMode(); - const hasSelectedBlock = clientId && name; - const isEmptyDefaultBlock = (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)({ - name, - attributes - }); - const _showEmptyBlockSideInserter = clientId && !isTyping() && editorMode === 'edit' && (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)({ - name, - attributes - }); - const maybeShowBreadcrumb = hasSelectedBlock && !hasMultiSelection() && (editorMode === 'navigation' || editorMode === 'zoom-out'); - return { - clientId, - hasFixedToolbar: getSettings().hasFixedToolbar, - isTyping: isTyping(), - isZoomOutMode: editorMode === 'zoom-out', - showEmptyBlockSideInserter: _showEmptyBlockSideInserter, - showBreadcrumb: !_showEmptyBlockSideInserter && maybeShowBreadcrumb, - showBlockToolbar: !getSettings().hasFixedToolbar && !_showEmptyBlockSideInserter && hasSelectedBlock && !isEmptyDefaultBlock && !maybeShowBreadcrumb - }; +/** + * Update the target blocks with style attributes recursively. + * + * @param {WPBlock[]} targetBlocks The target blocks to be updated. + * @param {WPBlock[]} sourceBlocks The source blocks to get th style attributes from. + * @param {Function} updateBlockAttributes The function to update the attributes. + */ +function recursivelyUpdateBlockAttributes(targetBlocks, sourceBlocks, updateBlockAttributes) { + for (let index = 0; index < Math.min(sourceBlocks.length, targetBlocks.length); index += 1) { + updateBlockAttributes(targetBlocks[index].clientId, getStyleAttributes(sourceBlocks[index], targetBlocks[index])); + recursivelyUpdateBlockAttributes(targetBlocks[index].innerBlocks, sourceBlocks[index].innerBlocks, updateBlockAttributes); + } } /** - * Renders block tools (the block toolbar, select/navigation mode toolbar, the - * insertion point and a slot for the inline rich text toolbar). Must be wrapped - * around the block content and editor styles wrapper or iframe. + * A hook to return a pasteStyles event function for handling pasting styles to blocks. * - * @param {Object} $0 Props. - * @param {Object} $0.children The block content and style container. - * @param {Object} $0.__unstableContentRef Ref holding the content scroll container. + * @return {Function} A function to update the styles to the blocks. */ -function BlockTools({ - children, - __unstableContentRef, - ...props -}) { - const { - clientId, - hasFixedToolbar, - isTyping, - isZoomOutMode, - showEmptyBlockSideInserter, - showBreadcrumb, - showBlockToolbar - } = (0,external_wp_data_namespaceObject.useSelect)(block_tools_selector, []); - const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); - const { - getSelectedBlockClientIds, - getBlockRootClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); +function usePasteStyles() { + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); const { - duplicateBlocks, - removeBlocks, - insertAfterBlock, - insertBeforeBlock, - clearSelectedBlock, - selectBlock, - moveBlocksUp, - moveBlocksDown + updateBlockAttributes } = (0,external_wp_data_namespaceObject.useDispatch)(store); - function onKeyDown(event) { - if (event.defaultPrevented) return; - if (isMatch('core/block-editor/move-up', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - const rootClientId = getBlockRootClientId(clientIds[0]); - moveBlocksUp(clientIds, rootClientId); - } - } else if (isMatch('core/block-editor/move-down', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - const rootClientId = getBlockRootClientId(clientIds[0]); - moveBlocksDown(clientIds, rootClientId); - } - } else if (isMatch('core/block-editor/duplicate', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - duplicateBlocks(clientIds); - } - } else if (isMatch('core/block-editor/remove', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - removeBlocks(clientIds); - } - } else if (isMatch('core/block-editor/insert-after', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - insertAfterBlock(clientIds[clientIds.length - 1]); - } - } else if (isMatch('core/block-editor/insert-before', event)) { - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); - insertBeforeBlock(clientIds[0]); - } - } else if (isMatch('core/block-editor/unselect', event)) { - if (event.target.closest('[role=toolbar]')) { - // This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where: - // - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar - // - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element. - // - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it. - // An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though. + const { + createSuccessNotice, + createWarningNotice, + createErrorNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + return (0,external_wp_element_namespaceObject.useCallback)(async targetBlocks => { + let html = ''; + try { + // `http:` sites won't have the clipboard property on navigator. + // (with the exception of localhost.) + if (!window.navigator.clipboard) { + createErrorNotice((0,external_wp_i18n_namespaceObject.__)('Unable to paste styles. This feature is only available on secure (https) sites in supporting browsers.'), { + type: 'snackbar' + }); return; } - const clientIds = getSelectedBlockClientIds(); - if (clientIds.length) { - event.preventDefault(); + html = await window.navigator.clipboard.readText(); + } catch (error) { + // Possibly the permission is denied. + createErrorNotice((0,external_wp_i18n_namespaceObject.__)('Unable to paste styles. Please allow browser clipboard permissions before continuing.'), { + type: 'snackbar' + }); + return; + } - // If there is more than one block selected, select the first - // block so that focus is directed back to the beginning of the selection. - // In effect, to the user this feels like deselecting the multi-selection. - if (clientIds.length > 1) { - selectBlock(clientIds[0]); - } else { - clearSelectedBlock(); - } - event.target.ownerDocument.defaultView.getSelection().removeAllRanges(); - __unstableContentRef?.current.focus(); - } + // Abort if the copied text is empty or doesn't look like serialized blocks. + if (!html || !hasSerializedBlocks(html)) { + createWarningNotice((0,external_wp_i18n_namespaceObject.__)("Unable to paste styles. Block styles couldn't be found within the copied content."), { + type: 'snackbar' + }); + return; } - } - const blockToolbarRef = use_popover_scroll(__unstableContentRef); - const blockToolbarAfterRef = use_popover_scroll(__unstableContentRef); - return ( - // eslint-disable-next-line jsx-a11y/no-static-element-interactions - (0,external_React_.createElement)("div", { - ...props, - onKeyDown: onKeyDown - }, (0,external_React_.createElement)(insertion_point_InsertionPointOpenRef.Provider, { - value: (0,external_wp_element_namespaceObject.useRef)(false) - }, !isTyping && (0,external_React_.createElement)(InsertionPoint, { - __unstableContentRef: __unstableContentRef - }), showEmptyBlockSideInserter && (0,external_React_.createElement)(EmptyBlockInserter, { - __unstableContentRef: __unstableContentRef, - clientId: clientId - }), showBlockToolbar && (0,external_React_.createElement)(BlockToolbarPopover, { - __unstableContentRef: __unstableContentRef, - clientId: clientId, - isTyping: isTyping - }), showBreadcrumb && (0,external_React_.createElement)(BlockToolbarBreadcrumb, { - __unstableContentRef: __unstableContentRef, - clientId: clientId - }), !isZoomOutMode && !hasFixedToolbar && (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover.Slot, { - name: "block-toolbar", - ref: blockToolbarRef - }), children, (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover.Slot, { - name: "__unstable-block-tools-after", - ref: blockToolbarAfterRef - }), isZoomOutMode && (0,external_React_.createElement)(zoom_out_mode_inserters, { - __unstableContentRef: __unstableContentRef - }))) - ); + const copiedBlocks = (0,external_wp_blocks_namespaceObject.parse)(html); + if (copiedBlocks.length === 1) { + // Apply styles of the block to all the target blocks. + registry.batch(() => { + recursivelyUpdateBlockAttributes(targetBlocks, targetBlocks.map(() => copiedBlocks[0]), updateBlockAttributes); + }); + } else { + registry.batch(() => { + recursivelyUpdateBlockAttributes(targetBlocks, copiedBlocks, updateBlockAttributes); + }); + } + if (targetBlocks.length === 1) { + const title = (0,external_wp_blocks_namespaceObject.getBlockType)(targetBlocks[0].name)?.title; + createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: Name of the block being pasted, e.g. "Paragraph". + (0,external_wp_i18n_namespaceObject.__)('Pasted styles to %s.'), title), { + type: 'snackbar' + }); + } else { + createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)( + // Translators: The number of the blocks. + (0,external_wp_i18n_namespaceObject.__)('Pasted styles to %d blocks.'), targetBlocks.length), { + type: 'snackbar' + }); + } + }, [registry.batch, updateBlockAttributes, createSuccessNotice, createWarningNotice, createErrorNotice]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-canvas/index.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-actions/index.js /** * WordPress dependencies */ @@ -55423,247 +49271,334 @@ function BlockTools({ - - - - -function ExperimentalBlockCanvas({ - shouldIframe = true, - height = '300px', - children = (0,external_React_.createElement)(BlockList, null), - styles, - contentRef: contentRefProp, - iframeProps +function BlockActions({ + clientIds, + children, + __experimentalUpdateSelection: updateSelection }) { - const resetTypingRef = useMouseMoveTypingReset(); - const clearerRef = useBlockSelectionClearer(); - const localRef = (0,external_wp_element_namespaceObject.useRef)(); - const contentRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([contentRefProp, clearerRef, localRef]); - if (!shouldIframe) { - return (0,external_React_.createElement)(BlockTools, { - __unstableContentRef: localRef, - style: { - height, - display: 'flex' + const { + canInsertBlockType, + getBlockRootClientId, + getBlocksByClientId, + canMoveBlocks, + canRemoveBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + getDefaultBlockName, + getGroupingBlockName + } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); + const blocks = getBlocksByClientId(clientIds); + const rootClientId = getBlockRootClientId(clientIds[0]); + const canCopyStyles = blocks.every(block => { + return !!block && ((0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'color') || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'typography')); + }); + const canDuplicate = blocks.every(block => { + return !!block && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId); + }); + const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId); + const canMove = canMoveBlocks(clientIds, rootClientId); + const canRemove = canRemoveBlocks(clientIds, rootClientId); + const { + removeBlocks, + replaceBlocks, + duplicateBlocks, + insertAfterBlock, + insertBeforeBlock, + flashBlock, + setBlockMovingClientId, + setNavigationMode, + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const notifyCopy = useNotifyCopy(); + const pasteStyles = usePasteStyles(); + return children({ + canCopyStyles, + canDuplicate, + canInsertDefaultBlock, + canMove, + canRemove, + rootClientId, + blocks, + onDuplicate() { + return duplicateBlocks(clientIds, updateSelection); + }, + onRemove() { + return removeBlocks(clientIds, updateSelection); + }, + onInsertBefore() { + const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId; + insertBeforeBlock(clientId); + }, + onInsertAfter() { + const clientId = Array.isArray(clientIds) ? clientIds[clientIds.length - 1] : clientId; + insertAfterBlock(clientId); + }, + onMoveTo() { + setNavigationMode(true); + selectBlock(clientIds[0]); + setBlockMovingClientId(clientIds[0]); + }, + onGroup() { + if (!blocks.length) { + return; } - }, (0,external_React_.createElement)(EditorStyles, { - styles: styles, - scope: ".editor-styles-wrapper" - }), (0,external_React_.createElement)(writing_flow, { - ref: contentRef, - className: "editor-styles-wrapper", - tabIndex: -1, - style: { - height: '100%', - width: '100%' + const groupingBlockName = getGroupingBlockName(); + + // Activate the `transform` on `core/group` which does the conversion. + const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, groupingBlockName); + if (!newBlocks) { + return; } - }, children)); - } - return (0,external_React_.createElement)(BlockTools, { - __unstableContentRef: localRef, - style: { - height, - display: 'flex' - } - }, (0,external_React_.createElement)(iframe, { - ...iframeProps, - ref: resetTypingRef, - contentRef: contentRef, - style: { - ...iframeProps?.style + replaceBlocks(clientIds, newBlocks); }, - name: "editor-canvas" - }, (0,external_React_.createElement)(EditorStyles, { - styles: styles - }), children)); -} - -/** - * BlockCanvas component is a component used to display the canvas of the block editor. - * What we call the canvas is an iframe containing the block list that you can manipulate. - * The component is also responsible of wiring up all the necessary hooks to enable - * the keyboard navigation across blocks in the editor and inject content styles into the iframe. - * - * @example - * - * ```jsx - * function MyBlockEditor() { - * const [ blocks, updateBlocks ] = useState([]); - * return ( - * - * - * - * ); - * } - * ``` - * - * @param {Object} props Component props. - * @param {string} props.height Canvas height, defaults to 300px. - * @param {Array} props.styles Content styles to inject into the iframe. - * @param {Element} props.children Content of the canvas, defaults to the BlockList component. - * @return {Element} Block Breadcrumb. - */ -function BlockCanvas({ - children, - height, - styles -}) { - return (0,external_React_.createElement)(ExperimentalBlockCanvas, { - height: height, - styles: styles - }, children); + onUngroup() { + if (!blocks.length) { + return; + } + const innerBlocks = blocks[0].innerBlocks; + if (!innerBlocks.length) { + return; + } + replaceBlocks(clientIds, innerBlocks); + }, + onCopy() { + const selectedBlockClientIds = blocks.map(({ + clientId + }) => clientId); + if (blocks.length === 1) { + flashBlock(selectedBlockClientIds[0]); + } + notifyCopy('copy', selectedBlockClientIds); + }, + async onPasteStyles() { + await pasteStyles(blocks); + } + }); } -/* harmony default export */ var block_canvas = (BlockCanvas); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-style-selector/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-convert-button.js /** * WordPress dependencies */ +function BlockConvertButton({ + shouldRender, + onClick, + small +}) { + if (!shouldRender) { + return null; + } + const label = (0,external_wp_i18n_namespaceObject.__)('Convert to Blocks'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: onClick + }, !small && label); +} - -const ColorSelectorSVGIcon = () => (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 20 20" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z" -})); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-html-convert-button.js /** - * Color Selector Icon component. - * - * @param {Object} props Component properties. - * @param {Object} props.style Style object. - * @param {string} props.className Class name for component. - * - * @return {*} React Icon component. + * WordPress dependencies */ -const ColorSelectorIcon = ({ - style, - className -}) => { - return (0,external_React_.createElement)("div", { - className: "block-library-colors-selector__icon-container" - }, (0,external_React_.createElement)("div", { - className: `${className} block-library-colors-selector__state-selection`, - style: style - }, (0,external_React_.createElement)(ColorSelectorSVGIcon, null))); -}; + + + /** - * Renders the Colors Selector Toolbar with the icon button. - * - * @param {Object} props Component properties. - * @param {Object} props.TextColor Text color component that wraps icon. - * @param {Object} props.BackgroundColor Background color component that wraps icon. - * - * @return {*} React toggle button component. + * Internal dependencies */ -const renderToggleComponent = ({ - TextColor, - BackgroundColor -}) => ({ - onToggle, - isOpen + + +/* harmony default export */ var block_html_convert_button = ((0,external_wp_compose_namespaceObject.compose)((0,external_wp_data_namespaceObject.withSelect)((select, { + clientId }) => { - const openOnArrowDown = event => { - if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) { - event.preventDefault(); - onToggle(); - } + const block = select(store).getBlock(clientId); + return { + block, + shouldRender: block && block.name === 'core/html' }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - className: "components-toolbar__control block-library-colors-selector__toggle", - label: (0,external_wp_i18n_namespaceObject.__)('Open Colors Selector'), - onClick: onToggle, - onKeyDown: openOnArrowDown, - icon: (0,external_React_.createElement)(BackgroundColor, null, (0,external_React_.createElement)(TextColor, null, (0,external_React_.createElement)(ColorSelectorIcon, null))) - })); -}; -const BlockColorsStyleSelector = ({ - children, - ...other -}) => { - external_wp_deprecated_default()(`wp.blockEditor.BlockColorsStyleSelector`, { - alternative: 'block supports API', - since: '6.1', - version: '6.3' - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: { - placement: 'bottom-start' - }, - className: "block-library-colors-selector", - contentClassName: "block-library-colors-selector__popover", - renderToggle: renderToggleComponent(other), - renderContent: () => children - }); -}; -/* harmony default export */ var color_style_selector = (BlockColorsStyleSelector); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list-view.js +}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, { + block +}) => ({ + onClick: () => dispatch(store).replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({ + HTML: (0,external_wp_blocks_namespaceObject.getBlockContent)(block) + })) +})))(BlockConvertButton)); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-menu-first-item.js /** * WordPress dependencies */ -const listView = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z" -})); -/* harmony default export */ var list_view = (listView); +const { + Fill: __unstableBlockSettingsMenuFirstItem, + Slot: block_settings_menu_first_item_Slot +} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableBlockSettingsMenuFirstItem'); +__unstableBlockSettingsMenuFirstItem.Slot = block_settings_menu_first_item_Slot; +/* harmony default export */ var block_settings_menu_first_item = (__unstableBlockSettingsMenuFirstItem); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/context.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/utils.js /** * WordPress dependencies */ -const ListViewContext = (0,external_wp_element_namespaceObject.createContext)({}); -const useListViewContext = () => (0,external_wp_element_namespaceObject.useContext)(ListViewContext); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/aria-referenced-text.js /** - * WordPress dependencies + * Internal dependencies */ +const { + clearTimeout: utils_clearTimeout, + setTimeout: utils_setTimeout +} = window; +const DEBOUNCE_TIMEOUT = 200; /** - * A component specifically designed to be used as an element referenced - * by ARIA attributes such as `aria-labelledby` or `aria-describedby`. + * Hook that creates debounced callbacks when the node is hovered or focused. * - * @param {Object} props Props. - * @param {import('react').ReactNode} props.children + * @param {Object} props Component props. + * @param {Object} props.ref Element reference. + * @param {boolean} props.isFocused Whether the component has current focus. + * @param {number} props.highlightParent Whether to highlight the parent block. It defaults in highlighting the selected block. + * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds. */ -function AriaReferencedText({ - children, - ...props +function useDebouncedShowGestures({ + ref, + isFocused, + highlightParent, + debounceTimeout = DEBOUNCE_TIMEOUT }) { - const ref = (0,external_wp_element_namespaceObject.useRef)(); + const { + getSelectedBlockClientId, + getBlockRootClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + toggleBlockHighlight + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const timeoutRef = (0,external_wp_element_namespaceObject.useRef)(); + const isDistractionFree = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().isDistractionFree, []); + const handleOnChange = nextIsFocused => { + if (nextIsFocused && isDistractionFree) { + return; + } + const selectedBlockClientId = getSelectedBlockClientId(); + const clientId = highlightParent ? getBlockRootClientId(selectedBlockClientId) : selectedBlockClientId; + toggleBlockHighlight(clientId, nextIsFocused); + }; + const getIsHovered = () => { + return ref?.current && ref.current.matches(':hover'); + }; + const shouldHideGestures = () => { + const isHovered = getIsHovered(); + return !isFocused && !isHovered; + }; + const clearTimeoutRef = () => { + const timeout = timeoutRef.current; + if (timeout && utils_clearTimeout) { + utils_clearTimeout(timeout); + } + }; + const debouncedShowGestures = event => { + if (event) { + event.stopPropagation(); + } + clearTimeoutRef(); + handleOnChange(true); + }; + const debouncedHideGestures = event => { + if (event) { + event.stopPropagation(); + } + clearTimeoutRef(); + timeoutRef.current = utils_setTimeout(() => { + if (shouldHideGestures()) { + handleOnChange(false); + } + }, debounceTimeout); + }; + (0,external_wp_element_namespaceObject.useEffect)(() => () => { + /** + * We need to call the change handler with `isFocused` + * set to false on unmount because we also clear the + * timeout that would handle that. + */ + handleOnChange(false); + clearTimeoutRef(); + }, []); + return { + debouncedShowGestures, + debouncedHideGestures + }; +} + +/** + * Hook that provides gesture events for DOM elements + * that interact with the isFocused state. + * + * @param {Object} props Component props. + * @param {Object} props.ref Element reference. + * @param {number} [props.highlightParent=false] Whether to highlight the parent block. It defaults to highlighting the selected block. + * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds. + */ +function useShowHoveredOrFocusedGestures({ + ref, + highlightParent = false, + debounceTimeout = DEBOUNCE_TIMEOUT +}) { + const [isFocused, setIsFocused] = (0,external_wp_element_namespaceObject.useState)(false); + const { + debouncedShowGestures, + debouncedHideGestures + } = useDebouncedShowGestures({ + ref, + debounceTimeout, + isFocused, + highlightParent + }); + const registerRef = (0,external_wp_element_namespaceObject.useRef)(false); + const isFocusedWithin = () => { + return ref?.current && ref.current.contains(ref.current.ownerDocument.activeElement); + }; (0,external_wp_element_namespaceObject.useEffect)(() => { - if (ref.current) { - // This seems like a no-op, but it fixes a bug in Firefox where - // it fails to recompute the text when only the text node changes. - // @see https://github.com/WordPress/gutenberg/pull/51035 - ref.current.textContent = ref.current.textContent; + const node = ref.current; + const handleOnFocus = () => { + if (isFocusedWithin()) { + setIsFocused(true); + debouncedShowGestures(); + } + }; + const handleOnBlur = () => { + if (!isFocusedWithin()) { + setIsFocused(false); + debouncedHideGestures(); + } + }; + + /** + * Events are added via DOM events (vs. React synthetic events), + * as the child React components swallow mouse events. + */ + if (node && !registerRef.current) { + node.addEventListener('focus', handleOnFocus, true); + node.addEventListener('blur', handleOnBlur, true); + registerRef.current = true; } - }, [children]); - return (0,external_React_.createElement)("div", { - hidden: true, - ...props, - ref: ref - }, children); + return () => { + if (node) { + node.removeEventListener('focus', handleOnFocus); + node.removeEventListener('blur', handleOnBlur); + } + }; + }, [ref, registerRef, setIsFocused, debouncedShowGestures, debouncedHideGestures]); + return { + onMouseMove: debouncedShowGestures, + onMouseLeave: debouncedHideGestures + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/appender.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-dropdown.js /** * WordPress dependencies @@ -55674,6 +49609,9 @@ function AriaReferencedText({ + + + /** * Internal dependencies */ @@ -55682,81 +49620,254 @@ function AriaReferencedText({ -const Appender = (0,external_wp_element_namespaceObject.forwardRef)(({ - nestingLevel, - blockCount, - clientId, + + + +const block_settings_dropdown_POPOVER_PROPS = { + className: 'block-editor-block-settings-menu__popover', + placement: 'bottom-start' +}; +function CopyMenuItem({ + blocks, + onCopy, + label +}) { + const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(() => (0,external_wp_blocks_namespaceObject.serialize)(blocks), onCopy); + const copyMenuItemBlocksLabel = blocks.length > 1 ? (0,external_wp_i18n_namespaceObject.__)('Copy blocks') : (0,external_wp_i18n_namespaceObject.__)('Copy'); + const copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + ref: ref + }, copyMenuItemLabel); +} +function BlockSettingsDropdown({ + block, + clientIds, + __experimentalSelectBlock, + children, + __unstableDisplayLocation, ...props -}, ref) => { +}) { + // Get the client id of the current block for this menu, if one is set. + const currentClientId = block?.clientId; + const blockClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; + const count = blockClientIds.length; + const firstBlockClientId = blockClientIds[0]; const { - insertedBlock, - setInsertedBlock - } = useListViewContext(); - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(Appender); - const hideInserter = (0,external_wp_data_namespaceObject.useSelect)(select => { + firstParentClientId, + onlyBlock, + parentBlockType, + previousBlockClientId, + selectedBlockClientIds + } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getTemplateLock, - __unstableGetEditorMode + getBlockCount, + getBlockName, + getBlockRootClientId, + getPreviousBlockClientId, + getSelectedBlockClientIds, + getBlockAttributes } = select(store); - return !!getTemplateLock(clientId) || __unstableGetEditorMode() === 'zoom-out'; - }, [clientId]); - const blockTitle = useBlockDisplayTitle({ - clientId, - context: 'list-view' - }); - const insertedBlockTitle = useBlockDisplayTitle({ - clientId: insertedBlock?.clientId, - context: 'list-view' + const { + getActiveBlockVariation + } = select(external_wp_blocks_namespaceObject.store); + const _firstParentClientId = getBlockRootClientId(firstBlockClientId); + const parentBlockName = _firstParentClientId && getBlockName(_firstParentClientId); + return { + firstParentClientId: _firstParentClientId, + onlyBlock: 1 === getBlockCount(_firstParentClientId), + parentBlockType: _firstParentClientId && (getActiveBlockVariation(parentBlockName, getBlockAttributes(_firstParentClientId)) || (0,external_wp_blocks_namespaceObject.getBlockType)(parentBlockName)), + previousBlockClientId: getPreviousBlockClientId(firstBlockClientId), + selectedBlockClientIds: getSelectedBlockClientIds() + }; + }, [firstBlockClientId]); + const { + getBlockOrder, + getSelectedBlockClientIds + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const openedBlockSettingsMenu = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getOpenedBlockSettingsMenu(), []); + const { + setOpenedBlockSettingsMenu + } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store)); + const shortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getShortcutRepresentation + } = select(external_wp_keyboardShortcuts_namespaceObject.store); + return { + duplicate: getShortcutRepresentation('core/block-editor/duplicate'), + remove: getShortcutRepresentation('core/block-editor/remove'), + insertAfter: getShortcutRepresentation('core/block-editor/insert-after'), + insertBefore: getShortcutRepresentation('core/block-editor/insert-before') + }; + }, []); + const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); + const { + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const hasSelectedBlocks = selectedBlockClientIds.length > 0; + const updateSelectionAfterDuplicate = (0,external_wp_element_namespaceObject.useCallback)(async clientIdsPromise => { + if (__experimentalSelectBlock) { + const ids = await clientIdsPromise; + if (ids && ids[0]) { + __experimentalSelectBlock(ids[0], false); + } + } + }, [__experimentalSelectBlock]); + const updateSelectionAfterRemove = (0,external_wp_element_namespaceObject.useCallback)(() => { + if (__experimentalSelectBlock) { + let blockToFocus = previousBlockClientId || firstParentClientId; + + // Focus the first block if there's no previous block nor parent block. + if (!blockToFocus) { + blockToFocus = getBlockOrder()[0]; + } + + // Only update the selection if the original selection is removed. + const shouldUpdateSelection = hasSelectedBlocks && getSelectedBlockClientIds().length === 0; + __experimentalSelectBlock(blockToFocus, shouldUpdateSelection); + } + }, [__experimentalSelectBlock, previousBlockClientId, firstParentClientId, getBlockOrder, hasSelectedBlocks, getSelectedBlockClientIds]); + const removeBlockLabel = count === 1 ? (0,external_wp_i18n_namespaceObject.__)('Delete') : (0,external_wp_i18n_namespaceObject.__)('Delete blocks'); + + // Allows highlighting the parent block outline when focusing or hovering + // the parent block selector within the child. + const selectParentButtonRef = (0,external_wp_element_namespaceObject.useRef)(); + const showParentOutlineGestures = useShowHoveredOrFocusedGestures({ + ref: selectParentButtonRef, + highlightParent: true }); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!insertedBlockTitle?.length) { - return; + + // This can occur when the selected block (the parent) + // displays child blocks within a List View. + const parentBlockIsSelected = selectedBlockClientIds?.includes(firstParentClientId); + + // When a currentClientId is in use, treat the menu as a controlled component. + // This ensures that only one block settings menu is open at a time. + // This is a temporary solution to work around an issue with `onFocusOutside` + // where it does not allow a dropdown to be closed if focus was never within + // the dropdown to begin with. Examples include a user either CMD+Clicking or + // right clicking into an inactive window. + // See: https://github.com/WordPress/gutenberg/pull/54083 + const open = !currentClientId ? undefined : openedBlockSettingsMenu === currentClientId || false; + const onToggle = (0,external_wp_element_namespaceObject.useCallback)(localOpen => { + if (localOpen && openedBlockSettingsMenu !== currentClientId) { + setOpenedBlockSettingsMenu(currentClientId); + } else if (!localOpen && openedBlockSettingsMenu && openedBlockSettingsMenu === currentClientId) { + setOpenedBlockSettingsMenu(undefined); } - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: name of block being inserted (i.e. Paragraph, Image, Group etc) - (0,external_wp_i18n_namespaceObject.__)('%s block inserted'), insertedBlockTitle), 'assertive'); - }, [insertedBlockTitle]); - if (hideInserter) { - return null; - } - const descriptionId = `list-view-appender__${instanceId}`; - const description = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The name of the block. 2: The numerical position of the block. 3: The level of nesting for the block. */ - (0,external_wp_i18n_namespaceObject.__)('Append to %1$s block at position %2$d, Level %3$d'), blockTitle, blockCount + 1, nestingLevel); - return (0,external_React_.createElement)("div", { - className: "list-view-appender" - }, (0,external_React_.createElement)(inserter, { - ref: ref, - rootClientId: clientId, - position: "bottom right", - isAppender: true, - selectBlockOnInsert: false, - shouldDirectInsert: false, - __experimentalIsQuick: true, - ...props, - toggleProps: { - 'aria-describedby': descriptionId + }, [currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu]); + return (0,external_wp_element_namespaceObject.createElement)(BlockActions, { + clientIds: clientIds, + __experimentalUpdateSelection: !__experimentalSelectBlock + }, ({ + canCopyStyles, + canDuplicate, + canInsertDefaultBlock, + canMove, + canRemove, + onDuplicate, + onInsertAfter, + onInsertBefore, + onRemove, + onCopy, + onPasteStyles, + onMoveTo, + blocks + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + icon: more_vertical, + label: (0,external_wp_i18n_namespaceObject.__)('Options'), + className: "block-editor-block-settings-menu", + popoverProps: block_settings_dropdown_POPOVER_PROPS, + open: open, + onToggle: onToggle, + noIcons: true, + menuProps: { + /** + * @param {KeyboardEvent} event + */ + onKeyDown(event) { + if (event.defaultPrevented) return; + if (isMatch('core/block-editor/remove', event) && canRemove) { + event.preventDefault(); + updateSelectionAfterRemove(onRemove()); + } else if (isMatch('core/block-editor/duplicate', event) && canDuplicate) { + event.preventDefault(); + updateSelectionAfterDuplicate(onDuplicate()); + } else if (isMatch('core/block-editor/insert-after', event) && canInsertDefaultBlock) { + event.preventDefault(); + setOpenedBlockSettingsMenu(undefined); + onInsertAfter(); + } else if (isMatch('core/block-editor/insert-before', event) && canInsertDefaultBlock) { + event.preventDefault(); + setOpenedBlockSettingsMenu(undefined); + onInsertBefore(); + } + } + }, + ...props + }, ({ + onClose + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(block_settings_menu_first_item.Slot, { + fillProps: { + onClose + } + }), !parentBlockIsSelected && !!firstParentClientId && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + ...showParentOutlineGestures, + ref: selectParentButtonRef, + icon: (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: parentBlockType.icon + }), + onClick: () => selectBlock(firstParentClientId) + }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block's parent. */ + (0,external_wp_i18n_namespaceObject.__)('Select parent block (%s)'), parentBlockType.title)), count === 1 && (0,external_wp_element_namespaceObject.createElement)(block_html_convert_button, { + clientId: firstBlockClientId + }), (0,external_wp_element_namespaceObject.createElement)(CopyMenuItem, { + blocks: blocks, + onCopy: onCopy + }), canDuplicate && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onDuplicate, updateSelectionAfterDuplicate), + shortcut: shortcuts.duplicate + }, (0,external_wp_i18n_namespaceObject.__)('Duplicate')), canInsertDefaultBlock && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onInsertBefore), + shortcut: shortcuts.insertBefore + }, (0,external_wp_i18n_namespaceObject.__)('Add before')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onInsertAfter), + shortcut: shortcuts.insertAfter + }, (0,external_wp_i18n_namespaceObject.__)('Add after')))), canCopyStyles && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(CopyMenuItem, { + blocks: blocks, + onCopy: onCopy, + label: (0,external_wp_i18n_namespaceObject.__)('Copy styles') + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: onPasteStyles + }, (0,external_wp_i18n_namespaceObject.__)('Paste styles'))), (0,external_wp_element_namespaceObject.createElement)(block_settings_menu_controls.Slot, { + fillProps: { + onClose, + canMove, + onMoveTo, + onlyBlock, + count, + firstBlockClientId }, - onSelectOrClose: maybeInsertedBlock => { - if (maybeInsertedBlock?.clientId) { - setInsertedBlock(maybeInsertedBlock); - } - } - }), (0,external_React_.createElement)(AriaReferencedText, { - id: descriptionId - }, description)); -}); + clientIds: clientIds, + __unstableDisplayLocation: __unstableDisplayLocation + }), typeof children === 'function' ? children({ + onClose + }) : external_wp_element_namespaceObject.Children.map(child => (0,external_wp_element_namespaceObject.cloneElement)(child, { + onClose + })), canRemove && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: (0,external_wp_compose_namespaceObject.pipe)(onClose, onRemove, updateSelectionAfterRemove), + shortcut: shortcuts.remove + }, removeBlockLabel))))); +} +/* harmony default export */ var block_settings_dropdown = (BlockSettingsDropdown); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/leaf.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/index.js /** - * External dependencies + * WordPress dependencies */ -/** - * WordPress dependencies - */ @@ -55765,144 +49876,323 @@ const Appender = (0,external_wp_element_namespaceObject.forwardRef)(({ * Internal dependencies */ -const AnimatedTreeGridRow = animated(external_wp_components_namespaceObject.__experimentalTreeGridRow); -const ListViewLeaf = (0,external_wp_element_namespaceObject.forwardRef)(({ - isDragged, - isSelected, - position, - level, - rowCount, - children, - className, - path, - ...props -}, ref) => { - const animationRef = use_moving_animation({ - clientId: props['data-block'], - enableAnimation: true, - triggerAnimationOnChange: path - }); - const mergedRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, animationRef]); - return (0,external_React_.createElement)(AnimatedTreeGridRow, { - ref: mergedRef, - className: classnames_default()('block-editor-list-view-leaf', className), - level: level, - positionInSet: position, - setSize: rowCount, - isExpanded: undefined, - ...props - }, children); -}); -/* harmony default export */ var leaf = (ListViewLeaf); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-scroll-into-view.js -/** - * WordPress dependencies - */ -function useListViewScrollIntoView({ - isSelected, - selectedClientIds, - rowItemRef -}) { - const isSingleSelection = selectedClientIds.length === 1; - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - // Skip scrolling into view if this particular block isn't selected, - // or if more than one block is selected overall. This is to avoid - // scrolling the view in a multi selection where the user has intentionally - // selected multiple blocks within the list view, but the initially - // selected block may be out of view. - if (!isSelected || !isSingleSelection || !rowItemRef.current) { + + + + + + +const expanded = (state, action) => { + if (Array.isArray(action.clientIds)) { + return { + ...state, + ...action.clientIds.reduce((newState, id) => ({ + ...newState, + [id]: action.type === 'expand' + }), {}) + }; + } + return state; +}; +const BLOCK_LIST_ITEM_HEIGHT = 36; + +/** @typedef {import('react').ComponentType} ComponentType */ +/** @typedef {import('react').Ref} Ref */ + +/** + * Show a hierarchical list of blocks. + * + * @param {Object} props Components props. + * @param {string} props.id An HTML element id for the root element of ListView. + * @param {Array} props.blocks _deprecated_ Custom subset of block client IDs to be used instead of the default hierarchy. + * @param {?HTMLElement} props.dropZoneElement Optional element to be used as the drop zone. + * @param {?boolean} props.showBlockMovers Flag to enable block movers. Defaults to `false`. + * @param {?boolean} props.isExpanded Flag to determine whether nested levels are expanded by default. Defaults to `false`. + * @param {?boolean} props.showAppender Flag to show or hide the block appender. Defaults to `false`. + * @param {?ComponentType} props.blockSettingsMenu Optional more menu substitution. Defaults to the standard `BlockSettingsDropdown` component. + * @param {string} props.rootClientId The client id of the root block from which we determine the blocks to show in the list. + * @param {string} props.description Optional accessible description for the tree grid component. + * @param {?Function} props.onSelect Optional callback to be invoked when a block is selected. Receives the block object that was selected. + * @param {?ComponentType} props.additionalBlockContent Component that renders additional block content UI. + * @param {Ref} ref Forwarded ref + */ +function ListViewComponent({ + id, + blocks, + dropZoneElement, + showBlockMovers = false, + isExpanded = false, + showAppender = false, + blockSettingsMenu: BlockSettingsMenu = BlockSettingsDropdown, + rootClientId, + description, + onSelect, + additionalBlockContent: AdditionalBlockContent +}, ref) { + // This can be removed once we no longer need to support the blocks prop. + if (blocks) { + external_wp_deprecated_default()('`blocks` property in `wp.blockEditor.__experimentalListView`', { + since: '6.3', + alternative: '`rootClientId` property' + }); + } + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ListViewComponent); + const { + clientIdsTree, + draggedClientIds, + selectedClientIds + } = useListViewClientIds({ + blocks, + rootClientId + }); + const { + getBlock + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + visibleBlockCount, + shouldShowInnerBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getGlobalBlockCount, + getClientIdsOfDescendants, + __unstableGetEditorMode + } = select(store); + const draggedBlockCount = draggedClientIds?.length > 0 ? getClientIdsOfDescendants(draggedClientIds).length + 1 : 0; + return { + visibleBlockCount: getGlobalBlockCount() - draggedBlockCount, + shouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out' + }; + }, [draggedClientIds]); + const { + updateBlockSelection + } = useBlockSelection(); + const [expandedState, setExpandedState] = (0,external_wp_element_namespaceObject.useReducer)(expanded, {}); + const { + ref: dropZoneRef, + target: blockDropTarget + } = useListViewDropZone({ + dropZoneElement + }); + const elementRef = (0,external_wp_element_namespaceObject.useRef)(); + const treeGridRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([elementRef, dropZoneRef, ref]); + const [insertedBlock, setInsertedBlock] = (0,external_wp_element_namespaceObject.useState)(null); + const { + setSelectedTreeId + } = useListViewExpandSelectedItem({ + firstSelectedBlockClientId: selectedClientIds[0], + setExpandedState + }); + const selectEditorBlock = (0,external_wp_element_namespaceObject.useCallback)( + /** + * @param {MouseEvent | KeyboardEvent | undefined} event + * @param {string} blockClientId + * @param {null | undefined | -1 | 1} focusPosition + */ + (event, blockClientId, focusPosition) => { + updateBlockSelection(event, blockClientId, null, focusPosition); + setSelectedTreeId(blockClientId); + if (onSelect) { + onSelect(getBlock(blockClientId)); + } + }, [setSelectedTreeId, updateBlockSelection, onSelect, getBlock]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // If a blocks are already selected when the list view is initially + // mounted, shift focus to the first selected block. + if (selectedClientIds?.length) { + focusListItem(selectedClientIds[0], elementRef); + } + // Disable reason: Only focus on the selected item when the list view is mounted. + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + const expand = (0,external_wp_element_namespaceObject.useCallback)(clientId => { + if (!clientId) { return; } - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(rowItemRef.current); - const { - ownerDocument - } = rowItemRef.current; - const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; - - // If the there is no scroll container, of if the scroll container is the window, - // do not scroll into view, as the block is already in view. - if (windowScroll || !scrollContainer) { + setExpandedState({ + type: 'expand', + clientIds: [clientId] + }); + }, [setExpandedState]); + const collapse = (0,external_wp_element_namespaceObject.useCallback)(clientId => { + if (!clientId) { return; } - const rowRect = rowItemRef.current.getBoundingClientRect(); - const scrollContainerRect = scrollContainer.getBoundingClientRect(); - - // If the selected block is not currently visible, scroll to it. - if (rowRect.top < scrollContainerRect.top || rowRect.bottom > scrollContainerRect.bottom) { - rowItemRef.current.scrollIntoView(); + setExpandedState({ + type: 'collapse', + clientIds: [clientId] + }); + }, [setExpandedState]); + const expandRow = (0,external_wp_element_namespaceObject.useCallback)(row => { + expand(row?.dataset?.block); + }, [expand]); + const collapseRow = (0,external_wp_element_namespaceObject.useCallback)(row => { + collapse(row?.dataset?.block); + }, [collapse]); + const focusRow = (0,external_wp_element_namespaceObject.useCallback)((event, startRow, endRow) => { + if (event.shiftKey) { + updateBlockSelection(event, startRow?.dataset?.block, endRow?.dataset?.block); } - }, [isSelected, isSingleSelection, rowItemRef]); + }, [updateBlockSelection]); + const contextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + draggedClientIds, + expandedState, + expand, + collapse, + BlockSettingsMenu, + listViewInstanceId: instanceId, + AdditionalBlockContent, + insertedBlock, + setInsertedBlock, + treeGridElementRef: elementRef + }), [draggedClientIds, expandedState, expand, collapse, BlockSettingsMenu, instanceId, AdditionalBlockContent, insertedBlock, setInsertedBlock]); + + // List View renders a fixed number of items and relies on each having a fixed item height of 36px. + // If this value changes, we should also change the itemHeight value set in useFixedWindowList. + // See: https://github.com/WordPress/gutenberg/pull/35230 for additional context. + const [fixedListWindow] = (0,external_wp_compose_namespaceObject.__experimentalUseFixedWindowList)(elementRef, BLOCK_LIST_ITEM_HEIGHT, visibleBlockCount, { + // Ensure that the windowing logic is recalculated when the expanded state changes. + // This is necessary because expanding a collapsed block in a short list view can + // switch the list view to a tall list view with a scrollbar, and vice versa. + // When this happens, the windowing logic needs to be recalculated to ensure that + // the correct number of blocks are rendered, by rechecking for a scroll container. + expandedState, + useWindowing: true, + windowOverscan: 40 + }); + + // If there are no blocks to show and we're not showing the appender, do not render the list view. + if (!clientIdsTree.length && !showAppender) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { + value: true + }, (0,external_wp_element_namespaceObject.createElement)(ListViewDropIndicator, { + listViewRef: elementRef, + blockDropTarget: blockDropTarget + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTreeGrid, { + id: id, + className: "block-editor-list-view-tree", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block navigation structure'), + ref: treeGridRef, + onCollapseRow: collapseRow, + onExpandRow: expandRow, + onFocusRow: focusRow, + applicationAriaLabel: (0,external_wp_i18n_namespaceObject.__)('Block navigation structure') + // eslint-disable-next-line jsx-a11y/aria-props + , + "aria-description": description + }, (0,external_wp_element_namespaceObject.createElement)(ListViewContext.Provider, { + value: contextValue + }, (0,external_wp_element_namespaceObject.createElement)(branch, { + blocks: clientIdsTree, + parentId: rootClientId, + selectBlock: selectEditorBlock, + showBlockMovers: showBlockMovers, + fixedListWindow: fixedListWindow, + selectedClientIds: selectedClientIds, + isExpanded: isExpanded, + shouldShowInnerBlocks: shouldShowInnerBlocks, + showAppender: showAppender + })))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin-small.js +// This is the private API for the ListView component. +// It allows access to all props, not just the public ones. +const PrivateListView = (0,external_wp_element_namespaceObject.forwardRef)(ListViewComponent); + +// This is the public API for the ListView component. +// We wrap the PrivateListView component to hide some props from the public API. +/* harmony default export */ var components_list_view = ((0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + return (0,external_wp_element_namespaceObject.createElement)(PrivateListView, { + ref: ref, + ...props, + showAppender: false, + rootClientId: null, + onSelect: null, + additionalBlockContent: null, + blockSettingsMenu: undefined + }); +})); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/dropdown.js /** * WordPress dependencies */ -const pinSmall = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - width: "24", - height: "24", - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M10.97 10.159a3.382 3.382 0 0 0-2.857.955l1.724 1.723-2.836 2.913L7 17h1.25l2.913-2.837 1.723 1.723a3.38 3.38 0 0 0 .606-.825c.33-.63.446-1.343.35-2.032L17 10.695 13.305 7l-2.334 3.159Z" -})); -/* harmony default export */ var pin_small = (pinSmall); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/lock-small.js /** * WordPress dependencies */ -const lockSmall = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M15 11h-.2V9c0-1.5-1.2-2.8-2.8-2.8S9.2 7.5 9.2 9v2H9c-.6 0-1 .4-1 1v4c0 .6.4 1 1 1h6c.6 0 1-.4 1-1v-4c0-.6-.4-1-1-1zm-1.8 0h-2.5V9c0-.7.6-1.2 1.2-1.2s1.2.6 1.2 1.2v2z" -})); -/* harmony default export */ var lock_small = (lockSmall); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/expander.js + + + /** - * WordPress dependencies + * Internal dependencies */ -function ListViewExpander({ - onClick +function BlockNavigationDropdownToggle({ + isEnabled, + onToggle, + isOpen, + innerRef, + ...props }) { - return ( - // Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js - // - // The expander component is implemented as a pseudo element in the w3 example - // https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html - // - // We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree. - // For the current tree grid implementation, please do not try to make this a button. - // - // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions - (0,external_React_.createElement)("span", { - className: "block-editor-list-view__expander", - onClick: event => onClick(event, { - forceToggle: true - }), - "aria-hidden": "true", - "data-testid": "list-view-expander" - }, (0,external_React_.createElement)(build_module_icon, { - icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left_small : chevron_right_small - })) - ); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...props, + ref: innerRef, + icon: list_view, + "aria-expanded": isOpen, + "aria-haspopup": "true", + onClick: isEnabled ? onToggle : undefined + /* translators: button label text should, if possible, be under 16 characters. */, + label: (0,external_wp_i18n_namespaceObject.__)('List view'), + className: "block-editor-block-navigation", + "aria-disabled": !isEnabled + }); +} +function BlockNavigationDropdown({ + isDisabled, + ...props +}, ref) { + external_wp_deprecated_default()('wp.blockEditor.BlockNavigationDropdown', { + since: '6.1', + alternative: 'wp.components.Dropdown and wp.blockEditor.ListView' + }); + const hasBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).getBlockCount(), []); + const isEnabled = hasBlocks && !isDisabled; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + contentClassName: "block-editor-block-navigation__popover", + popoverProps: { + placement: 'bottom-start' + }, + renderToggle: ({ + isOpen, + onToggle + }) => (0,external_wp_element_namespaceObject.createElement)(BlockNavigationDropdownToggle, { + ...props, + innerRef: ref, + isOpen: isOpen, + onToggle: onToggle, + isEnabled: isEnabled + }), + renderContent: () => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-navigation__container" + }, (0,external_wp_element_namespaceObject.createElement)("p", { + className: "block-editor-block-navigation__label" + }, (0,external_wp_i18n_namespaceObject.__)('List view')), (0,external_wp_element_namespaceObject.createElement)(components_list_view, null)) + }); } +/* harmony default export */ var dropdown = ((0,external_wp_element_namespaceObject.forwardRef)(BlockNavigationDropdown)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-images.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/utils.js /** * WordPress dependencies */ @@ -55910,84 +50200,80 @@ function ListViewExpander({ /** - * Internal dependencies + * Returns the active style from the given className. + * + * @param {Array} styles Block styles. + * @param {string} className Class name + * + * @return {Object?} The active style. */ - - -// Maximum number of images to display in a list view row. -const MAX_IMAGES = 3; -function getImage(block) { - if (block.name !== 'core/image') { - return; - } - if (block.attributes?.url) { - return { - url: block.attributes.url, - alt: block.attributes.alt, - clientId: block.clientId - }; - } -} -function getImagesFromGallery(block) { - if (block.name !== 'core/gallery' || !block.innerBlocks) { - return []; - } - const images = []; - for (const innerBlock of block.innerBlocks) { - const img = getImage(innerBlock); - if (img) { - images.push(img); +function getActiveStyle(styles, className) { + for (const style of new (external_wp_tokenList_default())(className).values()) { + if (style.indexOf('is-style-') === -1) { + continue; } - if (images.length >= MAX_IMAGES) { - return images; + const potentialStyleName = style.substring(9); + const activeStyle = styles?.find(({ + name + }) => name === potentialStyleName); + if (activeStyle) { + return activeStyle; } } - return images; + return getDefaultStyle(styles); } -function getImagesFromBlock(block, isExpanded) { - const img = getImage(block); - if (img) { - return [img]; + +/** + * Replaces the active style in the block's className. + * + * @param {string} className Class name. + * @param {Object?} activeStyle The replaced style. + * @param {Object} newStyle The replacing style. + * + * @return {string} The updated className. + */ +function replaceActiveStyle(className, activeStyle, newStyle) { + const list = new (external_wp_tokenList_default())(className); + if (activeStyle) { + list.remove('is-style-' + activeStyle.name); } - return isExpanded ? [] : getImagesFromGallery(block); + list.add('is-style-' + newStyle.name); + return list.value; } /** - * Get a block's preview images for display within a list view row. + * Returns a collection of styles that can be represented on the frontend. + * The function checks a style collection for a default style. If none is found, it adds one to + * act as a fallback for when there is no active style applied to a block. The default item also serves + * as a switch on the frontend to deactivate non-default styles. * - * TODO: Currently only supports images from the core/image and core/gallery - * blocks. This should be expanded to support other blocks that have images, - * potentially via an API that blocks can opt into / provide their own logic. + * @param {Array} styles Block styles. * - * @param {Object} props Hook properties. - * @param {string} props.clientId The block's clientId. - * @param {boolean} props.isExpanded Whether or not the block is expanded in the list view. - * @return {Array} Images. + * @return {Array} The style collection. */ -function useListViewImages({ - clientId, - isExpanded -}) { - const { - block - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const _block = select(store).getBlock(clientId); - return { - block: _block - }; - }, [clientId]); - const images = (0,external_wp_element_namespaceObject.useMemo)(() => { - return getImagesFromBlock(block, isExpanded); - }, [block, isExpanded]); - return images; +function getRenderedStyles(styles) { + if (!styles || styles.length === 0) { + return []; + } + return getDefaultStyle(styles) ? styles : [{ + name: 'default', + label: (0,external_wp_i18n_namespaceObject._x)('Default', 'block style'), + isDefault: true + }, ...styles]; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block-select-button.js - /** - * External dependencies + * Returns a style object from a collection of styles where that style object is the default block style. + * + * @param {Array} styles Block styles. + * + * @return {Object?} The default style object, if found. */ +function getDefaultStyle(styles) { + return styles?.find(style => style.isDefault); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/preview-panel.js /** * WordPress dependencies @@ -55995,1300 +50281,646 @@ function useListViewImages({ - - - - - - - /** * Internal dependencies */ - - - - - - -function ListViewBlockSelectButton({ +function BlockStylesPreviewPanel({ + genericPreviewBlock, + style, className, - block: { - clientId - }, - onClick, - onContextMenu, - onMouseDown, - onToggleExpanded, - tabIndex, - onFocus, - onDragStart, - onDragEnd, - draggable, - isExpanded, - ariaLabel, - ariaDescribedBy, - updateFocusAndSelection -}, ref) { - const blockInformation = useBlockDisplayInformation(clientId); - const blockTitle = useBlockDisplayTitle({ - clientId, - context: 'list-view' - }); - const { - isLocked - } = useBlockLock(clientId); - const { - canInsertBlockType, - getSelectedBlockClientIds, - getPreviousBlockClientId, - getBlockRootClientId, - getBlockOrder, - getBlocksByClientId, - canRemoveBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - duplicateBlocks, - multiSelect, - removeBlocks - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); - const isSticky = blockInformation?.positionType === 'sticky'; - const images = useListViewImages({ - clientId, - isExpanded - }); - const { - rootClientId - } = useListViewContext(); - const positionLabel = blockInformation?.positionLabel ? (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: 1: Position of selected block, e.g. "Sticky" or "Fixed". - (0,external_wp_i18n_namespaceObject.__)('Position: %1$s'), blockInformation.positionLabel) : ''; - - // The `href` attribute triggers the browser's native HTML drag operations. - // When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html. - // We need to clear any HTML drag data to prevent `pasteHandler` from firing - // inside the `useOnBlockDrop` hook. - const onDragStartHandler = event => { - event.dataTransfer.clearData(); - onDragStart?.(event); - }; - - // Determine which blocks to update: - // If the current (focused) block is part of the block selection, use the whole selection. - // If the focused block is not part of the block selection, only update the focused block. - function getBlocksToUpdate() { - const selectedBlockClientIds = getSelectedBlockClientIds(); - const isUpdatingSelectedBlocks = selectedBlockClientIds.includes(clientId); - const firstBlockClientId = isUpdatingSelectedBlocks ? selectedBlockClientIds[0] : clientId; - const firstBlockRootClientId = getBlockRootClientId(firstBlockClientId); - const blocksToUpdate = isUpdatingSelectedBlocks ? selectedBlockClientIds : [clientId]; + activeStyle +}) { + const example = (0,external_wp_blocks_namespaceObject.getBlockType)(genericPreviewBlock.name)?.example; + const styleClassName = replaceActiveStyle(className, activeStyle, style); + const previewBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => { return { - blocksToUpdate, - firstBlockClientId, - firstBlockRootClientId, - selectedBlockClientIds + ...genericPreviewBlock, + title: style.label || style.name, + description: style.description, + initialAttributes: { + ...genericPreviewBlock.attributes, + className: styleClassName + ' block-editor-block-styles__block-preview-container' + }, + example }; - } + }, [genericPreviewBlock, styleClassName]); + return (0,external_wp_element_namespaceObject.createElement)(preview_panel, { + item: previewBlocks + }); +} - /** - * @param {KeyboardEvent} event - */ - async function onKeyDownHandler(event) { - if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER || event.keyCode === external_wp_keycodes_namespaceObject.SPACE) { - onClick(event); - } else if (event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE || isMatch('core/block-editor/remove', event)) { - var _getPreviousBlockClie; - const { - blocksToUpdate: blocksToDelete, - firstBlockClientId, - firstBlockRootClientId, - selectedBlockClientIds - } = getBlocksToUpdate(); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/use-styles-for-block.js +/** + * WordPress dependencies + */ - // Don't update the selection if the blocks cannot be deleted. - if (!canRemoveBlocks(blocksToDelete, firstBlockRootClientId)) { - return; - } - let blockToFocus = (_getPreviousBlockClie = getPreviousBlockClientId(firstBlockClientId)) !== null && _getPreviousBlockClie !== void 0 ? _getPreviousBlockClie : - // If the previous block is not found (when the first block is deleted), - // fallback to focus the parent block. - firstBlockRootClientId; - removeBlocks(blocksToDelete, false); - // Update the selection if the original selection has been removed. - const shouldUpdateSelection = selectedBlockClientIds.length > 0 && getSelectedBlockClientIds().length === 0; - // If there's no previous block nor parent block, focus the first block. - if (!blockToFocus) { - blockToFocus = getBlockOrder()[0]; - } - updateFocusAndSelection(blockToFocus, shouldUpdateSelection); - } else if (isMatch('core/block-editor/duplicate', event)) { - if (event.defaultPrevented) { - return; - } - event.preventDefault(); - const { - blocksToUpdate, - firstBlockRootClientId - } = getBlocksToUpdate(); - const canDuplicate = getBlocksByClientId(blocksToUpdate).every(block => { - return !!block && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, firstBlockRootClientId); - }); - if (canDuplicate) { - const updatedBlocks = await duplicateBlocks(blocksToUpdate, false); - if (updatedBlocks?.length) { - // If blocks have been duplicated, focus the first duplicated block. - updateFocusAndSelection(updatedBlocks[0], false); - } - } - } else if (isMatch('core/block-editor/select-all', event)) { - if (event.defaultPrevented) { - return; - } - event.preventDefault(); - const { - firstBlockRootClientId, - selectedBlockClientIds - } = getBlocksToUpdate(); - const blockClientIds = getBlockOrder(firstBlockRootClientId); - if (!blockClientIds.length) { - return; - } - // If we have selected all sibling nested blocks, try selecting up a level. - // This is a similar implementation to that used by `useSelectAll`. - // `isShallowEqual` is used for the list view instead of a length check, - // as the array of siblings of the currently focused block may be a different - // set of blocks from the current block selection if the user is focused - // on a different part of the list view from the block selection. - if (external_wp_isShallowEqual_default()(selectedBlockClientIds, blockClientIds)) { - // Only select up a level if the first block is not the root block. - // This ensures that the block selection can't break out of the root block - // used by the list view, if the list view is only showing a partial hierarchy. - if (firstBlockRootClientId && firstBlockRootClientId !== rootClientId) { - updateFocusAndSelection(firstBlockRootClientId, true); - return; - } - } +/** + * Internal dependencies + */ - // Select all while passing `null` to skip focusing to the editor canvas, - // and retain focus within the list view. - multiSelect(blockClientIds[0], blockClientIds[blockClientIds.length - 1], null); - } - } - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: classnames_default()('block-editor-list-view-block-select-button', className), - onClick: onClick, - onContextMenu: onContextMenu, - onKeyDown: onKeyDownHandler, - onMouseDown: onMouseDown, - ref: ref, - tabIndex: tabIndex, - onFocus: onFocus, - onDragStart: onDragStartHandler, - onDragEnd: onDragEnd, - draggable: draggable, - href: `#block-${clientId}`, - "aria-label": ariaLabel, - "aria-describedby": ariaDescribedBy, - "aria-expanded": isExpanded - }, (0,external_React_.createElement)(ListViewExpander, { - onClick: onToggleExpanded - }), (0,external_React_.createElement)(block_icon, { - icon: blockInformation?.icon, - showColors: true, - context: "list-view" - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - alignment: "center", - className: "block-editor-list-view-block-select-button__label-wrapper", - justify: "flex-start", - spacing: 1 - }, (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__title" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - ellipsizeMode: "auto" - }, blockTitle)), blockInformation?.anchor && (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__anchor-wrapper" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - className: "block-editor-list-view-block-select-button__anchor", - ellipsizeMode: "auto" - }, blockInformation.anchor)), positionLabel && isSticky && (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { - text: positionLabel - }, (0,external_React_.createElement)(build_module_icon, { - icon: pin_small - })), images.length ? (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__images", - "aria-hidden": true - }, images.map((image, index) => (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__image", - key: image.clientId, - style: { - backgroundImage: `url(${image.url})`, - zIndex: images.length - index // Ensure the first image is on top, and subsequent images are behind. - } - }))) : null, isLocked && (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__lock" - }, (0,external_React_.createElement)(build_module_icon, { - icon: lock_small - }))))); -} -/* harmony default export */ var block_select_button = ((0,external_wp_element_namespaceObject.forwardRef)(ListViewBlockSelectButton)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block-contents.js /** - * External dependencies + * + * @param {WPBlock} block Block object. + * @param {WPBlockType} type Block type settings. + * @return {WPBlock} A generic block ready for styles preview. */ - +function useGenericPreviewBlock(block, type) { + return (0,external_wp_element_namespaceObject.useMemo)(() => { + const example = type?.example; + const blockName = type?.name; + if (example && blockName) { + return (0,external_wp_blocks_namespaceObject.getBlockFromExample)(blockName, { + attributes: example.attributes, + innerBlocks: example.innerBlocks + }); + } + if (block) { + return (0,external_wp_blocks_namespaceObject.cloneBlock)(block); + } + }, [type?.example ? block?.name : block, type]); +} /** - * WordPress dependencies + * @typedef useStylesForBlocksArguments + * @property {string} clientId Block client ID. + * @property {() => void} onSwitch Block style switch callback function. */ - - /** - * Internal dependencies + * + * @param {useStylesForBlocksArguments} useStylesForBlocks arguments. + * @return {Object} Results of the select methods. */ - - - - -const ListViewBlockContents = (0,external_wp_element_namespaceObject.forwardRef)(({ - onClick, - onToggleExpanded, - block, - isSelected, - position, - siblingBlockCount, - level, - isExpanded, - selectedClientIds, - ...props -}, ref) => { - const { - clientId - } = block; - const { - blockMovingClientId, - selectedBlockInBlockEditor - } = (0,external_wp_data_namespaceObject.useSelect)(select => { +function useStylesForBlocks({ + clientId, + onSwitch +}) { + const selector = select => { const { - hasBlockMovingClientId, - getSelectedBlockClientId + getBlock } = select(store); + const block = getBlock(clientId); + if (!block) { + return {}; + } + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(block.name); + const { + getBlockStyles + } = select(external_wp_blocks_namespaceObject.store); return { - blockMovingClientId: hasBlockMovingClientId(), - selectedBlockInBlockEditor: getSelectedBlockClientId() + block, + blockType, + styles: getBlockStyles(block.name), + className: block.attributes.className || '' }; - }, []); + }; const { - AdditionalBlockContent, - insertedBlock, - setInsertedBlock - } = useListViewContext(); - const isBlockMoveTarget = blockMovingClientId && selectedBlockInBlockEditor === clientId; - const className = classnames_default()('block-editor-list-view-block-contents', { - 'is-dropping-before': isBlockMoveTarget - }); + styles, + block, + blockType, + className + } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId]); + const { + updateBlockAttributes + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const stylesToRender = getRenderedStyles(styles); + const activeStyle = getActiveStyle(stylesToRender, className); + const genericPreviewBlock = useGenericPreviewBlock(block, blockType); + const onSelect = style => { + const styleClassName = replaceActiveStyle(className, activeStyle, style); + updateBlockAttributes(clientId, { + className: styleClassName + }); + onSwitch(); + }; + return { + onSelect, + stylesToRender, + activeStyle, + genericPreviewBlock, + className + }; +} - // Only include all selected blocks if the currently clicked on block - // is one of the selected blocks. This ensures that if a user attempts - // to drag a block that isn't part of the selection, they're still able - // to drag it and rearrange its position. - const draggableClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId]; - return (0,external_React_.createElement)(external_React_.Fragment, null, AdditionalBlockContent && (0,external_React_.createElement)(AdditionalBlockContent, { - block: block, - insertedBlock: insertedBlock, - setInsertedBlock: setInsertedBlock - }), (0,external_React_.createElement)(block_draggable, { - appendToOwnerDocument: true, - clientIds: draggableClientIds, - cloneClassname: 'block-editor-list-view-draggable-chip' - }, ({ - draggable, - onDragStart, - onDragEnd - }) => (0,external_React_.createElement)(block_select_button, { - ref: ref, - className: className, - block: block, - onClick: onClick, - onToggleExpanded: onToggleExpanded, - isSelected: isSelected, - position: position, - siblingBlockCount: siblingBlockCount, - level: level, - draggable: draggable, - onDragStart: onDragStart, - onDragEnd: onDragEnd, - isExpanded: isExpanded, - ...props - }))); -}); -/* harmony default export */ var block_contents = (ListViewBlockContents); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/utils.js /** - * WordPress dependencies + * External dependencies */ -const getBlockPositionDescription = (position, siblingCount, level) => (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */ -(0,external_wp_i18n_namespaceObject.__)('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level); - /** - * Returns true if the client ID occurs within the block selection or multi-selection, - * or false otherwise. - * - * @param {string} clientId Block client ID. - * @param {string|string[]} selectedBlockClientIds Selected block client ID, or an array of multi-selected blocks client IDs. - * - * @return {boolean} Whether the block is in multi-selection set. + * WordPress dependencies */ -const isClientIdSelected = (clientId, selectedBlockClientIds) => Array.isArray(selectedBlockClientIds) && selectedBlockClientIds.length ? selectedBlockClientIds.indexOf(clientId) !== -1 : selectedBlockClientIds === clientId; -/** - * From a start and end clientId of potentially different nesting levels, - * return the nearest-depth ids that have a common level of depth in the - * nesting hierarchy. For multiple block selection, this ensure that the - * selection is always at the same nesting level, and not split across - * separate levels. - * - * @param {string} startId The first id of a selection. - * @param {string} endId The end id of a selection, usually one that has been clicked on. - * @param {string[]} startParents An array of ancestor ids for the start id, in descending order. - * @param {string[]} endParents An array of ancestor ids for the end id, in descending order. - * @return {Object} An object containing the start and end ids. - */ -function getCommonDepthClientIds(startId, endId, startParents, endParents) { - const startPath = [...startParents, startId]; - const endPath = [...endParents, endId]; - const depth = Math.min(startPath.length, endPath.length) - 1; - const start = startPath[depth]; - const end = endPath[depth]; - return { - start, - end - }; -} -/** - * Shift focus to the list view item associated with a particular clientId. - * - * @typedef {import('@wordpress/element').RefObject} RefObject - * - * @param {string} focusClientId The client ID of the block to focus. - * @param {RefObject} treeGridElementRef The container element to search within. - */ -function focusListItem(focusClientId, treeGridElementRef) { - const getFocusElement = () => { - const row = treeGridElementRef.current?.querySelector(`[role=row][data-block="${focusClientId}"]`); - if (!row) return null; - // Focus the first focusable in the row, which is the ListViewBlockSelectButton. - return external_wp_dom_namespaceObject.focus.focusable.find(row)[0]; - }; - let focusElement = getFocusElement(); - if (focusElement) { - focusElement.focus(); - } else { - // The element hasn't been painted yet. Defer focusing on the next frame. - // This could happen when all blocks have been deleted and the default block - // hasn't been added to the editor yet. - window.requestAnimationFrame(() => { - focusElement = getFocusElement(); - // Ignore if the element still doesn't exist. - if (focusElement) { - focusElement.focus(); - } - }); - } -} + /** - * Get values for the block that flag whether the block should be displaced up or down, - * whether the block is being nested, and whether the block appears after the dragged - * blocks. These values are used to determine the class names to apply to the block. - * The list view rows are displaced visually via CSS rules. Displacement rules: - * - `normal`: no displacement — used to apply a translateY of `0` so that the block - * appears in its original position, and moves to that position smoothly when dragging - * outside of the list view area. - * - `up`: the block should be displaced up, creating room beneath the block for the drop indicator. - * - `down`: the block should be displaced down, creating room above the block for the drop indicator. - * - * @param {Object} props - * @param {Object} props.blockIndexes The indexes of all the blocks in the list view, keyed by clientId. - * @param {number|null|undefined} props.blockDropTargetIndex The index of the block that the user is dropping to. - * @param {?string} props.blockDropPosition The position relative to the block that the user is dropping to. - * @param {string} props.clientId The client id for the current block. - * @param {?number} props.firstDraggedBlockIndex The index of the first dragged block. - * @param {?boolean} props.isDragged Whether the current block is being dragged. Dragged blocks skip displacement. - * @return {Object} An object containing the `displacement`, `isAfterDraggedBlocks` and `isNesting` values. + * Internal dependencies */ -function getDragDisplacementValues({ - blockIndexes, - blockDropTargetIndex, - blockDropPosition, + + +const block_styles_noop = () => {}; + +// Block Styles component for the Settings Sidebar. +function BlockStyles({ clientId, - firstDraggedBlockIndex, - isDragged + onSwitch = block_styles_noop, + onHoverClassName = block_styles_noop }) { - let displacement; - let isNesting; - let isAfterDraggedBlocks; - if (!isDragged) { - isNesting = false; - const thisBlockIndex = blockIndexes[clientId]; - isAfterDraggedBlocks = thisBlockIndex > firstDraggedBlockIndex; - - // Determine where to displace the position of the current block, relative - // to the blocks being dragged (in their original position) and the drop target - // (the position where a user is currently dragging the blocks to). - if (blockDropTargetIndex !== undefined && blockDropTargetIndex !== null && firstDraggedBlockIndex !== undefined) { - // If the block is being dragged and there is a valid drop target, - // determine if the block being rendered should be displaced up or down. - - if (thisBlockIndex !== undefined) { - if (thisBlockIndex >= firstDraggedBlockIndex && thisBlockIndex < blockDropTargetIndex) { - // If the current block appears after the set of dragged blocks - // (in their original position), but is before the drop target, - // then the current block should be displaced up. - displacement = 'up'; - } else if (thisBlockIndex < firstDraggedBlockIndex && thisBlockIndex >= blockDropTargetIndex) { - // If the current block appears before the set of dragged blocks - // (in their original position), but is after the drop target, - // then the current block should be displaced down. - displacement = 'down'; - } else { - displacement = 'normal'; - } - isNesting = typeof blockDropTargetIndex === 'number' && blockDropTargetIndex - 1 === thisBlockIndex && blockDropPosition === 'inside'; - } - } else if (blockDropTargetIndex === null && firstDraggedBlockIndex !== undefined) { - // A `null` value for `blockDropTargetIndex` indicates that the - // drop target is outside of the valid areas within the list view. - // In this case, the drag is still active, but as there is no - // valid drop target, we should remove the gap indicating where - // the block would be inserted. - if (thisBlockIndex !== undefined && thisBlockIndex >= firstDraggedBlockIndex) { - displacement = 'up'; - } else { - displacement = 'normal'; - } - } else if (blockDropTargetIndex !== undefined && blockDropTargetIndex !== null && firstDraggedBlockIndex === undefined) { - // If the blockdrop target is defined, but there are no dragged blocks, - // then the block should be displaced relative to the drop target. - if (thisBlockIndex !== undefined) { - if (thisBlockIndex < blockDropTargetIndex) { - displacement = 'normal'; - } else { - displacement = 'down'; - } - } - } else if (blockDropTargetIndex === null) { - displacement = 'normal'; - } + const { + onSelect, + stylesToRender, + activeStyle, + genericPreviewBlock, + className: previewClassName + } = useStylesForBlocks({ + clientId, + onSwitch + }); + const [hoveredStyle, setHoveredStyle] = (0,external_wp_element_namespaceObject.useState)(null); + const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); + if (!stylesToRender || stylesToRender.length === 0) { + return null; } - return { - displacement, - isNesting, - isAfterDraggedBlocks + const debouncedSetHoveredStyle = (0,external_wp_compose_namespaceObject.debounce)(setHoveredStyle, 250); + const onSelectStylePreview = style => { + onSelect(style); + onHoverClassName(null); + setHoveredStyle(null); + debouncedSetHoveredStyle.cancel(); + }; + const styleItemHandler = item => { + var _item$name; + if (hoveredStyle === item) { + debouncedSetHoveredStyle.cancel(); + return; + } + debouncedSetHoveredStyle(item); + onHoverClassName((_item$name = item?.name) !== null && _item$name !== void 0 ? _item$name : null); }; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-styles" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-styles__variants" + }, stylesToRender.map(style => { + const buttonText = style.label || style.name; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + __next40pxDefaultSize: true, + className: classnames_default()('block-editor-block-styles__item', { + 'is-active': activeStyle.name === style.name + }), + key: style.name, + variant: "secondary", + label: buttonText, + onMouseEnter: () => styleItemHandler(style), + onFocus: () => styleItemHandler(style), + onMouseLeave: () => styleItemHandler(null), + onBlur: () => styleItemHandler(null), + onClick: () => onSelectStylePreview(style), + "aria-current": activeStyle.name === style.name + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { + numberOfLines: 1, + className: "block-editor-block-styles__item-text" + }, buttonText)); + })), hoveredStyle && !isMobileViewport && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + placement: "left-start", + offset: 20, + focusOnMount: false + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-styles__preview-panel", + onMouseLeave: () => styleItemHandler(null) + }, (0,external_wp_element_namespaceObject.createElement)(BlockStylesPreviewPanel, { + activeStyle: activeStyle, + className: previewClassName, + genericPreviewBlock: genericPreviewBlock, + style: hoveredStyle + })))); } +/* harmony default export */ var block_styles = (BlockStyles); +BlockStyles.Slot = () => { + external_wp_deprecated_default()('BlockStyles.Slot', { + version: '6.4', + since: '6.2' + }); + return null; +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js /** - * External dependencies + * WordPress dependencies */ +const paragraph = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m9.99609 14v-.2251l.00391.0001v6.225h1.5v-14.5h2.5v14.5h1.5v-14.5h3v-1.5h-8.50391c-2.76142 0-5 2.23858-5 5 0 2.7614 2.23858 5 5 5z" +})); +/* harmony default export */ var library_paragraph = (paragraph); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-1.js /** * WordPress dependencies */ +const headingLevel1 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17.6 7c-.6.9-1.5 1.7-2.6 2v1h2v7h2V7h-1.4zM11 11H7V7H5v10h2v-4h4v4h2V7h-2v4z" +})); +/* harmony default export */ var heading_level_1 = (headingLevel1); - - - - - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-2.js /** - * Internal dependencies + * WordPress dependencies */ +const headingLevel2 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9 11.1H5v-4H3v10h2v-4h4v4h2v-10H9v4zm8 4c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6v1.5h8v-2H17z" +})); +/* harmony default export */ var heading_level_2 = (headingLevel2); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-3.js +/** + * WordPress dependencies + */ +const headingLevel3 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.3 1.7c-.4-.4-1-.7-1.6-.8v-.1c.6-.2 1.1-.5 1.5-.9.3-.4.5-.8.5-1.3 0-.4-.1-.8-.3-1.1-.2-.3-.5-.6-.8-.8-.4-.2-.8-.4-1.2-.5-.6-.1-1.1-.2-1.6-.2-.6 0-1.3.1-1.8.3s-1.1.5-1.6.9l1.2 1.4c.4-.2.7-.4 1.1-.6.3-.2.7-.3 1.1-.3.4 0 .8.1 1.1.3.3.2.4.5.4.8 0 .4-.2.7-.6.9-.7.3-1.5.5-2.2.4v1.6c.5 0 1 0 1.5.1.3.1.7.2 1 .3.2.1.4.2.5.4s.1.4.1.6c0 .3-.2.7-.5.8-.4.2-.9.3-1.4.3s-1-.1-1.4-.3c-.4-.2-.8-.4-1.2-.7L13 15.6c.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.6 0 1.1-.1 1.6-.2.4-.1.9-.2 1.3-.5.4-.2.7-.5.9-.9.2-.4.3-.8.3-1.2 0-.6-.3-1.1-.7-1.5z" +})); +/* harmony default export */ var heading_level_3 = (headingLevel3); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-4.js +/** + * WordPress dependencies + */ +const headingLevel4 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20 13V7h-3l-4 6v2h5v2h2v-2h1v-2h-1zm-2 0h-2.8L18 9v4zm-9-2H5V7H3v10h2v-4h4v4h2V7H9v4z" +})); +/* harmony default export */ var heading_level_4 = (headingLevel4); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-5.js +/** + * WordPress dependencies + */ -function ListViewBlock({ - block: { - clientId - }, - displacement, - isAfterDraggedBlocks, - isDragged, - isNesting, - isSelected, - isBranchSelected, - selectBlock, - position, - level, - rowCount, - siblingBlockCount, - showBlockMovers, - path, - isExpanded, - selectedClientIds, - isSyncedBranch -}) { - const cellRef = (0,external_wp_element_namespaceObject.useRef)(null); - const rowRef = (0,external_wp_element_namespaceObject.useRef)(null); - const settingsRef = (0,external_wp_element_namespaceObject.useRef)(null); - const [isHovered, setIsHovered] = (0,external_wp_element_namespaceObject.useState)(false); - const [settingsAnchorRect, setSettingsAnchorRect] = (0,external_wp_element_namespaceObject.useState)(); - const { - isLocked, - canEdit, - canMove - } = useBlockLock(clientId); - const isFirstSelectedBlock = isSelected && selectedClientIds[0] === clientId; - const isLastSelectedBlock = isSelected && selectedClientIds[selectedClientIds.length - 1] === clientId; - const { - toggleBlockHighlight - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const blockInformation = useBlockDisplayInformation(clientId); - const blockTitle = blockInformation?.name || blockInformation?.title || (0,external_wp_i18n_namespaceObject.__)('Untitled'); - const { - block, - blockName, - blockEditingMode - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlock, - getBlockName, - getBlockEditingMode - } = select(store); - return { - block: getBlock(clientId), - blockName: getBlockName(clientId), - blockEditingMode: getBlockEditingMode(clientId) - }; - }, [clientId]); - const allowRightClickOverrides = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().allowRightClickOverrides, []); - const showBlockActions = - // When a block hides its toolbar it also hides the block settings menu, - // since that menu is part of the toolbar in the editor canvas. - // List View respects this by also hiding the block settings menu. - (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, '__experimentalToolbar', true) && - // Don't show the settings menu if block is disabled or content only. - blockEditingMode === 'default'; - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ListViewBlock); - const descriptionId = `list-view-block-select-button__${instanceId}`; - const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level); - const blockAriaLabel = isLocked ? (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: The title of the block. This string indicates a link to select the locked block. - (0,external_wp_i18n_namespaceObject.__)('%s (locked)'), blockTitle) : blockTitle; - const settingsAriaLabel = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: The title of the block. - (0,external_wp_i18n_namespaceObject.__)('Options for %s'), blockTitle); - const { - expand, - collapse, - BlockSettingsMenu, - listViewInstanceId, - expandedState, - setInsertedBlock, - treeGridElementRef - } = useListViewContext(); - const hasSiblings = siblingBlockCount > 0; - const hasRenderedMovers = showBlockMovers && hasSiblings; - const moverCellClassName = classnames_default()('block-editor-list-view-block__mover-cell', { - 'is-visible': isHovered || isSelected - }); - const listViewBlockSettingsClassName = classnames_default()('block-editor-list-view-block__menu-cell', { - 'is-visible': isHovered || isFirstSelectedBlock - }); - - // If multiple blocks are selected, deselect all blocks when the user - // presses the escape key. - const onKeyDown = event => { - if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented && selectedClientIds.length > 0) { - event.stopPropagation(); - event.preventDefault(); - selectBlock(event, undefined); - } - }; - const onMouseEnter = (0,external_wp_element_namespaceObject.useCallback)(() => { - setIsHovered(true); - toggleBlockHighlight(clientId, true); - }, [clientId, setIsHovered, toggleBlockHighlight]); - const onMouseLeave = (0,external_wp_element_namespaceObject.useCallback)(() => { - setIsHovered(false); - toggleBlockHighlight(clientId, false); - }, [clientId, setIsHovered, toggleBlockHighlight]); - const selectEditorBlock = (0,external_wp_element_namespaceObject.useCallback)(event => { - selectBlock(event, clientId); - event.preventDefault(); - }, [clientId, selectBlock]); - const updateFocusAndSelection = (0,external_wp_element_namespaceObject.useCallback)((focusClientId, shouldSelectBlock) => { - if (shouldSelectBlock) { - selectBlock(undefined, focusClientId, null, null); - } - focusListItem(focusClientId, treeGridElementRef); - }, [selectBlock, treeGridElementRef]); - const toggleExpanded = (0,external_wp_element_namespaceObject.useCallback)(event => { - // Prevent shift+click from opening link in a new window when toggling. - event.preventDefault(); - event.stopPropagation(); - if (isExpanded === true) { - collapse(clientId); - } else if (isExpanded === false) { - expand(clientId); - } - }, [clientId, expand, collapse, isExpanded]); - - // Allow right-clicking an item in the List View to open up the block settings dropdown. - const onContextMenu = (0,external_wp_element_namespaceObject.useCallback)(event => { - if (showBlockActions && allowRightClickOverrides) { - settingsRef.current?.click(); - // Ensure the position of the settings dropdown is at the cursor. - setSettingsAnchorRect(new window.DOMRect(event.clientX, event.clientY, 0, 0)); - event.preventDefault(); - } - }, [allowRightClickOverrides, settingsRef, showBlockActions]); - const onMouseDown = (0,external_wp_element_namespaceObject.useCallback)(event => { - // Prevent right-click from focusing the block, - // because focus will be handled when opening the block settings dropdown. - if (allowRightClickOverrides && event.button === 2) { - event.preventDefault(); - } - }, [allowRightClickOverrides]); - const settingsPopoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { - const { - ownerDocument - } = rowRef?.current || {}; - - // If no custom position is set, the settings dropdown will be anchored to the - // DropdownMenu toggle button. - if (!settingsAnchorRect || !ownerDocument) { - return undefined; - } - - // Position the settings dropdown at the cursor when right-clicking a block. - return { - ownerDocument, - getBoundingClientRect() { - return settingsAnchorRect; - } - }; - }, [settingsAnchorRect]); - const clearSettingsAnchorRect = (0,external_wp_element_namespaceObject.useCallback)(() => { - // Clear the custom position for the settings dropdown so that it is restored back - // to being anchored to the DropdownMenu toggle button. - setSettingsAnchorRect(undefined); - }, [setSettingsAnchorRect]); - let colSpan; - if (hasRenderedMovers) { - colSpan = 2; - } else if (!showBlockActions) { - colSpan = 3; - } - const classes = classnames_default()({ - 'is-selected': isSelected, - 'is-first-selected': isFirstSelectedBlock, - 'is-last-selected': isLastSelectedBlock, - 'is-branch-selected': isBranchSelected, - 'is-synced-branch': isSyncedBranch, - 'is-dragging': isDragged, - 'has-single-cell': !showBlockActions, - 'is-synced': blockInformation?.isSynced, - 'is-draggable': canMove, - 'is-displacement-normal': displacement === 'normal', - 'is-displacement-up': displacement === 'up', - 'is-displacement-down': displacement === 'down', - 'is-after-dragged-blocks': isAfterDraggedBlocks, - 'is-nesting': isNesting - }); - - // Only include all selected blocks if the currently clicked on block - // is one of the selected blocks. This ensures that if a user attempts - // to alter a block that isn't part of the selection, they're still able - // to do so. - const dropdownClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId]; - - // Pass in a ref to the row, so that it can be scrolled - // into view when selected. For long lists, the placeholder for the - // selected block is also observed, within ListViewLeafPlaceholder. - useListViewScrollIntoView({ - isSelected, - rowItemRef: rowRef, - selectedClientIds - }); - - // Detect if there is a block in the canvas currently being edited and multi-selection is not happening. - const currentlyEditingBlockInCanvas = isSelected && selectedClientIds.length === 1; - return (0,external_React_.createElement)(leaf, { - className: classes, - isDragged: isDragged, - onKeyDown: onKeyDown, - onMouseEnter: onMouseEnter, - onMouseLeave: onMouseLeave, - onFocus: onMouseEnter, - onBlur: onMouseLeave, - level: level, - position: position, - rowCount: rowCount, - path: path, - id: `list-view-${listViewInstanceId}-block-${clientId}`, - "data-block": clientId, - "data-expanded": canEdit ? isExpanded : undefined, - ref: rowRef - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { - className: "block-editor-list-view-block__contents-cell", - colSpan: colSpan, - ref: cellRef, - "aria-selected": !!isSelected - }, ({ - ref, - tabIndex, - onFocus - }) => (0,external_React_.createElement)("div", { - className: "block-editor-list-view-block__contents-container" - }, (0,external_React_.createElement)(block_contents, { - block: block, - onClick: selectEditorBlock, - onContextMenu: onContextMenu, - onMouseDown: onMouseDown, - onToggleExpanded: toggleExpanded, - isSelected: isSelected, - position: position, - siblingBlockCount: siblingBlockCount, - level: level, - ref: ref, - tabIndex: currentlyEditingBlockInCanvas ? 0 : tabIndex, - onFocus: onFocus, - isExpanded: canEdit ? isExpanded : undefined, - selectedClientIds: selectedClientIds, - ariaLabel: blockAriaLabel, - ariaDescribedBy: descriptionId, - updateFocusAndSelection: updateFocusAndSelection - }), (0,external_React_.createElement)(AriaReferencedText, { - id: descriptionId - }, blockPositionDescription))), hasRenderedMovers && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { - className: moverCellClassName, - withoutGridItem: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridItem, null, ({ - ref, - tabIndex, - onFocus - }) => (0,external_React_.createElement)(BlockMoverUpButton, { - orientation: "vertical", - clientIds: [clientId], - ref: ref, - tabIndex: tabIndex, - onFocus: onFocus - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridItem, null, ({ - ref, - tabIndex, - onFocus - }) => (0,external_React_.createElement)(BlockMoverDownButton, { - orientation: "vertical", - clientIds: [clientId], - ref: ref, - tabIndex: tabIndex, - onFocus: onFocus - })))), showBlockActions && BlockSettingsMenu && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, { - className: listViewBlockSettingsClassName, - "aria-selected": !!isSelected, - ref: settingsRef - }, ({ - ref, - tabIndex, - onFocus - }) => (0,external_React_.createElement)(BlockSettingsMenu, { - clientIds: dropdownClientIds, - block: block, - icon: more_vertical, - label: settingsAriaLabel, - popoverProps: { - anchor: settingsPopoverAnchor // Used to position the settings at the cursor on right-click. - }, - - toggleProps: { - ref, - className: 'block-editor-list-view-block__menu', - tabIndex, - onClick: clearSettingsAnchorRect, - onFocus - }, - disableOpenOnArrowDown: true, - expand: expand, - expandedState: expandedState, - setInsertedBlock: setInsertedBlock, - __experimentalSelectBlock: updateFocusAndSelection - }))); -} -/* harmony default export */ var list_view_block = ((0,external_wp_element_namespaceObject.memo)(ListViewBlock)); +const headingLevel5 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.7 1.2c-.2-.3-.5-.7-.8-.9-.3-.3-.7-.5-1.1-.6-.5-.1-.9-.2-1.4-.2-.2 0-.5.1-.7.1-.2.1-.5.1-.7.2l.1-1.9h4.3V7H14l-.3 5 1 .6.5-.2.4-.1c.1-.1.3-.1.4-.1h.5c.5 0 1 .1 1.4.4.4.2.6.7.6 1.1 0 .4-.2.8-.6 1.1-.4.3-.9.4-1.4.4-.4 0-.9-.1-1.3-.3-.4-.2-.7-.4-1.1-.7 0 0-1.1 1.4-1 1.5.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.5 0 1-.1 1.5-.3s.9-.4 1.3-.7c.4-.3.7-.7.9-1.1s.3-.9.3-1.4-.1-1-.3-1.4z" +})); +/* harmony default export */ var heading_level_5 = (headingLevel5); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/branch.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-6.js /** * WordPress dependencies */ +const headingLevel6 = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20.7 12.4c-.2-.3-.4-.6-.7-.9s-.6-.5-1-.6c-.4-.2-.8-.2-1.2-.2-.5 0-.9.1-1.3.3s-.8.5-1.2.8c0-.5 0-.9.2-1.4l.6-.9c.2-.2.5-.4.8-.5.6-.2 1.3-.2 1.9 0 .3.1.6.3.8.5 0 0 1.3-1.3 1.3-1.4-.4-.3-.9-.6-1.4-.8-.6-.2-1.3-.3-2-.3-.6 0-1.1.1-1.7.4-.5.2-1 .5-1.4.9-.4.4-.8 1-1 1.6-.3.7-.4 1.5-.4 2.3s.1 1.5.3 2.1c.2.6.6 1.1 1 1.5.4.4.9.7 1.4.9 1 .3 2 .3 3 0 .4-.1.8-.3 1.2-.6.3-.3.6-.6.8-1 .2-.5.3-.9.3-1.4s-.1-.9-.3-1.3zm-2 2.1c-.1.2-.3.4-.4.5-.1.1-.3.2-.5.2-.2.1-.4.1-.6.1-.2.1-.5 0-.7-.1-.2 0-.3-.2-.5-.3-.1-.2-.3-.4-.4-.6-.2-.3-.3-.7-.3-1 .3-.3.6-.5 1-.7.3-.1.7-.2 1-.2.4 0 .8.1 1.1.3.3.3.4.7.4 1.1 0 .2 0 .5-.1.7zM9 11H5V7H3v10h2v-4h4v4h2V7H9v4z" +})); +/* harmony default export */ var heading_level_6 = (headingLevel6); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-heading-level-dropdown/heading-level-icon.js /** - * Internal dependencies + * WordPress dependencies */ +/** @typedef {import('@wordpress/element').WPComponent} WPComponent */ +/** + * HeadingLevelIcon props. + * + * @typedef WPHeadingLevelIconProps + * + * @property {number} level The heading level to show an icon for. + */ - +const LEVEL_TO_PATH = { + 0: library_paragraph, + 1: heading_level_1, + 2: heading_level_2, + 3: heading_level_3, + 4: heading_level_4, + 5: heading_level_5, + 6: heading_level_6 +}; /** - * Given a block, returns the total number of blocks in that subtree. This is used to help determine - * the list position of a block. + * Heading level icon. * - * When a block is collapsed, we do not count their children as part of that total. In the current drag - * implementation dragged blocks and their children are not counted. + * @param {WPHeadingLevelIconProps} props Component props. * - * @param {Object} block block tree - * @param {Object} expandedState state that notes which branches are collapsed - * @param {Array} draggedClientIds a list of dragged client ids - * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state. - * @return {number} block count + * @return {?WPComponent} The icon. */ -function countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault) { - var _expandedState$block$; - const isDragged = draggedClientIds?.includes(block.clientId); - if (isDragged) { - return 0; - } - const isExpanded = (_expandedState$block$ = expandedState[block.clientId]) !== null && _expandedState$block$ !== void 0 ? _expandedState$block$ : isExpandedByDefault; - if (isExpanded) { - return 1 + block.innerBlocks.reduce(countReducer(expandedState, draggedClientIds, isExpandedByDefault), 0); +function HeadingLevelIcon({ + level +}) { + if (LEVEL_TO_PATH[level]) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Icon, { + icon: LEVEL_TO_PATH[level] + }); } - return 1; + return null; } -const countReducer = (expandedState, draggedClientIds, isExpandedByDefault) => (count, block) => { - var _expandedState$block$2; - const isDragged = draggedClientIds?.includes(block.clientId); - if (isDragged) { - return count; - } - const isExpanded = (_expandedState$block$2 = expandedState[block.clientId]) !== null && _expandedState$block$2 !== void 0 ? _expandedState$block$2 : isExpandedByDefault; - if (isExpanded && block.innerBlocks.length > 0) { - return count + countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault); - } - return count + 1; -}; -const branch_noop = () => {}; -function ListViewBranch(props) { - const { - blocks, - selectBlock = branch_noop, - showBlockMovers, - selectedClientIds, - level = 1, - path = '', - isBranchSelected = false, - listPosition = 0, - fixedListWindow, - isExpanded, - parentId, - shouldShowInnerBlocks = true, - isSyncedBranch = false, - showAppender: showAppenderProp = true - } = props; - const parentBlockInformation = useBlockDisplayInformation(parentId); - const syncedBranch = isSyncedBranch || !!parentBlockInformation?.isSynced; - const canParentExpand = (0,external_wp_data_namespaceObject.useSelect)(select => { - if (!parentId) { - return true; - } - return select(store).canEditBlock(parentId); - }, [parentId]); - const { - blockDropPosition, - blockDropTargetIndex, - firstDraggedBlockIndex, - blockIndexes, - expandedState, - draggedClientIds - } = useListViewContext(); - if (!canParentExpand) { - return null; - } - // Only show the appender at the first level. - const showAppender = showAppenderProp && level === 1; - const filteredBlocks = blocks.filter(Boolean); - const blockCount = filteredBlocks.length; - // The appender means an extra row in List View, so add 1 to the row count. - const rowCount = showAppender ? blockCount + 1 : blockCount; - let nextPosition = listPosition; - return (0,external_React_.createElement)(external_React_.Fragment, null, filteredBlocks.map((block, index) => { - var _expandedState$client; - const { - clientId, - innerBlocks - } = block; - if (index > 0) { - nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded); - } - const isDragged = !!draggedClientIds?.includes(clientId); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-heading-level-dropdown/index.js - // Determine the displacement of the block while dragging. This - // works out whether the current block should be displaced up or - // down, relative to the dragged blocks and the drop target. - const { - displacement, - isAfterDraggedBlocks, - isNesting - } = getDragDisplacementValues({ - blockIndexes, - blockDropTargetIndex, - blockDropPosition, - clientId, - firstDraggedBlockIndex, - isDragged - }); - const { - itemInView - } = fixedListWindow; - const blockInView = itemInView(nextPosition); - const position = index + 1; - const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`; - const hasNestedBlocks = !!innerBlocks?.length; - const shouldExpand = hasNestedBlocks && shouldShowInnerBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined; +/** + * WordPress dependencies + */ - // Make updates to the selected or dragged blocks synchronous, - // but asynchronous for any other block. - const isSelected = isClientIdSelected(clientId, selectedClientIds); - const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks; - // To avoid performance issues, we only render blocks that are in view, - // or blocks that are selected or dragged. If a block is selected, - // it is only counted if it is the first of the block selection. - // This prevents the entire tree from being rendered when a branch is - // selected, or a user selects all blocks, while still enabling scroll - // into view behavior when selecting a block or opening the list view. - const showBlock = isDragged || blockInView || isSelected && clientId === selectedClientIds[0]; - return (0,external_React_.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { - key: clientId, - value: !isSelected - }, showBlock && (0,external_React_.createElement)(list_view_block, { - block: block, - selectBlock: selectBlock, - isSelected: isSelected, - isBranchSelected: isSelectedBranch, - isDragged: isDragged, - level: level, - position: position, - rowCount: rowCount, - siblingBlockCount: blockCount, - showBlockMovers: showBlockMovers, - path: updatedPath, - isExpanded: isDragged ? false : shouldExpand, - listPosition: nextPosition, - selectedClientIds: selectedClientIds, - isSyncedBranch: syncedBranch, - displacement: displacement, - isAfterDraggedBlocks: isAfterDraggedBlocks, - isNesting: isNesting - }), !showBlock && (0,external_React_.createElement)("tr", null, (0,external_React_.createElement)("td", { - className: "block-editor-list-view-placeholder" - })), hasNestedBlocks && shouldExpand && !isDragged && (0,external_React_.createElement)(ListViewBranch, { - parentId: clientId, - blocks: innerBlocks, - selectBlock: selectBlock, - showBlockMovers: showBlockMovers, - level: level + 1, - path: updatedPath, - listPosition: nextPosition + 1, - fixedListWindow: fixedListWindow, - isBranchSelected: isSelectedBranch, - selectedClientIds: selectedClientIds, - isExpanded: isExpanded, - isSyncedBranch: syncedBranch - })); - }), showAppender && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridRow, { - level: level, - setSize: rowCount, - positionInSet: rowCount, - isExpanded: true - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGridCell, null, treeGridCellProps => (0,external_React_.createElement)(Appender, { - clientId: parentId, - nestingLevel: level, - blockCount: blockCount, - ...treeGridCellProps - })))); -} -/* harmony default export */ var branch = ((0,external_wp_element_namespaceObject.memo)(ListViewBranch)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/drop-indicator.js +/** + * Internal dependencies + */ + +const HEADING_LEVELS = [1, 2, 3, 4, 5, 6]; +const block_heading_level_dropdown_POPOVER_PROPS = { + className: 'block-library-heading-level-dropdown' +}; + +/** @typedef {import('@wordpress/element').WPComponent} WPComponent */ /** - * External dependencies + * HeadingLevelDropdown props. + * + * @typedef WPHeadingLevelDropdownProps + * + * @property {number} value The chosen heading level. + * @property {number[]} options An array of supported heading levels. + * @property {(newValue:number)=>any} onChange Callback to run when + * toolbar value is changed. + */ + +/** + * Dropdown for selecting a heading level (1 through 6) or paragraph (0). + * + * @param {WPHeadingLevelDropdownProps} props Component props. + * + * @return {WPComponent} The toolbar. */ +function HeadingLevelDropdown({ + options = HEADING_LEVELS, + value, + onChange +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { + popoverProps: block_heading_level_dropdown_POPOVER_PROPS, + icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, { + level: value + }), + label: (0,external_wp_i18n_namespaceObject.__)('Change level'), + controls: options.map(targetLevel => { + { + const isActive = targetLevel === value; + return { + icon: (0,external_wp_element_namespaceObject.createElement)(HeadingLevelIcon, { + level: targetLevel, + isPressed: isActive + }), + label: targetLevel === 0 ? (0,external_wp_i18n_namespaceObject.__)('Paragraph') : (0,external_wp_i18n_namespaceObject.sprintf)( + // translators: %s: heading level e.g: "1", "2", "3" + (0,external_wp_i18n_namespaceObject.__)('Heading %d'), targetLevel), + isActive, + onClick() { + onChange(targetLevel); + }, + role: 'menuitemradio' + }; + } + }) + }); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js /** * WordPress dependencies */ +const layout = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" +})); +/* harmony default export */ var library_layout = (layout); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-variation-picker/index.js +/** + * External dependencies + */ /** - * Internal dependencies + * WordPress dependencies */ - -function ListViewDropIndicatorPreview({ - draggedBlockClientId, - listViewRef, - blockDropTarget +function BlockVariationPicker({ + icon = library_layout, + label = (0,external_wp_i18n_namespaceObject.__)('Choose variation'), + instructions = (0,external_wp_i18n_namespaceObject.__)('Select a variation to start with.'), + variations, + onSelect, + allowSkip }) { - const blockInformation = useBlockDisplayInformation(draggedBlockClientId); - const blockTitle = useBlockDisplayTitle({ - clientId: draggedBlockClientId, - context: 'list-view' + const classes = classnames_default()('block-editor-block-variation-picker', { + 'has-many-variations': variations.length > 4 }); - const { - rootClientId, - clientId, - dropPosition - } = blockDropTarget || {}; - const [rootBlockElement, blockElement] = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!listViewRef.current) { - return []; - } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { + icon: icon, + label: label, + instructions: instructions, + className: classes + }, (0,external_wp_element_namespaceObject.createElement)("ul", { + className: "block-editor-block-variation-picker__variations", + role: "list", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block variations') + }, variations.map(variation => (0,external_wp_element_namespaceObject.createElement)("li", { + key: variation.name + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "secondary", + icon: variation.icon && variation.icon.src ? variation.icon.src : variation.icon, + iconSize: 48, + onClick: () => onSelect(variation), + className: "block-editor-block-variation-picker__variation", + label: variation.description || variation.title + }), (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-variation-picker__variation-label" + }, variation.title)))), allowSkip && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-variation-picker__skip" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "link", + onClick: () => onSelect() + }, (0,external_wp_i18n_namespaceObject.__)('Skip')))); +} +/* harmony default export */ var block_variation_picker = (BlockVariationPicker); - // The rootClientId will be defined whenever dropping into inner - // block lists, but is undefined when dropping at the root level. - const _rootBlockElement = rootClientId ? listViewRef.current.querySelector(`[data-block="${rootClientId}"]`) : undefined; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js - // The clientId represents the sibling block, the dragged block will - // usually be inserted adjacent to it. It will be undefined when - // dropping a block into an empty block list. - const _blockElement = clientId ? listViewRef.current.querySelector(`[data-block="${clientId}"]`) : undefined; - return [_rootBlockElement, _blockElement]; - }, [listViewRef, rootClientId, clientId]); +/** + * WordPress dependencies + */ - // The targetElement is the element that the drop indicator will appear - // before or after. When dropping into an empty block list, blockElement - // is undefined, so the indicator will appear after the rootBlockElement. - const targetElement = blockElement || rootBlockElement; - const rtl = (0,external_wp_i18n_namespaceObject.isRTL)(); - const getDropIndicatorWidth = (0,external_wp_element_namespaceObject.useCallback)((targetElementRect, indent) => { - if (!targetElement) { - return 0; - } +const grid_grid = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z", + fillRule: "evenodd", + clipRule: "evenodd" +})); +/* harmony default export */ var library_grid = (grid_grid); - // Default to assuming that the width of the drop indicator - // should be the same as the target element. - let width = targetElement.offsetWidth; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/constants.js +const VIEWMODES = { + carousel: 'carousel', + grid: 'grid' +}; - // In deeply nested lists, where a scrollbar is present, - // the width of the drop indicator should be the width of - // the scroll container, minus the distance from the left - // edge of the scroll container to the left edge of the - // target element. - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(targetElement, 'horizontal'); - const ownerDocument = targetElement.ownerDocument; - const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; - if (scrollContainer && !windowScroll) { - const scrollContainerRect = scrollContainer.getBoundingClientRect(); - const distanceBetweenContainerAndTarget = (0,external_wp_i18n_namespaceObject.isRTL)() ? scrollContainerRect.right - targetElementRect.right : targetElementRect.left - scrollContainerRect.left; - const scrollContainerWidth = scrollContainer.clientWidth; - if (scrollContainerWidth < width + distanceBetweenContainerAndTarget) { - width = scrollContainerWidth - distanceBetweenContainerAndTarget; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/setup-toolbar.js - // LTR logic for ensuring the drop indicator does not extend - // beyond the right edge of the scroll container. - if (!rtl && targetElementRect.left + indent < scrollContainerRect.left) { - width -= scrollContainerRect.left - targetElementRect.left; - return width; - } +/** + * WordPress dependencies + */ - // RTL logic for ensuring the drop indicator does not extend - // beyond the right edge of the scroll container. - if (rtl && targetElementRect.right - indent > scrollContainerRect.right) { - width -= targetElementRect.right - scrollContainerRect.right; - return width; - } - } - // Subtract the indent from the final width of the indicator. - return width - indent; - }, [rtl, targetElement]); - const style = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!targetElement) { - return {}; - } - const targetElementRect = targetElement.getBoundingClientRect(); - return { - width: getDropIndicatorWidth(targetElementRect, 0) - }; - }, [getDropIndicatorWidth, targetElement]); - const horizontalScrollOffsetStyle = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!targetElement) { - return {}; - } - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(targetElement); - const ownerDocument = targetElement.ownerDocument; - const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; - if (scrollContainer && !windowScroll) { - const scrollContainerRect = scrollContainer.getBoundingClientRect(); - const targetElementRect = targetElement.getBoundingClientRect(); - const distanceBetweenContainerAndTarget = rtl ? scrollContainerRect.right - targetElementRect.right : targetElementRect.left - scrollContainerRect.left; - if (!rtl && scrollContainerRect.left > targetElementRect.left) { - return { - transform: `translateX( ${distanceBetweenContainerAndTarget}px )` - }; - } - if (rtl && scrollContainerRect.right < targetElementRect.right) { - return { - transform: `translateX( ${distanceBetweenContainerAndTarget * -1}px )` - }; - } - } - return {}; - }, [rtl, targetElement]); - const ariaLevel = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!rootBlockElement) { - return 1; - } - const _ariaLevel = parseInt(rootBlockElement.getAttribute('aria-level'), 10); - return _ariaLevel ? _ariaLevel + 1 : 1; - }, [rootBlockElement]); - const hasAdjacentSelectedBranch = (0,external_wp_element_namespaceObject.useMemo)(() => { - if (!targetElement) { - return false; - } - return targetElement.classList.contains('is-branch-selected'); - }, [targetElement]); - const popoverAnchor = (0,external_wp_element_namespaceObject.useMemo)(() => { - const isValidDropPosition = dropPosition === 'top' || dropPosition === 'bottom' || dropPosition === 'inside'; - if (!targetElement || !isValidDropPosition) { - return undefined; - } - return { - contextElement: targetElement, - getBoundingClientRect() { - const rect = targetElement.getBoundingClientRect(); - // In RTL languages, the drop indicator should be positioned - // to the left of the target element, with the width of the - // indicator determining the indent at the right edge of the - // target element. In LTR languages, the drop indicator should - // end at the right edge of the target element, with the indent - // added to the position of the left edge of the target element. - // let left = rtl ? rect.left : rect.left + indent; - let left = rect.left; - let top = 0; - // In deeply nested lists, where a scrollbar is present, - // the width of the drop indicator should be the width of - // the visible area of the scroll container. Additionally, - // the left edge of the drop indicator line needs to be - // offset by the distance the left edge of the target element - // and the left edge of the scroll container. The ensures - // that the drop indicator position never breaks out of the - // visible area of the scroll container. - const scrollContainer = (0,external_wp_dom_namespaceObject.getScrollContainer)(targetElement, 'horizontal'); - const doc = targetElement.ownerDocument; - const windowScroll = scrollContainer === doc.body || scrollContainer === doc.documentElement; - // If the scroll container is not the window, offset the left position, if need be. - if (scrollContainer && !windowScroll) { - const scrollContainerRect = scrollContainer.getBoundingClientRect(); +/** + * Internal dependencies + */ - // In RTL languages, a vertical scrollbar is present on the - // left edge of the scroll container. The width of the - // scrollbar needs to be accounted for when positioning the - // drop indicator. - const scrollbarWidth = rtl ? scrollContainer.offsetWidth - scrollContainer.clientWidth : 0; - if (left < scrollContainerRect.left + scrollbarWidth) { - left = scrollContainerRect.left + scrollbarWidth; - } - } - if (dropPosition === 'top') { - top = rect.top - rect.height * 2; - } else { - // `dropPosition` is either `bottom` or `inside` - top = rect.top; - } - const width = getDropIndicatorWidth(rect, 0); - const height = rect.height; - return new window.DOMRect(left, top, width, height); - } - }; - }, [targetElement, dropPosition, getDropIndicatorWidth, rtl]); - if (!targetElement) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - animate: false, - anchor: popoverAnchor, - focusOnMount: false, - className: "block-editor-list-view-drop-indicator--preview", - variant: "unstyled", - flip: false, - resize: true - }, (0,external_React_.createElement)("div", { - style: style, - className: classnames_default()('block-editor-list-view-drop-indicator__line', { - 'block-editor-list-view-drop-indicator__line--darker': hasAdjacentSelectedBranch - }) - }, (0,external_React_.createElement)("div", { - className: "block-editor-list-view-leaf", - "aria-level": ariaLevel - }, (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-list-view-block-select-button', 'block-editor-list-view-block-contents'), - style: horizontalScrollOffsetStyle - }, (0,external_React_.createElement)(ListViewExpander, { - onClick: () => {} - }), (0,external_React_.createElement)(block_icon, { - icon: blockInformation?.icon, - showColors: true, - context: "list-view" - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - alignment: "center", - className: "block-editor-list-view-block-select-button__label-wrapper", - justify: "flex-start", - spacing: 1 - }, (0,external_React_.createElement)("span", { - className: "block-editor-list-view-block-select-button__title" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - ellipsizeMode: "auto" - }, blockTitle)))), (0,external_React_.createElement)("div", { - className: "block-editor-list-view-block__menu-cell" - })))); +const Actions = ({ + onBlockPatternSelect +}) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__actions" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "primary", + onClick: onBlockPatternSelect +}, (0,external_wp_i18n_namespaceObject.__)('Choose'))); +const CarouselNavigation = ({ + handlePrevious, + handleNext, + activeSlide, + totalSlides +}) => (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__navigation" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: chevron_left, + label: (0,external_wp_i18n_namespaceObject.__)('Previous pattern'), + onClick: handlePrevious, + disabled: activeSlide === 0 +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: chevron_right, + label: (0,external_wp_i18n_namespaceObject.__)('Next pattern'), + onClick: handleNext, + disabled: activeSlide === totalSlides - 1 +})); +const SetupToolbar = ({ + viewMode, + setViewMode, + handlePrevious, + handleNext, + activeSlide, + totalSlides, + onBlockPatternSelect +}) => { + const isCarouselView = viewMode === VIEWMODES.carousel; + const displayControls = (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__display-controls" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: stretch_full_width, + label: (0,external_wp_i18n_namespaceObject.__)('Carousel view'), + onClick: () => setViewMode(VIEWMODES.carousel), + isPressed: isCarouselView + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: library_grid, + label: (0,external_wp_i18n_namespaceObject.__)('Grid view'), + onClick: () => setViewMode(VIEWMODES.grid), + isPressed: viewMode === VIEWMODES.grid + })); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__toolbar" + }, isCarouselView && (0,external_wp_element_namespaceObject.createElement)(CarouselNavigation, { + handlePrevious: handlePrevious, + handleNext: handleNext, + activeSlide: activeSlide, + totalSlides: totalSlides + }), displayControls, isCarouselView && (0,external_wp_element_namespaceObject.createElement)(Actions, { + onBlockPatternSelect: onBlockPatternSelect + })); +}; +/* harmony default export */ var setup_toolbar = (SetupToolbar); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/use-patterns-setup.js +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + +function usePatternsSetup(clientId, blockName, filterPatternsFn) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockRootClientId, + getPatternsByBlockTypes, + __experimentalGetAllowedPatterns + } = select(store); + const rootClientId = getBlockRootClientId(clientId); + if (filterPatternsFn) { + return __experimentalGetAllowedPatterns(rootClientId).filter(filterPatternsFn); + } + return getPatternsByBlockTypes(blockName, rootClientId); + }, [clientId, blockName, filterPatternsFn]); } +/* harmony default export */ var use_patterns_setup = (usePatternsSetup); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-block-selection.js /** * WordPress dependencies */ @@ -57304,138 +50936,158 @@ function ListViewDropIndicatorPreview({ */ -function useBlockSelection() { - const { - clearSelectedBlock, - multiSelect, - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - getBlockName, - getBlockParents, - getBlockSelectionStart, - getSelectedBlockClientIds, - hasMultiSelection, - hasSelectedBlock - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - getBlockType - } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blocks_namespaceObject.store); - const updateBlockSelection = (0,external_wp_element_namespaceObject.useCallback)(async (event, clientId, destinationClientId, focusPosition) => { - if (!event?.shiftKey && event?.keyCode !== external_wp_keycodes_namespaceObject.ESCAPE) { - selectBlock(clientId, focusPosition); - return; - } - - // To handle multiple block selection via the `SHIFT` key, prevent - // the browser default behavior of opening the link in a new window. - event.preventDefault(); - const isOnlyDeselection = event.type === 'keydown' && event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE; - const isKeyPress = event.type === 'keydown' && (event.keyCode === external_wp_keycodes_namespaceObject.UP || event.keyCode === external_wp_keycodes_namespaceObject.DOWN || event.keyCode === external_wp_keycodes_namespaceObject.HOME || event.keyCode === external_wp_keycodes_namespaceObject.END); - // Handle clicking on a block when no blocks are selected, and return early. - if (!isKeyPress && !hasSelectedBlock() && !hasMultiSelection()) { - selectBlock(clientId, null); - return; - } - const selectedBlocks = getSelectedBlockClientIds(); - const clientIdWithParents = [...getBlockParents(clientId), clientId]; - if (isOnlyDeselection || isKeyPress && !selectedBlocks.some(blockId => clientIdWithParents.includes(blockId))) { - // Ensure that shift-selecting blocks via the keyboard only - // expands the current selection if focusing over already - // selected blocks. Otherwise, clear the selection so that - // a user can create a new selection entirely by keyboard. - await clearSelectedBlock(); - } - // Update selection, if not only clearing the selection. - if (!isOnlyDeselection) { - let startTarget = getBlockSelectionStart(); - let endTarget = clientId; - // Handle keyboard behavior for selecting multiple blocks. - if (isKeyPress) { - if (!hasSelectedBlock() && !hasMultiSelection()) { - // Set the starting point of the selection to the currently - // focused block, if there are no blocks currently selected. - // This ensures that as the selection is expanded or contracted, - // the starting point of the selection is anchored to that block. - startTarget = clientId; - } - if (destinationClientId) { - // If the user presses UP or DOWN, we want to ensure that the block they're - // moving to is the target for selection, and not the currently focused one. - endTarget = destinationClientId; - } - } - const startParents = getBlockParents(startTarget); - const endParents = getBlockParents(endTarget); - const { - start, - end - } = getCommonDepthClientIds(startTarget, endTarget, startParents, endParents); - await multiSelect(start, end, null); +const SetupContent = ({ + viewMode, + activeSlide, + patterns, + onBlockPatternSelect, + showTitles +}) => { + const composite = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)(); + const containerClass = 'block-editor-block-pattern-setup__container'; + if (viewMode === VIEWMODES.carousel) { + const slideClass = new Map([[activeSlide, 'active-slide'], [activeSlide - 1, 'previous-slide'], [activeSlide + 1, 'next-slide']]); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__carousel" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: containerClass + }, (0,external_wp_element_namespaceObject.createElement)("ul", { + className: "carousel-container" + }, patterns.map((pattern, index) => (0,external_wp_element_namespaceObject.createElement)(BlockPatternSlide, { + className: slideClass.get(index) || '', + key: pattern.name, + pattern: pattern + }))))); + } + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-pattern-setup__grid" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableComposite, { + ...composite, + role: "listbox", + className: containerClass, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Patterns list') + }, patterns.map(pattern => (0,external_wp_element_namespaceObject.createElement)(block_pattern_setup_BlockPattern, { + key: pattern.name, + pattern: pattern, + onSelect: onBlockPatternSelect, + composite: composite, + showTitles: showTitles + })))); +}; +function block_pattern_setup_BlockPattern({ + pattern, + onSelect, + composite, + showTitles +}) { + const baseClassName = 'block-editor-block-pattern-setup-list'; + const { + blocks, + description, + viewportWidth = 700 + } = pattern; + const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(block_pattern_setup_BlockPattern, `${baseClassName}__item-description`); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseClassName}__list-item`, + "aria-label": pattern.title, + "aria-describedby": pattern.description ? descriptionId : undefined + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + role: "option", + as: "div", + ...composite, + className: `${baseClassName}__item`, + onClick: () => onSelect(blocks) + }, (0,external_wp_element_namespaceObject.createElement)(block_preview, { + blocks: blocks, + viewportWidth: viewportWidth + }), showTitles && (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseClassName}__item-title` + }, pattern.title), !!description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: descriptionId + }, description))); +} +function BlockPatternSlide({ + className, + pattern, + minHeight +}) { + const { + blocks, + title, + description + } = pattern; + const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockPatternSlide, 'block-editor-block-pattern-setup-list__item-description'); + return (0,external_wp_element_namespaceObject.createElement)("li", { + className: `pattern-slide ${className}`, + "aria-label": title, + "aria-describedby": description ? descriptionId : undefined + }, (0,external_wp_element_namespaceObject.createElement)(block_preview, { + blocks: blocks, + minHeight: minHeight + }), !!description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: descriptionId + }, description)); +} +const BlockPatternSetup = ({ + clientId, + blockName, + filterPatternsFn, + onBlockPatternSelect, + initialViewMode = VIEWMODES.carousel, + showTitles = false +}) => { + const [viewMode, setViewMode] = (0,external_wp_element_namespaceObject.useState)(initialViewMode); + const [activeSlide, setActiveSlide] = (0,external_wp_element_namespaceObject.useState)(0); + const { + replaceBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const patterns = use_patterns_setup(clientId, blockName, filterPatternsFn); + if (!patterns?.length) { + return null; + } + const onBlockPatternSelectDefault = blocks => { + const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); + replaceBlock(clientId, clonedBlocks); + }; + const onPatternSelectCallback = onBlockPatternSelect || onBlockPatternSelectDefault; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", { + className: `block-editor-block-pattern-setup view-mode-${viewMode}` + }, (0,external_wp_element_namespaceObject.createElement)(SetupContent, { + viewMode: viewMode, + activeSlide: activeSlide, + patterns: patterns, + onBlockPatternSelect: onPatternSelectCallback, + showTitles: showTitles + }), (0,external_wp_element_namespaceObject.createElement)(setup_toolbar, { + viewMode: viewMode, + setViewMode: setViewMode, + activeSlide: activeSlide, + totalSlides: patterns.length, + handleNext: () => { + setActiveSlide(active => active + 1); + }, + handlePrevious: () => { + setActiveSlide(active => active - 1); + }, + onBlockPatternSelect: () => { + onPatternSelectCallback(patterns[activeSlide].blocks); } + }))); +}; +/* harmony default export */ var block_pattern_setup = (BlockPatternSetup); - // Announce deselected block, or number of deselected blocks if - // the total number of blocks deselected is greater than one. - const updatedSelectedBlocks = getSelectedBlockClientIds(); - - // If the selection is greater than 1 and the Home or End keys - // were used to generate the selection, then skip announcing the - // deselected blocks. - if ((event.keyCode === external_wp_keycodes_namespaceObject.HOME || event.keyCode === external_wp_keycodes_namespaceObject.END) && updatedSelectedBlocks.length > 1) { - return; - } - const selectionDiff = selectedBlocks.filter(blockId => !updatedSelectedBlocks.includes(blockId)); - let label; - if (selectionDiff.length === 1) { - const title = getBlockType(getBlockName(selectionDiff[0]))?.title; - if (title) { - label = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block name */ - (0,external_wp_i18n_namespaceObject.__)('%s deselected.'), title); - } - } else if (selectionDiff.length > 1) { - label = (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of deselected blocks */ - (0,external_wp_i18n_namespaceObject.__)('%s blocks deselected.'), selectionDiff.length); - } - if (label) { - (0,external_wp_a11y_namespaceObject.speak)(label, 'assertive'); - } - }, [clearSelectedBlock, getBlockName, getBlockType, getBlockParents, getBlockSelectionStart, getSelectedBlockClientIds, hasMultiSelection, hasSelectedBlock, multiSelect, selectBlock]); - return { - updateBlockSelection - }; -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-variation-transforms/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-block-indexes.js /** * WordPress dependencies */ -function useListViewBlockIndexes(blocks) { - const blockIndexes = (0,external_wp_element_namespaceObject.useMemo)(() => { - const indexes = {}; - let currentGlobalIndex = 0; - const traverseBlocks = blockList => { - blockList.forEach(block => { - indexes[block.clientId] = currentGlobalIndex; - currentGlobalIndex++; - if (block.innerBlocks.length > 0) { - traverseBlocks(block.innerBlocks); - } - }); - }; - traverseBlocks(blocks); - return indexes; - }, [blocks]); - return blockIndexes; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-client-ids.js -/** - * WordPress dependencies - */ + + @@ -57444,1330 +51096,2090 @@ function useListViewBlockIndexes(blocks) { */ -function useListViewClientIds({ - blocks, - rootClientId +function VariationsButtons({ + className, + onSelectVariation, + selectedValue, + variations }) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: className + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Transform to variation')), variations.map(variation => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: variation.name, + icon: (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: variation.icon, + showColors: true + }), + isPressed: selectedValue === variation.name, + label: selectedValue === variation.name ? variation.title : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block variation */ + (0,external_wp_i18n_namespaceObject.__)('Transform to %s'), variation.title), + onClick: () => onSelectVariation(variation.name), + "aria-label": variation.title, + showTooltip: true + }))); +} +function VariationsDropdown({ + className, + onSelectVariation, + selectedValue, + variations +}) { + const selectOptions = variations.map(({ + name, + title, + description + }) => ({ + value: name, + label: title, + info: description + })); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + className: className, + label: (0,external_wp_i18n_namespaceObject.__)('Transform to variation'), + text: (0,external_wp_i18n_namespaceObject.__)('Transform to variation'), + popoverProps: { + position: 'bottom center', + className: `${className}__popover` + }, + icon: chevron_down, + toggleProps: { + iconPosition: 'right' + } + }, () => (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${className}__container` + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { + choices: selectOptions, + value: selectedValue, + onSelect: onSelectVariation + })))); +} +function __experimentalBlockVariationTransforms({ + blockClientId +}) { + const { + updateBlockAttributes + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + activeBlockVariation, + variations + } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getDraggedBlockClientIds, - getSelectedBlockClientIds, - getEnabledClientIdsTree - } = unlock(select(store)); + getActiveBlockVariation, + getBlockVariations + } = select(external_wp_blocks_namespaceObject.store); + const { + getBlockName, + getBlockAttributes + } = select(store); + const name = blockClientId && getBlockName(blockClientId); return { - selectedClientIds: getSelectedBlockClientIds(), - draggedClientIds: getDraggedBlockClientIds(), - clientIdsTree: blocks !== null && blocks !== void 0 ? blocks : getEnabledClientIdsTree(rootClientId) + activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId)), + variations: name && getBlockVariations(name, 'transform') }; - }, [blocks, rootClientId]); + }, [blockClientId]); + const selectedValue = activeBlockVariation?.name; + + // Check if each variation has a unique icon. + const hasUniqueIcons = (0,external_wp_element_namespaceObject.useMemo)(() => { + const variationIcons = new Set(); + if (!variations) { + return false; + } + variations.forEach(variation => { + if (variation.icon) { + variationIcons.add(variation.icon?.src || variation.icon); + } + }); + return variationIcons.size === variations.length; + }, [variations]); + const onSelectVariation = variationName => { + updateBlockAttributes(blockClientId, { + ...variations.find(({ + name + }) => name === variationName).attributes + }); + }; + const baseClass = 'block-editor-block-variation-transforms'; + + // Skip rendering if there are no variations + if (!variations?.length) return null; + const Component = hasUniqueIcons ? VariationsButtons : VariationsDropdown; + return (0,external_wp_element_namespaceObject.createElement)(Component, { + className: baseClass, + onSelectVariation: onSelectVariation, + selectedValue: selectedValue, + variations: variations + }); } +/* harmony default export */ var block_variation_transforms = (__experimentalBlockVariationTransforms); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/with-color-context.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-drop-zone.js /** * WordPress dependencies */ - - - /** * Internal dependencies */ +/* harmony default export */ var with_color_context = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => { + return props => { + const colorsFeature = use_setting_useSetting('color.palette'); + const disableCustomColorsFeature = !use_setting_useSetting('color.custom'); + const colors = props.colors === undefined ? colorsFeature : props.colors; + const disableCustomColors = props.disableCustomColors === undefined ? disableCustomColorsFeature : props.disableCustomColors; + const hasColorsToChoose = colors && colors.length > 0 || !disableCustomColors; + return (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, { + ...props, + colors, + disableCustomColors, + hasColorsToChoose + }); + }; +}, 'withColorContext')); - - -/** @typedef {import('../../utils/math').WPPoint} WPPoint */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/index.js /** - * The type of a drag event. - * - * @typedef {'default'|'file'|'html'} WPDragEventType + * WordPress dependencies */ + /** - * An object representing data for blocks in the DOM used by drag and drop. - * - * @typedef {Object} WPListViewDropZoneBlock - * @property {string} clientId The client id for the block. - * @property {string} rootClientId The root client id for the block. - * @property {number} blockIndex The block's index. - * @property {Element} element The DOM element representing the block. - * @property {number} innerBlockCount The number of inner blocks the block has. - * @property {boolean} isDraggedBlock Whether the block is currently being dragged. - * @property {boolean} isExpanded Whether the block is expanded in the UI. - * @property {boolean} canInsertDraggedBlocksAsSibling Whether the dragged block can be a sibling of this block. - * @property {boolean} canInsertDraggedBlocksAsChild Whether the dragged block can be a child of this block. + * Internal dependencies */ +/* harmony default export */ var color_palette = (with_color_context(external_wp_components_namespaceObject.ColorPalette)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/control.js + /** - * An array representing data for blocks in the DOM used by drag and drop. - * - * @typedef {WPListViewDropZoneBlock[]} WPListViewDropZoneBlocks + * Internal dependencies */ +function ColorPaletteControl({ + onChange, + value, + ...otherProps +}) { + return (0,external_wp_element_namespaceObject.createElement)(control, { + ...otherProps, + onColorChange: onChange, + colorValue: value, + gradients: [], + disableCustomGradients: true + }); +} + +;// CONCATENATED MODULE: external ["wp","date"] +var external_wp_date_namespaceObject = window["wp"]["date"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/date-format-picker/index.js + /** - * An object containing details of a drop target. - * - * @typedef {Object} WPListViewDropZoneTarget - * @property {string} blockIndex The insertion index. - * @property {string} rootClientId The root client id for the block. - * @property {string|undefined} clientId The client id for the block. - * @property {'top'|'bottom'|'inside'} dropPosition The position relative to the block that the user is dropping to. - * 'inside' refers to nesting as an inner block. + * WordPress dependencies */ -// When the indentation level, the corresponding left margin in `style.scss` -// must be updated as well to ensure the drop zone is aligned with the indentation. -const NESTING_LEVEL_INDENTATION = 28; + + + + +// So that we can illustrate the different formats in the dropdown properly, +// show a date that has a day greater than 12 and a month with more than three +// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was +// released. +const EXAMPLE_DATE = new Date(2022, 0, 25); /** - * Determines whether the user is positioning the dragged block to be - * moved up to a parent level. + * The `DateFormatPicker` component renders controls that let the user choose a + * _date format_. That is, how they want their dates to be formatted. * - * Determined based on nesting level indentation of the current block. + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md * - * @param {WPPoint} point The point representing the cursor position when dragging. - * @param {DOMRect} rect The rectangle. - * @param {number} nestingLevel The nesting level of the block. - * @param {boolean} rtl Whether the editor is in RTL mode. - * @return {boolean} Whether the gesture is an upward gesture. + * @param {Object} props + * @param {string|null} props.format The selected date + * format. If + * `null`, + * _Default_ is + * selected. + * @param {string} props.defaultFormat The date format that + * will be used if the + * user selects + * 'Default'. + * @param {( format: string|null ) => void} props.onChange Called when a + * selection is + * made. If `null`, + * _Default_ is + * selected. */ -function isUpGesture(point, rect, nestingLevel = 1, rtl = false) { - // If the block is nested, and the user is dragging to the bottom - // left of the block (or bottom right in RTL languages), then it is an upward gesture. - const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; - return rtl ? point.x > blockIndentPosition : point.x < blockIndentPosition; +function DateFormatPicker({ + format, + defaultFormat, + onChange +}) { + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-date-format-picker" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "legend" + }, (0,external_wp_i18n_namespaceObject.__)('Date format')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Default format'), + help: `${(0,external_wp_i18n_namespaceObject.__)('Example:')} ${(0,external_wp_date_namespaceObject.dateI18n)(defaultFormat, EXAMPLE_DATE)}`, + checked: !format, + onChange: checked => onChange(checked ? null : defaultFormat) + }), format && (0,external_wp_element_namespaceObject.createElement)(NonDefaultControls, { + format: format, + onChange: onChange + })); +} +function NonDefaultControls({ + format, + onChange +}) { + var _suggestedOptions$fin; + // Suggest a short format, medium format, long format, and a standardised + // (YYYY-MM-DD) format. The short, medium, and long formats are localised as + // different languages have different ways of writing these. For example, 'F + // j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April + // 2022) in German (de). The resultant array is de-duplicated as some + // languages will use the same format string for short, medium, and long + // formats. + const suggestedFormats = [...new Set(['Y-m-d', (0,external_wp_i18n_namespaceObject._x)('n/j/Y', 'short date format'), (0,external_wp_i18n_namespaceObject._x)('n/j/Y g:i A', 'short date format with time'), (0,external_wp_i18n_namespaceObject._x)('M j, Y', 'medium date format'), (0,external_wp_i18n_namespaceObject._x)('M j, Y g:i A', 'medium date format with time'), (0,external_wp_i18n_namespaceObject._x)('F j, Y', 'long date format'), (0,external_wp_i18n_namespaceObject._x)('M j', 'short date format without the year')])]; + const suggestedOptions = suggestedFormats.map((suggestedFormat, index) => ({ + key: `suggested-${index}`, + name: (0,external_wp_date_namespaceObject.dateI18n)(suggestedFormat, EXAMPLE_DATE), + format: suggestedFormat + })); + const customOption = { + key: 'custom', + name: (0,external_wp_i18n_namespaceObject.__)('Custom'), + className: 'block-editor-date-format-picker__custom-format-select-control__custom-option', + __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('Enter your own date format') + }; + const [isCustom, setIsCustom] = (0,external_wp_element_namespaceObject.useState)(() => !!format && !suggestedFormats.includes(format)); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { + __nextUnconstrainedWidth: true, + label: (0,external_wp_i18n_namespaceObject.__)('Choose a format'), + options: [...suggestedOptions, customOption], + value: isCustom ? customOption : (_suggestedOptions$fin = suggestedOptions.find(option => option.format === format)) !== null && _suggestedOptions$fin !== void 0 ? _suggestedOptions$fin : customOption, + onChange: ({ + selectedItem + }) => { + if (selectedItem === customOption) { + setIsCustom(true); + } else { + setIsCustom(false); + onChange(selectedItem.format); + } + } + }), isCustom && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Custom format'), + hideLabelFromVision: true, + help: (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Enter a date or time format string.'), { + Link: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/customize-date-and-time-format/') + }) + }), + value: format, + onChange: value => onChange(value) + })); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/dropdown.js + /** - * Returns how many nesting levels up the user is attempting to drag to. - * - * The relative parent level is calculated based on how far - * the cursor is from the provided nesting level (e.g. of a candidate block - * that the user is hovering over). The nesting level is considered "desired" - * because it is not guaranteed that the user will be able to drag to the desired level. - * - * The returned integer can be used to access an ascending array - * of parent blocks, where the first item is the block the user - * is hovering over, and the last item is the root block. - * - * @param {WPPoint} point The point representing the cursor position when dragging. - * @param {DOMRect} rect The rectangle. - * @param {number} nestingLevel The nesting level of the block. - * @param {boolean} rtl Whether the editor is in RTL mode. - * @return {number} The desired relative parent level. + * External dependencies */ -function getDesiredRelativeParentLevel(point, rect, nestingLevel = 1, rtl = false) { - // In RTL languages, the block indent position is from the right edge of the block. - // In LTR languages, the block indent position is from the left edge of the block. - const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; - const distanceBetweenPointAndBlockIndentPosition = rtl ? blockIndentPosition - point.x : point.x - blockIndentPosition; - const desiredParentLevel = Math.round(distanceBetweenPointAndBlockIndentPosition / NESTING_LEVEL_INDENTATION); - return Math.abs(desiredParentLevel); -} + /** - * Returns an array of the parent blocks of the block the user is dropping to. - * - * @param {WPListViewDropZoneBlock} candidateBlockData The block the user is dropping to. - * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. - * @return {WPListViewDropZoneBlocks} An array of block parents, including the block the user is dropping to. + * WordPress dependencies */ -function getCandidateBlockParents(candidateBlockData, blocksData) { - const candidateBlockParents = []; - let currentBlockData = candidateBlockData; - while (currentBlockData) { - candidateBlockParents.push({ - ...currentBlockData - }); - currentBlockData = blocksData.find(blockData => blockData.clientId === currentBlockData.rootClientId); + + +/** + * Internal dependencies + */ + + +// When the `ColorGradientSettingsDropdown` controls are being rendered to a +// `ToolsPanel` they must be wrapped in a `ToolsPanelItem`. +const WithToolsPanelItem = ({ + setting, + children, + panelId, + ...props +}) => { + const clearValue = () => { + if (setting.colorValue) { + setting.onColorChange(); + } else if (setting.gradientValue) { + setting.onGradientChange(); + } + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: () => { + return !!setting.colorValue || !!setting.gradientValue; + }, + label: setting.label, + onDeselect: clearValue, + isShownByDefault: setting.isShownByDefault !== undefined ? setting.isShownByDefault : true, + ...props, + className: "block-editor-tools-panel-color-gradient-settings__item", + panelId: panelId + // Pass resetAllFilter if supplied due to rendering via SlotFill + // into parent ToolsPanel. + , + resetAllFilter: setting.resetAllFilter + }, children); +}; +const dropdown_LabeledColorIndicator = ({ + colorValue, + label +}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ColorIndicator, { + className: "block-editor-panel-color-gradient-settings__color-indicator", + colorValue: colorValue +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, { + className: "block-editor-panel-color-gradient-settings__color-name", + title: label +}, label)); + +// Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup` +// or as a `Button` if it isn't e.g. the controls are being rendered in +// a `ToolsPanel`. +const renderToggle = settings => ({ + onToggle, + isOpen +}) => { + const { + colorValue, + label + } = settings; + const toggleProps = { + onClick: onToggle, + className: classnames_default()('block-editor-panel-color-gradient-settings__dropdown', { + 'is-open': isOpen + }), + 'aria-expanded': isOpen + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...toggleProps + }, (0,external_wp_element_namespaceObject.createElement)(dropdown_LabeledColorIndicator, { + colorValue: colorValue, + label: label + })); +}; + +// Renders a collection of color controls as dropdowns. Depending upon the +// context in which these dropdowns are being rendered, they may be wrapped +// in an `ItemGroup` with each dropdown's toggle as an `Item`, or alternatively, +// the may be individually wrapped in a `ToolsPanelItem` with the toggle as +// a regular `Button`. +// +// For more context see: https://github.com/WordPress/gutenberg/pull/40084 +function ColorGradientSettingsDropdown({ + colors, + disableCustomColors, + disableCustomGradients, + enableAlpha, + gradients, + settings, + __experimentalIsRenderedInSidebar, + ...props +}) { + let popoverProps; + if (__experimentalIsRenderedInSidebar) { + popoverProps = { + placement: 'left-start', + offset: 36, + shift: true + }; } - return candidateBlockParents; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, settings.map((setting, index) => { + var _setting$gradientValu; + const controlProps = { + clearable: false, + colorValue: setting.colorValue, + colors, + disableCustomColors, + disableCustomGradients, + enableAlpha, + gradientValue: setting.gradientValue, + gradients, + label: setting.label, + onColorChange: setting.onColorChange, + onGradientChange: setting.onGradientChange, + showTitle: false, + __experimentalIsRenderedInSidebar, + ...setting + }; + const toggleSettings = { + colorValue: (_setting$gradientValu = setting.gradientValue) !== null && _setting$gradientValu !== void 0 ? _setting$gradientValu : setting.colorValue, + label: setting.label + }; + return setting && + // If not in an `ItemGroup` wrap the dropdown in a + // `ToolsPanelItem` + (0,external_wp_element_namespaceObject.createElement)(WithToolsPanelItem, { + key: index, + setting: setting, + ...props + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: popoverProps, + className: "block-editor-tools-panel-color-gradient-settings__dropdown", + renderToggle: renderToggle(toggleSettings), + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { + paddingSize: "none" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-panel-color-gradient-settings__dropdown-content" + }, (0,external_wp_element_namespaceObject.createElement)(control, { + ...controlProps + }))) + })); + })); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/panel-color-gradient-settings.js + /** - * Given a list of blocks data and a block index, return the next non-dragged - * block. This is used to determine the block that the user is dropping to, - * while ignoring the dragged block. - * - * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. - * @param {number} index The index to begin searching from. - * @return {WPListViewDropZoneBlock | undefined} The next non-dragged block. + * External dependencies */ -function getNextNonDraggedBlock(blocksData, index) { - const nextBlockData = blocksData[index + 1]; - if (nextBlockData && nextBlockData.isDraggedBlock) { - return getNextNonDraggedBlock(blocksData, index + 1); - } - return nextBlockData; -} + /** - * Determines whether the user positioning the dragged block to nest as an - * inner block. - * - * Determined based on nesting level indentation of the current block, plus - * the indentation of the next level of nesting. The vertical position of the - * cursor must also be within the block. - * - * @param {WPPoint} point The point representing the cursor position when dragging. - * @param {DOMRect} rect The rectangle. - * @param {number} nestingLevel The nesting level of the block. - * @param {boolean} rtl Whether the editor is in RTL mode. + * WordPress dependencies */ -function isNestingGesture(point, rect, nestingLevel = 1, rtl = false) { - const blockIndentPosition = rtl ? rect.right - nestingLevel * NESTING_LEVEL_INDENTATION : rect.left + nestingLevel * NESTING_LEVEL_INDENTATION; - const isNestingHorizontalGesture = rtl ? point.x < blockIndentPosition - NESTING_LEVEL_INDENTATION : point.x > blockIndentPosition + NESTING_LEVEL_INDENTATION; - return isNestingHorizontalGesture && point.y < rect.bottom; -} -// Block navigation is always a vertical list, so only allow dropping -// to the above or below a block. -const ALLOWED_DROP_EDGES = ['top', 'bottom']; + + /** - * Given blocks data and the cursor position, compute the drop target. - * - * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view. - * @param {WPPoint} position The point representing the cursor position when dragging. - * @param {boolean} rtl Whether the editor is in RTL mode. - * - * @return {WPListViewDropZoneTarget | undefined} An object containing data about the drop target. + * Internal dependencies */ -function getListViewDropTarget(blocksData, position, rtl = false) { - let candidateEdge; - let candidateBlockData; - let candidateDistance; - let candidateRect; - let candidateBlockIndex; - for (let i = 0; i < blocksData.length; i++) { - const blockData = blocksData[i]; - if (blockData.isDraggedBlock) { - continue; - } - const rect = blockData.element.getBoundingClientRect(); - const [distance, edge] = getDistanceToNearestEdge(position, rect, ALLOWED_DROP_EDGES); - const isCursorWithinBlock = isPointContainedByRect(position, rect); - if (candidateDistance === undefined || distance < candidateDistance || isCursorWithinBlock) { - candidateDistance = distance; - const index = blocksData.indexOf(blockData); - const previousBlockData = blocksData[index - 1]; - // If dragging near the top of a block and the preceding block - // is at the same level, use the preceding block as the candidate - // instead, as later it makes determining a nesting drop easier. - if (edge === 'top' && previousBlockData && previousBlockData.rootClientId === blockData.rootClientId && !previousBlockData.isDraggedBlock) { - candidateBlockData = previousBlockData; - candidateEdge = 'bottom'; - candidateRect = previousBlockData.element.getBoundingClientRect(); - candidateBlockIndex = index - 1; - } else { - candidateBlockData = blockData; - candidateEdge = edge; - candidateRect = rect; - candidateBlockIndex = index; - } - // If the mouse position is within the block, break early - // as the user would intend to drop either before or after - // this block. - // - // This solves an issue where some rows in the list view - // tree overlap slightly due to sub-pixel rendering. - if (isCursorWithinBlock) { - break; - } - } +const panel_color_gradient_settings_colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients']; +const PanelColorGradientSettingsInner = ({ + className, + colors, + gradients, + disableCustomColors, + disableCustomGradients, + children, + settings, + title, + showTitle = true, + __experimentalIsRenderedInSidebar, + enableAlpha +}) => { + const panelId = (0,external_wp_compose_namespaceObject.useInstanceId)(PanelColorGradientSettingsInner); + const { + batch + } = (0,external_wp_data_namespaceObject.useRegistry)(); + if ((!colors || colors.length === 0) && (!gradients || gradients.length === 0) && disableCustomColors && disableCustomGradients && settings?.every(setting => (!setting.colors || setting.colors.length === 0) && (!setting.gradients || setting.gradients.length === 0) && (setting.disableCustomColors === undefined || setting.disableCustomColors) && (setting.disableCustomGradients === undefined || setting.disableCustomGradients))) { + return null; } - if (!candidateBlockData) { - return; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + className: classnames_default()('block-editor-panel-color-gradient-settings', className), + label: showTitle ? title : undefined, + resetAll: () => { + batch(() => { + settings.forEach(({ + colorValue, + gradientValue, + onColorChange, + onGradientChange + }) => { + if (colorValue) { + onColorChange(); + } else if (gradientValue) { + onGradientChange(); + } + }); + }); + }, + panelId: panelId, + __experimentalFirstVisibleItemClass: "first", + __experimentalLastVisibleItemClass: "last" + }, (0,external_wp_element_namespaceObject.createElement)(ColorGradientSettingsDropdown, { + settings: settings, + panelId: panelId, + colors, + gradients, + disableCustomColors, + disableCustomGradients, + __experimentalIsRenderedInSidebar, + enableAlpha + }), !!children && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { + marginY: 4 + }), " ", children)); +}; +const PanelColorGradientSettingsSelect = props => { + const colorGradientSettings = useMultipleOriginColorsAndGradients(); + return (0,external_wp_element_namespaceObject.createElement)(PanelColorGradientSettingsInner, { + ...colorGradientSettings, + ...props + }); +}; +const PanelColorGradientSettings = props => { + if (panel_color_gradient_settings_colorsAndGradientKeys.every(key => props.hasOwnProperty(key))) { + return (0,external_wp_element_namespaceObject.createElement)(PanelColorGradientSettingsInner, { + ...props + }); } - const candidateBlockParents = getCandidateBlockParents(candidateBlockData, blocksData); - const isDraggingBelow = candidateEdge === 'bottom'; + return (0,external_wp_element_namespaceObject.createElement)(PanelColorGradientSettingsSelect, { + ...props + }); +}; +/* harmony default export */ var panel_color_gradient_settings = (PanelColorGradientSettings); - // If the user is dragging towards the bottom of the block check whether - // they might be trying to nest the block as a child. - // If the block already has inner blocks, and is expanded, this should be treated - // as nesting since the next block in the tree will be the first child. - // However, if the block is collapsed, dragging beneath the block should - // still be allowed, as the next visible block in the tree will be a sibling. - if (isDraggingBelow && candidateBlockData.canInsertDraggedBlocksAsChild && (candidateBlockData.innerBlockCount > 0 && candidateBlockData.isExpanded || isNestingGesture(position, candidateRect, candidateBlockParents.length, rtl))) { - // If the block is expanded, insert the block as the first child. - // Otherwise, for collapsed blocks, insert the block as the last child. - const newBlockIndex = candidateBlockData.isExpanded ? 0 : candidateBlockData.innerBlockCount || 0; - return { - rootClientId: candidateBlockData.clientId, - clientId: candidateBlockData.clientId, - blockIndex: newBlockIndex, - dropPosition: 'inside' - }; - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/use-save-image.js +/** + * WordPress dependencies + */ +// Disable Reason: Needs to be refactored. +// eslint-disable-next-line no-restricted-imports - // If the user is dragging towards the bottom of the block check whether - // they might be trying to move the block to be at a parent level. - if (isDraggingBelow && candidateBlockData.rootClientId && isUpGesture(position, candidateRect, candidateBlockParents.length, rtl)) { - const nextBlock = getNextNonDraggedBlock(blocksData, candidateBlockIndex); - const currentLevel = candidateBlockData.nestingLevel; - const nextLevel = nextBlock ? nextBlock.nestingLevel : 1; - if (currentLevel && nextLevel) { - // Determine the desired relative level of the block to be dropped. - const desiredRelativeLevel = getDesiredRelativeParentLevel(position, candidateRect, candidateBlockParents.length, rtl); - const targetParentIndex = Math.max(Math.min(desiredRelativeLevel, currentLevel - nextLevel), 0); - if (candidateBlockParents[targetParentIndex]) { - // Default to the block index of the candidate block. - let newBlockIndex = candidateBlockData.blockIndex; - // If the next block is at the same level, use that as the default - // block index. This ensures that the block is dropped in the correct - // position when dragging to the bottom of a block. - if (candidateBlockParents[targetParentIndex].nestingLevel === nextBlock?.nestingLevel) { - newBlockIndex = nextBlock?.blockIndex; - } else { - // Otherwise, search from the current block index back - // to find the last block index within the same target parent. - for (let i = candidateBlockIndex; i >= 0; i--) { - const blockData = blocksData[i]; - if (blockData.rootClientId === candidateBlockParents[targetParentIndex].rootClientId) { - newBlockIndex = blockData.blockIndex + 1; - break; - } - } - } - return { - rootClientId: candidateBlockParents[targetParentIndex].rootClientId, - clientId: candidateBlockData.clientId, - blockIndex: newBlockIndex, - dropPosition: candidateEdge - }; - } - } - } - // If dropping as a sibling, but block cannot be inserted in - // this context, return early. - if (!candidateBlockData.canInsertDraggedBlocksAsSibling) { - return; - } - const offset = isDraggingBelow ? 1 : 0; - return { - rootClientId: candidateBlockData.rootClientId, - clientId: candidateBlockData.clientId, - blockIndex: candidateBlockData.blockIndex + offset, - dropPosition: candidateEdge - }; -} -// Throttle options need to be defined outside of the hook to avoid -// re-creating the object on every render. This is due to a limitation -// of the `useThrottle` hook, where the options object is included -// in the dependency array for memoization. -const EXPAND_THROTTLE_OPTIONS = { - leading: false, - // Don't call the function immediately on the first call. - trailing: true // Do call the function on the last call. -}; -/** - * A react hook for implementing a drop zone in list view. - * - * @param {Object} props Named parameters. - * @param {?HTMLElement} [props.dropZoneElement] Optional element to be used as the drop zone. - * @param {Object} [props.expandedState] The expanded state of the blocks in the list view. - * @param {Function} [props.setExpandedState] Function to set the expanded state of a list of block clientIds. - * - * @return {WPListViewDropZoneTarget} The drop target. - */ -function useListViewDropZone({ - dropZoneElement, - expandedState, - setExpandedState + +function useSaveImage({ + crop, + rotation, + url, + id, + onSaveImage, + onFinishEditing }) { const { - getBlockRootClientId, - getBlockIndex, - getBlockCount, - getDraggedBlockClientIds, - canInsertBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const [target, setTarget] = (0,external_wp_element_namespaceObject.useState)(); - const { - rootClientId: targetRootClientId, - blockIndex: targetBlockIndex - } = target || {}; - const onBlockDrop = useOnBlockDrop(targetRootClientId, targetBlockIndex); - const rtl = (0,external_wp_i18n_namespaceObject.isRTL)(); - const previousRootClientId = (0,external_wp_compose_namespaceObject.usePrevious)(targetRootClientId); - const maybeExpandBlock = (0,external_wp_element_namespaceObject.useCallback)((_expandedState, _target) => { - // If the user is attempting to drop a block inside a collapsed block, - // that is, using a nesting gesture flagged by 'inside' dropPosition, - // expand the block within the list view, if it isn't already. - const { - rootClientId - } = _target || {}; - if (!rootClientId) { - return; - } - if (_target?.dropPosition === 'inside' && !_expandedState[rootClientId]) { - setExpandedState({ - type: 'expand', - clientIds: [rootClientId] + createErrorNotice + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); + const [isInProgress, setIsInProgress] = (0,external_wp_element_namespaceObject.useState)(false); + const cancel = (0,external_wp_element_namespaceObject.useCallback)(() => { + setIsInProgress(false); + onFinishEditing(); + }, [onFinishEditing]); + const apply = (0,external_wp_element_namespaceObject.useCallback)(() => { + setIsInProgress(true); + const modifiers = []; + if (rotation > 0) { + modifiers.push({ + type: 'rotate', + args: { + angle: rotation + } }); } - }, [setExpandedState]); - - // Throttle the maybeExpandBlock function to avoid expanding the block - // too quickly when the user is dragging over the block. This is to - // avoid expanding the block when the user is just passing over it. - const throttledMaybeExpandBlock = (0,external_wp_compose_namespaceObject.useThrottle)(maybeExpandBlock, 500, EXPAND_THROTTLE_OPTIONS); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (target?.dropPosition !== 'inside' || previousRootClientId !== target?.rootClientId) { - throttledMaybeExpandBlock.cancel(); - return; - } - throttledMaybeExpandBlock(expandedState, target); - }, [expandedState, previousRootClientId, target, throttledMaybeExpandBlock]); - const draggedBlockClientIds = getDraggedBlockClientIds(); - const throttled = (0,external_wp_compose_namespaceObject.useThrottle)((0,external_wp_element_namespaceObject.useCallback)((event, currentTarget) => { - const position = { - x: event.clientX, - y: event.clientY - }; - const isBlockDrag = !!draggedBlockClientIds?.length; - const blockElements = Array.from(currentTarget.querySelectorAll('[data-block]')); - const blocksData = blockElements.map(blockElement => { - const clientId = blockElement.dataset.block; - const isExpanded = blockElement.dataset.expanded === 'true'; - const isDraggedBlock = blockElement.classList.contains('is-dragging'); - // Get nesting level from `aria-level` attribute because Firefox does not support `element.ariaLevel`. - const nestingLevel = parseInt(blockElement.getAttribute('aria-level'), 10); - const rootClientId = getBlockRootClientId(clientId); - return { - clientId, - isExpanded, - rootClientId, - blockIndex: getBlockIndex(clientId), - element: blockElement, - nestingLevel: nestingLevel || undefined, - isDraggedBlock: isBlockDrag ? isDraggedBlock : false, - innerBlockCount: getBlockCount(clientId), - canInsertDraggedBlocksAsSibling: isBlockDrag ? canInsertBlocks(draggedBlockClientIds, rootClientId) : true, - canInsertDraggedBlocksAsChild: isBlockDrag ? canInsertBlocks(draggedBlockClientIds, clientId) : true - }; - }); - const newTarget = getListViewDropTarget(blocksData, position, rtl); - if (newTarget) { - setTarget(newTarget); + // The crop script may return some very small, sub-pixel values when the image was not cropped. + // Crop only when the new size has changed by more than 0.1%. + if (crop.width < 99.9 || crop.height < 99.9) { + modifiers.push({ + type: 'crop', + args: { + left: crop.x, + top: crop.y, + width: crop.width, + height: crop.height + } + }); } - }, [canInsertBlocks, draggedBlockClientIds, getBlockCount, getBlockIndex, getBlockRootClientId, rtl]), 50); - const ref = (0,external_wp_compose_namespaceObject.__experimentalUseDropZone)({ - dropZoneElement, - onDrop(event) { - if (target) { - onBlockDrop(event); + external_wp_apiFetch_default()({ + path: `/wp/v2/media/${id}/edit`, + method: 'POST', + data: { + src: url, + modifiers } - }, - onDragLeave() { - throttled.cancel(); - // Use `null` value to indicate that the drop target is not valid, - // but that the drag is still active. This allows for styling rules - // that are active only when a user drags outside of the list view. - setTarget(null); - }, - onDragOver(event) { - // `currentTarget` is only available while the event is being - // handled, so get it now and pass it to the thottled function. - // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget - throttled(event, event.currentTarget); - }, - onDragEnd() { - throttled.cancel(); - // Use `undefined` value to indicate that the drag has concluded. - // This allows styling rules that are active only when a user is - // dragging to be removed. - setTarget(undefined); - } - }); - return { - ref, - target - }; + }).then(response => { + onSaveImage({ + id: response.id, + url: response.source_url + }); + }).catch(error => { + createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1. Error message */ + (0,external_wp_i18n_namespaceObject.__)('Could not edit image. %s'), (0,external_wp_dom_namespaceObject.__unstableStripHTML)(error.message)), { + id: 'image-editing-error', + type: 'snackbar' + }); + }).finally(() => { + setIsInProgress(false); + onFinishEditing(); + }); + }, [crop, rotation, id, url, onSaveImage, createErrorNotice, onFinishEditing]); + return (0,external_wp_element_namespaceObject.useMemo)(() => ({ + isInProgress, + apply, + cancel + }), [isInProgress, apply, cancel]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/use-list-view-expand-selected-item.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/use-transform-image.js /** * WordPress dependencies */ - -/** - * Internal dependencies - */ - -function useListViewExpandSelectedItem({ - firstSelectedBlockClientId, - setExpandedState +function useTransformImage({ + url, + naturalWidth, + naturalHeight }) { - const [selectedTreeId, setSelectedTreeId] = (0,external_wp_element_namespaceObject.useState)(null); - const { - selectedBlockParentClientIds - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockParents - } = select(store); - return { - selectedBlockParentClientIds: getBlockParents(firstSelectedBlockClientId, false) - }; - }, [firstSelectedBlockClientId]); - - // Expand tree when a block is selected. - (0,external_wp_element_namespaceObject.useEffect)(() => { - // If the selectedTreeId is the same as the selected block, - // it means that the block was selected using the block list tree. - if (selectedTreeId === firstSelectedBlockClientId) { + const [editedUrl, setEditedUrl] = (0,external_wp_element_namespaceObject.useState)(); + const [crop, setCrop] = (0,external_wp_element_namespaceObject.useState)(); + const [position, setPosition] = (0,external_wp_element_namespaceObject.useState)({ + x: 0, + y: 0 + }); + const [zoom, setZoom] = (0,external_wp_element_namespaceObject.useState)(100); + const [rotation, setRotation] = (0,external_wp_element_namespaceObject.useState)(0); + const defaultAspect = naturalWidth / naturalHeight; + const [aspect, setAspect] = (0,external_wp_element_namespaceObject.useState)(defaultAspect); + const rotateClockwise = (0,external_wp_element_namespaceObject.useCallback)(() => { + const angle = (rotation + 90) % 360; + let naturalAspectRatio = defaultAspect; + if (rotation % 180 === 90) { + naturalAspectRatio = 1 / defaultAspect; + } + if (angle === 0) { + setEditedUrl(); + setRotation(angle); + setAspect(defaultAspect); + setPosition(prevPosition => ({ + x: -(prevPosition.y * naturalAspectRatio), + y: prevPosition.x * naturalAspectRatio + })); return; } - - // If the selected block has parents, get the top-level parent. - if (selectedBlockParentClientIds?.length) { - // If the selected block has parents, - // expand the tree branch. - setExpandedState({ - type: 'expand', - clientIds: selectedBlockParentClientIds + function editImage(event) { + const canvas = document.createElement('canvas'); + let translateX = 0; + let translateY = 0; + if (angle % 180) { + canvas.width = event.target.height; + canvas.height = event.target.width; + } else { + canvas.width = event.target.width; + canvas.height = event.target.height; + } + if (angle === 90 || angle === 180) { + translateX = canvas.width; + } + if (angle === 270 || angle === 180) { + translateY = canvas.height; + } + const context = canvas.getContext('2d'); + context.translate(translateX, translateY); + context.rotate(angle * Math.PI / 180); + context.drawImage(event.target, 0, 0); + canvas.toBlob(blob => { + setEditedUrl(URL.createObjectURL(blob)); + setRotation(angle); + setAspect(canvas.width / canvas.height); + setPosition(prevPosition => ({ + x: -(prevPosition.y * naturalAspectRatio), + y: prevPosition.x * naturalAspectRatio + })); }); } - }, [firstSelectedBlockClientId, selectedBlockParentClientIds, selectedTreeId, setExpandedState]); - return { - setSelectedTreeId - }; + const el = new window.Image(); + el.src = url; + el.onload = editImage; + const imgCrossOrigin = (0,external_wp_hooks_namespaceObject.applyFilters)('media.crossOrigin', undefined, url); + if (typeof imgCrossOrigin === 'string') { + el.crossOrigin = imgCrossOrigin; + } + }, [rotation, defaultAspect, url]); + return (0,external_wp_element_namespaceObject.useMemo)(() => ({ + editedUrl, + setEditedUrl, + crop, + setCrop, + position, + setPosition, + zoom, + setZoom, + rotation, + setRotation, + rotateClockwise, + aspect, + setAspect, + defaultAspect + }), [editedUrl, crop, position, zoom, rotation, rotateClockwise, aspect, defaultAspect]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/index.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/context.js /** * WordPress dependencies */ - - - - - /** * Internal dependencies */ +const ImageEditingContext = (0,external_wp_element_namespaceObject.createContext)({}); +const useImageEditingContext = () => (0,external_wp_element_namespaceObject.useContext)(ImageEditingContext); +function ImageEditingProvider({ + id, + url, + naturalWidth, + naturalHeight, + onFinishEditing, + onSaveImage, + children +}) { + const transformImage = useTransformImage({ + url, + naturalWidth, + naturalHeight + }); + const saveImage = useSaveImage({ + id, + url, + onSaveImage, + onFinishEditing, + ...transformImage + }); + const providerValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ + ...transformImage, + ...saveImage + }), [transformImage, saveImage]); + return (0,external_wp_element_namespaceObject.createElement)(ImageEditingContext.Provider, { + value: providerValue + }, children); +} +;// CONCATENATED MODULE: ./node_modules/react-easy-crop/node_modules/tslib/tslib.es6.js +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var tslib_es6_extendStatics = function(d, b) { + tslib_es6_extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return tslib_es6_extendStatics(d, b); +}; + +function tslib_es6_extends(d, b) { + tslib_es6_extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var tslib_es6_assign = function() { + tslib_es6_assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return tslib_es6_assign.apply(this, arguments); +} + +function tslib_es6_rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +function tslib_es6_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function tslib_es6_param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function tslib_es6_metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function tslib_es6_awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function tslib_es6_generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +var tslib_es6_createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +function tslib_es6_exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) tslib_es6_createBinding(o, m, p); +} + +function tslib_es6_values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +function tslib_es6_read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +function tslib_es6_spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(tslib_es6_read(arguments[i])); + return ar; +} + +function tslib_es6_spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +}; + +function tslib_es6_await(v) { + return this instanceof tslib_es6_await ? (this.v = v, this) : new tslib_es6_await(v); +} + +function tslib_es6_asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof tslib_es6_await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function tslib_es6_asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: tslib_es6_await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +function tslib_es6_asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof tslib_es6_values === "function" ? tslib_es6_values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function tslib_es6_makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +var tslib_es6_setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +function tslib_es6_importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) tslib_es6_createBinding(result, mod, k); + tslib_es6_setModuleDefault(result, mod); + return result; +} + +function tslib_es6_importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +function tslib_es6_classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); +} + +function tslib_es6_classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; +} +// EXTERNAL MODULE: ./node_modules/normalize-wheel/index.js +var normalize_wheel = __webpack_require__(7970); +var normalize_wheel_default = /*#__PURE__*/__webpack_require__.n(normalize_wheel); +;// CONCATENATED MODULE: ./node_modules/react-easy-crop/index.module.js - - - -const expanded = (state, action) => { - if (Array.isArray(action.clientIds)) { - return { - ...state, - ...action.clientIds.reduce((newState, id) => ({ - ...newState, - [id]: action.type === 'expand' - }), {}) - }; - } - return state; -}; -const BLOCK_LIST_ITEM_HEIGHT = 36; - -/** @typedef {import('react').ComponentType} ComponentType */ -/** @typedef {import('react').Ref} Ref */ - -/** - * Show a hierarchical list of blocks. - * - * @param {Object} props Components props. - * @param {string} props.id An HTML element id for the root element of ListView. - * @param {Array} props.blocks _deprecated_ Custom subset of block client IDs to be used instead of the default hierarchy. - * @param {?HTMLElement} props.dropZoneElement Optional element to be used as the drop zone. - * @param {?boolean} props.showBlockMovers Flag to enable block movers. Defaults to `false`. - * @param {?boolean} props.isExpanded Flag to determine whether nested levels are expanded by default. Defaults to `false`. - * @param {?boolean} props.showAppender Flag to show or hide the block appender. Defaults to `false`. - * @param {?ComponentType} props.blockSettingsMenu Optional more menu substitution. Defaults to the standard `BlockSettingsDropdown` component. - * @param {string} props.rootClientId The client id of the root block from which we determine the blocks to show in the list. - * @param {string} props.description Optional accessible description for the tree grid component. - * @param {?Function} props.onSelect Optional callback to be invoked when a block is selected. Receives the block object that was selected. - * @param {?ComponentType} props.additionalBlockContent Component that renders additional block content UI. - * @param {Ref} ref Forwarded ref +/** + * Compute the dimension of the crop area based on media size, + * aspect ratio and optionally rotation */ -function ListViewComponent({ - id, - blocks, - dropZoneElement, - showBlockMovers = false, - isExpanded = false, - showAppender = false, - blockSettingsMenu: BlockSettingsMenu = BlockSettingsDropdown, - rootClientId, - description, - onSelect, - additionalBlockContent: AdditionalBlockContent -}, ref) { - // This can be removed once we no longer need to support the blocks prop. - if (blocks) { - external_wp_deprecated_default()('`blocks` property in `wp.blockEditor.__experimentalListView`', { - since: '6.3', - alternative: '`rootClientId` property' - }); +function getCropSize(mediaWidth, mediaHeight, containerWidth, containerHeight, aspect, rotation) { + if (rotation === void 0) { + rotation = 0; } - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ListViewComponent); - const { - clientIdsTree, - draggedClientIds, - selectedClientIds - } = useListViewClientIds({ - blocks, - rootClientId - }); - const blockIndexes = useListViewBlockIndexes(clientIdsTree); - const { - getBlock - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - visibleBlockCount, - shouldShowInnerBlocks - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getGlobalBlockCount, - getClientIdsOfDescendants, - __unstableGetEditorMode - } = select(store); - const draggedBlockCount = draggedClientIds?.length > 0 ? getClientIdsOfDescendants(draggedClientIds).length + 1 : 0; - return { - visibleBlockCount: getGlobalBlockCount() - draggedBlockCount, - shouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out' - }; - }, [draggedClientIds]); - const { - updateBlockSelection - } = useBlockSelection(); - const [expandedState, setExpandedState] = (0,external_wp_element_namespaceObject.useReducer)(expanded, {}); - const { - ref: dropZoneRef, - target: blockDropTarget - } = useListViewDropZone({ - dropZoneElement, - expandedState, - setExpandedState - }); - const elementRef = (0,external_wp_element_namespaceObject.useRef)(); - const treeGridRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([elementRef, dropZoneRef, ref]); - const [insertedBlock, setInsertedBlock] = (0,external_wp_element_namespaceObject.useState)(null); - const { - setSelectedTreeId - } = useListViewExpandSelectedItem({ - firstSelectedBlockClientId: selectedClientIds[0], - setExpandedState - }); - const selectEditorBlock = (0,external_wp_element_namespaceObject.useCallback)( - /** - * @param {MouseEvent | KeyboardEvent | undefined} event - * @param {string} blockClientId - * @param {null | undefined | -1 | 1} focusPosition - */ - (event, blockClientId, focusPosition) => { - updateBlockSelection(event, blockClientId, null, focusPosition); - setSelectedTreeId(blockClientId); - if (onSelect) { - onSelect(getBlock(blockClientId)); - } - }, [setSelectedTreeId, updateBlockSelection, onSelect, getBlock]); - (0,external_wp_element_namespaceObject.useEffect)(() => { - // If a blocks are already selected when the list view is initially - // mounted, shift focus to the first selected block. - if (selectedClientIds?.length) { - focusListItem(selectedClientIds[0], elementRef); - } - // Disable reason: Only focus on the selected item when the list view is mounted. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - const expand = (0,external_wp_element_namespaceObject.useCallback)(clientId => { - if (!clientId) { - return; - } - setExpandedState({ - type: 'expand', - clientIds: [clientId] - }); - }, [setExpandedState]); - const collapse = (0,external_wp_element_namespaceObject.useCallback)(clientId => { - if (!clientId) { - return; - } - setExpandedState({ - type: 'collapse', - clientIds: [clientId] - }); - }, [setExpandedState]); - const expandRow = (0,external_wp_element_namespaceObject.useCallback)(row => { - expand(row?.dataset?.block); - }, [expand]); - const collapseRow = (0,external_wp_element_namespaceObject.useCallback)(row => { - collapse(row?.dataset?.block); - }, [collapse]); - const focusRow = (0,external_wp_element_namespaceObject.useCallback)((event, startRow, endRow) => { - if (event.shiftKey) { - updateBlockSelection(event, startRow?.dataset?.block, endRow?.dataset?.block); - } - }, [updateBlockSelection]); - const firstDraggedBlockClientId = draggedClientIds?.[0]; - - // Convert a blockDropTarget into indexes relative to the blocks in the list view. - // These values are used to determine which blocks should be displaced to make room - // for the drop indicator. See `ListViewBranch` and `getDragDisplacementValues`. - const { - blockDropTargetIndex, - blockDropPosition, - firstDraggedBlockIndex - } = (0,external_wp_element_namespaceObject.useMemo)(() => { - let _blockDropTargetIndex, _firstDraggedBlockIndex; - if (blockDropTarget?.clientId) { - const foundBlockIndex = blockIndexes[blockDropTarget.clientId]; - // If dragging below or inside the block, treat the drop target as the next block. - _blockDropTargetIndex = foundBlockIndex === undefined || blockDropTarget?.dropPosition === 'top' ? foundBlockIndex : foundBlockIndex + 1; - } else if (blockDropTarget === null) { - // A `null` value is used to indicate that the user is dragging outside of the list view. - _blockDropTargetIndex = null; - } - if (firstDraggedBlockClientId) { - const foundBlockIndex = blockIndexes[firstDraggedBlockClientId]; - _firstDraggedBlockIndex = foundBlockIndex === undefined || blockDropTarget?.dropPosition === 'top' ? foundBlockIndex : foundBlockIndex + 1; - } + var _a = rotateSize(mediaWidth, mediaHeight, rotation), + width = _a.width, + height = _a.height; + var fittingWidth = Math.min(width, containerWidth); + var fittingHeight = Math.min(height, containerHeight); + if (fittingWidth > fittingHeight * aspect) { return { - blockDropTargetIndex: _blockDropTargetIndex, - blockDropPosition: blockDropTarget?.dropPosition, - firstDraggedBlockIndex: _firstDraggedBlockIndex + width: fittingHeight * aspect, + height: fittingHeight }; - }, [blockDropTarget, blockIndexes, firstDraggedBlockClientId]); - const contextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - blockDropPosition, - blockDropTargetIndex, - blockIndexes, - draggedClientIds, - expandedState, - expand, - firstDraggedBlockIndex, - collapse, - BlockSettingsMenu, - listViewInstanceId: instanceId, - AdditionalBlockContent, - insertedBlock, - setInsertedBlock, - treeGridElementRef: elementRef, - rootClientId - }), [blockDropPosition, blockDropTargetIndex, blockIndexes, draggedClientIds, expandedState, expand, firstDraggedBlockIndex, collapse, BlockSettingsMenu, instanceId, AdditionalBlockContent, insertedBlock, setInsertedBlock, rootClientId]); - - // List View renders a fixed number of items and relies on each having a fixed item height of 36px. - // If this value changes, we should also change the itemHeight value set in useFixedWindowList. - // See: https://github.com/WordPress/gutenberg/pull/35230 for additional context. - const [fixedListWindow] = (0,external_wp_compose_namespaceObject.__experimentalUseFixedWindowList)(elementRef, BLOCK_LIST_ITEM_HEIGHT, visibleBlockCount, { - // Ensure that the windowing logic is recalculated when the expanded state changes. - // This is necessary because expanding a collapsed block in a short list view can - // switch the list view to a tall list view with a scrollbar, and vice versa. - // When this happens, the windowing logic needs to be recalculated to ensure that - // the correct number of blocks are rendered, by rechecking for a scroll container. - expandedState, - useWindowing: true, - windowOverscan: 40 - }); - - // If there are no blocks to show and we're not showing the appender, do not render the list view. - if (!clientIdsTree.length && !showAppender) { - return null; } - const describedById = description && `block-editor-list-view-description-${instanceId}`; - return (0,external_React_.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, { - value: true - }, (0,external_React_.createElement)(ListViewDropIndicatorPreview, { - draggedBlockClientId: firstDraggedBlockClientId, - listViewRef: elementRef, - blockDropTarget: blockDropTarget - }), description && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: describedById - }, description), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTreeGrid, { - id: id, - className: classnames_default()('block-editor-list-view-tree', { - 'is-dragging': draggedClientIds?.length > 0 && blockDropTargetIndex !== undefined - }), - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block navigation structure'), - ref: treeGridRef, - onCollapseRow: collapseRow, - onExpandRow: expandRow, - onFocusRow: focusRow, - applicationAriaLabel: (0,external_wp_i18n_namespaceObject.__)('Block navigation structure'), - "aria-describedby": describedById, - style: { - '--wp-admin--list-view-dragged-items-height': draggedClientIds?.length ? `${BLOCK_LIST_ITEM_HEIGHT * (draggedClientIds.length - 1)}px` : null - } - }, (0,external_React_.createElement)(ListViewContext.Provider, { - value: contextValue - }, (0,external_React_.createElement)(branch, { - blocks: clientIdsTree, - parentId: rootClientId, - selectBlock: selectEditorBlock, - showBlockMovers: showBlockMovers, - fixedListWindow: fixedListWindow, - selectedClientIds: selectedClientIds, - isExpanded: isExpanded, - shouldShowInnerBlocks: shouldShowInnerBlocks, - showAppender: showAppender - })))); + return { + width: fittingWidth, + height: fittingWidth / aspect + }; } - -// This is the private API for the ListView component. -// It allows access to all props, not just the public ones. -const PrivateListView = (0,external_wp_element_namespaceObject.forwardRef)(ListViewComponent); - -// This is the public API for the ListView component. -// We wrap the PrivateListView component to hide some props from the public API. -/* harmony default export */ var components_list_view = ((0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - return (0,external_React_.createElement)(PrivateListView, { - ref: ref, - ...props, - showAppender: false, - rootClientId: null, - onSelect: null, - additionalBlockContent: null, - blockSettingsMenu: undefined +/** + * Compute media zoom. + * We fit the media into the container with "max-width: 100%; max-height: 100%;" + */ +function getMediaZoom(mediaSize) { + // Take the axis with more pixels to improve accuracy + return mediaSize.width > mediaSize.height ? mediaSize.width / mediaSize.naturalWidth : mediaSize.height / mediaSize.naturalHeight; +} +/** + * Ensure a new media position stays in the crop area. + */ +function restrictPosition(position, mediaSize, cropSize, zoom, rotation) { + if (rotation === void 0) { + rotation = 0; + } + var _a = rotateSize(mediaSize.width, mediaSize.height, rotation), + width = _a.width, + height = _a.height; + return { + x: restrictPositionCoord(position.x, width, cropSize.width, zoom), + y: restrictPositionCoord(position.y, height, cropSize.height, zoom) + }; +} +function restrictPositionCoord(position, mediaSize, cropSize, zoom) { + var maxPosition = mediaSize * zoom / 2 - cropSize / 2; + return index_module_clamp(position, -maxPosition, maxPosition); +} +function getDistanceBetweenPoints(pointA, pointB) { + return Math.sqrt(Math.pow(pointA.y - pointB.y, 2) + Math.pow(pointA.x - pointB.x, 2)); +} +function getRotationBetweenPoints(pointA, pointB) { + return Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x) * 180 / Math.PI; +} +/** + * Compute the output cropped area of the media in percentages and pixels. + * x/y are the top-left coordinates on the src media + */ +function computeCroppedArea(crop, mediaSize, cropSize, aspect, zoom, rotation, restrictPosition) { + if (rotation === void 0) { + rotation = 0; + } + if (restrictPosition === void 0) { + restrictPosition = true; + } + // if the media is rotated by the user, we cannot limit the position anymore + // as it might need to be negative. + var limitAreaFn = restrictPosition ? limitArea : noOp; + var mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation); + var mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation); + // calculate the crop area in percentages + // in the rotated space + var croppedAreaPercentages = { + x: limitAreaFn(100, ((mediaBBoxSize.width - cropSize.width / zoom) / 2 - crop.x / zoom) / mediaBBoxSize.width * 100), + y: limitAreaFn(100, ((mediaBBoxSize.height - cropSize.height / zoom) / 2 - crop.y / zoom) / mediaBBoxSize.height * 100), + width: limitAreaFn(100, cropSize.width / mediaBBoxSize.width * 100 / zoom), + height: limitAreaFn(100, cropSize.height / mediaBBoxSize.height * 100 / zoom) + }; + // we compute the pixels size naively + var widthInPixels = Math.round(limitAreaFn(mediaNaturalBBoxSize.width, croppedAreaPercentages.width * mediaNaturalBBoxSize.width / 100)); + var heightInPixels = Math.round(limitAreaFn(mediaNaturalBBoxSize.height, croppedAreaPercentages.height * mediaNaturalBBoxSize.height / 100)); + var isImgWiderThanHigh = mediaNaturalBBoxSize.width >= mediaNaturalBBoxSize.height * aspect; + // then we ensure the width and height exactly match the aspect (to avoid rounding approximations) + // if the media is wider than high, when zoom is 0, the crop height will be equals to image height + // thus we want to compute the width from the height and aspect for accuracy. + // Otherwise, we compute the height from width and aspect. + var sizePixels = isImgWiderThanHigh ? { + width: Math.round(heightInPixels * aspect), + height: heightInPixels + } : { + width: widthInPixels, + height: Math.round(widthInPixels / aspect) + }; + var croppedAreaPixels = tslib_es6_assign(tslib_es6_assign({}, sizePixels), { + x: Math.round(limitAreaFn(mediaNaturalBBoxSize.width - sizePixels.width, croppedAreaPercentages.x * mediaNaturalBBoxSize.width / 100)), + y: Math.round(limitAreaFn(mediaNaturalBBoxSize.height - sizePixels.height, croppedAreaPercentages.y * mediaNaturalBBoxSize.height / 100)) }); -})); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/dropdown.js - -/** - * WordPress dependencies + return { + croppedAreaPercentages: croppedAreaPercentages, + croppedAreaPixels: croppedAreaPixels + }; +} +/** + * Ensure the returned value is between 0 and max */ - - -/** - * WordPress dependencies +function limitArea(max, value) { + return Math.min(max, Math.max(0, value)); +} +function noOp(_max, value) { + return value; +} +/** + * Compute crop and zoom from the croppedAreaPercentages. */ - - - - - - -/** - * Internal dependencies +function getInitialCropFromCroppedAreaPercentages(croppedAreaPercentages, mediaSize, rotation, cropSize, minZoom, maxZoom) { + var mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation); + // This is the inverse process of computeCroppedArea + var zoom = index_module_clamp(cropSize.width / mediaBBoxSize.width * (100 / croppedAreaPercentages.width), minZoom, maxZoom); + var crop = { + x: zoom * mediaBBoxSize.width / 2 - cropSize.width / 2 - mediaBBoxSize.width * zoom * (croppedAreaPercentages.x / 100), + y: zoom * mediaBBoxSize.height / 2 - cropSize.height / 2 - mediaBBoxSize.height * zoom * (croppedAreaPercentages.y / 100) + }; + return { + crop: crop, + zoom: zoom + }; +} +/** + * Compute zoom from the croppedAreaPixels */ - - -function BlockNavigationDropdownToggle({ - isEnabled, - onToggle, - isOpen, - innerRef, - ...props -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...props, - ref: innerRef, - icon: list_view, - "aria-expanded": isOpen, - "aria-haspopup": "true", - onClick: isEnabled ? onToggle : undefined - /* translators: button label text should, if possible, be under 16 characters. */, - label: (0,external_wp_i18n_namespaceObject.__)('List view'), - className: "block-editor-block-navigation", - "aria-disabled": !isEnabled - }); +function getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) { + var mediaZoom = getMediaZoom(mediaSize); + return cropSize.height > cropSize.width ? cropSize.height / (croppedAreaPixels.height * mediaZoom) : cropSize.width / (croppedAreaPixels.width * mediaZoom); } -function BlockNavigationDropdown({ - isDisabled, - ...props -}, ref) { - external_wp_deprecated_default()('wp.blockEditor.BlockNavigationDropdown', { - since: '6.1', - alternative: 'wp.components.Dropdown and wp.blockEditor.ListView' - }); - const hasBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(store).getBlockCount(), []); - const isEnabled = hasBlocks && !isDisabled; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - contentClassName: "block-editor-block-navigation__popover", - popoverProps: { - placement: 'bottom-start' - }, - renderToggle: ({ - isOpen, - onToggle - }) => (0,external_React_.createElement)(BlockNavigationDropdownToggle, { - ...props, - innerRef: ref, - isOpen: isOpen, - onToggle: onToggle, - isEnabled: isEnabled - }), - renderContent: () => (0,external_React_.createElement)("div", { - className: "block-editor-block-navigation__container" - }, (0,external_React_.createElement)("p", { - className: "block-editor-block-navigation__label" - }, (0,external_wp_i18n_namespaceObject.__)('List view')), (0,external_React_.createElement)(components_list_view, null)) - }); +/** + * Compute crop and zoom from the croppedAreaPixels + */ +function getInitialCropFromCroppedAreaPixels(croppedAreaPixels, mediaSize, rotation, cropSize, minZoom, maxZoom) { + if (rotation === void 0) { + rotation = 0; + } + var mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation); + var zoom = index_module_clamp(getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize), minZoom, maxZoom); + var cropZoom = cropSize.height > cropSize.width ? cropSize.height / croppedAreaPixels.height : cropSize.width / croppedAreaPixels.width; + var crop = { + x: ((mediaNaturalBBoxSize.width - croppedAreaPixels.width) / 2 - croppedAreaPixels.x) * cropZoom, + y: ((mediaNaturalBBoxSize.height - croppedAreaPixels.height) / 2 - croppedAreaPixels.y) * cropZoom + }; + return { + crop: crop, + zoom: zoom + }; } -/* harmony default export */ var dropdown = ((0,external_wp_element_namespaceObject.forwardRef)(BlockNavigationDropdown)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/preview-panel.js - -/** - * WordPress dependencies +/** + * Return the point that is the center of point a and b */ - - - -/** - * Internal dependencies +function getCenter(a, b) { + return { + x: (b.x + a.x) / 2, + y: (b.y + a.y) / 2 + }; +} +function getRadianAngle(degreeValue) { + return degreeValue * Math.PI / 180; +} +/** + * Returns the new bounding area of a rotated rectangle. + */ +function rotateSize(width, height, rotation) { + var rotRad = getRadianAngle(rotation); + return { + width: Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height), + height: Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height) + }; +} +/** + * Clamp value between min and max + */ +function index_module_clamp(value, min, max) { + return Math.min(Math.max(value, min), max); +} +/** + * Combine multiple class names into a single string. */ +function classNames() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.filter(function (value) { + if (typeof value === 'string' && value.length > 0) { + return true; + } + return false; + }).join(' ').trim(); +} +var css_248z = ".reactEasyCrop_Container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n user-select: none;\n touch-action: none;\n cursor: move;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.reactEasyCrop_Image,\n.reactEasyCrop_Video {\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\n}\n\n.reactEasyCrop_Contain {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.reactEasyCrop_Cover_Horizontal {\n width: 100%;\n height: auto;\n}\n.reactEasyCrop_Cover_Vertical {\n width: auto;\n height: 100%;\n}\n\n.reactEasyCrop_CropArea {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-sizing: border-box;\n box-shadow: 0 0 0 9999em;\n color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n}\n\n.reactEasyCrop_CropAreaRound {\n border-radius: 50%;\n}\n\n.reactEasyCrop_CropAreaGrid::before {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 0;\n bottom: 0;\n left: 33.33%;\n right: 33.33%;\n border-top: 0;\n border-bottom: 0;\n}\n\n.reactEasyCrop_CropAreaGrid::after {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 33.33%;\n bottom: 33.33%;\n left: 0;\n right: 0;\n border-left: 0;\n border-right: 0;\n}\n"; -function BlockStylesPreviewPanel({ - genericPreviewBlock, - style, - className, - activeStyle -}) { - const example = (0,external_wp_blocks_namespaceObject.getBlockType)(genericPreviewBlock.name)?.example; - const styleClassName = replaceActiveStyle(className, activeStyle, style); - const previewBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => { - return { - ...genericPreviewBlock, - title: style.label || style.name, - description: style.description, - initialAttributes: { - ...genericPreviewBlock.attributes, - className: styleClassName + ' block-editor-block-styles__block-preview-container' - }, - example +var MIN_ZOOM = 1; +var MAX_ZOOM = 3; +var Cropper = /** @class */function (_super) { + tslib_es6_extends(Cropper, _super); + function Cropper() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.imageRef = external_React_default().createRef(); + _this.videoRef = external_React_default().createRef(); + _this.containerRef = null; + _this.styleRef = null; + _this.containerRect = null; + _this.mediaSize = { + width: 0, + height: 0, + naturalWidth: 0, + naturalHeight: 0 + }; + _this.dragStartPosition = { + x: 0, + y: 0 + }; + _this.dragStartCrop = { + x: 0, + y: 0 + }; + _this.gestureZoomStart = 0; + _this.gestureRotationStart = 0; + _this.isTouching = false; + _this.lastPinchDistance = 0; + _this.lastPinchRotation = 0; + _this.rafDragTimeout = null; + _this.rafPinchTimeout = null; + _this.wheelTimer = null; + _this.currentDoc = typeof document !== 'undefined' ? document : null; + _this.currentWindow = typeof window !== 'undefined' ? window : null; + _this.resizeObserver = null; + _this.state = { + cropSize: null, + hasWheelJustStarted: false + }; + _this.initResizeObserver = function () { + if (typeof window.ResizeObserver === 'undefined' || !_this.containerRef) { + return; + } + var isFirstResize = true; + _this.resizeObserver = new window.ResizeObserver(function (entries) { + if (isFirstResize) { + isFirstResize = false; // observe() is called on mount, we don't want to trigger a recompute on mount + return; + } + _this.computeSizes(); + }); + _this.resizeObserver.observe(_this.containerRef); + }; + // this is to prevent Safari on iOS >= 10 to zoom the page + _this.preventZoomSafari = function (e) { + return e.preventDefault(); + }; + _this.cleanEvents = function () { + if (!_this.currentDoc) return; + _this.currentDoc.removeEventListener('mousemove', _this.onMouseMove); + _this.currentDoc.removeEventListener('mouseup', _this.onDragStopped); + _this.currentDoc.removeEventListener('touchmove', _this.onTouchMove); + _this.currentDoc.removeEventListener('touchend', _this.onDragStopped); + _this.currentDoc.removeEventListener('gesturemove', _this.onGestureMove); + _this.currentDoc.removeEventListener('gestureend', _this.onGestureEnd); + }; + _this.clearScrollEvent = function () { + if (_this.containerRef) _this.containerRef.removeEventListener('wheel', _this.onWheel); + if (_this.wheelTimer) { + clearTimeout(_this.wheelTimer); + } + }; + _this.onMediaLoad = function () { + var cropSize = _this.computeSizes(); + if (cropSize) { + _this.emitCropData(); + _this.setInitialCrop(cropSize); + } + if (_this.props.onMediaLoaded) { + _this.props.onMediaLoaded(_this.mediaSize); + } + }; + _this.setInitialCrop = function (cropSize) { + if (_this.props.initialCroppedAreaPercentages) { + var _a = getInitialCropFromCroppedAreaPercentages(_this.props.initialCroppedAreaPercentages, _this.mediaSize, _this.props.rotation, cropSize, _this.props.minZoom, _this.props.maxZoom), + crop = _a.crop, + zoom = _a.zoom; + _this.props.onCropChange(crop); + _this.props.onZoomChange && _this.props.onZoomChange(zoom); + } else if (_this.props.initialCroppedAreaPixels) { + var _b = getInitialCropFromCroppedAreaPixels(_this.props.initialCroppedAreaPixels, _this.mediaSize, _this.props.rotation, cropSize, _this.props.minZoom, _this.props.maxZoom), + crop = _b.crop, + zoom = _b.zoom; + _this.props.onCropChange(crop); + _this.props.onZoomChange && _this.props.onZoomChange(zoom); + } + }; + _this.computeSizes = function () { + var _a, _b, _c, _d, _e, _f; + var mediaRef = _this.imageRef.current || _this.videoRef.current; + if (mediaRef && _this.containerRef) { + _this.containerRect = _this.containerRef.getBoundingClientRect(); + var containerAspect = _this.containerRect.width / _this.containerRect.height; + var naturalWidth = ((_a = _this.imageRef.current) === null || _a === void 0 ? void 0 : _a.naturalWidth) || ((_b = _this.videoRef.current) === null || _b === void 0 ? void 0 : _b.videoWidth) || 0; + var naturalHeight = ((_c = _this.imageRef.current) === null || _c === void 0 ? void 0 : _c.naturalHeight) || ((_d = _this.videoRef.current) === null || _d === void 0 ? void 0 : _d.videoHeight) || 0; + var isMediaScaledDown = mediaRef.offsetWidth < naturalWidth || mediaRef.offsetHeight < naturalHeight; + var mediaAspect = naturalWidth / naturalHeight; + // We do not rely on the offsetWidth/offsetHeight if the media is scaled down + // as the values they report are rounded. That will result in precision losses + // when calculating zoom. We use the fact that the media is positionned relative + // to the container. That allows us to use the container's dimensions + // and natural aspect ratio of the media to calculate accurate media size. + // However, for this to work, the container should not be rotated + var renderedMediaSize = void 0; + if (isMediaScaledDown) { + switch (_this.props.objectFit) { + default: + case 'contain': + renderedMediaSize = containerAspect > mediaAspect ? { + width: _this.containerRect.height * mediaAspect, + height: _this.containerRect.height + } : { + width: _this.containerRect.width, + height: _this.containerRect.width / mediaAspect + }; + break; + case 'horizontal-cover': + renderedMediaSize = { + width: _this.containerRect.width, + height: _this.containerRect.width / mediaAspect + }; + break; + case 'vertical-cover': + renderedMediaSize = { + width: _this.containerRect.height * mediaAspect, + height: _this.containerRect.height + }; + break; + case 'auto-cover': + renderedMediaSize = naturalWidth > naturalHeight ? { + width: _this.containerRect.width, + height: _this.containerRect.width / mediaAspect + } : { + width: _this.containerRect.height * mediaAspect, + height: _this.containerRect.height + }; + break; + } + } else { + renderedMediaSize = { + width: mediaRef.offsetWidth, + height: mediaRef.offsetHeight + }; + } + _this.mediaSize = tslib_es6_assign(tslib_es6_assign({}, renderedMediaSize), { + naturalWidth: naturalWidth, + naturalHeight: naturalHeight + }); + // set media size in the parent + if (_this.props.setMediaSize) { + _this.props.setMediaSize(_this.mediaSize); + } + var cropSize = _this.props.cropSize ? _this.props.cropSize : getCropSize(_this.mediaSize.width, _this.mediaSize.height, _this.containerRect.width, _this.containerRect.height, _this.props.aspect, _this.props.rotation); + if (((_e = _this.state.cropSize) === null || _e === void 0 ? void 0 : _e.height) !== cropSize.height || ((_f = _this.state.cropSize) === null || _f === void 0 ? void 0 : _f.width) !== cropSize.width) { + _this.props.onCropSizeChange && _this.props.onCropSizeChange(cropSize); + } + _this.setState({ + cropSize: cropSize + }, _this.recomputeCropPosition); + // pass crop size to parent + if (_this.props.setCropSize) { + _this.props.setCropSize(cropSize); + } + return cropSize; + } + }; + _this.onMouseDown = function (e) { + if (!_this.currentDoc) return; + e.preventDefault(); + _this.currentDoc.addEventListener('mousemove', _this.onMouseMove); + _this.currentDoc.addEventListener('mouseup', _this.onDragStopped); + _this.onDragStart(Cropper.getMousePoint(e)); + }; + _this.onMouseMove = function (e) { + return _this.onDrag(Cropper.getMousePoint(e)); + }; + _this.onTouchStart = function (e) { + if (!_this.currentDoc) return; + _this.isTouching = true; + if (_this.props.onTouchRequest && !_this.props.onTouchRequest(e)) { + return; + } + _this.currentDoc.addEventListener('touchmove', _this.onTouchMove, { + passive: false + }); // iOS 11 now defaults to passive: true + _this.currentDoc.addEventListener('touchend', _this.onDragStopped); + if (e.touches.length === 2) { + _this.onPinchStart(e); + } else if (e.touches.length === 1) { + _this.onDragStart(Cropper.getTouchPoint(e.touches[0])); + } + }; + _this.onTouchMove = function (e) { + // Prevent whole page from scrolling on iOS. + e.preventDefault(); + if (e.touches.length === 2) { + _this.onPinchMove(e); + } else if (e.touches.length === 1) { + _this.onDrag(Cropper.getTouchPoint(e.touches[0])); + } + }; + _this.onGestureStart = function (e) { + if (!_this.currentDoc) return; + e.preventDefault(); + _this.currentDoc.addEventListener('gesturechange', _this.onGestureMove); + _this.currentDoc.addEventListener('gestureend', _this.onGestureEnd); + _this.gestureZoomStart = _this.props.zoom; + _this.gestureRotationStart = _this.props.rotation; + }; + _this.onGestureMove = function (e) { + e.preventDefault(); + if (_this.isTouching) { + // this is to avoid conflict between gesture and touch events + return; + } + var point = Cropper.getMousePoint(e); + var newZoom = _this.gestureZoomStart - 1 + e.scale; + _this.setNewZoom(newZoom, point, { + shouldUpdatePosition: true + }); + if (_this.props.onRotationChange) { + var newRotation = _this.gestureRotationStart + e.rotation; + _this.props.onRotationChange(newRotation); + } + }; + _this.onGestureEnd = function (e) { + _this.cleanEvents(); + }; + _this.onDragStart = function (_a) { + var _b, _c; + var x = _a.x, + y = _a.y; + _this.dragStartPosition = { + x: x, + y: y + }; + _this.dragStartCrop = tslib_es6_assign({}, _this.props.crop); + (_c = (_b = _this.props).onInteractionStart) === null || _c === void 0 ? void 0 : _c.call(_b); + }; + _this.onDrag = function (_a) { + var x = _a.x, + y = _a.y; + if (!_this.currentWindow) return; + if (_this.rafDragTimeout) _this.currentWindow.cancelAnimationFrame(_this.rafDragTimeout); + _this.rafDragTimeout = _this.currentWindow.requestAnimationFrame(function () { + if (!_this.state.cropSize) return; + if (x === undefined || y === undefined) return; + var offsetX = x - _this.dragStartPosition.x; + var offsetY = y - _this.dragStartPosition.y; + var requestedPosition = { + x: _this.dragStartCrop.x + offsetX, + y: _this.dragStartCrop.y + offsetY + }; + var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : requestedPosition; + _this.props.onCropChange(newPosition); + }); + }; + _this.onDragStopped = function () { + var _a, _b; + _this.isTouching = false; + _this.cleanEvents(); + _this.emitCropData(); + (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + _this.onWheel = function (e) { + if (!_this.currentWindow) return; + if (_this.props.onWheelRequest && !_this.props.onWheelRequest(e)) { + return; + } + e.preventDefault(); + var point = Cropper.getMousePoint(e); + var pixelY = normalize_wheel_default()(e).pixelY; + var newZoom = _this.props.zoom - pixelY * _this.props.zoomSpeed / 200; + _this.setNewZoom(newZoom, point, { + shouldUpdatePosition: true + }); + if (!_this.state.hasWheelJustStarted) { + _this.setState({ + hasWheelJustStarted: true + }, function () { + var _a, _b; + return (_b = (_a = _this.props).onInteractionStart) === null || _b === void 0 ? void 0 : _b.call(_a); + }); + } + if (_this.wheelTimer) { + clearTimeout(_this.wheelTimer); + } + _this.wheelTimer = _this.currentWindow.setTimeout(function () { + return _this.setState({ + hasWheelJustStarted: false + }, function () { + var _a, _b; + return (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a); + }); + }, 250); }; - }, [genericPreviewBlock, styleClassName]); - return (0,external_React_.createElement)(preview_panel, { - item: previewBlocks - }); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/index.js - -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - - - -/** - * Internal dependencies - */ - - -const block_styles_noop = () => {}; - -// Block Styles component for the Settings Sidebar. -function BlockStyles({ - clientId, - onSwitch = block_styles_noop, - onHoverClassName = block_styles_noop -}) { - const { - onSelect, - stylesToRender, - activeStyle, - genericPreviewBlock, - className: previewClassName - } = useStylesForBlocks({ - clientId, - onSwitch - }); - const [hoveredStyle, setHoveredStyle] = (0,external_wp_element_namespaceObject.useState)(null); - const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); - if (!stylesToRender || stylesToRender.length === 0) { - return null; + _this.getPointOnContainer = function (_a) { + var x = _a.x, + y = _a.y; + if (!_this.containerRect) { + throw new Error('The Cropper is not mounted'); + } + return { + x: _this.containerRect.width / 2 - (x - _this.containerRect.left), + y: _this.containerRect.height / 2 - (y - _this.containerRect.top) + }; + }; + _this.getPointOnMedia = function (_a) { + var x = _a.x, + y = _a.y; + var _b = _this.props, + crop = _b.crop, + zoom = _b.zoom; + return { + x: (x + crop.x) / zoom, + y: (y + crop.y) / zoom + }; + }; + _this.setNewZoom = function (zoom, point, _a) { + var _b = _a === void 0 ? {} : _a, + _c = _b.shouldUpdatePosition, + shouldUpdatePosition = _c === void 0 ? true : _c; + if (!_this.state.cropSize || !_this.props.onZoomChange) return; + var newZoom = index_module_clamp(zoom, _this.props.minZoom, _this.props.maxZoom); + if (shouldUpdatePosition) { + var zoomPoint = _this.getPointOnContainer(point); + var zoomTarget = _this.getPointOnMedia(zoomPoint); + var requestedPosition = { + x: zoomTarget.x * newZoom - zoomPoint.x, + y: zoomTarget.y * newZoom - zoomPoint.y + }; + var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, newZoom, _this.props.rotation) : requestedPosition; + _this.props.onCropChange(newPosition); + } + _this.props.onZoomChange(newZoom); + }; + _this.getCropData = function () { + if (!_this.state.cropSize) { + return null; + } + // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ValentinH/react-easy-crop/issues/6) + var restrictedPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop; + return computeCroppedArea(restrictedPosition, _this.mediaSize, _this.state.cropSize, _this.getAspect(), _this.props.zoom, _this.props.rotation, _this.props.restrictPosition); + }; + _this.emitCropData = function () { + var cropData = _this.getCropData(); + if (!cropData) return; + var croppedAreaPercentages = cropData.croppedAreaPercentages, + croppedAreaPixels = cropData.croppedAreaPixels; + if (_this.props.onCropComplete) { + _this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels); + } + if (_this.props.onCropAreaChange) { + _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels); + } + }; + _this.emitCropAreaChange = function () { + var cropData = _this.getCropData(); + if (!cropData) return; + var croppedAreaPercentages = cropData.croppedAreaPercentages, + croppedAreaPixels = cropData.croppedAreaPixels; + if (_this.props.onCropAreaChange) { + _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels); + } + }; + _this.recomputeCropPosition = function () { + if (!_this.state.cropSize) return; + var newPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop; + _this.props.onCropChange(newPosition); + _this.emitCropData(); + }; + return _this; } - const debouncedSetHoveredStyle = (0,external_wp_compose_namespaceObject.debounce)(setHoveredStyle, 250); - const onSelectStylePreview = style => { - onSelect(style); - onHoverClassName(null); - setHoveredStyle(null); - debouncedSetHoveredStyle.cancel(); + Cropper.prototype.componentDidMount = function () { + if (!this.currentDoc || !this.currentWindow) return; + if (this.containerRef) { + if (this.containerRef.ownerDocument) { + this.currentDoc = this.containerRef.ownerDocument; + } + if (this.currentDoc.defaultView) { + this.currentWindow = this.currentDoc.defaultView; + } + this.initResizeObserver(); + // only add window resize listener if ResizeObserver is not supported. Otherwise, it would be redundant + if (typeof window.ResizeObserver === 'undefined') { + this.currentWindow.addEventListener('resize', this.computeSizes); + } + this.props.zoomWithScroll && this.containerRef.addEventListener('wheel', this.onWheel, { + passive: false + }); + this.containerRef.addEventListener('gesturestart', this.onGestureStart); + } + if (!this.props.disableAutomaticStylesInjection) { + this.styleRef = this.currentDoc.createElement('style'); + this.styleRef.setAttribute('type', 'text/css'); + if (this.props.nonce) { + this.styleRef.setAttribute('nonce', this.props.nonce); + } + this.styleRef.innerHTML = css_248z; + this.currentDoc.head.appendChild(this.styleRef); + } + // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called + if (this.imageRef.current && this.imageRef.current.complete) { + this.onMediaLoad(); + } + // set image and video refs in the parent if the callbacks exist + if (this.props.setImageRef) { + this.props.setImageRef(this.imageRef); + } + if (this.props.setVideoRef) { + this.props.setVideoRef(this.videoRef); + } }; - const styleItemHandler = item => { - var _item$name; - if (hoveredStyle === item) { - debouncedSetHoveredStyle.cancel(); - return; + Cropper.prototype.componentWillUnmount = function () { + var _a, _b; + if (!this.currentDoc || !this.currentWindow) return; + if (typeof window.ResizeObserver === 'undefined') { + this.currentWindow.removeEventListener('resize', this.computeSizes); } - debouncedSetHoveredStyle(item); - onHoverClassName((_item$name = item?.name) !== null && _item$name !== void 0 ? _item$name : null); + (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect(); + if (this.containerRef) { + this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari); + } + if (this.styleRef) { + (_b = this.styleRef.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.styleRef); + } + this.cleanEvents(); + this.props.zoomWithScroll && this.clearScrollEvent(); }; - return (0,external_React_.createElement)("div", { - className: "block-editor-block-styles" - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-styles__variants" - }, stylesToRender.map(style => { - const buttonText = style.label || style.name; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - __next40pxDefaultSize: true, - className: classnames_default()('block-editor-block-styles__item', { - 'is-active': activeStyle.name === style.name + Cropper.prototype.componentDidUpdate = function (prevProps) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j; + if (prevProps.rotation !== this.props.rotation) { + this.computeSizes(); + this.recomputeCropPosition(); + } else if (prevProps.aspect !== this.props.aspect) { + this.computeSizes(); + } else if (prevProps.zoom !== this.props.zoom) { + this.recomputeCropPosition(); + } else if (((_a = prevProps.cropSize) === null || _a === void 0 ? void 0 : _a.height) !== ((_b = this.props.cropSize) === null || _b === void 0 ? void 0 : _b.height) || ((_c = prevProps.cropSize) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = this.props.cropSize) === null || _d === void 0 ? void 0 : _d.width)) { + this.computeSizes(); + } else if (((_e = prevProps.crop) === null || _e === void 0 ? void 0 : _e.x) !== ((_f = this.props.crop) === null || _f === void 0 ? void 0 : _f.x) || ((_g = prevProps.crop) === null || _g === void 0 ? void 0 : _g.y) !== ((_h = this.props.crop) === null || _h === void 0 ? void 0 : _h.y)) { + this.emitCropAreaChange(); + } + if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) { + this.props.zoomWithScroll ? this.containerRef.addEventListener('wheel', this.onWheel, { + passive: false + }) : this.clearScrollEvent(); + } + if (prevProps.video !== this.props.video) { + (_j = this.videoRef.current) === null || _j === void 0 ? void 0 : _j.load(); + } + }; + Cropper.prototype.getAspect = function () { + var _a = this.props, + cropSize = _a.cropSize, + aspect = _a.aspect; + if (cropSize) { + return cropSize.width / cropSize.height; + } + return aspect; + }; + Cropper.prototype.onPinchStart = function (e) { + var pointA = Cropper.getTouchPoint(e.touches[0]); + var pointB = Cropper.getTouchPoint(e.touches[1]); + this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB); + this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB); + this.onDragStart(getCenter(pointA, pointB)); + }; + Cropper.prototype.onPinchMove = function (e) { + var _this = this; + if (!this.currentDoc || !this.currentWindow) return; + var pointA = Cropper.getTouchPoint(e.touches[0]); + var pointB = Cropper.getTouchPoint(e.touches[1]); + var center = getCenter(pointA, pointB); + this.onDrag(center); + if (this.rafPinchTimeout) this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout); + this.rafPinchTimeout = this.currentWindow.requestAnimationFrame(function () { + var distance = getDistanceBetweenPoints(pointA, pointB); + var newZoom = _this.props.zoom * (distance / _this.lastPinchDistance); + _this.setNewZoom(newZoom, center, { + shouldUpdatePosition: false + }); + _this.lastPinchDistance = distance; + var rotation = getRotationBetweenPoints(pointA, pointB); + var newRotation = _this.props.rotation + (rotation - _this.lastPinchRotation); + _this.props.onRotationChange && _this.props.onRotationChange(newRotation); + _this.lastPinchRotation = rotation; + }); + }; + Cropper.prototype.render = function () { + var _this = this; + var _a = this.props, + image = _a.image, + video = _a.video, + mediaProps = _a.mediaProps, + transform = _a.transform, + _b = _a.crop, + x = _b.x, + y = _b.y, + rotation = _a.rotation, + zoom = _a.zoom, + cropShape = _a.cropShape, + showGrid = _a.showGrid, + _c = _a.style, + containerStyle = _c.containerStyle, + cropAreaStyle = _c.cropAreaStyle, + mediaStyle = _c.mediaStyle, + _d = _a.classes, + containerClassName = _d.containerClassName, + cropAreaClassName = _d.cropAreaClassName, + mediaClassName = _d.mediaClassName, + objectFit = _a.objectFit; + return external_React_default().createElement("div", { + onMouseDown: this.onMouseDown, + onTouchStart: this.onTouchStart, + ref: function ref(el) { + return _this.containerRef = el; + }, + "data-testid": "container", + style: containerStyle, + className: classNames('reactEasyCrop_Container', containerClassName) + }, image ? external_React_default().createElement("img", tslib_es6_assign({ + alt: "", + className: classNames('reactEasyCrop_Image', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', objectFit === 'auto-cover' && (this.mediaSize.naturalWidth > this.mediaSize.naturalHeight ? 'reactEasyCrop_Cover_Horizontal' : 'reactEasyCrop_Cover_Vertical'), mediaClassName) + }, mediaProps, { + src: image, + ref: this.imageRef, + style: tslib_es6_assign(tslib_es6_assign({}, mediaStyle), { + transform: transform || "translate(".concat(x, "px, ").concat(y, "px) rotate(").concat(rotation, "deg) scale(").concat(zoom, ")") }), - key: style.name, - variant: "secondary", - label: buttonText, - onMouseEnter: () => styleItemHandler(style), - onFocus: () => styleItemHandler(style), - onMouseLeave: () => styleItemHandler(null), - onBlur: () => styleItemHandler(null), - onClick: () => onSelectStylePreview(style), - "aria-current": activeStyle.name === style.name - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, { - numberOfLines: 1, - className: "block-editor-block-styles__item-text" - }, buttonText)); - })), hoveredStyle && !isMobileViewport && (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - placement: "left-start", - offset: 34, - focusOnMount: false - }, (0,external_React_.createElement)("div", { - className: "block-editor-block-styles__preview-panel", - onMouseLeave: () => styleItemHandler(null) - }, (0,external_React_.createElement)(BlockStylesPreviewPanel, { - activeStyle: activeStyle, - className: previewClassName, - genericPreviewBlock: genericPreviewBlock, - style: hoveredStyle - })))); -} -/* harmony default export */ var block_styles = (BlockStyles); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js - -/** - * WordPress dependencies - */ - -const paragraph = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m9.99609 14v-.2251l.00391.0001v6.225h1.5v-14.5h2.5v14.5h1.5v-14.5h3v-1.5h-8.50391c-2.76142 0-5 2.23858-5 5 0 2.7614 2.23858 5 5 5z" -})); -/* harmony default export */ var library_paragraph = (paragraph); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-1.js - -/** - * WordPress dependencies - */ - -const headingLevel1 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M17.6 7c-.6.9-1.5 1.7-2.6 2v1h2v7h2V7h-1.4zM11 11H7V7H5v10h2v-4h4v4h2V7h-2v4z" -})); -/* harmony default export */ var heading_level_1 = (headingLevel1); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-2.js - -/** - * WordPress dependencies - */ - -const headingLevel2 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9 11.1H5v-4H3v10h2v-4h4v4h2v-10H9v4zm8 4c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6v1.5h8v-2H17z" -})); -/* harmony default export */ var heading_level_2 = (headingLevel2); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-3.js - -/** - * WordPress dependencies - */ - -const headingLevel3 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.3 1.7c-.4-.4-1-.7-1.6-.8v-.1c.6-.2 1.1-.5 1.5-.9.3-.4.5-.8.5-1.3 0-.4-.1-.8-.3-1.1-.2-.3-.5-.6-.8-.8-.4-.2-.8-.4-1.2-.5-.6-.1-1.1-.2-1.6-.2-.6 0-1.3.1-1.8.3s-1.1.5-1.6.9l1.2 1.4c.4-.2.7-.4 1.1-.6.3-.2.7-.3 1.1-.3.4 0 .8.1 1.1.3.3.2.4.5.4.8 0 .4-.2.7-.6.9-.7.3-1.5.5-2.2.4v1.6c.5 0 1 0 1.5.1.3.1.7.2 1 .3.2.1.4.2.5.4s.1.4.1.6c0 .3-.2.7-.5.8-.4.2-.9.3-1.4.3s-1-.1-1.4-.3c-.4-.2-.8-.4-1.2-.7L13 15.6c.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.6 0 1.1-.1 1.6-.2.4-.1.9-.2 1.3-.5.4-.2.7-.5.9-.9.2-.4.3-.8.3-1.2 0-.6-.3-1.1-.7-1.5z" -})); -/* harmony default export */ var heading_level_3 = (headingLevel3); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-4.js - -/** - * WordPress dependencies - */ - -const headingLevel4 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M20 13V7h-3l-4 6v2h5v2h2v-2h1v-2h-1zm-2 0h-2.8L18 9v4zm-9-2H5V7H3v10h2v-4h4v4h2V7H9v4z" -})); -/* harmony default export */ var heading_level_4 = (headingLevel4); + onLoad: this.onMediaLoad + })) : video && external_React_default().createElement("video", tslib_es6_assign({ + autoPlay: true, + loop: true, + muted: true, + className: classNames('reactEasyCrop_Video', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', objectFit === 'auto-cover' && (this.mediaSize.naturalWidth > this.mediaSize.naturalHeight ? 'reactEasyCrop_Cover_Horizontal' : 'reactEasyCrop_Cover_Vertical'), mediaClassName) + }, mediaProps, { + ref: this.videoRef, + onLoadedMetadata: this.onMediaLoad, + style: tslib_es6_assign(tslib_es6_assign({}, mediaStyle), { + transform: transform || "translate(".concat(x, "px, ").concat(y, "px) rotate(").concat(rotation, "deg) scale(").concat(zoom, ")") + }), + controls: false + }), (Array.isArray(video) ? video : [{ + src: video + }]).map(function (item) { + return external_React_default().createElement("source", tslib_es6_assign({ + key: item.src + }, item)); + })), this.state.cropSize && external_React_default().createElement("div", { + style: tslib_es6_assign(tslib_es6_assign({}, cropAreaStyle), { + width: this.state.cropSize.width, + height: this.state.cropSize.height + }), + "data-testid": "cropper", + className: classNames('reactEasyCrop_CropArea', cropShape === 'round' && 'reactEasyCrop_CropAreaRound', showGrid && 'reactEasyCrop_CropAreaGrid', cropAreaClassName) + })); + }; + Cropper.defaultProps = { + zoom: 1, + rotation: 0, + aspect: 4 / 3, + maxZoom: MAX_ZOOM, + minZoom: MIN_ZOOM, + cropShape: 'rect', + objectFit: 'contain', + showGrid: true, + style: {}, + classes: {}, + mediaProps: {}, + zoomSpeed: 1, + restrictPosition: true, + zoomWithScroll: true + }; + Cropper.getMousePoint = function (e) { + return { + x: Number(e.clientX), + y: Number(e.clientY) + }; + }; + Cropper.getTouchPoint = function (touch) { + return { + x: Number(touch.clientX), + y: Number(touch.clientY) + }; + }; + return Cropper; +}((external_React_default()).Component); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-5.js -/** - * WordPress dependencies - */ -const headingLevel5 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.7 1.2c-.2-.3-.5-.7-.8-.9-.3-.3-.7-.5-1.1-.6-.5-.1-.9-.2-1.4-.2-.2 0-.5.1-.7.1-.2.1-.5.1-.7.2l.1-1.9h4.3V7H14l-.3 5 1 .6.5-.2.4-.1c.1-.1.3-.1.4-.1h.5c.5 0 1 .1 1.4.4.4.2.6.7.6 1.1 0 .4-.2.8-.6 1.1-.4.3-.9.4-1.4.4-.4 0-.9-.1-1.3-.3-.4-.2-.7-.4-1.1-.7 0 0-1.1 1.4-1 1.5.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.5 0 1-.1 1.5-.3s.9-.4 1.3-.7c.4-.3.7-.7.9-1.1s.3-.9.3-1.4-.1-1-.3-1.4z" -})); -/* harmony default export */ var heading_level_5 = (headingLevel5); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/constants.js +const constants_MIN_ZOOM = 100; +const constants_MAX_ZOOM = 300; +const constants_POPOVER_PROPS = { + placement: 'bottom-start' +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading-level-6.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/cropper.js /** - * WordPress dependencies + * External dependencies */ -const headingLevel6 = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M20.7 12.4c-.2-.3-.4-.6-.7-.9s-.6-.5-1-.6c-.4-.2-.8-.2-1.2-.2-.5 0-.9.1-1.3.3s-.8.5-1.2.8c0-.5 0-.9.2-1.4l.6-.9c.2-.2.5-.4.8-.5.6-.2 1.3-.2 1.9 0 .3.1.6.3.8.5 0 0 1.3-1.3 1.3-1.4-.4-.3-.9-.6-1.4-.8-.6-.2-1.3-.3-2-.3-.6 0-1.1.1-1.7.4-.5.2-1 .5-1.4.9-.4.4-.8 1-1 1.6-.3.7-.4 1.5-.4 2.3s.1 1.5.3 2.1c.2.6.6 1.1 1 1.5.4.4.9.7 1.4.9 1 .3 2 .3 3 0 .4-.1.8-.3 1.2-.6.3-.3.6-.6.8-1 .2-.5.3-.9.3-1.4s-.1-.9-.3-1.3zm-2 2.1c-.1.2-.3.4-.4.5-.1.1-.3.2-.5.2-.2.1-.4.1-.6.1-.2.1-.5 0-.7-.1-.2 0-.3-.2-.5-.3-.1-.2-.3-.4-.4-.6-.2-.3-.3-.7-.3-1 .3-.3.6-.5 1-.7.3-.1.7-.2 1-.2.4 0 .8.1 1.1.3.3.3.4.7.4 1.1 0 .2 0 .5-.1.7zM9 11H5V7H3v10h2v-4h4v4h2V7H9v4z" -})); -/* harmony default export */ var heading_level_6 = (headingLevel6); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-heading-level-dropdown/heading-level-icon.js /** * WordPress dependencies */ - -/** @typedef {import('react').ComponentType} ComponentType */ - /** - * HeadingLevelIcon props. - * - * @typedef WPHeadingLevelIconProps - * - * @property {number} level The heading level to show an icon for. + * Internal dependencies */ -const LEVEL_TO_PATH = { - 0: library_paragraph, - 1: heading_level_1, - 2: heading_level_2, - 3: heading_level_3, - 4: heading_level_4, - 5: heading_level_5, - 6: heading_level_6 -}; -/** - * Heading level icon. - * - * @param {WPHeadingLevelIconProps} props Component props. - * - * @return {?ComponentType} The icon. - */ -function HeadingLevelIcon({ - level +function ImageCropper({ + url, + width, + height, + clientWidth, + naturalHeight, + naturalWidth, + borderProps }) { - if (LEVEL_TO_PATH[level]) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Icon, { - icon: LEVEL_TO_PATH[level] - }); + const { + isInProgress, + editedUrl, + position, + zoom, + aspect, + setPosition, + setCrop, + setZoom, + rotation + } = useImageEditingContext(); + let editedHeight = height || clientWidth * naturalHeight / naturalWidth; + if (rotation % 180 === 90) { + editedHeight = clientWidth * naturalWidth / naturalHeight; } - return null; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('wp-block-image__crop-area', borderProps?.className, { + 'is-applying': isInProgress + }), + style: { + ...borderProps?.style, + width: width || clientWidth, + height: editedHeight + } + }, (0,external_wp_element_namespaceObject.createElement)(Cropper, { + image: editedUrl || url, + disabled: isInProgress, + minZoom: constants_MIN_ZOOM / 100, + maxZoom: constants_MAX_ZOOM / 100, + crop: position, + zoom: zoom / 100, + aspect: aspect, + onCropChange: pos => { + setPosition(pos); + }, + onCropComplete: newCropPercent => { + setCrop(newCropPercent); + }, + onZoomChange: newZoom => { + setZoom(newZoom * 100); + } + }), isInProgress && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-heading-level-dropdown/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js /** * WordPress dependencies */ +const search = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" +})); +/* harmony default export */ var library_search = (search); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/zoom-dropdown.js /** - * Internal dependencies + * WordPress dependencies */ -const HEADING_LEVELS = [1, 2, 3, 4, 5, 6]; -const block_heading_level_dropdown_POPOVER_PROPS = { - className: 'block-library-heading-level-dropdown' -}; -/** @typedef {import('react').ComponentType} ComponentType */ -/** - * HeadingLevelDropdown props. - * - * @typedef WPHeadingLevelDropdownProps - * - * @property {number} value The chosen heading level. - * @property {number[]} options An array of supported heading levels. - * @property {(newValue:number)=>any} onChange Callback to run when - * toolbar value is changed. - */ /** - * Dropdown for selecting a heading level (1 through 6) or paragraph (0). - * - * @param {WPHeadingLevelDropdownProps} props Component props. - * - * @return {ComponentType} The toolbar. + * Internal dependencies */ -function HeadingLevelDropdown({ - options = HEADING_LEVELS, - value, - onChange -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarDropdownMenu, { - popoverProps: block_heading_level_dropdown_POPOVER_PROPS, - icon: (0,external_React_.createElement)(HeadingLevelIcon, { - level: value + + +function ZoomDropdown() { + const { + isInProgress, + zoom, + setZoom + } = useImageEditingContext(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + contentClassName: "wp-block-image__zoom", + popoverProps: constants_POPOVER_PROPS, + renderToggle: ({ + isOpen, + onToggle + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: library_search, + label: (0,external_wp_i18n_namespaceObject.__)('Zoom'), + onClick: onToggle, + "aria-expanded": isOpen, + disabled: isInProgress }), - label: (0,external_wp_i18n_namespaceObject.__)('Change level'), - controls: options.map(targetLevel => { - { - const isActive = targetLevel === value; - return { - icon: (0,external_React_.createElement)(HeadingLevelIcon, { - level: targetLevel, - isPressed: isActive - }), - title: targetLevel === 0 ? (0,external_wp_i18n_namespaceObject.__)('Paragraph') : (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: heading level e.g: "1", "2", "3" - (0,external_wp_i18n_namespaceObject.__)('Heading %d'), targetLevel), - isActive, - onClick() { - onChange(targetLevel); - }, - role: 'menuitemradio' - }; - } + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.RangeControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Zoom'), + min: constants_MIN_ZOOM, + max: constants_MAX_ZOOM, + value: Math.round(zoom), + onChange: setZoom }) }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/aspect-ratio.js /** * WordPress dependencies */ -const layout_layout = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const aspectRatio = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18.5 5.5h-13c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-9c0-.3.2-.5.5-.5h13c.3 0 .5.2.5.5v9zM6.5 12H8v-2h2V8.5H6.5V12zm9.5 2h-2v1.5h3.5V12H16v2z" })); -/* harmony default export */ var library_layout = (layout_layout); +/* harmony default export */ var aspect_ratio = (aspectRatio); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-variation-picker/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/aspect-ratio-dropdown.js /** - * External dependencies + * WordPress dependencies */ + + /** - * WordPress dependencies + * Internal dependencies */ - -function BlockVariationPicker({ - icon = library_layout, - label = (0,external_wp_i18n_namespaceObject.__)('Choose variation'), - instructions = (0,external_wp_i18n_namespaceObject.__)('Select a variation to start with.'), - variations, - onSelect, - allowSkip +function AspectGroup({ + aspectRatios, + isDisabled, + label, + onClick, + value }) { - const classes = classnames_default()('block-editor-block-variation-picker', { - 'has-many-variations': variations.length > 4 - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Placeholder, { - icon: icon, - label: label, - instructions: instructions, - className: classes - }, (0,external_React_.createElement)("ul", { - className: "block-editor-block-variation-picker__variations", - role: "list", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block variations') - }, variations.map(variation => (0,external_React_.createElement)("li", { - key: variation.name - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "secondary", - icon: variation.icon && variation.icon.src ? variation.icon.src : variation.icon, - iconSize: 48, - onClick: () => onSelect(variation), - className: "block-editor-block-variation-picker__variation", - label: variation.description || variation.title - }), (0,external_React_.createElement)("span", { - className: "block-editor-block-variation-picker__variation-label" - }, variation.title)))), allowSkip && (0,external_React_.createElement)("div", { - className: "block-editor-block-variation-picker__skip" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "link", - onClick: () => onSelect() - }, (0,external_wp_i18n_namespaceObject.__)('Skip')))); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: label + }, aspectRatios.map(({ + title, + aspect + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + key: aspect, + disabled: isDisabled, + onClick: () => { + onClick(aspect); + }, + role: "menuitemradio", + isSelected: aspect === value, + icon: aspect === value ? library_check : undefined + }, title))); +} +function AspectRatioDropdown({ + toggleProps +}) { + const { + isInProgress, + aspect, + setAspect, + defaultAspect + } = useImageEditingContext(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + icon: aspect_ratio, + label: (0,external_wp_i18n_namespaceObject.__)('Aspect Ratio'), + popoverProps: constants_POPOVER_PROPS, + toggleProps: toggleProps, + className: "wp-block-image__aspect-ratio" + }, ({ + onClose + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AspectGroup, { + isDisabled: isInProgress, + onClick: newAspect => { + setAspect(newAspect); + onClose(); + }, + value: aspect, + aspectRatios: [ + // All ratios should be mirrored in AspectRatioTool in @wordpress/block-editor. + { + title: (0,external_wp_i18n_namespaceObject.__)('Original'), + aspect: defaultAspect + }, { + title: (0,external_wp_i18n_namespaceObject.__)('Square'), + aspect: 1 + }] + }), (0,external_wp_element_namespaceObject.createElement)(AspectGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Landscape'), + isDisabled: isInProgress, + onClick: newAspect => { + setAspect(newAspect); + onClose(); + }, + value: aspect, + aspectRatios: [{ + title: (0,external_wp_i18n_namespaceObject.__)('16:10'), + aspect: 16 / 10 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('16:9'), + aspect: 16 / 9 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('4:3'), + aspect: 4 / 3 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('3:2'), + aspect: 3 / 2 + }] + }), (0,external_wp_element_namespaceObject.createElement)(AspectGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Portrait'), + isDisabled: isInProgress, + onClick: newAspect => { + setAspect(newAspect); + onClose(); + }, + value: aspect, + aspectRatios: [{ + title: (0,external_wp_i18n_namespaceObject.__)('10:16'), + aspect: 10 / 16 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('9:16'), + aspect: 9 / 16 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('3:4'), + aspect: 3 / 4 + }, { + title: (0,external_wp_i18n_namespaceObject.__)('2:3'), + aspect: 2 / 3 + }] + }))); } -/* harmony default export */ var block_variation_picker = (BlockVariationPicker); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rotate-right.js /** * WordPress dependencies */ -const grid_grid = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const rotateRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z", - fillRule: "evenodd", - clipRule: "evenodd" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M15.1 4.8l-3-2.5V4c-4.4 0-8 3.6-8 8 0 3.7 2.5 6.9 6 7.7.3.1.6.1 1 .2l.2-1.5c-.4 0-.7-.1-1.1-.2l-.1.2v-.2c-2.6-.8-4.5-3.3-4.5-6.2 0-3.6 2.9-6.5 6.5-6.5v1.8l3-2.5zM20 11c-.2-1.4-.7-2.7-1.6-3.8l-1.2.8c.7.9 1.1 2 1.3 3.1L20 11zm-1.5 1.8c-.1.5-.2 1.1-.4 1.6s-.5 1-.8 1.5l1.2.9c.4-.5.8-1.1 1-1.8s.5-1.3.5-2l-1.5-.2zm-5.6 5.6l.2 1.5c1.4-.2 2.7-.7 3.8-1.6l-.9-1.1c-.9.7-2 1.1-3.1 1.2z" })); -/* harmony default export */ var library_grid = (grid_grid); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/constants.js -const VIEWMODES = { - carousel: 'carousel', - grid: 'grid' -}; +/* harmony default export */ var rotate_right = (rotateRight); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/setup-toolbar.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/rotation-button.js /** * WordPress dependencies @@ -58776,112 +53188,57 @@ const VIEWMODES = { + /** * Internal dependencies */ -const Actions = ({ - onBlockPatternSelect -}) => (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__actions" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "primary", - onClick: onBlockPatternSelect -}, (0,external_wp_i18n_namespaceObject.__)('Choose'))); -const CarouselNavigation = ({ - handlePrevious, - handleNext, - activeSlide, - totalSlides -}) => (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__navigation" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: chevron_left, - label: (0,external_wp_i18n_namespaceObject.__)('Previous pattern'), - onClick: handlePrevious, - disabled: activeSlide === 0, - __experimentalIsFocusable: true -}), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: chevron_right, - label: (0,external_wp_i18n_namespaceObject.__)('Next pattern'), - onClick: handleNext, - disabled: activeSlide === totalSlides - 1, - __experimentalIsFocusable: true -})); -const SetupToolbar = ({ - viewMode, - setViewMode, - handlePrevious, - handleNext, - activeSlide, - totalSlides, - onBlockPatternSelect -}) => { - const isCarouselView = viewMode === VIEWMODES.carousel; - const displayControls = (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__display-controls" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: stretch_full_width, - label: (0,external_wp_i18n_namespaceObject.__)('Carousel view'), - onClick: () => setViewMode(VIEWMODES.carousel), - isPressed: isCarouselView - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: library_grid, - label: (0,external_wp_i18n_namespaceObject.__)('Grid view'), - onClick: () => setViewMode(VIEWMODES.grid), - isPressed: viewMode === VIEWMODES.grid - })); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__toolbar" - }, isCarouselView && (0,external_React_.createElement)(CarouselNavigation, { - handlePrevious: handlePrevious, - handleNext: handleNext, - activeSlide: activeSlide, - totalSlides: totalSlides - }), displayControls, isCarouselView && (0,external_React_.createElement)(Actions, { - onBlockPatternSelect: onBlockPatternSelect - })); -}; -/* harmony default export */ var setup_toolbar = (SetupToolbar); +function RotationButton() { + const { + isInProgress, + rotateClockwise + } = useImageEditingContext(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: rotate_right, + label: (0,external_wp_i18n_namespaceObject.__)('Rotate'), + onClick: rotateClockwise, + disabled: isInProgress + }); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/form-controls.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/use-patterns-setup.js /** * WordPress dependencies */ + /** * Internal dependencies */ -function usePatternsSetup(clientId, blockName, filterPatternsFn) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockRootClientId, - getPatternsByBlockTypes, - __experimentalGetAllowedPatterns - } = select(store); - const rootClientId = getBlockRootClientId(clientId); - if (filterPatternsFn) { - return __experimentalGetAllowedPatterns(rootClientId).filter(filterPatternsFn); - } - return getPatternsByBlockTypes(blockName, rootClientId); - }, [clientId, blockName, filterPatternsFn]); +function FormControls() { + const { + isInProgress, + apply, + cancel + } = useImageEditingContext(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + onClick: apply, + disabled: isInProgress + }, (0,external_wp_i18n_namespaceObject.__)('Apply')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + onClick: cancel + }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))); } -/* harmony default export */ var use_patterns_setup = (usePatternsSetup); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-pattern-setup/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/index.js /** * WordPress dependencies */ - - - - - /** * Internal dependencies */ @@ -58891,155 +53248,99 @@ function usePatternsSetup(clientId, blockName, filterPatternsFn) { -const { - CompositeV2: block_pattern_setup_Composite, - CompositeItemV2: block_pattern_setup_CompositeItem, - useCompositeStoreV2: block_pattern_setup_useCompositeStore -} = unlock(external_wp_components_namespaceObject.privateApis); -const SetupContent = ({ - viewMode, - activeSlide, - patterns, - onBlockPatternSelect, - showTitles -}) => { - const compositeStore = block_pattern_setup_useCompositeStore(); - const containerClass = 'block-editor-block-pattern-setup__container'; - if (viewMode === VIEWMODES.carousel) { - const slideClass = new Map([[activeSlide, 'active-slide'], [activeSlide - 1, 'previous-slide'], [activeSlide + 1, 'next-slide']]); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__carousel" - }, (0,external_React_.createElement)("div", { - className: containerClass - }, (0,external_React_.createElement)("div", { - className: "carousel-container" - }, patterns.map((pattern, index) => (0,external_React_.createElement)(BlockPatternSlide, { - active: index === activeSlide, - className: slideClass.get(index) || '', - key: pattern.name, - pattern: pattern - }))))); - } - return (0,external_React_.createElement)("div", { - className: "block-editor-block-pattern-setup__grid" - }, (0,external_React_.createElement)(block_pattern_setup_Composite, { - store: compositeStore, - role: "listbox", - className: containerClass, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Patterns list') - }, patterns.map(pattern => (0,external_React_.createElement)(block_pattern_setup_BlockPattern, { - key: pattern.name, - pattern: pattern, - onSelect: onBlockPatternSelect, - showTitles: showTitles - })))); -}; -function block_pattern_setup_BlockPattern({ - pattern, - onSelect, - showTitles -}) { - const baseClassName = 'block-editor-block-pattern-setup-list'; - const { - blocks, - description, - viewportWidth = 700 - } = pattern; - const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(block_pattern_setup_BlockPattern, `${baseClassName}__item-description`); - return (0,external_React_.createElement)("div", { - className: `${baseClassName}__list-item` - }, (0,external_React_.createElement)(block_pattern_setup_CompositeItem, { - render: (0,external_React_.createElement)("div", { - "aria-describedby": description ? descriptionId : undefined, - "aria-label": pattern.title, - className: `${baseClassName}__item` - }), - id: `${baseClassName}__pattern__${pattern.name}`, - role: "option", - onClick: () => onSelect(blocks) - }, (0,external_React_.createElement)(block_preview, { - blocks: blocks, - viewportWidth: viewportWidth - }), showTitles && (0,external_React_.createElement)("div", { - className: `${baseClassName}__item-title` - }, pattern.title), !!description && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: descriptionId - }, description))); -} -function BlockPatternSlide({ - active, - className, - pattern, - minHeight + +function ImageEditor({ + id, + url, + width, + height, + clientWidth, + naturalHeight, + naturalWidth, + onSaveImage, + onFinishEditing, + borderProps }) { - const { - blocks, - title, - description - } = pattern; - const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(BlockPatternSlide, 'block-editor-block-pattern-setup-list__item-description'); - return (0,external_React_.createElement)("div", { - "aria-hidden": !active, - role: "img", - className: `pattern-slide ${className}`, - "aria-label": title, - "aria-describedby": description ? descriptionId : undefined - }, (0,external_React_.createElement)(block_preview, { - blocks: blocks, - minHeight: minHeight - }), !!description && (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - id: descriptionId - }, description)); + return (0,external_wp_element_namespaceObject.createElement)(ImageEditingProvider, { + id: id, + url: url, + naturalWidth: naturalWidth, + naturalHeight: naturalHeight, + onSaveImage: onSaveImage, + onFinishEditing: onFinishEditing + }, (0,external_wp_element_namespaceObject.createElement)(ImageCropper, { + borderProps: borderProps, + url: url, + width: width, + height: height, + clientWidth: clientWidth, + naturalHeight: naturalHeight, + naturalWidth: naturalWidth + }), (0,external_wp_element_namespaceObject.createElement)(block_controls, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(ZoomDropdown, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_wp_element_namespaceObject.createElement)(AspectRatioDropdown, { + toggleProps: toggleProps + })), (0,external_wp_element_namespaceObject.createElement)(RotationButton, null)), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(FormControls, null)))); } -const BlockPatternSetup = ({ - clientId, - blockName, - filterPatternsFn, - onBlockPatternSelect, - initialViewMode = VIEWMODES.carousel, - showTitles = false -}) => { - const [viewMode, setViewMode] = (0,external_wp_element_namespaceObject.useState)(initialViewMode); - const [activeSlide, setActiveSlide] = (0,external_wp_element_namespaceObject.useState)(0); - const { - replaceBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const patterns = use_patterns_setup(clientId, blockName, filterPatternsFn); - if (!patterns?.length) { - return null; - } - const onBlockPatternSelectDefault = blocks => { - const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); - replaceBlock(clientId, clonedBlocks); - }; - const onPatternSelectCallback = onBlockPatternSelect || onBlockPatternSelectDefault; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("div", { - className: `block-editor-block-pattern-setup view-mode-${viewMode}` - }, (0,external_React_.createElement)(SetupContent, { - viewMode: viewMode, - activeSlide: activeSlide, - patterns: patterns, - onBlockPatternSelect: onPatternSelectCallback, - showTitles: showTitles - }), (0,external_React_.createElement)(setup_toolbar, { - viewMode: viewMode, - setViewMode: setViewMode, - activeSlide: activeSlide, - totalSlides: patterns.length, - handleNext: () => { - setActiveSlide(active => Math.min(active + 1, patterns.length - 1)); - }, - handlePrevious: () => { - setActiveSlide(active => Math.max(active - 1, 0)); - }, - onBlockPatternSelect: () => { - onPatternSelectCallback(patterns[activeSlide].blocks); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-size-control/use-dimension-handler.js +/** + * WordPress dependencies + */ + +function useDimensionHandler(customHeight, customWidth, defaultHeight, defaultWidth, onChange) { + var _ref, _ref2; + const [currentWidth, setCurrentWidth] = (0,external_wp_element_namespaceObject.useState)((_ref = customWidth !== null && customWidth !== void 0 ? customWidth : defaultWidth) !== null && _ref !== void 0 ? _ref : ''); + const [currentHeight, setCurrentHeight] = (0,external_wp_element_namespaceObject.useState)((_ref2 = customHeight !== null && customHeight !== void 0 ? customHeight : defaultHeight) !== null && _ref2 !== void 0 ? _ref2 : ''); + + // When an image is first inserted, the default dimensions are initially + // undefined. This effect updates the dimensions when the default values + // come through. + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (customWidth === undefined && defaultWidth !== undefined) { + setCurrentWidth(defaultWidth); + } + if (customHeight === undefined && defaultHeight !== undefined) { + setCurrentHeight(defaultHeight); + } + }, [defaultWidth, defaultHeight]); + + // If custom values change, it means an outsider has resized the image using some other method (eg resize box) + // this keeps track of these values too. We need to parse before comparing; custom values can be strings. + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (customWidth !== undefined && Number.parseInt(customWidth) !== Number.parseInt(currentWidth)) { + setCurrentWidth(customWidth); } - }))); -}; -/* harmony default export */ var block_pattern_setup = (BlockPatternSetup); + if (customHeight !== undefined && Number.parseInt(customHeight) !== Number.parseInt(currentHeight)) { + setCurrentHeight(customHeight); + } + }, [customWidth, customHeight]); + const updateDimension = (dimension, value) => { + const parsedValue = value === '' ? undefined : parseInt(value, 10); + if (dimension === 'width') { + setCurrentWidth(parsedValue); + } else { + setCurrentHeight(parsedValue); + } + onChange({ + [dimension]: parsedValue + }); + }; + const updateDimensions = (nextHeight, nextWidth) => { + setCurrentHeight(nextHeight !== null && nextHeight !== void 0 ? nextHeight : defaultHeight); + setCurrentWidth(nextWidth !== null && nextWidth !== void 0 ? nextWidth : defaultWidth); + onChange({ + height: nextHeight, + width: nextWidth + }); + }; + return { + currentHeight, + currentWidth, + updateDimension, + updateDimensions + }; +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-variation-transforms/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-size-control/index.js /** * WordPress dependencies @@ -59048,351 +53349,198 @@ const BlockPatternSetup = ({ - - - /** * Internal dependencies */ - -function VariationsButtons({ - className, - onSelectVariation, - selectedValue, - variations -}) { - return (0,external_React_.createElement)("fieldset", { - className: className - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Transform to variation')), variations.map(variation => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: variation.name, - icon: (0,external_React_.createElement)(block_icon, { - icon: variation.icon, - showColors: true - }), - isPressed: selectedValue === variation.name, - label: selectedValue === variation.name ? variation.title : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block variation */ - (0,external_wp_i18n_namespaceObject.__)('Transform to %s'), variation.title), - onClick: () => onSelectVariation(variation.name), - "aria-label": variation.title, - showTooltip: true - }))); -} -function VariationsDropdown({ - className, - onSelectVariation, - selectedValue, - variations -}) { - const selectOptions = variations.map(({ - name, - title, - description - }) => ({ - value: name, - label: title, - info: description - })); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - className: className, - label: (0,external_wp_i18n_namespaceObject.__)('Transform to variation'), - text: (0,external_wp_i18n_namespaceObject.__)('Transform to variation'), - popoverProps: { - position: 'bottom center', - className: `${className}__popover` - }, - icon: chevron_down, - toggleProps: { - iconPosition: 'right' - } - }, () => (0,external_React_.createElement)("div", { - className: `${className}__container` - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { - choices: selectOptions, - value: selectedValue, - onSelect: onSelectVariation - })))); -} -function VariationsToggleGroupControl({ - className, - onSelectVariation, - selectedValue, - variations -}) { - return (0,external_React_.createElement)("div", { - className: className - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { - label: (0,external_wp_i18n_namespaceObject.__)('Transform to variation'), - value: selectedValue, - hideLabelFromVision: true, - onChange: onSelectVariation, - __next40pxDefaultSize: true, - __nextHasNoMarginBottom: true - }, variations.map(variation => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, { - key: variation.name, - icon: variation.icon, - value: variation.name, - label: selectedValue === variation.name ? variation.title : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block variation */ - (0,external_wp_i18n_namespaceObject.__)('Transform to %s'), variation.title) - })))); -} -function __experimentalBlockVariationTransforms({ - blockClientId +const IMAGE_SIZE_PRESETS = [25, 50, 75, 100]; +const image_size_control_noop = () => {}; +function ImageSizeControl({ + imageSizeHelp, + imageWidth, + imageHeight, + imageSizeOptions = [], + isResizable = true, + slug, + width, + height, + onChange, + onChangeImage = image_size_control_noop }) { - const { - updateBlockAttributes - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const { - activeBlockVariation, - variations - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getActiveBlockVariation, - getBlockVariations - } = select(external_wp_blocks_namespaceObject.store); - const { - getBlockName, - getBlockAttributes - } = select(store); - const name = blockClientId && getBlockName(blockClientId); - return { - activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId)), - variations: name && getBlockVariations(name, 'transform') - }; - }, [blockClientId]); - const selectedValue = activeBlockVariation?.name; - - // Check if each variation has a unique icon. - const hasUniqueIcons = (0,external_wp_element_namespaceObject.useMemo)(() => { - const variationIcons = new Set(); - if (!variations) { - return false; - } - variations.forEach(variation => { - if (variation.icon) { - variationIcons.add(variation.icon?.src || variation.icon); - } - }); - return variationIcons.size === variations.length; - }, [variations]); - const onSelectVariation = variationName => { - updateBlockAttributes(blockClientId, { - ...variations.find(({ - name - }) => name === variationName).attributes - }); - }; - - // Skip rendering if there are no variations - if (!variations?.length) return null; - const baseClass = 'block-editor-block-variation-transforms'; - - // Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap - const showButtons = variations.length > 5; - const ButtonComponent = showButtons ? VariationsButtons : VariationsToggleGroupControl; - const Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown; - return (0,external_React_.createElement)(Component, { - className: baseClass, - onSelectVariation: onSelectVariation, - selectedValue: selectedValue, - variations: variations + external_wp_deprecated_default()('wp.blockEditor.__experimentalImageSizeControl', { + since: '6.3', + alternative: 'wp.blockEditor.privateApis.DimensionsTool and wp.blockEditor.privateApis.ResolutionTool' }); + const { + currentHeight, + currentWidth, + updateDimension, + updateDimensions + } = useDimensionHandler(height, width, imageHeight, imageWidth, onChange); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, imageSizeOptions && imageSizeOptions.length > 0 && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Resolution'), + value: slug, + options: imageSizeOptions, + onChange: onChangeImage, + help: imageSizeHelp, + size: "__unstable-large" + }), isResizable && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-image-size-control" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + align: "baseline", + spacing: "3" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { + className: "block-editor-image-size-control__width", + label: (0,external_wp_i18n_namespaceObject.__)('Width'), + value: currentWidth, + min: 1, + onChange: value => updateDimension('width', value), + size: "__unstable-large" + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { + className: "block-editor-image-size-control__height", + label: (0,external_wp_i18n_namespaceObject.__)('Height'), + value: currentHeight, + min: 1, + onChange: value => updateDimension('height', value), + size: "__unstable-large" + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ButtonGroup, { + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image size presets') + }, IMAGE_SIZE_PRESETS.map(scale => { + const scaledWidth = Math.round(imageWidth * (scale / 100)); + const scaledHeight = Math.round(imageHeight * (scale / 100)); + const isCurrent = currentWidth === scaledWidth && currentHeight === scaledHeight; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + key: scale, + isSmall: true, + variant: isCurrent ? 'primary' : undefined, + isPressed: isCurrent, + onClick: () => updateDimensions(scaledHeight, scaledWidth) + }, scale, "%"); + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + isSmall: true, + onClick: () => updateDimensions() + }, (0,external_wp_i18n_namespaceObject.__)('Reset'))))); } -/* harmony default export */ var block_variation_transforms = (__experimentalBlockVariationTransforms); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/with-color-context.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer-url.js /** - * WordPress dependencies + * External dependencies */ /** - * Internal dependencies + * WordPress dependencies */ -/* harmony default export */ var with_color_context = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => { - return props => { - const [colorsFeature, enableCustomColors] = use_settings_useSettings('color.palette', 'color.custom'); - const { - colors = colorsFeature, - disableCustomColors = !enableCustomColors - } = props; - const hasColorsToChoose = colors && colors.length > 0 || !disableCustomColors; - return (0,external_React_.createElement)(WrappedComponent, { - ...props, - colors, - disableCustomColors, - hasColorsToChoose + +function LinkViewerURL({ + url, + urlLabel, + className +}) { + const linkClassName = classnames_default()(className, 'block-editor-url-popover__link-viewer-url'); + if (!url) { + return (0,external_wp_element_namespaceObject.createElement)("span", { + className: linkClassName }); - }; -}, 'withColorContext')); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, { + className: linkClassName, + href: url + }, urlLabel || (0,external_wp_url_namespaceObject.filterURLForDisplay)((0,external_wp_url_namespaceObject.safeDecodeURI)(url))); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/index.js /** - * WordPress dependencies + * External dependencies */ /** - * Internal dependencies + * WordPress dependencies */ -/* harmony default export */ var color_palette = (with_color_context(external_wp_components_namespaceObject.ColorPalette)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/control.js + /** * Internal dependencies */ -function ColorPaletteControl({ - onChange, - value, - ...otherProps +function LinkViewer({ + className, + linkClassName, + onEditLinkClick, + url, + urlLabel, + ...props }) { - return (0,external_React_.createElement)(control, { - ...otherProps, - onColorChange: onChange, - colorValue: value, - gradients: [], - disableCustomGradients: true - }); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-url-popover__link-viewer', className), + ...props + }, (0,external_wp_element_namespaceObject.createElement)(LinkViewerURL, { + url: url, + urlLabel: urlLabel, + className: linkClassName + }), onEditLinkClick && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: library_edit, + label: (0,external_wp_i18n_namespaceObject.__)('Edit'), + onClick: onEditLinkClick + })); } -;// CONCATENATED MODULE: external ["wp","date"] -var external_wp_date_namespaceObject = window["wp"]["date"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/date-format-picker/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-editor.js /** - * WordPress dependencies + * External dependencies */ +/** + * WordPress dependencies + */ -// So that we can illustrate the different formats in the dropdown properly, -// show a date that has a day greater than 12 and a month with more than three -// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was -// released. -const EXAMPLE_DATE = new Date(2022, 0, 25); /** - * The `DateFormatPicker` component renders controls that let the user choose a - * _date format_. That is, how they want their dates to be formatted. - * - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md - * - * @param {Object} props - * @param {string|null} props.format The selected date - * format. If - * `null`, - * _Default_ is - * selected. - * @param {string} props.defaultFormat The date format that - * will be used if the - * user selects - * 'Default'. - * @param {( format: string|null ) => void} props.onChange Called when a - * selection is - * made. If `null`, - * _Default_ is - * selected. + * Internal dependencies */ -function DateFormatPicker({ - format, - defaultFormat, - onChange -}) { - return (0,external_React_.createElement)("fieldset", { - className: "block-editor-date-format-picker" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "legend" - }, (0,external_wp_i18n_namespaceObject.__)('Date format')), (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Default format'), - help: `${(0,external_wp_i18n_namespaceObject.__)('Example:')} ${(0,external_wp_date_namespaceObject.dateI18n)(defaultFormat, EXAMPLE_DATE)}`, - checked: !format, - onChange: checked => onChange(checked ? null : defaultFormat) - }), format && (0,external_React_.createElement)(NonDefaultControls, { - format: format, - onChange: onChange - })); -} -function NonDefaultControls({ - format, - onChange + +function LinkEditor({ + autocompleteRef, + className, + onChangeInputValue, + value, + ...props }) { - var _suggestedOptions$fin; - // Suggest a short format, medium format, long format, and a standardised - // (YYYY-MM-DD) format. The short, medium, and long formats are localised as - // different languages have different ways of writing these. For example, 'F - // j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April - // 2022) in German (de). The resultant array is de-duplicated as some - // languages will use the same format string for short, medium, and long - // formats. - const suggestedFormats = [...new Set([/* translators: See https://www.php.net/manual/datetime.format.php */ - 'Y-m-d', /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('n/j/Y', 'short date format'), /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('n/j/Y g:i A', 'short date format with time'), /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('M j, Y', 'medium date format'), /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('M j, Y g:i A', 'medium date format with time'), /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('F j, Y', 'long date format'), /* translators: See https://www.php.net/manual/datetime.format.php */ - (0,external_wp_i18n_namespaceObject._x)('M j', 'short date format without the year')])]; - const suggestedOptions = suggestedFormats.map((suggestedFormat, index) => ({ - key: `suggested-${index}`, - name: (0,external_wp_date_namespaceObject.dateI18n)(suggestedFormat, EXAMPLE_DATE), - format: suggestedFormat - })); - const customOption = { - key: 'custom', - name: (0,external_wp_i18n_namespaceObject.__)('Custom'), - className: 'block-editor-date-format-picker__custom-format-select-control__custom-option', - __experimentalHint: (0,external_wp_i18n_namespaceObject.__)('Enter your own date format') - }; - const [isCustom, setIsCustom] = (0,external_wp_element_namespaceObject.useState)(() => !!format && !suggestedFormats.includes(format)); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.CustomSelectControl, { - __nextUnconstrainedWidth: true, - label: (0,external_wp_i18n_namespaceObject.__)('Choose a format'), - options: [...suggestedOptions, customOption], - value: isCustom ? customOption : (_suggestedOptions$fin = suggestedOptions.find(option => option.format === format)) !== null && _suggestedOptions$fin !== void 0 ? _suggestedOptions$fin : customOption, - onChange: ({ - selectedItem - }) => { - if (selectedItem === customOption) { - setIsCustom(true); - } else { - setIsCustom(false); - onChange(selectedItem.format); - } - } - }), isCustom && (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { + return (0,external_wp_element_namespaceObject.createElement)("form", { + className: classnames_default()('block-editor-url-popover__link-editor', className), + ...props + }, (0,external_wp_element_namespaceObject.createElement)(url_input, { __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Custom format'), - hideLabelFromVision: true, - help: (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Enter a date or time format string.'), { - Link: (0,external_React_.createElement)(external_wp_components_namespaceObject.ExternalLink, { - href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/customize-date-and-time-format/') - }) - }), - value: format, - onChange: value => onChange(value) + value: value, + onChange: onChangeInputValue, + autocompleteRef: autocompleteRef + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: keyboard_return, + label: (0,external_wp_i18n_namespaceObject.__)('Apply'), + type: "submit" })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/dropdown.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/index.js /** - * External dependencies + * WordPress dependencies */ -/** - * WordPress dependencies - */ + + /** @@ -59400,146 +53548,77 @@ function NonDefaultControls({ */ -// When the `ColorGradientSettingsDropdown` controls are being rendered to a -// `ToolsPanel` they must be wrapped in a `ToolsPanelItem`. -const WithToolsPanelItem = ({ - setting, - children, - panelId, - ...props -}) => { - const clearValue = () => { - if (setting.colorValue) { - setting.onColorChange(); - } else if (setting.gradientValue) { - setting.onGradientChange(); - } - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { - hasValue: () => { - return !!setting.colorValue || !!setting.gradientValue; - }, - label: setting.label, - onDeselect: clearValue, - isShownByDefault: setting.isShownByDefault !== undefined ? setting.isShownByDefault : true, - ...props, - className: "block-editor-tools-panel-color-gradient-settings__item", - panelId: panelId - // Pass resetAllFilter if supplied due to rendering via SlotFill - // into parent ToolsPanel. - , - resetAllFilter: setting.resetAllFilter - }, children); -}; -const dropdown_LabeledColorIndicator = ({ - colorValue, - label -}) => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - justify: "flex-start" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.ColorIndicator, { - className: "block-editor-panel-color-gradient-settings__color-indicator", - colorValue: colorValue -}), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, { - className: "block-editor-panel-color-gradient-settings__color-name", - title: label -}, label)); - -// Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup` -// or as a `Button` if it isn't e.g. the controls are being rendered in -// a `ToolsPanel`. -const renderToggle = settings => ({ - onToggle, - isOpen -}) => { - const { - colorValue, - label - } = settings; - const toggleProps = { - onClick: onToggle, - className: classnames_default()('block-editor-panel-color-gradient-settings__dropdown', { - 'is-open': isOpen - }), - 'aria-expanded': isOpen - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...toggleProps - }, (0,external_React_.createElement)(dropdown_LabeledColorIndicator, { - colorValue: colorValue, - label: label - })); -}; -// Renders a collection of color controls as dropdowns. Depending upon the -// context in which these dropdowns are being rendered, they may be wrapped -// in an `ItemGroup` with each dropdown's toggle as an `Item`, or alternatively, -// the may be individually wrapped in a `ToolsPanelItem` with the toggle as -// a regular `Button`. -// -// For more context see: https://github.com/WordPress/gutenberg/pull/40084 -function ColorGradientSettingsDropdown({ - colors, - disableCustomColors, - disableCustomGradients, - enableAlpha, - gradients, - settings, - __experimentalIsRenderedInSidebar, - ...props +const { + __experimentalPopoverLegacyPositionToPlacement +} = unlock(external_wp_components_namespaceObject.privateApis); +const DEFAULT_PLACEMENT = 'bottom'; +function URLPopover({ + additionalControls, + children, + renderSettings, + // The DEFAULT_PLACEMENT value is assigned inside the function's body + placement, + focusOnMount = 'firstElement', + // Deprecated + position, + // Rest + ...popoverProps }) { - let popoverProps; - if (__experimentalIsRenderedInSidebar) { - popoverProps = { - placement: 'left-start', - offset: 36, - shift: true - }; + if (position !== undefined) { + external_wp_deprecated_default()('`position` prop in wp.blockEditor.URLPopover', { + since: '6.2', + alternative: '`placement` prop' + }); } - return (0,external_React_.createElement)(external_React_.Fragment, null, settings.map((setting, index) => { - var _setting$gradientValu; - const controlProps = { - clearable: false, - colorValue: setting.colorValue, - colors, - disableCustomColors, - disableCustomGradients, - enableAlpha, - gradientValue: setting.gradientValue, - gradients, - label: setting.label, - onColorChange: setting.onColorChange, - onGradientChange: setting.onGradientChange, - showTitle: false, - __experimentalIsRenderedInSidebar, - ...setting - }; - const toggleSettings = { - colorValue: (_setting$gradientValu = setting.gradientValue) !== null && _setting$gradientValu !== void 0 ? _setting$gradientValu : setting.colorValue, - label: setting.label - }; - return setting && - // If not in an `ItemGroup` wrap the dropdown in a - // `ToolsPanelItem` - (0,external_React_.createElement)(WithToolsPanelItem, { - key: index, - setting: setting, - ...props - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - popoverProps: popoverProps, - className: "block-editor-tools-panel-color-gradient-settings__dropdown", - renderToggle: renderToggle(toggleSettings), - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { - paddingSize: "none" - }, (0,external_React_.createElement)("div", { - className: "block-editor-panel-color-gradient-settings__dropdown-content" - }, (0,external_React_.createElement)(control, { - ...controlProps - }))) - })); - })); + + // Compute popover's placement: + // - give priority to `placement` prop, if defined + // - otherwise, compute it from the legacy `position` prop (if defined) + // - finally, fallback to the DEFAULT_PLACEMENT. + let computedPlacement; + if (placement !== undefined) { + computedPlacement = placement; + } else if (position !== undefined) { + computedPlacement = __experimentalPopoverLegacyPositionToPlacement(position); + } + computedPlacement = computedPlacement || DEFAULT_PLACEMENT; + const [isSettingsExpanded, setIsSettingsExpanded] = (0,external_wp_element_namespaceObject.useState)(false); + const showSettings = !!renderSettings && isSettingsExpanded; + const toggleSettingsVisibility = () => { + setIsSettingsExpanded(!isSettingsExpanded); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + className: "block-editor-url-popover", + focusOnMount: focusOnMount, + placement: computedPlacement, + shift: true, + ...popoverProps + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-popover__input-container" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-popover__row" + }, children, !!renderSettings && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-url-popover__settings-toggle", + icon: chevron_down, + label: (0,external_wp_i18n_namespaceObject.__)('Link settings'), + onClick: toggleSettingsVisibility, + "aria-expanded": isSettingsExpanded + })), showSettings && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-popover__row block-editor-url-popover__settings" + }, renderSettings())), additionalControls && !showSettings && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-popover__additional-controls" + }, additionalControls)); } +URLPopover.LinkEditor = LinkEditor; +URLPopover.LinkViewer = LinkViewer; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/panel-color-gradient-settings.js +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md + */ +/* harmony default export */ var url_popover = (URLPopover); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-placeholder/index.js /** * External dependencies @@ -59553,1441 +53632,2040 @@ function ColorGradientSettingsDropdown({ + + + + /** * Internal dependencies */ -const panel_color_gradient_settings_colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients']; -const PanelColorGradientSettingsInner = ({ + + +const media_placeholder_noop = () => {}; +const InsertFromURLPopover = ({ + src, + onChange, + onSubmit, + onClose, + popoverAnchor +}) => (0,external_wp_element_namespaceObject.createElement)(url_popover, { + anchor: popoverAnchor, + onClose: onClose +}, (0,external_wp_element_namespaceObject.createElement)("form", { + className: "block-editor-media-placeholder__url-input-form", + onSubmit: onSubmit +}, (0,external_wp_element_namespaceObject.createElement)("input", { + className: "block-editor-media-placeholder__url-input-field", + type: "text", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('URL'), + placeholder: (0,external_wp_i18n_namespaceObject.__)('Paste or type URL'), + onChange: onChange, + value: src +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-media-placeholder__url-input-submit-button", + icon: keyboard_return, + label: (0,external_wp_i18n_namespaceObject.__)('Apply'), + type: "submit" +}))); +const URLSelectionUI = ({ + isURLInputVisible, + src, + onChangeSrc, + onSubmitSrc, + openURLInput, + closeURLInput +}) => { + // Use internal state instead of a ref to make sure that the component + // re-renders when the popover's anchor updates. + const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-media-placeholder__url-input-container", + ref: setPopoverAnchor + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-media-placeholder__button", + onClick: openURLInput, + isPressed: isURLInputVisible, + variant: "tertiary" + }, (0,external_wp_i18n_namespaceObject.__)('Insert from URL')), isURLInputVisible && (0,external_wp_element_namespaceObject.createElement)(InsertFromURLPopover, { + src: src, + onChange: onChangeSrc, + onSubmit: onSubmitSrc, + onClose: closeURLInput, + popoverAnchor: popoverAnchor + })); +}; +function MediaPlaceholder({ + value = {}, + allowedTypes, className, - colors, - gradients, - disableCustomColors, - disableCustomGradients, + icon, + labels = {}, + mediaPreview, + notices, + isAppender, + accept, + addToGallery, + multiple = false, + handleUpload = true, + disableDropZone, + disableMediaButtons, + onError, + onSelect, + onCancel, + onSelectURL, + onToggleFeaturedImage, + onDoubleClick, + onFilesPreUpload = media_placeholder_noop, + onHTMLDrop: deprecatedOnHTMLDrop, children, - settings, - title, - showTitle = true, - __experimentalIsRenderedInSidebar, - enableAlpha -}) => { - const panelId = (0,external_wp_compose_namespaceObject.useInstanceId)(PanelColorGradientSettingsInner); - const { - batch - } = (0,external_wp_data_namespaceObject.useRegistry)(); - if ((!colors || colors.length === 0) && (!gradients || gradients.length === 0) && disableCustomColors && disableCustomGradients && settings?.every(setting => (!setting.colors || setting.colors.length === 0) && (!setting.gradients || setting.gradients.length === 0) && (setting.disableCustomColors === undefined || setting.disableCustomColors) && (setting.disableCustomGradients === undefined || setting.disableCustomGradients))) { - return null; + mediaLibraryButton, + placeholder, + style +}) { + if (deprecatedOnHTMLDrop) { + external_wp_deprecated_default()('wp.blockEditor.MediaPlaceholder onHTMLDrop prop', { + since: '6.2', + version: '6.4' + }); } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { - className: classnames_default()('block-editor-panel-color-gradient-settings', className), - label: showTitle ? title : undefined, - resetAll: () => { - batch(() => { - settings.forEach(({ - colorValue, - gradientValue, - onColorChange, - onGradientChange - }) => { - if (colorValue) { - onColorChange(); - } else if (gradientValue) { - onGradientChange(); + const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSettings + } = select(store); + return getSettings().mediaUpload; + }, []); + const [src, setSrc] = (0,external_wp_element_namespaceObject.useState)(''); + const [isURLInputVisible, setIsURLInputVisible] = (0,external_wp_element_namespaceObject.useState)(false); + (0,external_wp_element_namespaceObject.useEffect)(() => { + var _value$src; + setSrc((_value$src = value?.src) !== null && _value$src !== void 0 ? _value$src : ''); + }, [value?.src]); + const onlyAllowsImages = () => { + if (!allowedTypes || allowedTypes.length === 0) { + return false; + } + return allowedTypes.every(allowedType => allowedType === 'image' || allowedType.startsWith('image/')); + }; + const onChangeSrc = event => { + setSrc(event.target.value); + }; + const openURLInput = () => { + setIsURLInputVisible(true); + }; + const closeURLInput = () => { + setIsURLInputVisible(false); + }; + const onSubmitSrc = event => { + event.preventDefault(); + if (src && onSelectURL) { + onSelectURL(src); + closeURLInput(); + } + }; + const onFilesUpload = files => { + if (!handleUpload) { + return onSelect(files); + } + onFilesPreUpload(files); + let setMedia; + if (multiple) { + if (addToGallery) { + // Since the setMedia function runs multiple times per upload group + // and is passed newMedia containing every item in its group each time, we must + // filter out whatever this upload group had previously returned to the + // gallery before adding and returning the image array with replacement newMedia + // values. + + // Define an array to store urls from newMedia between subsequent function calls. + let lastMediaPassed = []; + setMedia = newMedia => { + // Remove any images this upload group is responsible for (lastMediaPassed). + // Their replacements are contained in newMedia. + const filteredMedia = (value !== null && value !== void 0 ? value : []).filter(item => { + // If Item has id, only remove it if lastMediaPassed has an item with that id. + if (item.id) { + return !lastMediaPassed.some( + // Be sure to convert to number for comparison. + ({ + id + }) => Number(id) === Number(item.id)); + } + // Compare transient images via .includes since gallery may append extra info onto the url. + return !lastMediaPassed.some(({ + urlSlug + }) => item.url.includes(urlSlug)); + }); + // Return the filtered media array along with newMedia. + onSelect(filteredMedia.concat(newMedia)); + // Reset lastMediaPassed and set it with ids and urls from newMedia. + lastMediaPassed = newMedia.map(media => { + // Add everything up to '.fileType' to compare via .includes. + const cutOffIndex = media.url.lastIndexOf('.'); + const urlSlug = media.url.slice(0, cutOffIndex); + return { + id: media.id, + urlSlug + }; + }); + }; + } else { + setMedia = onSelect; + } + } else { + setMedia = ([media]) => onSelect(media); + } + mediaUpload({ + allowedTypes, + filesList: files, + onFileChange: setMedia, + onError + }); + }; + async function handleBlocksDrop(blocks) { + if (!blocks || !Array.isArray(blocks)) { + return; + } + function recursivelyFindMediaFromBlocks(_blocks) { + return _blocks.flatMap(block => (block.name === 'core/image' || block.name === 'core/audio' || block.name === 'core/video') && block.attributes.url ? [block] : recursivelyFindMediaFromBlocks(block.innerBlocks)); + } + const mediaBlocks = recursivelyFindMediaFromBlocks(blocks); + if (!mediaBlocks.length) { + return; + } + const uploadedMediaList = await Promise.all(mediaBlocks.map(block => block.attributes.id ? block.attributes : new Promise((resolve, reject) => { + window.fetch(block.attributes.url).then(response => response.blob()).then(blob => mediaUpload({ + filesList: [blob], + additionalData: { + title: block.attributes.title, + alt_text: block.attributes.alt, + caption: block.attributes.caption + }, + onFileChange: ([media]) => { + if (media.id) { + resolve(media); } - }); - }); - }, - panelId: panelId, - __experimentalFirstVisibleItemClass: "first", - __experimentalLastVisibleItemClass: "last" - }, (0,external_React_.createElement)(ColorGradientSettingsDropdown, { - settings: settings, - panelId: panelId, - colors, - gradients, - disableCustomColors, - disableCustomGradients, - __experimentalIsRenderedInSidebar, - enableAlpha - }), !!children && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, { - marginY: 4 - }), " ", children)); -}; -const PanelColorGradientSettingsSelect = props => { - const colorGradientSettings = useMultipleOriginColorsAndGradients(); - return (0,external_React_.createElement)(PanelColorGradientSettingsInner, { - ...colorGradientSettings, - ...props - }); -}; -const PanelColorGradientSettings = props => { - if (panel_color_gradient_settings_colorsAndGradientKeys.every(key => props.hasOwnProperty(key))) { - return (0,external_React_.createElement)(PanelColorGradientSettingsInner, { - ...props + }, + allowedTypes, + onError: reject + })).catch(() => resolve(block.attributes.url)); + }))).catch(err => onError(err)); + if (multiple) { + onSelect(uploadedMediaList); + } else { + onSelect(uploadedMediaList[0]); + } + } + async function onHTMLDrop(HTML) { + const blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ + HTML + }); + return await handleBlocksDrop(blocks); + } + const onUpload = event => { + onFilesUpload(event.target.files); + }; + const defaultRenderPlaceholder = content => { + let { + instructions, + title + } = labels; + if (!mediaUpload && !onSelectURL) { + instructions = (0,external_wp_i18n_namespaceObject.__)('To edit this block, you need permission to upload media.'); + } + if (instructions === undefined || title === undefined) { + const typesAllowed = allowedTypes !== null && allowedTypes !== void 0 ? allowedTypes : []; + const [firstAllowedType] = typesAllowed; + const isOneType = 1 === typesAllowed.length; + const isAudio = isOneType && 'audio' === firstAllowedType; + const isImage = isOneType && 'image' === firstAllowedType; + const isVideo = isOneType && 'video' === firstAllowedType; + if (instructions === undefined && mediaUpload) { + instructions = (0,external_wp_i18n_namespaceObject.__)('Upload a media file or pick one from your media library.'); + if (isAudio) { + instructions = (0,external_wp_i18n_namespaceObject.__)('Upload an audio file, pick one from your media library, or add one with a URL.'); + } else if (isImage) { + instructions = (0,external_wp_i18n_namespaceObject.__)('Upload an image file, pick one from your media library, or add one with a URL.'); + } else if (isVideo) { + instructions = (0,external_wp_i18n_namespaceObject.__)('Upload a video file, pick one from your media library, or add one with a URL.'); + } + } + if (title === undefined) { + title = (0,external_wp_i18n_namespaceObject.__)('Media'); + if (isAudio) { + title = (0,external_wp_i18n_namespaceObject.__)('Audio'); + } else if (isImage) { + title = (0,external_wp_i18n_namespaceObject.__)('Image'); + } else if (isVideo) { + title = (0,external_wp_i18n_namespaceObject.__)('Video'); + } + } + } + const placeholderClassName = classnames_default()('block-editor-media-placeholder', className, { + 'is-appender': isAppender + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { + icon: icon, + label: title, + instructions: instructions, + className: placeholderClassName, + notices: notices, + onDoubleClick: onDoubleClick, + preview: mediaPreview, + style: style + }, content, children); + }; + const renderPlaceholder = placeholder !== null && placeholder !== void 0 ? placeholder : defaultRenderPlaceholder; + const renderDropZone = () => { + if (disableDropZone) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropZone, { + onFilesDrop: onFilesUpload, + onHTMLDrop: onHTMLDrop + }); + }; + const renderCancelLink = () => { + return onCancel && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-media-placeholder__cancel-button", + title: (0,external_wp_i18n_namespaceObject.__)('Cancel'), + variant: "link", + onClick: onCancel + }, (0,external_wp_i18n_namespaceObject.__)('Cancel')); + }; + const renderUrlSelectionUI = () => { + return onSelectURL && (0,external_wp_element_namespaceObject.createElement)(URLSelectionUI, { + isURLInputVisible: isURLInputVisible, + src: src, + onChangeSrc: onChangeSrc, + onSubmitSrc: onSubmitSrc, + openURLInput: openURLInput, + closeURLInput: closeURLInput + }); + }; + const renderFeaturedImageToggle = () => { + return onToggleFeaturedImage && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-media-placeholder__url-input-container" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-media-placeholder__button", + onClick: onToggleFeaturedImage, + variant: "tertiary" + }, (0,external_wp_i18n_namespaceObject.__)('Use featured image'))); + }; + const renderMediaUploadChecked = () => { + const defaultButton = ({ + open + }) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "tertiary", + onClick: () => { + open(); + } + }, (0,external_wp_i18n_namespaceObject.__)('Media Library')); + }; + const libraryButton = mediaLibraryButton !== null && mediaLibraryButton !== void 0 ? mediaLibraryButton : defaultButton; + const uploadMediaLibraryButton = (0,external_wp_element_namespaceObject.createElement)(media_upload, { + addToGallery: addToGallery, + gallery: multiple && onlyAllowsImages(), + multiple: multiple, + onSelect: onSelect, + allowedTypes: allowedTypes, + mode: 'browse', + value: Array.isArray(value) ? value.map(({ + id + }) => id) : value.id, + render: libraryButton }); + if (mediaUpload && isAppender) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, renderDropZone(), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, { + onChange: onUpload, + accept: accept, + multiple: !!multiple, + render: ({ + openFileDialog + }) => { + const content = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "primary", + className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'), + onClick: openFileDialog + }, (0,external_wp_i18n_namespaceObject.__)('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink()); + return renderPlaceholder(content); + } + })); + } + if (mediaUpload) { + const content = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, renderDropZone(), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormFileUpload, { + variant: "primary", + className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'), + onChange: onUpload, + accept: accept, + multiple: !!multiple + }, (0,external_wp_i18n_namespaceObject.__)('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink()); + return renderPlaceholder(content); + } + return renderPlaceholder(uploadMediaLibraryButton); + }; + if (disableMediaButtons) { + return (0,external_wp_element_namespaceObject.createElement)(check, null, renderDropZone()); } - return (0,external_React_.createElement)(PanelColorGradientSettingsSelect, { + return (0,external_wp_element_namespaceObject.createElement)(check, { + fallback: renderPlaceholder(renderUrlSelectionUI()) + }, renderMediaUploadChecked()); +} + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md + */ +/* harmony default export */ var media_placeholder = ((0,external_wp_components_namespaceObject.withFilters)('editor.MediaPlaceholder')(MediaPlaceholder)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/panel-color-settings/index.js + +/** + * Internal dependencies + */ + +const PanelColorSettings = ({ + colorSettings, + ...props +}) => { + const settings = colorSettings.map(setting => { + if (!setting) { + return setting; + } + const { + value, + onChange, + ...otherSettings + } = setting; + return { + ...otherSettings, + colorValue: value, + onColorChange: onChange + }; + }); + return (0,external_wp_element_namespaceObject.createElement)(panel_color_gradient_settings, { + settings: settings, + gradients: [], + disableCustomGradients: true, ...props }); }; -/* harmony default export */ var panel_color_gradient_settings = (PanelColorGradientSettings); +/* harmony default export */ var panel_color_settings = (PanelColorSettings); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/use-save-image.js /** - * WordPress dependencies + * External dependencies */ -// Disable Reason: Needs to be refactored. -// eslint-disable-next-line no-restricted-imports - - - - - - -function useSaveImage({ - crop, - rotation, - url, - id, - onSaveImage, - onFinishEditing -}) { - const { - createErrorNotice - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store); - const [isInProgress, setIsInProgress] = (0,external_wp_element_namespaceObject.useState)(false); - const cancel = (0,external_wp_element_namespaceObject.useCallback)(() => { - setIsInProgress(false); - onFinishEditing(); - }, [onFinishEditing]); - const apply = (0,external_wp_element_namespaceObject.useCallback)(() => { - setIsInProgress(true); - const modifiers = []; - if (rotation > 0) { - modifiers.push({ - type: 'rotate', - args: { - angle: rotation - } - }); - } - // The crop script may return some very small, sub-pixel values when the image was not cropped. - // Crop only when the new size has changed by more than 0.1%. - if (crop.width < 99.9 || crop.height < 99.9) { - modifiers.push({ - type: 'crop', - args: { - left: crop.x, - top: crop.y, - width: crop.width, - height: crop.height - } - }); - } - external_wp_apiFetch_default()({ - path: `/wp/v2/media/${id}/edit`, - method: 'POST', - data: { - src: url, - modifiers - } - }).then(response => { - onSaveImage({ - id: response.id, - url: response.source_url - }); - }).catch(error => { - createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1. Error message */ - (0,external_wp_i18n_namespaceObject.__)('Could not edit image. %s'), (0,external_wp_dom_namespaceObject.__unstableStripHTML)(error.message)), { - id: 'image-editing-error', - type: 'snackbar' - }); - }).finally(() => { - setIsInProgress(false); - onFinishEditing(); - }); - }, [crop, rotation, id, url, onSaveImage, createErrorNotice, onFinishEditing]); - return (0,external_wp_element_namespaceObject.useMemo)(() => ({ - isInProgress, - apply, - cancel - }), [isInProgress, apply, cancel]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/use-transform-image.js /** * WordPress dependencies */ -function useTransformImage({ - url, - naturalWidth, - naturalHeight -}) { - const [editedUrl, setEditedUrl] = (0,external_wp_element_namespaceObject.useState)(); - const [crop, setCrop] = (0,external_wp_element_namespaceObject.useState)(); - const [position, setPosition] = (0,external_wp_element_namespaceObject.useState)({ - x: 0, - y: 0 - }); - const [zoom, setZoom] = (0,external_wp_element_namespaceObject.useState)(100); - const [rotation, setRotation] = (0,external_wp_element_namespaceObject.useState)(0); - const defaultAspect = naturalWidth / naturalHeight; - const [aspect, setAspect] = (0,external_wp_element_namespaceObject.useState)(defaultAspect); - const rotateClockwise = (0,external_wp_element_namespaceObject.useCallback)(() => { - const angle = (rotation + 90) % 360; - let naturalAspectRatio = defaultAspect; - if (rotation % 180 === 90) { - naturalAspectRatio = 1 / defaultAspect; - } - if (angle === 0) { - setEditedUrl(); - setRotation(angle); - setAspect(defaultAspect); - setPosition(prevPosition => ({ - x: -(prevPosition.y * naturalAspectRatio), - y: prevPosition.x * naturalAspectRatio - })); - return; - } - function editImage(event) { - const canvas = document.createElement('canvas'); - let translateX = 0; - let translateY = 0; - if (angle % 180) { - canvas.width = event.target.height; - canvas.height = event.target.width; - } else { - canvas.width = event.target.width; - canvas.height = event.target.height; - } - if (angle === 90 || angle === 180) { - translateX = canvas.width; - } - if (angle === 270 || angle === 180) { - translateY = canvas.height; - } - const context = canvas.getContext('2d'); - context.translate(translateX, translateY); - context.rotate(angle * Math.PI / 180); - context.drawImage(event.target, 0, 0); - canvas.toBlob(blob => { - setEditedUrl(URL.createObjectURL(blob)); - setRotation(angle); - setAspect(canvas.width / canvas.height); - setPosition(prevPosition => ({ - x: -(prevPosition.y * naturalAspectRatio), - y: prevPosition.x * naturalAspectRatio - })); - }); - } - const el = new window.Image(); - el.src = url; - el.onload = editImage; - const imgCrossOrigin = (0,external_wp_hooks_namespaceObject.applyFilters)('media.crossOrigin', undefined, url); - if (typeof imgCrossOrigin === 'string') { - el.crossOrigin = imgCrossOrigin; - } - }, [rotation, defaultAspect, url]); - return (0,external_wp_element_namespaceObject.useMemo)(() => ({ - editedUrl, - setEditedUrl, - crop, - setCrop, - position, - setPosition, - zoom, - setZoom, - rotation, - setRotation, - rotateClockwise, - aspect, - setAspect, - defaultAspect - }), [editedUrl, crop, position, zoom, rotation, rotateClockwise, aspect, defaultAspect]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/context.js /** - * WordPress dependencies + * Internal dependencies */ +const format_toolbar_POPOVER_PROPS = { + placement: 'bottom-start' +}; +const FormatToolbar = () => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, ['bold', 'italic', 'link', 'unknown'].map(format => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Slot, { + name: `RichText.ToolbarControls.${format}`, + key: format + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Slot, { + name: "RichText.ToolbarControls" + }, fills => { + if (!fills.length) { + return null; + } + const allProps = fills.map(([{ + props + }]) => props); + const hasActive = allProps.some(({ + isActive + }) => isActive); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + icon: chevron_down + /* translators: button label text should, if possible, be under 16 characters. */, + label: (0,external_wp_i18n_namespaceObject.__)('More'), + toggleProps: { + ...toggleProps, + className: classnames_default()(toggleProps.className, { + 'is-pressed': hasActive + }), + describedBy: (0,external_wp_i18n_namespaceObject.__)('Displays more block tools') + }, + controls: orderBy(fills.map(([{ + props + }]) => props), 'title'), + popoverProps: format_toolbar_POPOVER_PROPS + })); + })); +}; +/* harmony default export */ var format_toolbar = (FormatToolbar); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/navigable-toolbar/index.js /** - * Internal dependencies + * WordPress dependencies */ -const ImageEditingContext = (0,external_wp_element_namespaceObject.createContext)({}); -const useImageEditingContext = () => (0,external_wp_element_namespaceObject.useContext)(ImageEditingContext); -function ImageEditingProvider({ - id, - url, - naturalWidth, - naturalHeight, - onFinishEditing, - onSaveImage, - children -}) { - const transformImage = useTransformImage({ - url, - naturalWidth, - naturalHeight - }); - const saveImage = useSaveImage({ - id, - url, - onSaveImage, - onFinishEditing, - ...transformImage - }); - const providerValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({ - ...transformImage, - ...saveImage - }), [transformImage, saveImage]); - return (0,external_React_.createElement)(ImageEditingContext.Provider, { - value: providerValue - }, children); -} - -;// CONCATENATED MODULE: ./node_modules/react-easy-crop/node_modules/tslib/tslib.es6.js -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -var __createBinding = Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); - -function __exportStar(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); -} - -function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -}; - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); -} - -function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; -} -// EXTERNAL MODULE: ./node_modules/normalize-wheel/index.js -var normalize_wheel = __webpack_require__(7970); -var normalize_wheel_default = /*#__PURE__*/__webpack_require__.n(normalize_wheel); -;// CONCATENATED MODULE: ./node_modules/react-easy-crop/index.module.js +function hasOnlyToolbarItem(elements) { + const dataProp = 'toolbarItem'; + return !elements.some(element => !(dataProp in element.dataset)); +} +function getAllToolbarItemsIn(container) { + return Array.from(container.querySelectorAll('[data-toolbar-item]')); +} +function hasFocusWithin(container) { + return container.contains(container.ownerDocument.activeElement); +} +function focusFirstTabbableIn(container) { + const [firstTabbable] = external_wp_dom_namespaceObject.focus.tabbable.find(container); + if (firstTabbable) { + firstTabbable.focus({ + // When focusing newly mounted toolbars, + // the position of the popover is often not right on the first render + // This prevents the layout shifts when focusing the dialogs. + preventScroll: true + }); + } +} +function useIsAccessibleToolbar(ref) { + /* + * By default, we'll assume the starting accessible state of the Toolbar + * is true, as it seems to be the most common case. + * + * Transitioning from an (initial) false to true state causes the + * component to mount twice, which is causing undesired + * side-effects. These side-effects appear to only affect certain + * E2E tests. + * + * This was initial discovered in this pull-request: + * https://github.com/WordPress/gutenberg/pull/23425 + */ + const initialAccessibleToolbarState = true; + // By default, it's gonna render NavigableMenu. If all the tabbable elements + // inside the toolbar are ToolbarItem components (or derived components like + // ToolbarButton), then we can wrap them with the accessible Toolbar + // component. + const [isAccessibleToolbar, setIsAccessibleToolbar] = (0,external_wp_element_namespaceObject.useState)(initialAccessibleToolbarState); + const determineIsAccessibleToolbar = (0,external_wp_element_namespaceObject.useCallback)(() => { + const tabbables = external_wp_dom_namespaceObject.focus.tabbable.find(ref.current); + const onlyToolbarItem = hasOnlyToolbarItem(tabbables); + if (!onlyToolbarItem) { + external_wp_deprecated_default()('Using custom components as toolbar controls', { + since: '5.6', + alternative: 'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components', + link: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols' + }); + } + setIsAccessibleToolbar(onlyToolbarItem); + }, []); + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + // Toolbar buttons may be rendered asynchronously, so we use + // MutationObserver to check if the toolbar subtree has been modified. + const observer = new window.MutationObserver(determineIsAccessibleToolbar); + observer.observe(ref.current, { + childList: true, + subtree: true + }); + return () => observer.disconnect(); + }, [isAccessibleToolbar]); + return isAccessibleToolbar; +} +function useToolbarFocus(ref, focusOnMount, isAccessibleToolbar, defaultIndex, onIndexChange, shouldUseKeyboardFocusShortcut) { + // Make sure we don't use modified versions of this prop. + const [initialFocusOnMount] = (0,external_wp_element_namespaceObject.useState)(focusOnMount); + const [initialIndex] = (0,external_wp_element_namespaceObject.useState)(defaultIndex); + const focusToolbar = (0,external_wp_element_namespaceObject.useCallback)(() => { + focusFirstTabbableIn(ref.current); + }, []); + const focusToolbarViaShortcut = () => { + if (shouldUseKeyboardFocusShortcut) { + focusToolbar(); + } + }; -/** - * Compute the dimension of the crop area based on media size, - * aspect ratio and optionally rotation - */ -function getCropSize(mediaWidth, mediaHeight, containerWidth, containerHeight, aspect, rotation) { - if (rotation === void 0) { - rotation = 0; - } - var _a = rotateSize(mediaWidth, mediaHeight, rotation), - width = _a.width, - height = _a.height; - var fittingWidth = Math.min(width, containerWidth); - var fittingHeight = Math.min(height, containerHeight); - if (fittingWidth > fittingHeight * aspect) { - return { - width: fittingHeight * aspect, - height: fittingHeight + // Focus on toolbar when pressing alt+F10 when the toolbar is visible. + (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/focus-toolbar', focusToolbarViaShortcut); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (initialFocusOnMount) { + focusToolbar(); + } + }, [isAccessibleToolbar, initialFocusOnMount, focusToolbar]); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing + const navigableToolbarRef = ref.current; + // If initialIndex is passed, we focus on that toolbar item when the + // toolbar gets mounted and initial focus is not forced. + // We have to wait for the next browser paint because block controls aren't + // rendered right away when the toolbar gets mounted. + let raf = 0; + if (!initialFocusOnMount) { + raf = window.requestAnimationFrame(() => { + const items = getAllToolbarItemsIn(navigableToolbarRef); + const index = initialIndex || 0; + if (items[index] && hasFocusWithin(navigableToolbarRef)) { + items[index].focus({ + // When focusing newly mounted toolbars, + // the position of the popover is often not right on the first render + // This prevents the layout shifts when focusing the dialogs. + preventScroll: true + }); + } + }); + } + return () => { + window.cancelAnimationFrame(raf); + if (!onIndexChange || !navigableToolbarRef) return; + // When the toolbar element is unmounted and onIndexChange is passed, we + // pass the focused toolbar item index so it can be hydrated later. + const items = getAllToolbarItemsIn(navigableToolbarRef); + const index = items.findIndex(item => item.tabIndex === 0); + onIndexChange(index); }; + }, [initialIndex, initialFocusOnMount]); +} +function NavigableToolbar({ + children, + focusOnMount, + shouldUseKeyboardFocusShortcut = true, + __experimentalInitialIndex: initialIndex, + __experimentalOnIndexChange: onIndexChange, + ...props +}) { + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const isAccessibleToolbar = useIsAccessibleToolbar(ref); + useToolbarFocus(ref, focusOnMount, isAccessibleToolbar, initialIndex, onIndexChange, shouldUseKeyboardFocusShortcut); + if (isAccessibleToolbar) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Toolbar, { + label: props['aria-label'], + ref: ref, + ...props + }, children); } - return { - width: fittingWidth, - height: fittingWidth / aspect - }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, { + orientation: "horizontal", + role: "toolbar", + ref: ref, + ...props + }, children); } -/** - * Compute media zoom. - * We fit the media into the container with "max-width: 100%; max-height: 100%;" +/* harmony default export */ var navigable_toolbar = (NavigableToolbar); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar-container.js + +/** + * WordPress dependencies */ -function getMediaZoom(mediaSize) { - // Take the axis with more pixels to improve accuracy - return mediaSize.width > mediaSize.height ? mediaSize.width / mediaSize.naturalWidth : mediaSize.height / mediaSize.naturalHeight; -} -/** - * Ensure a new media position stays in the crop area. + + + + + +/** + * Internal dependencies */ -function restrictPosition(position, mediaSize, cropSize, zoom, rotation) { - if (rotation === void 0) { - rotation = 0; - } - var _a = rotateSize(mediaSize.width, mediaSize.height, rotation), - width = _a.width, - height = _a.height; - return { - x: restrictPositionCoord(position.x, width, cropSize.width, zoom), - y: restrictPositionCoord(position.y, height, cropSize.height, zoom) - }; -} -function restrictPositionCoord(position, mediaSize, cropSize, zoom) { - var maxPosition = mediaSize * zoom / 2 - cropSize / 2; - return index_module_clamp(position, -maxPosition, maxPosition); -} -function getDistanceBetweenPoints(pointA, pointB) { - return Math.sqrt(Math.pow(pointA.y - pointB.y, 2) + Math.pow(pointA.x - pointB.x, 2)); + + + + +function InlineSelectionToolbar({ + editableContentElement, + activeFormats +}) { + const lastFormat = activeFormats[activeFormats.length - 1]; + const lastFormatType = lastFormat?.type; + const settings = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_richText_namespaceObject.store).getFormatType(lastFormatType), [lastFormatType]); + const popoverAnchor = (0,external_wp_richText_namespaceObject.useAnchor)({ + editableContentElement, + settings + }); + return (0,external_wp_element_namespaceObject.createElement)(InlineToolbar, { + popoverAnchor: popoverAnchor + }); } -function getRotationBetweenPoints(pointA, pointB) { - return Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x) * 180 / Math.PI; +function InlineToolbar({ + popoverAnchor +}) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + placement: "top", + focusOnMount: false, + anchor: popoverAnchor, + className: "block-editor-rich-text__inline-format-toolbar", + __unstableSlotName: "block-toolbar" + }, (0,external_wp_element_namespaceObject.createElement)(navigable_toolbar, { + className: "block-editor-rich-text__inline-format-toolbar-group" + /* translators: accessibility text for the inline format toolbar */, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Format tools') + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(format_toolbar, null)))); } -/** - * Compute the output cropped area of the media in percentages and pixels. - * x/y are the top-left coordinates on the src media - */ -function computeCroppedArea(crop, mediaSize, cropSize, aspect, zoom, rotation, restrictPosition) { - if (rotation === void 0) { - rotation = 0; +const FormatToolbarContainer = ({ + inline, + editableContentElement, + value +}) => { + const hasInlineToolbar = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().hasInlineToolbar, []); + if (inline) { + return (0,external_wp_element_namespaceObject.createElement)(InlineToolbar, { + popoverAnchor: editableContentElement + }); } - if (restrictPosition === void 0) { - restrictPosition = true; + if (hasInlineToolbar) { + const activeFormats = (0,external_wp_richText_namespaceObject.getActiveFormats)(value); + if ((0,external_wp_richText_namespaceObject.isCollapsed)(value) && !activeFormats.length) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(InlineSelectionToolbar, { + editableContentElement: editableContentElement, + activeFormats: activeFormats + }); } - // if the media is rotated by the user, we cannot limit the position anymore - // as it might need to be negative. - var limitAreaFn = restrictPosition ? limitArea : noOp; - var mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation); - var mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation); - // calculate the crop area in percentages - // in the rotated space - var croppedAreaPercentages = { - x: limitAreaFn(100, ((mediaBBoxSize.width - cropSize.width / zoom) / 2 - crop.x / zoom) / mediaBBoxSize.width * 100), - y: limitAreaFn(100, ((mediaBBoxSize.height - cropSize.height / zoom) / 2 - crop.y / zoom) / mediaBBoxSize.height * 100), - width: limitAreaFn(100, cropSize.width / mediaBBoxSize.width * 100 / zoom), - height: limitAreaFn(100, cropSize.height / mediaBBoxSize.height * 100 / zoom) - }; - // we compute the pixels size naively - var widthInPixels = Math.round(limitAreaFn(mediaNaturalBBoxSize.width, croppedAreaPercentages.width * mediaNaturalBBoxSize.width / 100)); - var heightInPixels = Math.round(limitAreaFn(mediaNaturalBBoxSize.height, croppedAreaPercentages.height * mediaNaturalBBoxSize.height / 100)); - var isImgWiderThanHigh = mediaNaturalBBoxSize.width >= mediaNaturalBBoxSize.height * aspect; - // then we ensure the width and height exactly match the aspect (to avoid rounding approximations) - // if the media is wider than high, when zoom is 0, the crop height will be equals to image height - // thus we want to compute the width from the height and aspect for accuracy. - // Otherwise, we compute the height from width and aspect. - var sizePixels = isImgWiderThanHigh ? { - width: Math.round(heightInPixels * aspect), - height: heightInPixels - } : { - width: widthInPixels, - height: Math.round(widthInPixels / aspect) - }; - var croppedAreaPixels = __assign(__assign({}, sizePixels), { - x: Math.round(limitAreaFn(mediaNaturalBBoxSize.width - sizePixels.width, croppedAreaPercentages.x * mediaNaturalBBoxSize.width / 100)), - y: Math.round(limitAreaFn(mediaNaturalBBoxSize.height - sizePixels.height, croppedAreaPercentages.y * mediaNaturalBBoxSize.height / 100)) - }); - return { - croppedAreaPercentages: croppedAreaPercentages, - croppedAreaPixels: croppedAreaPixels - }; -} -/** - * Ensure the returned value is between 0 and max + + // Render regular toolbar. + return (0,external_wp_element_namespaceObject.createElement)(block_controls, { + group: "inline" + }, (0,external_wp_element_namespaceObject.createElement)(format_toolbar, null)); +}; +/* harmony default export */ var format_toolbar_container = (FormatToolbarContainer); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-undo-automatic-change.js +/** + * WordPress dependencies */ -function limitArea(max, value) { - return Math.min(max, Math.max(0, value)); -} -function noOp(_max, value) { - return value; -} -/** - * Compute crop and zoom from the croppedAreaPercentages. + + + + +/** + * Internal dependencies */ -function getInitialCropFromCroppedAreaPercentages(croppedAreaPercentages, mediaSize, rotation, cropSize, minZoom, maxZoom) { - var mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation); - // This is the inverse process of computeCroppedArea - var zoom = index_module_clamp(cropSize.width / mediaBBoxSize.width * (100 / croppedAreaPercentages.width), minZoom, maxZoom); - var crop = { - x: zoom * mediaBBoxSize.width / 2 - cropSize.width / 2 - mediaBBoxSize.width * zoom * (croppedAreaPercentages.x / 100), - y: zoom * mediaBBoxSize.height / 2 - cropSize.height / 2 - mediaBBoxSize.height * zoom * (croppedAreaPercentages.y / 100) - }; - return { - crop: crop, - zoom: zoom - }; + +function useUndoAutomaticChange() { + const { + didAutomaticChange, + getSettings + } = (0,external_wp_data_namespaceObject.useSelect)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onKeyDown(event) { + const { + keyCode + } = event; + if (event.defaultPrevented) { + return; + } + if (keyCode !== external_wp_keycodes_namespaceObject.DELETE && keyCode !== external_wp_keycodes_namespaceObject.BACKSPACE && keyCode !== external_wp_keycodes_namespaceObject.ESCAPE) { + return; + } + const { + __experimentalUndo + } = getSettings(); + if (!__experimentalUndo) { + return; + } + if (!didAutomaticChange()) { + return; + } + event.preventDefault(); + __experimentalUndo(); + } + element.addEventListener('keydown', onKeyDown); + return () => { + element.removeEventListener('keydown', onKeyDown); + }; + }, []); } -/** - * Compute zoom from the croppedAreaPixels + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-mark-persistent.js +/** + * WordPress dependencies */ -function getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) { - var mediaZoom = getMediaZoom(mediaSize); - return cropSize.height > cropSize.width ? cropSize.height / (croppedAreaPixels.height * mediaZoom) : cropSize.width / (croppedAreaPixels.width * mediaZoom); + + + +/** + * Internal dependencies + */ + +function useMarkPersistent({ + html, + value +}) { + const previousText = (0,external_wp_element_namespaceObject.useRef)(); + const hasActiveFormats = value.activeFormats && !!value.activeFormats.length; + const { + __unstableMarkLastChangeAsPersistent + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + + // Must be set synchronously to make sure it applies to the last change. + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + // Ignore mount. + if (!previousText.current) { + previousText.current = value.text; + return; + } + + // Text input, so don't create an undo level for every character. + // Create an undo level after 1 second of no input. + if (previousText.current !== value.text) { + const timeout = window.setTimeout(() => { + __unstableMarkLastChangeAsPersistent(); + }, 1000); + previousText.current = value.text; + return () => { + window.clearTimeout(timeout); + }; + } + __unstableMarkLastChangeAsPersistent(); + }, [html, hasActiveFormats]); } -/** - * Compute crop and zoom from the croppedAreaPixels + +;// CONCATENATED MODULE: external ["wp","shortcode"] +var external_wp_shortcode_namespaceObject = window["wp"]["shortcode"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/utils.js + +/** + * WordPress dependencies */ -function getInitialCropFromCroppedAreaPixels(croppedAreaPixels, mediaSize, rotation, cropSize, minZoom, maxZoom) { - if (rotation === void 0) { - rotation = 0; + + + +function addActiveFormats(value, activeFormats) { + if (activeFormats?.length) { + let index = value.formats.length; + while (index--) { + value.formats[index] = [...activeFormats, ...(value.formats[index] || [])]; + } } - var mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation); - var zoom = index_module_clamp(getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize), minZoom, maxZoom); - var cropZoom = cropSize.height > cropSize.width ? cropSize.height / croppedAreaPixels.height : cropSize.width / croppedAreaPixels.width; - var crop = { - x: ((mediaNaturalBBoxSize.width - croppedAreaPixels.width) / 2 - croppedAreaPixels.x) * cropZoom, - y: ((mediaNaturalBBoxSize.height - croppedAreaPixels.height) / 2 - croppedAreaPixels.y) * cropZoom - }; - return { - crop: crop, - zoom: zoom - }; } -/** - * Return the point that is the center of point a and b + +/** + * Get the multiline tag based on the multiline prop. + * + * @param {?(string|boolean)} multiline The multiline prop. + * + * @return {string | undefined} The multiline tag. */ -function getCenter(a, b) { - return { - x: (b.x + a.x) / 2, - y: (b.y + a.y) / 2 - }; +function getMultilineTag(multiline) { + if (multiline !== true && multiline !== 'p' && multiline !== 'li') { + return; + } + return multiline === true ? 'p' : multiline; } -function getRadianAngle(degreeValue) { - return degreeValue * Math.PI / 180; +function getAllowedFormats({ + allowedFormats, + disableFormats +}) { + if (disableFormats) { + return getAllowedFormats.EMPTY_ARRAY; + } + return allowedFormats; } -/** - * Returns the new bounding area of a rotated rectangle. +getAllowedFormats.EMPTY_ARRAY = []; +const isShortcode = text => (0,external_wp_shortcode_namespaceObject.regexp)('.*').test(text); + +/** + * Creates a link from pasted URL. + * Creates a paragraph block containing a link to the URL, and calls `onReplace`. + * + * @param {string} url The URL that could not be embedded. + * @param {Function} onReplace Function to call with the created fallback block. */ -function rotateSize(width, height, rotation) { - var rotRad = getRadianAngle(rotation); - return { - width: Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height), - height: Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height) - }; +function createLinkInParagraph(url, onReplace) { + const link = createElement("a", { + href: url + }, url); + onReplace(createBlock('core/paragraph', { + content: renderToString(link) + })); } -/** - * Clamp value between min and max + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/split-value.js +/** + * WordPress dependencies */ -function index_module_clamp(value, min, max) { - return Math.min(Math.max(value, min), max); -} -/** - * Combine multiple class names into a single string. + + +/* + * Signals to the RichText owner that the block can be replaced with two blocks + * as a result of splitting the block by pressing enter, or with blocks as a + * result of splitting the block by pasting block content in the instance. */ -function classNames() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; +function splitValue({ + value, + pastedBlocks = [], + onReplace, + onSplit +}) { + if (!onReplace || !onSplit) { + return; } - return args.filter(function (value) { - if (typeof value === 'string' && value.length > 0) { - return true; - } - return false; - }).join(' ').trim(); + + // Ensure the value has a selection. This might happen when trying to split + // an empty value before there was a `selectionchange` event. + const { + start = 0, + end = 0 + } = value; + const valueWithEnsuredSelection = { + ...value, + start, + end + }; + const blocks = []; + const [before, after] = (0,external_wp_richText_namespaceObject.split)(valueWithEnsuredSelection); + const hasPastedBlocks = pastedBlocks.length > 0; + let lastPastedBlockIndex = -1; + + // Consider the after value to be the original it is not empty and the + // before value *is* empty. + const isAfterOriginal = (0,external_wp_richText_namespaceObject.isEmpty)(before) && !(0,external_wp_richText_namespaceObject.isEmpty)(after); + + // Create a block with the content before the caret if there's no pasted + // blocks, or if there are pasted blocks and the value is not empty. We do + // not want a leading empty block on paste, but we do if we split with e.g. + // the enter key. + if (!hasPastedBlocks || !(0,external_wp_richText_namespaceObject.isEmpty)(before)) { + blocks.push(onSplit((0,external_wp_richText_namespaceObject.toHTMLString)({ + value: before + }), !isAfterOriginal)); + lastPastedBlockIndex += 1; + } + if (hasPastedBlocks) { + blocks.push(...pastedBlocks); + lastPastedBlockIndex += pastedBlocks.length; + } + + // Create a block with the content after the caret if there's no pasted + // blocks, or if there are pasted blocks and the value is not empty. We do + // not want a trailing empty block on paste, but we do if we split with e.g. + // the enter key. + if (!hasPastedBlocks || !(0,external_wp_richText_namespaceObject.isEmpty)(after)) { + blocks.push(onSplit((0,external_wp_richText_namespaceObject.toHTMLString)({ + value: after + }), isAfterOriginal)); + } + + // If there are pasted blocks, set the selection to the last one. Otherwise, + // set the selection to the second block. + const indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1; + + // If there are pasted blocks, move the caret to the end of the selected + // block Otherwise, retain the default value. + const initialPosition = hasPastedBlocks ? -1 : 0; + onReplace(blocks, indexToSelect, initialPosition); } -var css_248z = ".reactEasyCrop_Container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n user-select: none;\n touch-action: none;\n cursor: move;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.reactEasyCrop_Image,\n.reactEasyCrop_Video {\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\n}\n\n.reactEasyCrop_Contain {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.reactEasyCrop_Cover_Horizontal {\n width: 100%;\n height: auto;\n}\n.reactEasyCrop_Cover_Vertical {\n width: auto;\n height: 100%;\n}\n\n.reactEasyCrop_CropArea {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-sizing: border-box;\n box-shadow: 0 0 0 9999em;\n color: rgba(0, 0, 0, 0.5);\n overflow: hidden;\n}\n\n.reactEasyCrop_CropAreaRound {\n border-radius: 50%;\n}\n\n.reactEasyCrop_CropAreaGrid::before {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 0;\n bottom: 0;\n left: 33.33%;\n right: 33.33%;\n border-top: 0;\n border-bottom: 0;\n}\n\n.reactEasyCrop_CropAreaGrid::after {\n content: ' ';\n box-sizing: border-box;\n position: absolute;\n border: 1px solid rgba(255, 255, 255, 0.5);\n top: 33.33%;\n bottom: 33.33%;\n left: 0;\n right: 0;\n border-left: 0;\n border-right: 0;\n}\n"; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-paste-handler.js +/** + * WordPress dependencies + */ + + + + + + + +/** + * Internal dependencies + */ + -var MIN_ZOOM = 1; -var MAX_ZOOM = 3; -var Cropper = /** @class */function (_super) { - __extends(Cropper, _super); - function Cropper() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.imageRef = external_React_default().createRef(); - _this.videoRef = external_React_default().createRef(); - _this.containerRef = null; - _this.styleRef = null; - _this.containerRect = null; - _this.mediaSize = { - width: 0, - height: 0, - naturalWidth: 0, - naturalHeight: 0 - }; - _this.dragStartPosition = { - x: 0, - y: 0 - }; - _this.dragStartCrop = { - x: 0, - y: 0 - }; - _this.gestureZoomStart = 0; - _this.gestureRotationStart = 0; - _this.isTouching = false; - _this.lastPinchDistance = 0; - _this.lastPinchRotation = 0; - _this.rafDragTimeout = null; - _this.rafPinchTimeout = null; - _this.wheelTimer = null; - _this.currentDoc = typeof document !== 'undefined' ? document : null; - _this.currentWindow = typeof window !== 'undefined' ? window : null; - _this.resizeObserver = null; - _this.state = { - cropSize: null, - hasWheelJustStarted: false - }; - _this.initResizeObserver = function () { - if (typeof window.ResizeObserver === 'undefined' || !_this.containerRef) { + + +/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */ + +function usePasteHandler(props) { + const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); + propsRef.current = props; + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function _onPaste(event) { + const { + isSelected, + disableFormats, + onChange, + value, + formatTypes, + tagName, + onReplace, + onSplit, + __unstableEmbedURLOnPaste, + preserveWhiteSpace, + pastePlainText + } = propsRef.current; + if (!isSelected) { return; } - var isFirstResize = true; - _this.resizeObserver = new window.ResizeObserver(function (entries) { - if (isFirstResize) { - isFirstResize = false; // observe() is called on mount, we don't want to trigger a recompute on mount + const { + clipboardData + } = event; + let plainText = ''; + let html = ''; + + // IE11 only supports `Text` as an argument for `getData` and will + // otherwise throw an invalid argument error, so we try the standard + // arguments first, then fallback to `Text` if they fail. + try { + plainText = clipboardData.getData('text/plain'); + html = clipboardData.getData('text/html'); + } catch (error1) { + try { + html = clipboardData.getData('Text'); + } catch (error2) { + // Some browsers like UC Browser paste plain text by default and + // don't support clipboardData at all, so allow default + // behaviour. return; } - _this.computeSizes(); - }); - _this.resizeObserver.observe(_this.containerRef); - }; - // this is to prevent Safari on iOS >= 10 to zoom the page - _this.preventZoomSafari = function (e) { - return e.preventDefault(); - }; - _this.cleanEvents = function () { - if (!_this.currentDoc) return; - _this.currentDoc.removeEventListener('mousemove', _this.onMouseMove); - _this.currentDoc.removeEventListener('mouseup', _this.onDragStopped); - _this.currentDoc.removeEventListener('touchmove', _this.onTouchMove); - _this.currentDoc.removeEventListener('touchend', _this.onDragStopped); - _this.currentDoc.removeEventListener('gesturemove', _this.onGestureMove); - _this.currentDoc.removeEventListener('gestureend', _this.onGestureEnd); - }; - _this.clearScrollEvent = function () { - if (_this.containerRef) _this.containerRef.removeEventListener('wheel', _this.onWheel); - if (_this.wheelTimer) { - clearTimeout(_this.wheelTimer); } - }; - _this.onMediaLoad = function () { - var cropSize = _this.computeSizes(); - if (cropSize) { - _this.emitCropData(); - _this.setInitialCrop(cropSize); + + // Remove Windows-specific metadata appended within copied HTML text. + html = removeWindowsFragments(html); + + // Strip meta tag. + html = removeCharsetMetaTag(html); + event.preventDefault(); + + // Allows us to ask for this information when we get a report. + window.console.log('Received HTML:\n\n', html); + window.console.log('Received plain text:\n\n', plainText); + if (disableFormats) { + onChange((0,external_wp_richText_namespaceObject.insert)(value, plainText)); + return; } - if (_this.props.onMediaLoaded) { - _this.props.onMediaLoaded(_this.mediaSize); + const transformed = formatTypes.reduce((accumlator, { + __unstablePasteRule + }) => { + // Only allow one transform. + if (__unstablePasteRule && accumlator === value) { + accumlator = __unstablePasteRule(value, { + html, + plainText + }); + } + return accumlator; + }, value); + if (transformed !== value) { + onChange(transformed); + return; } - }; - _this.setInitialCrop = function (cropSize) { - if (_this.props.initialCroppedAreaPercentages) { - var _a = getInitialCropFromCroppedAreaPercentages(_this.props.initialCroppedAreaPercentages, _this.mediaSize, _this.props.rotation, cropSize, _this.props.minZoom, _this.props.maxZoom), - crop = _a.crop, - zoom = _a.zoom; - _this.props.onCropChange(crop); - _this.props.onZoomChange && _this.props.onZoomChange(zoom); - } else if (_this.props.initialCroppedAreaPixels) { - var _b = getInitialCropFromCroppedAreaPixels(_this.props.initialCroppedAreaPixels, _this.mediaSize, _this.props.rotation, cropSize, _this.props.minZoom, _this.props.maxZoom), - crop = _b.crop, - zoom = _b.zoom; - _this.props.onCropChange(crop); - _this.props.onZoomChange && _this.props.onZoomChange(zoom); + const files = [...(0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(clipboardData)]; + const isInternal = clipboardData.getData('rich-text') === 'true'; + + // If the data comes from a rich text instance, we can directly use it + // without filtering the data. The filters are only meant for externally + // pasted content and remove inline styles. + if (isInternal) { + const pastedValue = (0,external_wp_richText_namespaceObject.create)({ + html, + preserveWhiteSpace + }); + addActiveFormats(pastedValue, value.activeFormats); + onChange((0,external_wp_richText_namespaceObject.insert)(value, pastedValue)); + return; } - }; - _this.computeSizes = function () { - var _a, _b, _c, _d, _e, _f; - var mediaRef = _this.imageRef.current || _this.videoRef.current; - if (mediaRef && _this.containerRef) { - _this.containerRect = _this.containerRef.getBoundingClientRect(); - var containerAspect = _this.containerRect.width / _this.containerRect.height; - var naturalWidth = ((_a = _this.imageRef.current) === null || _a === void 0 ? void 0 : _a.naturalWidth) || ((_b = _this.videoRef.current) === null || _b === void 0 ? void 0 : _b.videoWidth) || 0; - var naturalHeight = ((_c = _this.imageRef.current) === null || _c === void 0 ? void 0 : _c.naturalHeight) || ((_d = _this.videoRef.current) === null || _d === void 0 ? void 0 : _d.videoHeight) || 0; - var isMediaScaledDown = mediaRef.offsetWidth < naturalWidth || mediaRef.offsetHeight < naturalHeight; - var mediaAspect = naturalWidth / naturalHeight; - // We do not rely on the offsetWidth/offsetHeight if the media is scaled down - // as the values they report are rounded. That will result in precision losses - // when calculating zoom. We use the fact that the media is positionned relative - // to the container. That allows us to use the container's dimensions - // and natural aspect ratio of the media to calculate accurate media size. - // However, for this to work, the container should not be rotated - var renderedMediaSize = void 0; - if (isMediaScaledDown) { - switch (_this.props.objectFit) { - default: - case 'contain': - renderedMediaSize = containerAspect > mediaAspect ? { - width: _this.containerRect.height * mediaAspect, - height: _this.containerRect.height - } : { - width: _this.containerRect.width, - height: _this.containerRect.width / mediaAspect - }; - break; - case 'horizontal-cover': - renderedMediaSize = { - width: _this.containerRect.width, - height: _this.containerRect.width / mediaAspect - }; - break; - case 'vertical-cover': - renderedMediaSize = { - width: _this.containerRect.height * mediaAspect, - height: _this.containerRect.height - }; - break; - case 'auto-cover': - renderedMediaSize = naturalWidth > naturalHeight ? { - width: _this.containerRect.width, - height: _this.containerRect.width / mediaAspect - } : { - width: _this.containerRect.height * mediaAspect, - height: _this.containerRect.height - }; - break; + if (pastePlainText) { + onChange((0,external_wp_richText_namespaceObject.insert)(value, (0,external_wp_richText_namespaceObject.create)({ + text: plainText + }))); + return; + } + if (files?.length) { + // Allows us to ask for this information when we get a report. + // eslint-disable-next-line no-console + window.console.log('Received items:\n\n', files); + } + + // Process any attached files, unless we infer that the files in + // question are redundant "screenshots" of the actual HTML payload, + // as created by certain office-type programs. + // + // @see shouldDismissPastedFiles + if (files?.length && !shouldDismissPastedFiles(files, html, plainText)) { + const fromTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'); + const blocks = files.reduce((accumulator, file) => { + const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file])); + if (transformation) { + accumulator.push(transformation.transform([file])); } + return accumulator; + }, []).flat(); + if (!blocks.length) { + return; + } + if (onReplace && (0,external_wp_richText_namespaceObject.isEmpty)(value)) { + onReplace(blocks); } else { - renderedMediaSize = { - width: mediaRef.offsetWidth, - height: mediaRef.offsetHeight - }; + splitValue({ + value, + pastedBlocks: blocks, + onReplace, + onSplit + }); } - _this.mediaSize = __assign(__assign({}, renderedMediaSize), { - naturalWidth: naturalWidth, - naturalHeight: naturalHeight + return; + } + let mode = onReplace && onSplit ? 'AUTO' : 'INLINE'; + + // Force the blocks mode when the user is pasting + // on a new line & the content resembles a shortcode. + // Otherwise it's going to be detected as inline + // and the shortcode won't be replaced. + if (mode === 'AUTO' && (0,external_wp_richText_namespaceObject.isEmpty)(value) && isShortcode(plainText)) { + mode = 'BLOCKS'; + } + if (__unstableEmbedURLOnPaste && (0,external_wp_richText_namespaceObject.isEmpty)(value) && (0,external_wp_url_namespaceObject.isURL)(plainText.trim())) { + mode = 'BLOCKS'; + } + const content = (0,external_wp_blocks_namespaceObject.pasteHandler)({ + HTML: html, + plainText, + mode, + tagName, + preserveWhiteSpace + }); + if (typeof content === 'string') { + const valueToInsert = (0,external_wp_richText_namespaceObject.create)({ + html: content }); - // set media size in the parent - if (_this.props.setMediaSize) { - _this.props.setMediaSize(_this.mediaSize); - } - var cropSize = _this.props.cropSize ? _this.props.cropSize : getCropSize(_this.mediaSize.width, _this.mediaSize.height, _this.containerRect.width, _this.containerRect.height, _this.props.aspect, _this.props.rotation); - if (((_e = _this.state.cropSize) === null || _e === void 0 ? void 0 : _e.height) !== cropSize.height || ((_f = _this.state.cropSize) === null || _f === void 0 ? void 0 : _f.width) !== cropSize.width) { - _this.props.onCropSizeChange && _this.props.onCropSizeChange(cropSize); - } - _this.setState({ - cropSize: cropSize - }, _this.recomputeCropPosition); - // pass crop size to parent - if (_this.props.setCropSize) { - _this.props.setCropSize(cropSize); + addActiveFormats(valueToInsert, value.activeFormats); + onChange((0,external_wp_richText_namespaceObject.insert)(value, valueToInsert)); + } else if (content.length > 0) { + if (onReplace && (0,external_wp_richText_namespaceObject.isEmpty)(value)) { + onReplace(content, content.length - 1, -1); + } else { + splitValue({ + value, + pastedBlocks: content, + onReplace, + onSplit + }); } - return cropSize; } + } + element.addEventListener('paste', _onPaste); + return () => { + element.removeEventListener('paste', _onPaste); }; - _this.onMouseDown = function (e) { - if (!_this.currentDoc) return; - e.preventDefault(); - _this.currentDoc.addEventListener('mousemove', _this.onMouseMove); - _this.currentDoc.addEventListener('mouseup', _this.onDragStopped); - _this.onDragStart(Cropper.getMousePoint(e)); - }; - _this.onMouseMove = function (e) { - return _this.onDrag(Cropper.getMousePoint(e)); - }; - _this.onTouchStart = function (e) { - if (!_this.currentDoc) return; - _this.isTouching = true; - if (_this.props.onTouchRequest && !_this.props.onTouchRequest(e)) { + }, []); +} + +/** + * Normalizes a given string of HTML to remove the Windows-specific "Fragment" + * comments and any preceding and trailing content. + * + * @param {string} html the html to be normalized + * @return {string} the normalized html + */ +function removeWindowsFragments(html) { + const startStr = ''; + const startIdx = html.indexOf(startStr); + if (startIdx > -1) { + html = html.substring(startIdx + startStr.length); + } else { + // No point looking for EndFragment + return html; + } + const endStr = ''; + const endIdx = html.indexOf(endStr); + if (endIdx > -1) { + html = html.substring(0, endIdx); + } + return html; +} + +/** + * Removes the charset meta tag inserted by Chromium. + * See: + * - https://github.com/WordPress/gutenberg/issues/33585 + * - https://bugs.chromium.org/p/chromium/issues/detail?id=1264616#c4 + * + * @param {string} html the html to be stripped of the meta tag. + * @return {string} the cleaned html + */ +function removeCharsetMetaTag(html) { + const metaTag = ``; + if (html.startsWith(metaTag)) { + return html.slice(metaTag.length); + } + return html; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-before-input-rules.js +/** + * WordPress dependencies + */ + + + + + + +/** + * Internal dependencies + */ + + +/** + * When typing over a selection, the selection will we wrapped by a matching + * character pair. The second character is optional, it defaults to the first + * character. + * + * @type {string[]} Array of character pairs. + */ +const wrapSelectionSettings = ['`', '"', "'", '“”', '‘’']; +function useBeforeInputRules(props) { + const { + __unstableMarkLastChangeAsPersistent, + __unstableMarkAutomaticChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); + propsRef.current = props; + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onInput(event) { + const { + inputType, + data + } = event; + const { + value, + onChange + } = propsRef.current; + + // Only run the rules when inserting text. + if (inputType !== 'insertText') { return; } - _this.currentDoc.addEventListener('touchmove', _this.onTouchMove, { - passive: false - }); // iOS 11 now defaults to passive: true - _this.currentDoc.addEventListener('touchend', _this.onDragStopped); - if (e.touches.length === 2) { - _this.onPinchStart(e); - } else if (e.touches.length === 1) { - _this.onDragStart(Cropper.getTouchPoint(e.touches[0])); + if ((0,external_wp_richText_namespaceObject.isCollapsed)(value)) { + return; } - }; - _this.onTouchMove = function (e) { - // Prevent whole page from scrolling on iOS. - e.preventDefault(); - if (e.touches.length === 2) { - _this.onPinchMove(e); - } else if (e.touches.length === 1) { - _this.onDrag(Cropper.getTouchPoint(e.touches[0])); + const pair = (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.wrapSelectionSettings', wrapSelectionSettings).find(([startChar, endChar]) => startChar === data || endChar === data); + if (!pair) { + return; } + const [startChar, endChar = startChar] = pair; + const start = value.start; + const end = value.end + startChar.length; + let newValue = (0,external_wp_richText_namespaceObject.insert)(value, startChar, start, start); + newValue = (0,external_wp_richText_namespaceObject.insert)(newValue, endChar, end, end); + __unstableMarkLastChangeAsPersistent(); + onChange(newValue); + __unstableMarkAutomaticChange(); + const init = {}; + for (const key in event) { + init[key] = event[key]; + } + init.data = endChar; + const { + ownerDocument + } = element; + const { + defaultView + } = ownerDocument; + const newEvent = new defaultView.InputEvent('input', init); + + // Dispatch an `input` event with the new data. This will trigger the + // input rules. + // Postpone the `input` to the next event loop tick so that the dispatch + // doesn't happen synchronously in the middle of `beforeinput` dispatch. + // This is closer to how native `input` event would be timed, and also + // makes sure that the `input` event is dispatched only after the `onChange` + // call few lines above has fully updated the data store state and rerendered + // all affected components. + window.queueMicrotask(() => { + event.target.dispatchEvent(newEvent); + }); + event.preventDefault(); + } + element.addEventListener('beforeinput', onInput); + return () => { + element.removeEventListener('beforeinput', onInput); }; - _this.onGestureStart = function (e) { - if (!_this.currentDoc) return; - e.preventDefault(); - _this.currentDoc.addEventListener('gesturechange', _this.onGestureMove); - _this.currentDoc.addEventListener('gestureend', _this.onGestureEnd); - _this.gestureZoomStart = _this.props.zoom; - _this.gestureRotationStart = _this.props.rotation; - }; - _this.onGestureMove = function (e) { - e.preventDefault(); - if (_this.isTouching) { - // this is to avoid conflict between gesture and touch events + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/prevent-event-discovery.js +/** + * WordPress dependencies + */ + +function preventEventDiscovery(value) { + const searchText = 'tales of gutenberg'; + const addText = ' 🐡🐢🦀🐤🦋🐘🐧🐹🦁🦄🦍🐼🐿🎃🐴🐝🐆🦕🦔🌱🍇π🍌🐉💧🥨🌌🍂🍠🥦🥚🥝🎟🥥🥒🛵🥖🍒🍯🎾🎲🐺🐚🐮⌛️'; + const { + start, + text + } = value; + if (start < searchText.length) { + return value; + } + const charactersBefore = text.slice(start - searchText.length, start); + if (charactersBefore.toLowerCase() !== searchText) { + return value; + } + return (0,external_wp_richText_namespaceObject.insert)(value, addText); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-input-rules.js +/** + * WordPress dependencies + */ + + + + + + +/** + * Internal dependencies + */ + + + +function findSelection(blocks) { + let i = blocks.length; + while (i--) { + const attributeKey = retrieveSelectedAttribute(blocks[i].attributes); + if (attributeKey) { + blocks[i].attributes[attributeKey] = blocks[i].attributes[attributeKey].replace(START_OF_SELECTED_AREA, ''); + return [blocks[i].clientId, attributeKey, 0, 0]; + } + const nestedSelection = findSelection(blocks[i].innerBlocks); + if (nestedSelection) { + return nestedSelection; + } + } + return []; +} +function useInputRules(props) { + const { + __unstableMarkLastChangeAsPersistent, + __unstableMarkAutomaticChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); + propsRef.current = props; + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function inputRule() { + const { + getValue, + onReplace, + selectionChange + } = propsRef.current; + if (!onReplace) { return; } - var point = Cropper.getMousePoint(e); - var newZoom = _this.gestureZoomStart - 1 + e.scale; - _this.setNewZoom(newZoom, point, { - shouldUpdatePosition: true - }); - if (_this.props.onRotationChange) { - var newRotation = _this.gestureRotationStart + e.rotation; - _this.props.onRotationChange(newRotation); + + // We must use getValue() here because value may be update + // asynchronously. + const value = getValue(); + const { + start, + text + } = value; + const characterBefore = text.slice(start - 1, start); + + // The character right before the caret must be a plain space. + if (characterBefore !== ' ') { + return; } - }; - _this.onGestureEnd = function (e) { - _this.cleanEvents(); - }; - _this.onDragStart = function (_a) { - var _b, _c; - var x = _a.x, - y = _a.y; - _this.dragStartPosition = { - x: x, - y: y - }; - _this.dragStartCrop = __assign({}, _this.props.crop); - (_c = (_b = _this.props).onInteractionStart) === null || _c === void 0 ? void 0 : _c.call(_b); - }; - _this.onDrag = function (_a) { - var x = _a.x, - y = _a.y; - if (!_this.currentWindow) return; - if (_this.rafDragTimeout) _this.currentWindow.cancelAnimationFrame(_this.rafDragTimeout); - _this.rafDragTimeout = _this.currentWindow.requestAnimationFrame(function () { - if (!_this.state.cropSize) return; - if (x === undefined || y === undefined) return; - var offsetX = x - _this.dragStartPosition.x; - var offsetY = y - _this.dragStartPosition.y; - var requestedPosition = { - x: _this.dragStartCrop.x + offsetX, - y: _this.dragStartCrop.y + offsetY - }; - var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : requestedPosition; - _this.props.onCropChange(newPosition); + const trimmedTextBefore = text.slice(0, start).trim(); + const prefixTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from').filter(({ + type + }) => type === 'prefix'); + const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(prefixTransforms, ({ + prefix + }) => { + return trimmedTextBefore === prefix; }); - }; - _this.onDragStopped = function () { - var _a, _b; - _this.isTouching = false; - _this.cleanEvents(); - _this.emitCropData(); - (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a); - }; - _this.onWheel = function (e) { - if (!_this.currentWindow) return; - if (_this.props.onWheelRequest && !_this.props.onWheelRequest(e)) { + if (!transformation) { return; } - e.preventDefault(); - var point = Cropper.getMousePoint(e); - var pixelY = normalize_wheel_default()(e).pixelY; - var newZoom = _this.props.zoom - pixelY * _this.props.zoomSpeed / 200; - _this.setNewZoom(newZoom, point, { - shouldUpdatePosition: true + const content = (0,external_wp_richText_namespaceObject.toHTMLString)({ + value: (0,external_wp_richText_namespaceObject.insert)(value, START_OF_SELECTED_AREA, 0, start) }); - if (!_this.state.hasWheelJustStarted) { - _this.setState({ - hasWheelJustStarted: true - }, function () { - var _a, _b; - return (_b = (_a = _this.props).onInteractionStart) === null || _b === void 0 ? void 0 : _b.call(_a); - }); + const block = transformation.transform(content); + selectionChange(...findSelection([block])); + onReplace([block]); + __unstableMarkAutomaticChange(); + return true; + } + function onInput(event) { + const { + inputType, + type + } = event; + const { + getValue, + onChange, + __unstableAllowPrefixTransformations, + formatTypes + } = propsRef.current; + + // Only run input rules when inserting text. + if (inputType !== 'insertText' && type !== 'compositionend') { + return; } - if (_this.wheelTimer) { - clearTimeout(_this.wheelTimer); + if (__unstableAllowPrefixTransformations && inputRule) { + if (inputRule()) return; } - _this.wheelTimer = _this.currentWindow.setTimeout(function () { - return _this.setState({ - hasWheelJustStarted: false - }, function () { - var _a, _b; - return (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a); + const value = getValue(); + const transformed = formatTypes.reduce((accumlator, { + __unstableInputRule + }) => { + if (__unstableInputRule) { + accumlator = __unstableInputRule(accumlator); + } + return accumlator; + }, preventEventDiscovery(value)); + if (transformed !== value) { + __unstableMarkLastChangeAsPersistent(); + onChange({ + ...transformed, + activeFormats: value.activeFormats }); - }, 250); - }; - _this.getPointOnContainer = function (_a) { - var x = _a.x, - y = _a.y; - if (!_this.containerRect) { - throw new Error('The Cropper is not mounted'); - } - return { - x: _this.containerRect.width / 2 - (x - _this.containerRect.left), - y: _this.containerRect.height / 2 - (y - _this.containerRect.top) - }; - }; - _this.getPointOnMedia = function (_a) { - var x = _a.x, - y = _a.y; - var _b = _this.props, - crop = _b.crop, - zoom = _b.zoom; - return { - x: (x + crop.x) / zoom, - y: (y + crop.y) / zoom - }; - }; - _this.setNewZoom = function (zoom, point, _a) { - var _b = _a === void 0 ? {} : _a, - _c = _b.shouldUpdatePosition, - shouldUpdatePosition = _c === void 0 ? true : _c; - if (!_this.state.cropSize || !_this.props.onZoomChange) return; - var newZoom = index_module_clamp(zoom, _this.props.minZoom, _this.props.maxZoom); - if (shouldUpdatePosition) { - var zoomPoint = _this.getPointOnContainer(point); - var zoomTarget = _this.getPointOnMedia(zoomPoint); - var requestedPosition = { - x: zoomTarget.x * newZoom - zoomPoint.x, - y: zoomTarget.y * newZoom - zoomPoint.y - }; - var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, newZoom, _this.props.rotation) : requestedPosition; - _this.props.onCropChange(newPosition); - } - _this.props.onZoomChange(newZoom); - }; - _this.getCropData = function () { - if (!_this.state.cropSize) { - return null; + __unstableMarkAutomaticChange(); } - // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ValentinH/react-easy-crop/issues/6) - var restrictedPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop; - return computeCroppedArea(restrictedPosition, _this.mediaSize, _this.state.cropSize, _this.getAspect(), _this.props.zoom, _this.props.rotation, _this.props.restrictPosition); + } + element.addEventListener('input', onInput); + element.addEventListener('compositionend', onInput); + return () => { + element.removeEventListener('input', onInput); + element.removeEventListener('compositionend', onInput); }; - _this.emitCropData = function () { - var cropData = _this.getCropData(); - if (!cropData) return; - var croppedAreaPercentages = cropData.croppedAreaPercentages, - croppedAreaPixels = cropData.croppedAreaPixels; - if (_this.props.onCropComplete) { - _this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels); - } - if (_this.props.onCropAreaChange) { - _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels); + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-delete.js +/** + * WordPress dependencies + */ + + + + +function useDelete(props) { + const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); + propsRef.current = props; + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onKeyDown(event) { + const { + keyCode + } = event; + if (event.defaultPrevented) { + return; } - }; - _this.emitCropAreaChange = function () { - var cropData = _this.getCropData(); - if (!cropData) return; - var croppedAreaPercentages = cropData.croppedAreaPercentages, - croppedAreaPixels = cropData.croppedAreaPixels; - if (_this.props.onCropAreaChange) { - _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels); + const { + value, + onMerge, + onRemove + } = propsRef.current; + if (keyCode === external_wp_keycodes_namespaceObject.DELETE || keyCode === external_wp_keycodes_namespaceObject.BACKSPACE) { + const { + start, + end, + text + } = value; + const isReverse = keyCode === external_wp_keycodes_namespaceObject.BACKSPACE; + const hasActiveFormats = value.activeFormats && !!value.activeFormats.length; + + // Only process delete if the key press occurs at an uncollapsed edge. + if (!(0,external_wp_richText_namespaceObject.isCollapsed)(value) || hasActiveFormats || isReverse && start !== 0 || !isReverse && end !== text.length) { + return; + } + if (onMerge) { + onMerge(!isReverse); + } + + // Only handle remove on Backspace. This serves dual-purpose of being + // an intentional user interaction distinguishing between Backspace and + // Delete to remove the empty field, but also to avoid merge & remove + // causing destruction of two fields (merge, then removed merged). + if (onRemove && (0,external_wp_richText_namespaceObject.isEmpty)(value) && isReverse) { + onRemove(!isReverse); + } + event.preventDefault(); } + } + element.addEventListener('keydown', onKeyDown); + return () => { + element.removeEventListener('keydown', onKeyDown); }; - _this.recomputeCropPosition = function () { - if (!_this.state.cropSize) return; - var newPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop; - _this.props.onCropChange(newPosition); - _this.emitCropData(); - }; - return _this; - } - Cropper.prototype.componentDidMount = function () { - if (!this.currentDoc || !this.currentWindow) return; - if (this.containerRef) { - if (this.containerRef.ownerDocument) { - this.currentDoc = this.containerRef.ownerDocument; + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-enter.js +/** + * WordPress dependencies + */ + + + + + + + +/** + * Internal dependencies + */ + + +function useEnter(props) { + const registry = (0,external_wp_data_namespaceObject.useRegistry)(); + const { + __unstableMarkAutomaticChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); + propsRef.current = props; + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onKeyDown(event) { + if (event.defaultPrevented) { + return; } - if (this.currentDoc.defaultView) { - this.currentWindow = this.currentDoc.defaultView; + if (event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) { + return; } - this.initResizeObserver(); - // only add window resize listener if ResizeObserver is not supported. Otherwise, it would be redundant - if (typeof window.ResizeObserver === 'undefined') { - this.currentWindow.addEventListener('resize', this.computeSizes); + const { + removeEditorOnlyFormats, + value, + onReplace, + onSplit, + onChange, + disableLineBreaks, + onSplitAtEnd, + onSplitAtDoubleLineEnd + } = propsRef.current; + event.preventDefault(); + const _value = { + ...value + }; + _value.formats = removeEditorOnlyFormats(value); + const canSplit = onReplace && onSplit; + if (onReplace) { + const transforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from').filter(({ + type + }) => type === 'enter'); + const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(transforms, item => { + return item.regExp.test(_value.text); + }); + if (transformation) { + onReplace([transformation.transform({ + content: _value.text + })]); + __unstableMarkAutomaticChange(); + } } - this.props.zoomWithScroll && this.containerRef.addEventListener('wheel', this.onWheel, { - passive: false - }); - this.containerRef.addEventListener('gesturestart', this.onGestureStart); - } - if (!this.props.disableAutomaticStylesInjection) { - this.styleRef = this.currentDoc.createElement('style'); - this.styleRef.setAttribute('type', 'text/css'); - if (this.props.nonce) { - this.styleRef.setAttribute('nonce', this.props.nonce); + const { + text, + start, + end + } = _value; + if (event.shiftKey) { + if (!disableLineBreaks) { + onChange((0,external_wp_richText_namespaceObject.insert)(_value, '\n')); + } + } else if (canSplit) { + splitValue({ + value: _value, + onReplace, + onSplit + }); + } else if (onSplitAtEnd && start === end && end === text.length) { + onSplitAtEnd(); + } else if ( + // For some blocks it's desirable to split at the end of the + // block when there are two line breaks at the end of the + // block, so triple Enter exits the block. + onSplitAtDoubleLineEnd && start === end && end === text.length && text.slice(-2) === '\n\n') { + registry.batch(() => { + _value.start = _value.end - 2; + onChange((0,external_wp_richText_namespaceObject.remove)(_value)); + onSplitAtDoubleLineEnd(); + }); + } else if (!disableLineBreaks) { + onChange((0,external_wp_richText_namespaceObject.insert)(_value, '\n')); } - this.styleRef.innerHTML = css_248z; - this.currentDoc.head.appendChild(this.styleRef); - } - // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called - if (this.imageRef.current && this.imageRef.current.complete) { - this.onMediaLoad(); - } - // set image and video refs in the parent if the callbacks exist - if (this.props.setImageRef) { - this.props.setImageRef(this.imageRef); - } - if (this.props.setVideoRef) { - this.props.setVideoRef(this.videoRef); - } - }; - Cropper.prototype.componentWillUnmount = function () { - var _a, _b; - if (!this.currentDoc || !this.currentWindow) return; - if (typeof window.ResizeObserver === 'undefined') { - this.currentWindow.removeEventListener('resize', this.computeSizes); - } - (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect(); - if (this.containerRef) { - this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari); - } - if (this.styleRef) { - (_b = this.styleRef.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.styleRef); } - this.cleanEvents(); - this.props.zoomWithScroll && this.clearScrollEvent(); + element.addEventListener('keydown', onKeyDown); + return () => { + element.removeEventListener('keydown', onKeyDown); + }; + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-format-types.js +/** + * WordPress dependencies + */ + + + +function formatTypesSelector(select) { + return select(external_wp_richText_namespaceObject.store).getFormatTypes(); +} + +/** + * Set of all interactive content tags. + * + * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content + */ +const interactiveContentTags = new Set(['a', 'audio', 'button', 'details', 'embed', 'iframe', 'input', 'label', 'select', 'textarea', 'video']); +function prefixSelectKeys(selected, prefix) { + if (typeof selected !== 'object') return { + [prefix]: selected }; - Cropper.prototype.componentDidUpdate = function (prevProps) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j; - if (prevProps.rotation !== this.props.rotation) { - this.computeSizes(); - this.recomputeCropPosition(); - } else if (prevProps.aspect !== this.props.aspect) { - this.computeSizes(); - } else if (prevProps.zoom !== this.props.zoom) { - this.recomputeCropPosition(); - } else if (((_a = prevProps.cropSize) === null || _a === void 0 ? void 0 : _a.height) !== ((_b = this.props.cropSize) === null || _b === void 0 ? void 0 : _b.height) || ((_c = prevProps.cropSize) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = this.props.cropSize) === null || _d === void 0 ? void 0 : _d.width)) { - this.computeSizes(); - } else if (((_e = prevProps.crop) === null || _e === void 0 ? void 0 : _e.x) !== ((_f = this.props.crop) === null || _f === void 0 ? void 0 : _f.x) || ((_g = prevProps.crop) === null || _g === void 0 ? void 0 : _g.y) !== ((_h = this.props.crop) === null || _h === void 0 ? void 0 : _h.y)) { - this.emitCropAreaChange(); + return Object.fromEntries(Object.entries(selected).map(([key, value]) => [`${prefix}.${key}`, value])); +} +function getPrefixedSelectKeys(selected, prefix) { + if (selected[prefix]) return selected[prefix]; + return Object.keys(selected).filter(key => key.startsWith(prefix + '.')).reduce((accumulator, key) => { + accumulator[key.slice(prefix.length + 1)] = selected[key]; + return accumulator; + }, {}); +} + +/** + * This hook provides RichText with the `formatTypes` and its derived props from + * experimental format type settings. + * + * @param {Object} $0 Options + * @param {string} $0.clientId Block client ID. + * @param {string} $0.identifier Block attribute. + * @param {boolean} $0.withoutInteractiveFormatting Whether to clean the interactive formattings or not. + * @param {Array} $0.allowedFormats Allowed formats + */ +function useFormatTypes({ + clientId, + identifier, + withoutInteractiveFormatting, + allowedFormats +}) { + const allFormatTypes = (0,external_wp_data_namespaceObject.useSelect)(formatTypesSelector, []); + const formatTypes = (0,external_wp_element_namespaceObject.useMemo)(() => { + return allFormatTypes.filter(({ + name, + interactive, + tagName + }) => { + if (allowedFormats && !allowedFormats.includes(name)) { + return false; + } + if (withoutInteractiveFormatting && (interactive || interactiveContentTags.has(tagName))) { + return false; + } + return true; + }); + }, [allFormatTypes, allowedFormats, withoutInteractiveFormatting]); + const keyedSelected = (0,external_wp_data_namespaceObject.useSelect)(select => formatTypes.reduce((accumulator, type) => { + if (!type.__experimentalGetPropsForEditableTreePreparation) { + return accumulator; } - if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) { - this.props.zoomWithScroll ? this.containerRef.addEventListener('wheel', this.onWheel, { - passive: false - }) : this.clearScrollEvent(); + return { + ...accumulator, + ...prefixSelectKeys(type.__experimentalGetPropsForEditableTreePreparation(select, { + richTextIdentifier: identifier, + blockClientId: clientId + }), type.name) + }; + }, {}), [formatTypes, clientId, identifier]); + const dispatch = (0,external_wp_data_namespaceObject.useDispatch)(); + const prepareHandlers = []; + const valueHandlers = []; + const changeHandlers = []; + const dependencies = []; + for (const key in keyedSelected) { + dependencies.push(keyedSelected[key]); + } + formatTypes.forEach(type => { + if (type.__experimentalCreatePrepareEditableTree) { + const handler = type.__experimentalCreatePrepareEditableTree(getPrefixedSelectKeys(keyedSelected, type.name), { + richTextIdentifier: identifier, + blockClientId: clientId + }); + if (type.__experimentalCreateOnChangeEditableValue) { + valueHandlers.push(handler); + } else { + prepareHandlers.push(handler); + } } - if (prevProps.video !== this.props.video) { - (_j = this.videoRef.current) === null || _j === void 0 ? void 0 : _j.load(); + if (type.__experimentalCreateOnChangeEditableValue) { + let dispatchers = {}; + if (type.__experimentalGetPropsForEditableTreeChangeHandler) { + dispatchers = type.__experimentalGetPropsForEditableTreeChangeHandler(dispatch, { + richTextIdentifier: identifier, + blockClientId: clientId + }); + } + const selected = getPrefixedSelectKeys(keyedSelected, type.name); + changeHandlers.push(type.__experimentalCreateOnChangeEditableValue({ + ...(typeof selected === 'object' ? selected : {}), + ...dispatchers + }, { + richTextIdentifier: identifier, + blockClientId: clientId + })); } + }); + return { + formatTypes, + prepareHandlers, + valueHandlers, + changeHandlers, + dependencies }; - Cropper.prototype.getAspect = function () { - var _a = this.props, - cropSize = _a.cropSize, - aspect = _a.aspect; - if (cropSize) { - return cropSize.width / cropSize.height; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-remove-browser-shortcuts.js +/** + * WordPress dependencies + */ + + + +/** + * Hook to prevent default behaviors for key combinations otherwise handled + * internally by RichText. + * + * @return {import('react').RefObject} The component to be rendered. + */ +function useRemoveBrowserShortcuts() { + return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { + function onKeydown(event) { + if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z') || external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'y') || external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'z')) { + event.preventDefault(); + } } - return aspect; - }; - Cropper.prototype.onPinchStart = function (e) { - var pointA = Cropper.getTouchPoint(e.touches[0]); - var pointB = Cropper.getTouchPoint(e.touches[1]); - this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB); - this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB); - this.onDragStart(getCenter(pointA, pointB)); - }; - Cropper.prototype.onPinchMove = function (e) { - var _this = this; - if (!this.currentDoc || !this.currentWindow) return; - var pointA = Cropper.getTouchPoint(e.touches[0]); - var pointB = Cropper.getTouchPoint(e.touches[1]); - var center = getCenter(pointA, pointB); - this.onDrag(center); - if (this.rafPinchTimeout) this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout); - this.rafPinchTimeout = this.currentWindow.requestAnimationFrame(function () { - var distance = getDistanceBetweenPoints(pointA, pointB); - var newZoom = _this.props.zoom * (distance / _this.lastPinchDistance); - _this.setNewZoom(newZoom, center, { - shouldUpdatePosition: false - }); - _this.lastPinchDistance = distance; - var rotation = getRotationBetweenPoints(pointA, pointB); - var newRotation = _this.props.rotation + (rotation - _this.lastPinchRotation); - _this.props.onRotationChange && _this.props.onRotationChange(newRotation); - _this.lastPinchRotation = rotation; - }); - }; - Cropper.prototype.render = function () { - var _this = this; - var _a = this.props, - image = _a.image, - video = _a.video, - mediaProps = _a.mediaProps, - transform = _a.transform, - _b = _a.crop, - x = _b.x, - y = _b.y, - rotation = _a.rotation, - zoom = _a.zoom, - cropShape = _a.cropShape, - showGrid = _a.showGrid, - _c = _a.style, - containerStyle = _c.containerStyle, - cropAreaStyle = _c.cropAreaStyle, - mediaStyle = _c.mediaStyle, - _d = _a.classes, - containerClassName = _d.containerClassName, - cropAreaClassName = _d.cropAreaClassName, - mediaClassName = _d.mediaClassName, - objectFit = _a.objectFit; - return external_React_default().createElement("div", { - onMouseDown: this.onMouseDown, - onTouchStart: this.onTouchStart, - ref: function ref(el) { - return _this.containerRef = el; - }, - "data-testid": "container", - style: containerStyle, - className: classNames('reactEasyCrop_Container', containerClassName) - }, image ? external_React_default().createElement("img", __assign({ - alt: "", - className: classNames('reactEasyCrop_Image', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', objectFit === 'auto-cover' && (this.mediaSize.naturalWidth > this.mediaSize.naturalHeight ? 'reactEasyCrop_Cover_Horizontal' : 'reactEasyCrop_Cover_Vertical'), mediaClassName) - }, mediaProps, { - src: image, - ref: this.imageRef, - style: __assign(__assign({}, mediaStyle), { - transform: transform || "translate(".concat(x, "px, ").concat(y, "px) rotate(").concat(rotation, "deg) scale(").concat(zoom, ")") - }), - onLoad: this.onMediaLoad - })) : video && external_React_default().createElement("video", __assign({ - autoPlay: true, - loop: true, - muted: true, - className: classNames('reactEasyCrop_Video', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', objectFit === 'auto-cover' && (this.mediaSize.naturalWidth > this.mediaSize.naturalHeight ? 'reactEasyCrop_Cover_Horizontal' : 'reactEasyCrop_Cover_Vertical'), mediaClassName) - }, mediaProps, { - ref: this.videoRef, - onLoadedMetadata: this.onMediaLoad, - style: __assign(__assign({}, mediaStyle), { - transform: transform || "translate(".concat(x, "px, ").concat(y, "px) rotate(").concat(rotation, "deg) scale(").concat(zoom, ")") - }), - controls: false - }), (Array.isArray(video) ? video : [{ - src: video - }]).map(function (item) { - return external_React_default().createElement("source", __assign({ - key: item.src - }, item)); - })), this.state.cropSize && external_React_default().createElement("div", { - style: __assign(__assign({}, cropAreaStyle), { - width: this.state.cropSize.width, - height: this.state.cropSize.height - }), - "data-testid": "cropper", - className: classNames('reactEasyCrop_CropArea', cropShape === 'round' && 'reactEasyCrop_CropAreaRound', showGrid && 'reactEasyCrop_CropAreaGrid', cropAreaClassName) - })); - }; - Cropper.defaultProps = { - zoom: 1, - rotation: 0, - aspect: 4 / 3, - maxZoom: MAX_ZOOM, - minZoom: MIN_ZOOM, - cropShape: 'rect', - objectFit: 'contain', - showGrid: true, - style: {}, - classes: {}, - mediaProps: {}, - zoomSpeed: 1, - restrictPosition: true, - zoomWithScroll: true - }; - Cropper.getMousePoint = function (e) { - return { - x: Number(e.clientX), - y: Number(e.clientY) + node.addEventListener('keydown', onKeydown); + return () => { + node.removeEventListener('keydown', onKeydown); }; - }; - Cropper.getTouchPoint = function (touch) { - return { - x: Number(touch.clientX), - y: Number(touch.clientY) + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-shortcuts.js +/** + * WordPress dependencies + */ + +function useShortcuts(keyboardShortcuts) { + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onKeyDown(event) { + for (const keyboardShortcut of keyboardShortcuts.current) { + keyboardShortcut(event); + } + } + element.addEventListener('keydown', onKeyDown); + return () => { + element.removeEventListener('keydown', onKeyDown); }; - }; - return Cropper; -}((external_React_default()).Component); + }, []); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-input-events.js +/** + * WordPress dependencies + */ + +function useInputEvents(inputEvents) { + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onInput(event) { + for (const keyboardShortcut of inputEvents.current) { + keyboardShortcut(event); + } + } + element.addEventListener('input', onInput); + return () => { + element.removeEventListener('input', onInput); + }; + }, []); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-insert-replacement-text.js +/** + * WordPress dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/constants.js -const constants_MIN_ZOOM = 100; -const constants_MAX_ZOOM = 300; -const constants_POPOVER_PROPS = { - placement: 'bottom-start' -}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/cropper.js /** - * External dependencies + * Internal dependencies */ +/** + * When the browser is about to auto correct, add an undo level so the user can + * revert the change. + */ +function useInsertReplacementText() { + const { + __unstableMarkLastChangeAsPersistent + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onInput(event) { + if (event.inputType === 'insertReplacementText') { + __unstableMarkLastChangeAsPersistent(); + } + } + element.addEventListener('beforeinput', onInput); + return () => { + element.removeEventListener('beforeinput', onInput); + }; + }, []); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-firefox-compat.js /** * WordPress dependencies */ + /** * Internal dependencies */ +function useFirefoxCompat() { + const { + isMultiSelecting + } = (0,external_wp_data_namespaceObject.useSelect)(store); + return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { + function onFocus() { + if (!isMultiSelecting()) { + return; + } -function ImageCropper({ - url, - width, - height, - clientWidth, - naturalHeight, - naturalWidth, - borderProps + // This is a little hack to work around focus issues with nested + // editable elements in Firefox. For some reason the editable child + // element sometimes regains focus, while it should not be focusable + // and focus should remain on the editable parent element. + // To do: try to find the cause of the shifting focus. + const parentEditable = element.parentElement.closest('[contenteditable="true"]'); + if (parentEditable) { + parentEditable.focus(); + } + } + element.addEventListener('focus', onFocus); + return () => { + element.removeEventListener('focus', onFocus); + }; + }, []); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-edit.js + +/** + * WordPress dependencies + */ + + + +/** + * Internal dependencies + */ + +const format_edit_DEFAULT_BLOCK_CONTEXT = {}; +const usesContextKey = Symbol('usesContext'); +function format_edit_Edit({ + onChange, + onFocus, + value, + forwardedRef, + settings }) { const { - isInProgress, - editedUrl, - position, - zoom, - aspect, - setPosition, - setCrop, - setZoom, - rotation - } = useImageEditingContext(); - let editedHeight = height || clientWidth * naturalHeight / naturalWidth; - if (rotation % 180 === 90) { - editedHeight = clientWidth * naturalWidth / naturalHeight; + name, + edit: EditFunction, + [usesContextKey]: usesContext + } = settings; + const blockContext = (0,external_wp_element_namespaceObject.useContext)(block_context); + + // Assign context values using the block type's declared context needs. + const context = (0,external_wp_element_namespaceObject.useMemo)(() => { + return usesContext ? Object.fromEntries(Object.entries(blockContext).filter(([key]) => usesContext.includes(key))) : format_edit_DEFAULT_BLOCK_CONTEXT; + }, [usesContext, blockContext]); + if (!EditFunction) { + return null; } - return (0,external_React_.createElement)("div", { - className: classnames_default()('wp-block-image__crop-area', borderProps?.className, { - 'is-applying': isInProgress - }), - style: { - ...borderProps?.style, - width: width || clientWidth, - height: editedHeight - } - }, (0,external_React_.createElement)(Cropper, { - image: editedUrl || url, - disabled: isInProgress, - minZoom: constants_MIN_ZOOM / 100, - maxZoom: constants_MAX_ZOOM / 100, - crop: position, - zoom: zoom / 100, - aspect: aspect, - onCropChange: pos => { - setPosition(pos); - }, - onCropComplete: newCropPercent => { - setCrop(newCropPercent); - }, - onZoomChange: newZoom => { - setZoom(newZoom * 100); - } - }), isInProgress && (0,external_React_.createElement)(external_wp_components_namespaceObject.Spinner, null)); + const activeFormat = (0,external_wp_richText_namespaceObject.getActiveFormat)(value, name); + const isActive = activeFormat !== undefined; + const activeObject = (0,external_wp_richText_namespaceObject.getActiveObject)(value); + const isObjectActive = activeObject !== undefined && activeObject.type === name; + return (0,external_wp_element_namespaceObject.createElement)(EditFunction, { + key: name, + isActive: isActive, + activeAttributes: isActive ? activeFormat.attributes || {} : {}, + isObjectActive: isObjectActive, + activeObjectAttributes: isObjectActive ? activeObject.attributes || {} : {}, + value: value, + onChange: onChange, + onFocus: onFocus, + contentRef: forwardedRef, + context: context + }); +} +function FormatEdit({ + formatTypes, + ...props +}) { + return formatTypes.map(settings => (0,external_wp_element_namespaceObject.createElement)(format_edit_Edit, { + settings: settings, + ...props, + key: settings.name + })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/content.js /** * WordPress dependencies */ -const search = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" -})); -/* harmony default export */ var library_search = (search); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/zoom-dropdown.js + + +/** + * Internal dependencies + */ + +const Content = ({ + value, + tagName: Tag, + multiline, + ...props +}) => { + // Handle deprecated `children` and `node` sources. + if (Array.isArray(value)) { + external_wp_deprecated_default()('wp.blockEditor.RichText value prop as children type', { + since: '6.1', + version: '6.3', + alternative: 'value prop as string', + link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/' + }); + value = external_wp_blocks_namespaceObject.children.toHTML(value); + } + const MultilineTag = getMultilineTag(multiline); + if (!value && MultilineTag) { + value = `<${MultilineTag}>`; + } + const content = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, value); + if (Tag) { + const { + format, + ...restProps + } = props; + return (0,external_wp_element_namespaceObject.createElement)(Tag, { + ...restProps + }, content); + } + return content; +}; + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/multiline.js + +/** + * WordPress dependencies + */ + + + + +/** + * Internal dependencies + */ + + + + +function RichTextMultiline({ + children, + identifier, + tagName: TagName = 'div', + value = '', + onChange, + multiline, + ...props +}, forwardedRef) { + external_wp_deprecated_default()('wp.blockEditor.RichText multiline prop', { + since: '6.1', + version: '6.3', + alternative: 'nested blocks (InnerBlocks)', + link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/' + }); + const { + clientId + } = useBlockEditContext(); + const { + selectionChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const multilineTagName = getMultilineTag(multiline); + value = value || `<${multilineTagName}>`; + const padded = `${value}<${multilineTagName}>`; + const values = padded.split(`<${multilineTagName}>`); + values.shift(); + values.pop(); + function _onChange(newValues) { + onChange(`<${multilineTagName}>${newValues.join(`<${multilineTagName}>`)}`); + } + return (0,external_wp_element_namespaceObject.createElement)(TagName, { + ref: forwardedRef + }, values.map((_value, index) => { + return (0,external_wp_element_namespaceObject.createElement)(RichTextWrapper, { + key: index, + identifier: `${identifier}-${index}`, + tagName: multilineTagName, + value: _value, + onChange: newValue => { + const newValues = values.slice(); + newValues[index] = newValue; + _onChange(newValues); + }, + isSelected: undefined, + onSplit: v => v, + onReplace: array => { + const newValues = values.slice(); + newValues.splice(index, 1, ...array); + _onChange(newValues); + selectionChange(clientId, `${identifier}-${index + 1}`, 0, 0); + }, + onMerge: forward => { + const newValues = values.slice(); + let offset = 0; + if (forward) { + if (!newValues[index + 1]) return; + newValues.splice(index, 2, newValues[index] + newValues[index + 1]); + offset = newValues[index].length - 1; + } else { + if (!newValues[index - 1]) return; + newValues.splice(index - 1, 2, newValues[index - 1] + newValues[index]); + offset = newValues[index - 1].length - 1; + } + _onChange(newValues); + selectionChange(clientId, `${identifier}-${index - (forward ? 0 : 1)}`, offset, offset); + }, + ...props + }); + })); +} +/* harmony default export */ var multiline = ((0,external_wp_element_namespaceObject.forwardRef)(RichTextMultiline)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/index.js + +/** + * External dependencies + */ + /** * WordPress dependencies @@ -60996,206 +55674,437 @@ const search = (0,external_React_.createElement)(external_wp_primitives_namespac + + + + /** * Internal dependencies */ -function ZoomDropdown() { + + + + + + + + + + + + + + + + + + + +const keyboardShortcutContext = (0,external_wp_element_namespaceObject.createContext)(); +const inputEventContext = (0,external_wp_element_namespaceObject.createContext)(); + +/** + * Removes props used for the native version of RichText so that they are not + * passed to the DOM element and log warnings. + * + * @param {Object} props Props to filter. + * + * @return {Object} Filtered props. + */ +function removeNativeProps(props) { const { - isInProgress, - zoom, - setZoom - } = useImageEditingContext(); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - contentClassName: "wp-block-image__zoom", - popoverProps: constants_POPOVER_PROPS, - renderToggle: ({ - isOpen, - onToggle - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: library_search, - label: (0,external_wp_i18n_namespaceObject.__)('Zoom'), - onClick: onToggle, - "aria-expanded": isOpen, - disabled: isInProgress - }), - renderContent: () => (0,external_React_.createElement)(external_wp_components_namespaceObject.RangeControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Zoom'), - min: constants_MIN_ZOOM, - max: constants_MAX_ZOOM, - value: Math.round(zoom), - onChange: setZoom - }) + __unstableMobileNoFocusOnMount, + deleteEnter, + placeholderTextColor, + textAlign, + selectionColor, + tagsToEliminate, + disableEditingMenu, + fontSize, + fontFamily, + fontWeight, + fontStyle, + minWidth, + maxWidth, + setRef, + disableSuggestions, + disableAutocorrection, + ...restProps + } = props; + return restProps; +} +function RichTextWrapper({ + children, + tagName = 'div', + value: adjustedValue = '', + onChange: adjustedOnChange, + isSelected: originalIsSelected, + multiline, + inlineToolbar, + wrapperClassName, + autocompleters, + onReplace, + placeholder, + allowedFormats, + withoutInteractiveFormatting, + onRemove, + onMerge, + onSplit, + __unstableOnSplitAtEnd: onSplitAtEnd, + __unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd, + identifier, + preserveWhiteSpace, + __unstablePastePlainText: pastePlainText, + __unstableEmbedURLOnPaste, + __unstableDisableFormats: disableFormats, + disableLineBreaks, + __unstableAllowPrefixTransformations, + ...props +}, forwardedRef) { + props = removeNativeProps(props); + const anchorRef = (0,external_wp_element_namespaceObject.useRef)(); + const { + clientId + } = useBlockEditContext(); + const selector = select => { + const { + getSelectionStart, + getSelectionEnd + } = select(store); + const selectionStart = getSelectionStart(); + const selectionEnd = getSelectionEnd(); + let isSelected; + if (originalIsSelected === undefined) { + isSelected = selectionStart.clientId === clientId && selectionEnd.clientId === clientId && selectionStart.attributeKey === identifier; + } else if (originalIsSelected) { + isSelected = selectionStart.clientId === clientId; + } + return { + selectionStart: isSelected ? selectionStart.offset : undefined, + selectionEnd: isSelected ? selectionEnd.offset : undefined, + isSelected + }; + }; + // This selector must run on every render so the right selection state is + // retreived from the store on merge. + // To do: fix this somehow. + const { + selectionStart, + selectionEnd, + isSelected + } = (0,external_wp_data_namespaceObject.useSelect)(selector); + const { + getSelectionStart, + getSelectionEnd, + getBlockRootClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + selectionChange + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const adjustedAllowedFormats = getAllowedFormats({ + allowedFormats, + disableFormats + }); + const hasFormats = !adjustedAllowedFormats || adjustedAllowedFormats.length > 0; + const onSelectionChange = (0,external_wp_element_namespaceObject.useCallback)((start, end) => { + const selection = {}; + const unset = start === undefined && end === undefined; + if (typeof start === 'number' || unset) { + // If we are only setting the start (or the end below), which + // means a partial selection, and we're not updating a selection + // with the same client ID, abort. This means the selected block + // is a parent block. + if (end === undefined && getBlockRootClientId(clientId) !== getBlockRootClientId(getSelectionEnd().clientId)) { + return; + } + selection.start = { + clientId, + attributeKey: identifier, + offset: start + }; + } + if (typeof end === 'number' || unset) { + if (start === undefined && getBlockRootClientId(clientId) !== getBlockRootClientId(getSelectionStart().clientId)) { + return; + } + selection.end = { + clientId, + attributeKey: identifier, + offset: end + }; + } + selectionChange(selection); + }, [clientId, identifier]); + const { + formatTypes, + prepareHandlers, + valueHandlers, + changeHandlers, + dependencies + } = useFormatTypes({ + clientId, + identifier, + withoutInteractiveFormatting, + allowedFormats: adjustedAllowedFormats + }); + function addEditorOnlyFormats(value) { + return valueHandlers.reduce((accumulator, fn) => fn(accumulator, value.text), value.formats); + } + function removeEditorOnlyFormats(value) { + formatTypes.forEach(formatType => { + // Remove formats created by prepareEditableTree, because they are editor only. + if (formatType.__experimentalCreatePrepareEditableTree) { + value = (0,external_wp_richText_namespaceObject.removeFormat)(value, formatType.name, 0, value.text.length); + } + }); + return value.formats; + } + function addInvisibleFormats(value) { + return prepareHandlers.reduce((accumulator, fn) => fn(accumulator, value.text), value.formats); + } + const { + value, + getValue, + onChange, + ref: richTextRef + } = (0,external_wp_richText_namespaceObject.__unstableUseRichText)({ + value: adjustedValue, + onChange(html, { + __unstableFormats, + __unstableText + }) { + adjustedOnChange(html); + Object.values(changeHandlers).forEach(changeHandler => { + changeHandler(__unstableFormats, __unstableText); + }); + }, + selectionStart, + selectionEnd, + onSelectionChange, + placeholder, + __unstableIsSelected: isSelected, + __unstableDisableFormats: disableFormats, + preserveWhiteSpace, + __unstableDependencies: [...dependencies, tagName], + __unstableAfterParse: addEditorOnlyFormats, + __unstableBeforeSerialize: removeEditorOnlyFormats, + __unstableAddInvisibleFormats: addInvisibleFormats + }); + const autocompleteProps = useBlockEditorAutocompleteProps({ + onReplace, + completers: autocompleters, + record: value, + onChange + }); + useMarkPersistent({ + html: adjustedValue, + value }); + const keyboardShortcuts = (0,external_wp_element_namespaceObject.useRef)(new Set()); + const inputEvents = (0,external_wp_element_namespaceObject.useRef)(new Set()); + function onFocus() { + anchorRef.current?.focus(); + } + const TagName = tagName; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isSelected && (0,external_wp_element_namespaceObject.createElement)(keyboardShortcutContext.Provider, { + value: keyboardShortcuts + }, (0,external_wp_element_namespaceObject.createElement)(inputEventContext.Provider, { + value: inputEvents + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.__unstableSlotNameProvider, { + value: "__unstable-block-tools-after" + }, children && children({ + value, + onChange, + onFocus + }), (0,external_wp_element_namespaceObject.createElement)(FormatEdit, { + value: value, + onChange: onChange, + onFocus: onFocus, + formatTypes: formatTypes, + forwardedRef: anchorRef + })))), isSelected && hasFormats && (0,external_wp_element_namespaceObject.createElement)(format_toolbar_container, { + inline: inlineToolbar, + editableContentElement: anchorRef.current, + value: value + }), (0,external_wp_element_namespaceObject.createElement)(TagName + // Overridable props. + , { + role: "textbox", + "aria-multiline": !disableLineBreaks, + "aria-label": placeholder, + ...props, + ...autocompleteProps, + ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([forwardedRef, autocompleteProps.ref, props.ref, richTextRef, useBeforeInputRules({ + value, + onChange + }), useInputRules({ + getValue, + onChange, + __unstableAllowPrefixTransformations, + formatTypes, + onReplace, + selectionChange + }), useInsertReplacementText(), useRemoveBrowserShortcuts(), useShortcuts(keyboardShortcuts), useInputEvents(inputEvents), useUndoAutomaticChange(), usePasteHandler({ + isSelected, + disableFormats, + onChange, + value, + formatTypes, + tagName, + onReplace, + onSplit, + __unstableEmbedURLOnPaste, + preserveWhiteSpace, + pastePlainText + }), useDelete({ + value, + onMerge, + onRemove + }), useEnter({ + removeEditorOnlyFormats, + value, + onReplace, + onSplit, + onChange, + disableLineBreaks, + onSplitAtEnd, + onSplitAtDoubleLineEnd + }), useFirefoxCompat(), anchorRef]), + contentEditable: true, + suppressContentEditableWarning: true, + className: classnames_default()('block-editor-rich-text__editable', props.className, 'rich-text') + // Setting tabIndex to 0 is unnecessary, the element is already + // focusable because it's contentEditable. This also fixes a + // Safari bug where it's not possible to Shift+Click multi + // select blocks when Shift Clicking into an element with + // tabIndex because Safari will focus the element. However, + // Safari will correctly ignore nested contentEditable elements. + , + tabIndex: props.tabIndex === 0 ? null : props.tabIndex + })); } +const ForwardedRichTextWrapper = (0,external_wp_element_namespaceObject.forwardRef)(RichTextWrapper); +function RichTextSwitcher(props, ref) { + let value = props.value; + let onChange = props.onChange; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/aspect-ratio.js + // Handle deprecated format. + if (Array.isArray(value)) { + external_wp_deprecated_default()('wp.blockEditor.RichText value prop as children type', { + since: '6.1', + version: '6.3', + alternative: 'value prop as string', + link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/' + }); + value = external_wp_blocks_namespaceObject.children.toHTML(props.value); + onChange = newValue => props.onChange(external_wp_blocks_namespaceObject.children.fromDOM((0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, newValue).childNodes)); + } + const Component = props.multiline ? multiline : ForwardedRichTextWrapper; + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(RichTextSwitcher); + return (0,external_wp_element_namespaceObject.createElement)(Component, { + ...props, + identifier: props.identifier || instanceId, + value: value, + onChange: onChange, + ref: ref + }); +} +const ForwardedRichTextContainer = (0,external_wp_element_namespaceObject.forwardRef)(RichTextSwitcher); +ForwardedRichTextContainer.Content = Content; +ForwardedRichTextContainer.isEmpty = value => { + return !value || value.length === 0; +}; /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md */ +/* harmony default export */ var rich_text = (ForwardedRichTextContainer); -const aspectRatio = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18.5 5.5h-13c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-9c0-.3.2-.5.5-.5h13c.3 0 .5.2.5.5v9zM6.5 12H8v-2h2V8.5H6.5V12zm9.5 2h-2v1.5h3.5V12H16v2z" -})); -/* harmony default export */ var aspect_ratio = (aspectRatio); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/aspect-ratio-dropdown.js + + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editable-text/index.js /** * WordPress dependencies */ - - /** * Internal dependencies */ +const EditableText = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { + return (0,external_wp_element_namespaceObject.createElement)(rich_text, { + ref: ref, + ...props, + __unstableDisableFormats: true, + preserveWhiteSpace: true + }); +}); +EditableText.Content = ({ + value = '', + tagName: Tag = 'div', + ...props +}) => { + return (0,external_wp_element_namespaceObject.createElement)(Tag, { + ...props + }, value); +}; -function AspectGroup({ - aspectRatios, - isDisabled, - label, - onClick, - value -}) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuGroup, { - label: label - }, aspectRatios.map(({ - title, - aspect - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - key: aspect, - disabled: isDisabled, - onClick: () => { - onClick(aspect); - }, - role: "menuitemradio", - isSelected: aspect === value, - icon: aspect === value ? library_check : undefined - }, title))); -} -function AspectRatioDropdown({ - toggleProps -}) { - const { - isInProgress, - aspect, - setAspect, - defaultAspect - } = useImageEditingContext(); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - icon: aspect_ratio, - label: (0,external_wp_i18n_namespaceObject.__)('Aspect Ratio'), - popoverProps: constants_POPOVER_PROPS, - toggleProps: toggleProps, - className: "wp-block-image__aspect-ratio" - }, ({ - onClose - }) => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(AspectGroup, { - isDisabled: isInProgress, - onClick: newAspect => { - setAspect(newAspect); - onClose(); - }, - value: aspect, - aspectRatios: [ - // All ratios should be mirrored in AspectRatioTool in @wordpress/block-editor. - { - title: (0,external_wp_i18n_namespaceObject.__)('Original'), - aspect: defaultAspect - }, { - title: (0,external_wp_i18n_namespaceObject.__)('Square'), - aspect: 1 - }] - }), (0,external_React_.createElement)(AspectGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Landscape'), - isDisabled: isInProgress, - onClick: newAspect => { - setAspect(newAspect); - onClose(); - }, - value: aspect, - aspectRatios: [{ - title: (0,external_wp_i18n_namespaceObject.__)('16:9'), - aspect: 16 / 9 - }, { - title: (0,external_wp_i18n_namespaceObject.__)('4:3'), - aspect: 4 / 3 - }, { - title: (0,external_wp_i18n_namespaceObject.__)('3:2'), - aspect: 3 / 2 - }] - }), (0,external_React_.createElement)(AspectGroup, { - label: (0,external_wp_i18n_namespaceObject.__)('Portrait'), - isDisabled: isInProgress, - onClick: newAspect => { - setAspect(newAspect); - onClose(); - }, - value: aspect, - aspectRatios: [{ - title: (0,external_wp_i18n_namespaceObject.__)('9:16'), - aspect: 9 / 16 - }, { - title: (0,external_wp_i18n_namespaceObject.__)('3:4'), - aspect: 3 / 4 - }, { - title: (0,external_wp_i18n_namespaceObject.__)('2:3'), - aspect: 2 / 3 - }] - }))); -} +/** + * Renders an editable text input in which text formatting is not allowed. + */ +/* harmony default export */ var editable_text = (EditableText); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rotate-right.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/plain-text/index.js /** - * WordPress dependencies + * External dependencies */ -const rotateRight = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M15.1 4.8l-3-2.5V4c-4.4 0-8 3.6-8 8 0 3.7 2.5 6.9 6 7.7.3.1.6.1 1 .2l.2-1.5c-.4 0-.7-.1-1.1-.2l-.1.2v-.2c-2.6-.8-4.5-3.3-4.5-6.2 0-3.6 2.9-6.5 6.5-6.5v1.8l3-2.5zM20 11c-.2-1.4-.7-2.7-1.6-3.8l-1.2.8c.7.9 1.1 2 1.3 3.1L20 11zm-1.5 1.8c-.1.5-.2 1.1-.4 1.6s-.5 1-.8 1.5l1.2.9c.4-.5.8-1.1 1-1.8s.5-1.3.5-2l-1.5-.2zm-5.6 5.6l.2 1.5c1.4-.2 2.7-.7 3.8-1.6l-.9-1.1c-.9.7-2 1.1-3.1 1.2z" -})); -/* harmony default export */ var rotate_right = (rotateRight); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/rotation-button.js /** * WordPress dependencies */ - - - /** * Internal dependencies */ -function RotationButton() { + +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/plain-text/README.md + */ +const PlainText = (0,external_wp_element_namespaceObject.forwardRef)(({ + __experimentalVersion, + ...props +}, ref) => { + if (__experimentalVersion === 2) { + return (0,external_wp_element_namespaceObject.createElement)(editable_text, { + ref: ref, + ...props + }); + } const { - isInProgress, - rotateClockwise - } = useImageEditingContext(); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: rotate_right, - label: (0,external_wp_i18n_namespaceObject.__)('Rotate'), - onClick: rotateClockwise, - disabled: isInProgress + className, + onChange, + ...remainingProps + } = props; + return (0,external_wp_element_namespaceObject.createElement)(lib/* default */.Z, { + ref: ref, + className: classnames_default()('block-editor-plain-text', className), + onChange: event => onChange(event.target.value), + ...remainingProps }); -} +}); +/* harmony default export */ var plain_text = (PlainText); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/form-controls.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/label.js /** * WordPress dependencies @@ -61203,134 +56112,107 @@ function RotationButton() { -/** - * Internal dependencies - */ - -function FormControls() { - const { - isInProgress, - apply, - cancel - } = useImageEditingContext(); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - onClick: apply, - disabled: isInProgress - }, (0,external_wp_i18n_namespaceObject.__)('Apply')), (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - onClick: cancel - }, (0,external_wp_i18n_namespaceObject.__)('Cancel'))); +function ResponsiveBlockControlLabel({ + property, + viewport, + desc +}) { + const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ResponsiveBlockControlLabel); + const accessibleLabel = desc || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: property name. 2: viewport name. */ + (0,external_wp_i18n_namespaceObject._x)('Controls the %1$s property for %2$s viewports.', 'Text labelling a interface as controlling a given layout property (eg: margin) for a given screen size.'), property, viewport.label); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("span", { + "aria-describedby": `rbc-desc-${instanceId}` + }, viewport.label), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + as: "span", + id: `rbc-desc-${instanceId}` + }, accessibleLabel)); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-editor/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/index.js /** - * WordPress dependencies + * External dependencies */ /** - * Internal dependencies + * WordPress dependencies */ - - - -function ImageEditor({ - id, - url, - width, - height, - clientWidth, - naturalHeight, - naturalWidth, - onSaveImage, - onFinishEditing, - borderProps -}) { - return (0,external_React_.createElement)(ImageEditingProvider, { - id: id, - url: url, - naturalWidth: naturalWidth, - naturalHeight: naturalHeight, - onSaveImage: onSaveImage, - onFinishEditing: onFinishEditing - }, (0,external_React_.createElement)(ImageCropper, { - borderProps: borderProps, - url: url, - width: width, - height: height, - clientWidth: clientWidth, - naturalHeight: naturalHeight, - naturalWidth: naturalWidth - }), (0,external_React_.createElement)(block_controls, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(ZoomDropdown, null), (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_React_.createElement)(AspectRatioDropdown, { - toggleProps: toggleProps - })), (0,external_React_.createElement)(RotationButton, null)), (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(FormControls, null)))); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-size-control/use-dimension-handler.js /** - * WordPress dependencies + * Internal dependencies */ -function useDimensionHandler(customHeight, customWidth, defaultHeight, defaultWidth, onChange) { - var _ref, _ref2; - const [currentWidth, setCurrentWidth] = (0,external_wp_element_namespaceObject.useState)((_ref = customWidth !== null && customWidth !== void 0 ? customWidth : defaultWidth) !== null && _ref !== void 0 ? _ref : ''); - const [currentHeight, setCurrentHeight] = (0,external_wp_element_namespaceObject.useState)((_ref2 = customHeight !== null && customHeight !== void 0 ? customHeight : defaultHeight) !== null && _ref2 !== void 0 ? _ref2 : ''); - - // When an image is first inserted, the default dimensions are initially - // undefined. This effect updates the dimensions when the default values - // come through. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (customWidth === undefined && defaultWidth !== undefined) { - setCurrentWidth(defaultWidth); - } - if (customHeight === undefined && defaultHeight !== undefined) { - setCurrentHeight(defaultHeight); - } - }, [defaultWidth, defaultHeight]); +function ResponsiveBlockControl(props) { + const { + title, + property, + toggleLabel, + onIsResponsiveChange, + renderDefaultControl, + renderResponsiveControls, + isResponsive = false, + defaultLabel = { + id: 'all', + /* translators: 'Label. Used to signify a layout property (eg: margin, padding) will apply uniformly to all screensizes.' */ + label: (0,external_wp_i18n_namespaceObject.__)('All') + }, + viewports = [{ + id: 'small', + label: (0,external_wp_i18n_namespaceObject.__)('Small screens') + }, { + id: 'medium', + label: (0,external_wp_i18n_namespaceObject.__)('Medium screens') + }, { + id: 'large', + label: (0,external_wp_i18n_namespaceObject.__)('Large screens') + }] + } = props; + if (!title || !property || !renderDefaultControl) { + return null; + } + const toggleControlLabel = toggleLabel || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 'Toggle control label. Should the property be the same across all screen sizes or unique per screen size.'. %s property value for the control (eg: margin, padding...etc) */ + (0,external_wp_i18n_namespaceObject.__)('Use the same %s on all screensizes.'), property); - // If custom values change, it means an outsider has resized the image using some other method (eg resize box) - // this keeps track of these values too. We need to parse before comparing; custom values can be strings. - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (customWidth !== undefined && Number.parseInt(customWidth) !== Number.parseInt(currentWidth)) { - setCurrentWidth(customWidth); - } - if (customHeight !== undefined && Number.parseInt(customHeight) !== Number.parseInt(currentHeight)) { - setCurrentHeight(customHeight); - } - }, [customWidth, customHeight]); - const updateDimension = (dimension, value) => { - const parsedValue = value === '' ? undefined : parseInt(value, 10); - if (dimension === 'width') { - setCurrentWidth(parsedValue); - } else { - setCurrentHeight(parsedValue); - } - onChange({ - [dimension]: parsedValue - }); - }; - const updateDimensions = (nextHeight, nextWidth) => { - setCurrentHeight(nextHeight !== null && nextHeight !== void 0 ? nextHeight : defaultHeight); - setCurrentWidth(nextWidth !== null && nextWidth !== void 0 ? nextWidth : defaultWidth); - onChange({ - height: nextHeight, - width: nextWidth - }); - }; - return { - currentHeight, - currentWidth, - updateDimension, - updateDimensions + /* translators: 'Help text for the responsive mode toggle control.' */ + const toggleHelpText = (0,external_wp_i18n_namespaceObject.__)('Toggle between using the same value for all screen sizes or using a unique value per screen size.'); + const defaultControl = renderDefaultControl((0,external_wp_element_namespaceObject.createElement)(ResponsiveBlockControlLabel, { + property: property, + viewport: defaultLabel + }), defaultLabel); + const defaultResponsiveControls = () => { + return viewports.map(viewport => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, { + key: viewport.id + }, renderDefaultControl((0,external_wp_element_namespaceObject.createElement)(ResponsiveBlockControlLabel, { + property: property, + viewport: viewport + }), viewport))); }; + return (0,external_wp_element_namespaceObject.createElement)("fieldset", { + className: "block-editor-responsive-block-control" + }, (0,external_wp_element_namespaceObject.createElement)("legend", { + className: "block-editor-responsive-block-control__title" + }, title), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-responsive-block-control__inner" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + className: "block-editor-responsive-block-control__toggle", + label: toggleControlLabel, + checked: !isResponsive, + onChange: onIsResponsiveChange, + help: toggleHelpText + }), (0,external_wp_element_namespaceObject.createElement)("div", { + className: classnames_default()('block-editor-responsive-block-control__group', { + 'is-responsive': isResponsive + }) + }, !isResponsive && defaultControl, isResponsive && (renderResponsiveControls ? renderResponsiveControls(viewports) : defaultResponsiveControls())))); } +/* harmony default export */ var responsive_block_control = (ResponsiveBlockControl); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-size-control/index.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/shortcut.js /** * WordPress dependencies */ @@ -61341,107 +56223,91 @@ function useDimensionHandler(customHeight, customWidth, defaultHeight, defaultWi * Internal dependencies */ -const IMAGE_SIZE_PRESETS = [25, 50, 75, 100]; -const image_size_control_noop = () => {}; -function ImageSizeControl({ - imageSizeHelp, - imageWidth, - imageHeight, - imageSizeOptions = [], - isResizable = true, - slug, - width, - height, - onChange, - onChangeImage = image_size_control_noop +function RichTextShortcut({ + character, + type, + onUse }) { - const { - currentHeight, - currentWidth, - updateDimension, - updateDimensions - } = useDimensionHandler(height, width, imageHeight, imageWidth, onChange); - return (0,external_React_.createElement)(external_React_.Fragment, null, imageSizeOptions && imageSizeOptions.length > 0 && (0,external_React_.createElement)(external_wp_components_namespaceObject.SelectControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Resolution'), - value: slug, - options: imageSizeOptions, - onChange: onChangeImage, - help: imageSizeHelp, - size: "__unstable-large" - }), isResizable && (0,external_React_.createElement)("div", { - className: "block-editor-image-size-control" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { - align: "baseline", - spacing: "3" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { - className: "block-editor-image-size-control__width", - label: (0,external_wp_i18n_namespaceObject.__)('Width'), - value: currentWidth, - min: 1, - onChange: value => updateDimension('width', value), - size: "__unstable-large" - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalNumberControl, { - className: "block-editor-image-size-control__height", - label: (0,external_wp_i18n_namespaceObject.__)('Height'), - value: currentHeight, - min: 1, - onChange: value => updateDimension('height', value), - size: "__unstable-large" - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ButtonGroup, { - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Image size presets') - }, IMAGE_SIZE_PRESETS.map(scale => { - const scaledWidth = Math.round(imageWidth * (scale / 100)); - const scaledHeight = Math.round(imageHeight * (scale / 100)); - const isCurrent = currentWidth === scaledWidth && currentHeight === scaledHeight; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - key: scale, - size: "small", - variant: isCurrent ? 'primary' : undefined, - isPressed: isCurrent, - onClick: () => updateDimensions(scaledHeight, scaledWidth) - }, scale, "%"); - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - size: "small", - onClick: () => updateDimensions() - }, (0,external_wp_i18n_namespaceObject.__)('Reset'))))); + const keyboardShortcuts = (0,external_wp_element_namespaceObject.useContext)(keyboardShortcutContext); + const onUseRef = (0,external_wp_element_namespaceObject.useRef)(); + onUseRef.current = onUse; + (0,external_wp_element_namespaceObject.useEffect)(() => { + function callback(event) { + if (external_wp_keycodes_namespaceObject.isKeyboardEvent[type](event, character)) { + onUseRef.current(); + event.preventDefault(); + } + } + keyboardShortcuts.current.add(callback); + return () => { + keyboardShortcuts.current.delete(callback); + }; + }, [character, type]); + return null; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer-url.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/toolbar-button.js /** * WordPress dependencies */ -function LinkViewerURL({ - url, - urlLabel, - className +function RichTextToolbarButton({ + name, + shortcutType, + shortcutCharacter, + ...props }) { - const linkClassName = classnames_default()(className, 'block-editor-url-popover__link-viewer-url'); - if (!url) { - return (0,external_React_.createElement)("span", { - className: linkClassName - }); + let shortcut; + let fillName = 'RichText.ToolbarControls'; + if (name) { + fillName += `.${name}`; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ExternalLink, { - className: linkClassName, - href: url - }, urlLabel || (0,external_wp_url_namespaceObject.filterURLForDisplay)((0,external_wp_url_namespaceObject.safeDecodeURI)(url))); + if (shortcutType && shortcutCharacter) { + shortcut = external_wp_keycodes_namespaceObject.displayShortcut[shortcutType](shortcutCharacter); + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Fill, { + name: fillName + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + ...props, + shortcut: shortcut + })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/input-event.js +/** + * WordPress dependencies + */ + /** - * External dependencies + * Internal dependencies */ +function __unstableRichTextInputEvent({ + inputType, + onInput +}) { + const callbacks = (0,external_wp_element_namespaceObject.useContext)(inputEventContext); + const onInputRef = (0,external_wp_element_namespaceObject.useRef)(); + onInputRef.current = onInput; + (0,external_wp_element_namespaceObject.useEffect)(() => { + function callback(event) { + if (event.inputType === inputType) { + onInputRef.current(); + event.preventDefault(); + } + } + callbacks.current.add(callback); + return () => { + callbacks.current.delete(callback); + }; + }, [inputType]); + return null; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/tool-selector/index.js /** * WordPress dependencies @@ -61450,78 +56316,109 @@ function LinkViewerURL({ + + /** * Internal dependencies */ -function LinkViewer({ - className, - linkClassName, - onEditLinkClick, - url, - urlLabel, - ...props -}) { - return (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-url-popover__link-viewer', className), - ...props - }, (0,external_React_.createElement)(LinkViewerURL, { - url: url, - urlLabel: urlLabel, - className: linkClassName - }), onEditLinkClick && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: edit, - label: (0,external_wp_i18n_namespaceObject.__)('Edit'), - onClick: onEditLinkClick - })); +const selectIcon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + width: "24", + height: "24", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z" +})); +function ToolSelector(props, ref) { + const mode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).__unstableGetEditorMode(), []); + const { + __unstableSetEditorMode + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + renderToggle: ({ + isOpen, + onToggle + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...props, + ref: ref, + icon: mode === 'navigation' ? selectIcon : library_edit, + "aria-expanded": isOpen, + "aria-haspopup": "true", + onClick: onToggle + /* translators: button label text should, if possible, be under 16 characters. */, + label: (0,external_wp_i18n_namespaceObject.__)('Tools') + }), + popoverProps: { + placement: 'bottom-start', + variant: undefined + }, + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, { + role: "menu", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Tools') + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { + value: mode === 'navigation' ? 'navigation' : 'edit', + onSelect: __unstableSetEditorMode, + choices: [{ + value: 'edit', + label: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_edit + }), (0,external_wp_i18n_namespaceObject.__)('Edit')) + }, { + value: 'navigation', + label: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, selectIcon, (0,external_wp_i18n_namespaceObject.__)('Select')) + }] + })), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-tool-selector__help" + }, (0,external_wp_i18n_namespaceObject.__)('Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'))) + }); } +/* harmony default export */ var tool_selector = ((0,external_wp_element_namespaceObject.forwardRef)(ToolSelector)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-editor.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/unit-control/index.js /** * WordPress dependencies */ - - /** * Internal dependencies */ -function LinkEditor({ - autocompleteRef, - className, - onChangeInputValue, - value, +function UnitControl({ + units: unitsProp, ...props }) { - return (0,external_React_.createElement)("form", { - className: classnames_default()('block-editor-url-popover__link-editor', className), + const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ + availableUnits: use_setting_useSetting('spacing.units') || ['%', 'px', 'em', 'rem', 'vw'], + units: unitsProp + }); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + units: units, ...props - }, (0,external_React_.createElement)(url_input, { - __nextHasNoMarginBottom: true, - value: value, - onChange: onChangeInputValue, - autocompleteRef: autocompleteRef - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: keyboard_return, - label: (0,external_wp_i18n_namespaceObject.__)('Apply'), - type: "submit" - })); + }); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-left.js /** * WordPress dependencies */ +const arrowLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z" +})); +/* harmony default export */ var arrow_left = (arrowLeft); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/button.js + +/** + * WordPress dependencies + */ @@ -61531,90 +56428,87 @@ function LinkEditor({ * Internal dependencies */ - - -const { - __experimentalPopoverLegacyPositionToPlacement -} = unlock(external_wp_components_namespaceObject.privateApis); -const DEFAULT_PLACEMENT = 'bottom'; -function URLPopover({ - additionalControls, - children, - renderSettings, - // The DEFAULT_PLACEMENT value is assigned inside the function's body - placement, - focusOnMount = 'firstElement', - // Deprecated - position, - // Rest - ...popoverProps -}) { - if (position !== undefined) { - external_wp_deprecated_default()('`position` prop in wp.blockEditor.URLPopover', { - since: '6.2', - alternative: '`placement` prop' +class URLInputButton extends external_wp_element_namespaceObject.Component { + constructor() { + super(...arguments); + this.toggle = this.toggle.bind(this); + this.submitLink = this.submitLink.bind(this); + this.state = { + expanded: false + }; + } + toggle() { + this.setState({ + expanded: !this.state.expanded }); } - - // Compute popover's placement: - // - give priority to `placement` prop, if defined - // - otherwise, compute it from the legacy `position` prop (if defined) - // - finally, fallback to the DEFAULT_PLACEMENT. - let computedPlacement; - if (placement !== undefined) { - computedPlacement = placement; - } else if (position !== undefined) { - computedPlacement = __experimentalPopoverLegacyPositionToPlacement(position); + submitLink(event) { + event.preventDefault(); + this.toggle(); + } + render() { + const { + url, + onChange + } = this.props; + const { + expanded + } = this.state; + const buttonLabel = url ? (0,external_wp_i18n_namespaceObject.__)('Edit link') : (0,external_wp_i18n_namespaceObject.__)('Insert link'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-input__button" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: library_link, + label: buttonLabel, + onClick: this.toggle, + className: "components-toolbar__control", + isPressed: !!url + }), expanded && (0,external_wp_element_namespaceObject.createElement)("form", { + className: "block-editor-url-input__button-modal", + onSubmit: this.submitLink + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-url-input__button-modal-line" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-url-input__back", + icon: arrow_left, + label: (0,external_wp_i18n_namespaceObject.__)('Close'), + onClick: this.toggle + }), (0,external_wp_element_namespaceObject.createElement)(url_input, { + __nextHasNoMarginBottom: true, + value: url || '', + onChange: onChange + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: keyboard_return, + label: (0,external_wp_i18n_namespaceObject.__)('Submit'), + type: "submit" + })))); } - computedPlacement = computedPlacement || DEFAULT_PLACEMENT; - const [isSettingsExpanded, setIsSettingsExpanded] = (0,external_wp_element_namespaceObject.useState)(false); - const showSettings = !!renderSettings && isSettingsExpanded; - const toggleSettingsVisibility = () => { - setIsSettingsExpanded(!isSettingsExpanded); - }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - className: "block-editor-url-popover", - focusOnMount: focusOnMount, - placement: computedPlacement, - shift: true, - ...popoverProps - }, (0,external_React_.createElement)("div", { - className: "block-editor-url-popover__input-container" - }, (0,external_React_.createElement)("div", { - className: "block-editor-url-popover__row" - }, children, !!renderSettings && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-url-popover__settings-toggle", - icon: chevron_down, - label: (0,external_wp_i18n_namespaceObject.__)('Link settings'), - onClick: toggleSettingsVisibility, - "aria-expanded": isSettingsExpanded - })), showSettings && (0,external_React_.createElement)("div", { - className: "block-editor-url-popover__row block-editor-url-popover__settings" - }, renderSettings())), additionalControls && !showSettings && (0,external_React_.createElement)("div", { - className: "block-editor-url-popover__additional-controls" - }, additionalControls)); } -URLPopover.LinkEditor = LinkEditor; -URLPopover.LinkViewer = LinkViewer; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md - */ -/* harmony default export */ var url_popover = (URLPopover); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-placeholder/index.js /** - * External dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md */ +/* harmony default export */ var url_input_button = (URLInputButton); +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js /** * WordPress dependencies */ +const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z" +})); +/* harmony default export */ var library_close = (close_close); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/image-url-input-ui.js +/** + * WordPress dependencies + */ @@ -61624,930 +56518,733 @@ URLPopover.LinkViewer = LinkViewer; * Internal dependencies */ - - - -const media_placeholder_noop = () => {}; -const InsertFromURLPopover = ({ - src, - onChange, - onSubmit, - onClose, - popoverAnchor -}) => (0,external_React_.createElement)(url_popover, { - anchor: popoverAnchor, - onClose: onClose -}, (0,external_React_.createElement)("form", { - className: "block-editor-media-placeholder__url-input-form", - onSubmit: onSubmit -}, (0,external_React_.createElement)("input", { - className: "block-editor-media-placeholder__url-input-field", - type: "text", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('URL'), - placeholder: (0,external_wp_i18n_namespaceObject.__)('Paste or type URL'), - onChange: onChange, - value: src -}), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-media-placeholder__url-input-submit-button", - icon: keyboard_return, - label: (0,external_wp_i18n_namespaceObject.__)('Apply'), - type: "submit" -}))); -const URLSelectionUI = ({ - isURLInputVisible, - src, - onChangeSrc, - onSubmitSrc, - openURLInput, - closeURLInput +const LINK_DESTINATION_NONE = 'none'; +const LINK_DESTINATION_CUSTOM = 'custom'; +const LINK_DESTINATION_MEDIA = 'media'; +const LINK_DESTINATION_ATTACHMENT = 'attachment'; +const NEW_TAB_REL = ['noreferrer', 'noopener']; +const icon = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M0,0h24v24H0V0z", + fill: "none" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z" +}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z" +})); +const ImageURLInputUI = ({ + linkDestination, + onChangeUrl, + url, + mediaType = 'image', + mediaUrl, + mediaLink, + linkTarget, + linkClass, + rel }) => { + const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(false); // Use internal state instead of a ref to make sure that the component // re-renders when the popover's anchor updates. const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null); - return (0,external_React_.createElement)("div", { - className: "block-editor-media-placeholder__url-input-container", - ref: setPopoverAnchor - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-media-placeholder__button", - onClick: openURLInput, - isPressed: isURLInputVisible, - variant: "tertiary" - }, (0,external_wp_i18n_namespaceObject.__)('Insert from URL')), isURLInputVisible && (0,external_React_.createElement)(InsertFromURLPopover, { - src: src, - onChange: onChangeSrc, - onSubmit: onSubmitSrc, - onClose: closeURLInput, - popoverAnchor: popoverAnchor - })); -}; -function MediaPlaceholder({ - value = {}, - allowedTypes, - className, - icon, - labels = {}, - mediaPreview, - notices, - isAppender, - accept, - addToGallery, - multiple = false, - handleUpload = true, - disableDropZone, - disableMediaButtons, - onError, - onSelect, - onCancel, - onSelectURL, - onToggleFeaturedImage, - onDoubleClick, - onFilesPreUpload = media_placeholder_noop, - onHTMLDrop: deprecatedOnHTMLDrop, - children, - mediaLibraryButton, - placeholder, - style -}) { - if (deprecatedOnHTMLDrop) { - external_wp_deprecated_default()('wp.blockEditor.MediaPlaceholder onHTMLDrop prop', { - since: '6.2', - version: '6.4' - }); - } - const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSettings - } = select(store); - return getSettings().mediaUpload; - }, []); - const [src, setSrc] = (0,external_wp_element_namespaceObject.useState)(''); - const [isURLInputVisible, setIsURLInputVisible] = (0,external_wp_element_namespaceObject.useState)(false); - (0,external_wp_element_namespaceObject.useEffect)(() => { - var _value$src; - setSrc((_value$src = value?.src) !== null && _value$src !== void 0 ? _value$src : ''); - }, [value?.src]); - const onlyAllowsImages = () => { - if (!allowedTypes || allowedTypes.length === 0) { - return false; - } - return allowedTypes.every(allowedType => allowedType === 'image' || allowedType.startsWith('image/')); + const openLinkUI = () => { + setIsOpen(true); }; - const onChangeSrc = event => { - setSrc(event.target.value); + const [isEditingLink, setIsEditingLink] = (0,external_wp_element_namespaceObject.useState)(false); + const [urlInput, setUrlInput] = (0,external_wp_element_namespaceObject.useState)(null); + const autocompleteRef = (0,external_wp_element_namespaceObject.useRef)(null); + const startEditLink = () => { + if (linkDestination === LINK_DESTINATION_MEDIA || linkDestination === LINK_DESTINATION_ATTACHMENT) { + setUrlInput(''); + } + setIsEditingLink(true); }; - const openURLInput = () => { - setIsURLInputVisible(true); + const stopEditLink = () => { + setIsEditingLink(false); }; - const closeURLInput = () => { - setIsURLInputVisible(false); + const closeLinkUI = () => { + setUrlInput(null); + stopEditLink(); + setIsOpen(false); }; - const onSubmitSrc = event => { - event.preventDefault(); - if (src && onSelectURL) { - onSelectURL(src); - closeURLInput(); + const getUpdatedLinkTargetSettings = value => { + const newLinkTarget = value ? '_blank' : undefined; + let updatedRel; + if (newLinkTarget) { + const rels = (rel !== null && rel !== void 0 ? rel : '').split(' '); + NEW_TAB_REL.forEach(relVal => { + if (!rels.includes(relVal)) { + rels.push(relVal); + } + }); + updatedRel = rels.join(' '); + } else { + const rels = (rel !== null && rel !== void 0 ? rel : '').split(' ').filter(relVal => NEW_TAB_REL.includes(relVal) === false); + updatedRel = rels.length ? rels.join(' ') : undefined; } + return { + linkTarget: newLinkTarget, + rel: updatedRel + }; }; - const onFilesUpload = files => { - if (!handleUpload) { - return onSelect(files); - } - onFilesPreUpload(files); - let setMedia; - if (multiple) { - if (addToGallery) { - // Since the setMedia function runs multiple times per upload group - // and is passed newMedia containing every item in its group each time, we must - // filter out whatever this upload group had previously returned to the - // gallery before adding and returning the image array with replacement newMedia - // values. - - // Define an array to store urls from newMedia between subsequent function calls. - let lastMediaPassed = []; - setMedia = newMedia => { - // Remove any images this upload group is responsible for (lastMediaPassed). - // Their replacements are contained in newMedia. - const filteredMedia = (value !== null && value !== void 0 ? value : []).filter(item => { - // If Item has id, only remove it if lastMediaPassed has an item with that id. - if (item.id) { - return !lastMediaPassed.some( - // Be sure to convert to number for comparison. - ({ - id - }) => Number(id) === Number(item.id)); - } - // Compare transient images via .includes since gallery may append extra info onto the url. - return !lastMediaPassed.some(({ - urlSlug - }) => item.url.includes(urlSlug)); - }); - // Return the filtered media array along with newMedia. - onSelect(filteredMedia.concat(newMedia)); - // Reset lastMediaPassed and set it with ids and urls from newMedia. - lastMediaPassed = newMedia.map(media => { - // Add everything up to '.fileType' to compare via .includes. - const cutOffIndex = media.url.lastIndexOf('.'); - const urlSlug = media.url.slice(0, cutOffIndex); - return { - id: media.id, - urlSlug - }; - }); - }; - } else { - setMedia = onSelect; + const onFocusOutside = () => { + return event => { + // The autocomplete suggestions list renders in a separate popover (in a portal), + // so onFocusOutside fails to detect that a click on a suggestion occurred in the + // LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and + // return to avoid the popover being closed. + const autocompleteElement = autocompleteRef.current; + if (autocompleteElement && autocompleteElement.contains(event.target)) { + return; } - } else { - setMedia = ([media]) => onSelect(media); - } - mediaUpload({ - allowedTypes, - filesList: files, - onFileChange: setMedia, - onError - }); + setIsOpen(false); + setUrlInput(null); + stopEditLink(); + }; }; - async function handleBlocksDrop(blocks) { - if (!blocks || !Array.isArray(blocks)) { - return; - } - function recursivelyFindMediaFromBlocks(_blocks) { - return _blocks.flatMap(block => (block.name === 'core/image' || block.name === 'core/audio' || block.name === 'core/video') && block.attributes.url ? [block] : recursivelyFindMediaFromBlocks(block.innerBlocks)); - } - const mediaBlocks = recursivelyFindMediaFromBlocks(blocks); - if (!mediaBlocks.length) { - return; - } - const uploadedMediaList = await Promise.all(mediaBlocks.map(block => block.attributes.id ? block.attributes : new Promise((resolve, reject) => { - window.fetch(block.attributes.url).then(response => response.blob()).then(blob => mediaUpload({ - filesList: [blob], - additionalData: { - title: block.attributes.title, - alt_text: block.attributes.alt, - caption: block.attributes.caption - }, - onFileChange: ([media]) => { - if (media.id) { - resolve(media); - } - }, - allowedTypes, - onError: reject - })).catch(() => resolve(block.attributes.url)); - }))).catch(err => onError(err)); - if (multiple) { - onSelect(uploadedMediaList); - } else { - onSelect(uploadedMediaList[0]); - } - } - async function onHTMLDrop(HTML) { - const blocks = (0,external_wp_blocks_namespaceObject.pasteHandler)({ - HTML + const onSubmitLinkChange = () => { + return event => { + if (urlInput) { + // It is possible the entered URL actually matches a named link destination. + // This check will ensure our link destination is correct. + const selectedDestination = getLinkDestinations().find(destination => destination.url === urlInput)?.linkDestination || LINK_DESTINATION_CUSTOM; + onChangeUrl({ + href: urlInput, + linkDestination: selectedDestination + }); + } + stopEditLink(); + setUrlInput(null); + event.preventDefault(); + }; + }; + const onLinkRemove = () => { + onChangeUrl({ + linkDestination: LINK_DESTINATION_NONE, + href: '' }); - return await handleBlocksDrop(blocks); - } - const onUpload = event => { - onFilesUpload(event.target.files); }; - const defaultRenderPlaceholder = content => { - let { - instructions, - title - } = labels; - if (!mediaUpload && !onSelectURL) { - instructions = (0,external_wp_i18n_namespaceObject.__)('To edit this block, you need permission to upload media.'); - } - if (instructions === undefined || title === undefined) { - const typesAllowed = allowedTypes !== null && allowedTypes !== void 0 ? allowedTypes : []; - const [firstAllowedType] = typesAllowed; - const isOneType = 1 === typesAllowed.length; - const isAudio = isOneType && 'audio' === firstAllowedType; - const isImage = isOneType && 'image' === firstAllowedType; - const isVideo = isOneType && 'video' === firstAllowedType; - if (instructions === undefined && mediaUpload) { - instructions = (0,external_wp_i18n_namespaceObject.__)('Upload a media file or pick one from your media library.'); - if (isAudio) { - instructions = (0,external_wp_i18n_namespaceObject.__)('Upload an audio file, pick one from your media library, or add one with a URL.'); - } else if (isImage) { - instructions = (0,external_wp_i18n_namespaceObject.__)('Upload an image file, pick one from your media library, or add one with a URL.'); - } else if (isVideo) { - instructions = (0,external_wp_i18n_namespaceObject.__)('Upload a video file, pick one from your media library, or add one with a URL.'); - } - } - if (title === undefined) { - title = (0,external_wp_i18n_namespaceObject.__)('Media'); - if (isAudio) { - title = (0,external_wp_i18n_namespaceObject.__)('Audio'); - } else if (isImage) { - title = (0,external_wp_i18n_namespaceObject.__)('Image'); - } else if (isVideo) { - title = (0,external_wp_i18n_namespaceObject.__)('Video'); - } - } + const getLinkDestinations = () => { + const linkDestinations = [{ + linkDestination: LINK_DESTINATION_MEDIA, + title: (0,external_wp_i18n_namespaceObject.__)('Media File'), + url: mediaType === 'image' ? mediaUrl : undefined, + icon + }]; + if (mediaType === 'image' && mediaLink) { + linkDestinations.push({ + linkDestination: LINK_DESTINATION_ATTACHMENT, + title: (0,external_wp_i18n_namespaceObject.__)('Attachment Page'), + url: mediaType === 'image' ? mediaLink : undefined, + icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M0 0h24v24H0V0z", + fill: "none" + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, { + d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" + })) + }); } - const placeholderClassName = classnames_default()('block-editor-media-placeholder', className, { - 'is-appender': isAppender - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Placeholder, { - icon: icon, - label: title, - instructions: instructions, - className: placeholderClassName, - notices: notices, - onDoubleClick: onDoubleClick, - preview: mediaPreview, - style: style - }, content, children); + return linkDestinations; }; - const renderPlaceholder = placeholder !== null && placeholder !== void 0 ? placeholder : defaultRenderPlaceholder; - const renderDropZone = () => { - if (disableDropZone) { - return null; + const onSetHref = value => { + const linkDestinations = getLinkDestinations(); + let linkDestinationInput; + if (!value) { + linkDestinationInput = LINK_DESTINATION_NONE; + } else { + linkDestinationInput = (linkDestinations.find(destination => { + return destination.url === value; + }) || { + linkDestination: LINK_DESTINATION_CUSTOM + }).linkDestination; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.DropZone, { - onFilesDrop: onFilesUpload, - onHTMLDrop: onHTMLDrop + onChangeUrl({ + linkDestination: linkDestinationInput, + href: value }); }; - const renderCancelLink = () => { - return onCancel && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-media-placeholder__cancel-button", - title: (0,external_wp_i18n_namespaceObject.__)('Cancel'), - variant: "link", - onClick: onCancel - }, (0,external_wp_i18n_namespaceObject.__)('Cancel')); + const onSetNewTab = value => { + const updatedLinkTarget = getUpdatedLinkTargetSettings(value); + onChangeUrl(updatedLinkTarget); }; - const renderUrlSelectionUI = () => { - return onSelectURL && (0,external_React_.createElement)(URLSelectionUI, { - isURLInputVisible: isURLInputVisible, - src: src, - onChangeSrc: onChangeSrc, - onSubmitSrc: onSubmitSrc, - openURLInput: openURLInput, - closeURLInput: closeURLInput + const onSetLinkRel = value => { + onChangeUrl({ + rel: value }); }; - const renderFeaturedImageToggle = () => { - return onToggleFeaturedImage && (0,external_React_.createElement)("div", { - className: "block-editor-media-placeholder__url-input-container" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-media-placeholder__button", - onClick: onToggleFeaturedImage, - variant: "tertiary" - }, (0,external_wp_i18n_namespaceObject.__)('Use featured image'))); - }; - const renderMediaUploadChecked = () => { - const defaultButton = ({ - open - }) => { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "tertiary", - onClick: () => { - open(); - } - }, (0,external_wp_i18n_namespaceObject.__)('Media Library')); - }; - const libraryButton = mediaLibraryButton !== null && mediaLibraryButton !== void 0 ? mediaLibraryButton : defaultButton; - const uploadMediaLibraryButton = (0,external_React_.createElement)(media_upload, { - addToGallery: addToGallery, - gallery: multiple && onlyAllowsImages(), - multiple: multiple, - onSelect: onSelect, - allowedTypes: allowedTypes, - mode: 'browse', - value: Array.isArray(value) ? value.map(({ - id - }) => id) : value.id, - render: libraryButton + const onSetLinkClass = value => { + onChangeUrl({ + linkClass: value }); - if (mediaUpload && isAppender) { - return (0,external_React_.createElement)(external_React_.Fragment, null, renderDropZone(), (0,external_React_.createElement)(external_wp_components_namespaceObject.FormFileUpload, { - onChange: onUpload, - accept: accept, - multiple: !!multiple, - render: ({ - openFileDialog - }) => { - const content = (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "primary", - className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'), - onClick: openFileDialog - }, (0,external_wp_i18n_namespaceObject.__)('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink()); - return renderPlaceholder(content); - } - })); - } - if (mediaUpload) { - const content = (0,external_React_.createElement)(external_React_.Fragment, null, renderDropZone(), (0,external_React_.createElement)(external_wp_components_namespaceObject.FormFileUpload, { - variant: "primary", - className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'), - onChange: onUpload, - accept: accept, - multiple: !!multiple - }, (0,external_wp_i18n_namespaceObject.__)('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink()); - return renderPlaceholder(content); - } - return renderPlaceholder(uploadMediaLibraryButton); }; - if (disableMediaButtons) { - return (0,external_React_.createElement)(check, null, renderDropZone()); - } - return (0,external_React_.createElement)(check, { - fallback: renderPlaceholder(renderUrlSelectionUI()) - }, renderMediaUploadChecked()); -} - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md - */ -/* harmony default export */ var media_placeholder = ((0,external_wp_components_namespaceObject.withFilters)('editor.MediaPlaceholder')(MediaPlaceholder)); + const advancedOptions = (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: "3" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), + onChange: onSetNewTab, + checked: linkTarget === '_blank' + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), + value: rel !== null && rel !== void 0 ? rel : '', + onChange: onSetLinkRel + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, { + __nextHasNoMarginBottom: true, + label: (0,external_wp_i18n_namespaceObject.__)('Link CSS Class'), + value: linkClass || '', + onChange: onSetLinkClass + })); + const linkEditorValue = urlInput !== null ? urlInput : url; + const urlLabel = (getLinkDestinations().find(destination => destination.linkDestination === linkDestination) || {}).title; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: library_link, + className: "components-toolbar__control", + label: url ? (0,external_wp_i18n_namespaceObject.__)('Edit link') : (0,external_wp_i18n_namespaceObject.__)('Insert link'), + "aria-expanded": isOpen, + onClick: openLinkUI, + ref: setPopoverAnchor + }), isOpen && (0,external_wp_element_namespaceObject.createElement)(url_popover, { + anchor: popoverAnchor, + onFocusOutside: onFocusOutside(), + onClose: closeLinkUI, + renderSettings: () => advancedOptions, + additionalControls: !linkEditorValue && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, getLinkDestinations().map(link => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + key: link.linkDestination, + icon: link.icon, + onClick: () => { + setUrlInput(null); + onSetHref(link.url); + stopEditLink(); + } + }, link.title))) + }, (!url || isEditingLink) && (0,external_wp_element_namespaceObject.createElement)(url_popover.LinkEditor, { + className: "block-editor-format-toolbar__link-container-content", + value: linkEditorValue, + onChangeInputValue: setUrlInput, + onSubmit: onSubmitLinkChange(), + autocompleteRef: autocompleteRef + }), url && !isEditingLink && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(url_popover.LinkViewer, { + className: "block-editor-format-toolbar__link-container-content", + url: url, + onEditLinkClick: startEditLink, + urlLabel: urlLabel + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: library_close, + label: (0,external_wp_i18n_namespaceObject.__)('Remove link'), + onClick: onLinkRemove + })))); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/panel-color-settings/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/block-toolbar-last-item.js /** - * Internal dependencies + * WordPress dependencies */ -const PanelColorSettings = ({ - colorSettings, - ...props -}) => { - const settings = colorSettings.map(setting => { - if (!setting) { - return setting; - } - const { - value, - onChange, - ...otherSettings - } = setting; - return { - ...otherSettings, - colorValue: value, - onColorChange: onChange - }; - }); - return (0,external_React_.createElement)(panel_color_gradient_settings, { - settings: settings, - gradients: [], - disableCustomGradients: true, - ...props - }); -}; -/* harmony default export */ var panel_color_settings = (PanelColorSettings); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar/index.js +const { + Fill: __unstableBlockToolbarLastItem, + Slot: block_toolbar_last_item_Slot +} = (0,external_wp_components_namespaceObject.createSlotFill)('__unstableBlockToolbarLastItem'); +__unstableBlockToolbarLastItem.Slot = block_toolbar_last_item_Slot; +/* harmony default export */ var block_toolbar_last_item = (__unstableBlockToolbarLastItem); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/block-name-context.js /** - * External dependencies + * WordPress dependencies */ +const __unstableBlockNameContext = (0,external_wp_element_namespaceObject.createContext)(''); +/* harmony default export */ var block_name_context = (__unstableBlockNameContext); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/mobile.js /** * WordPress dependencies */ +const mobile = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M15 4H9c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h6c.3 0 .5.2.5.5v12zm-4.5-.5h2V16h-2v1.5z" +})); +/* harmony default export */ var library_mobile = (mobile); - +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tablet.js /** - * Internal dependencies + * WordPress dependencies */ -const format_toolbar_POPOVER_PROPS = { - placement: 'bottom-start' -}; -const FormatToolbar = () => { - return (0,external_React_.createElement)(external_React_.Fragment, null, ['bold', 'italic', 'link', 'unknown'].map(format => (0,external_React_.createElement)(external_wp_components_namespaceObject.Slot, { - name: `RichText.ToolbarControls.${format}`, - key: format - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.Slot, { - name: "RichText.ToolbarControls" - }, fills => { - if (!fills.length) { - return null; - } - const allProps = fills.map(([{ - props - }]) => props); - const hasActive = allProps.some(({ - isActive - }) => isActive); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_React_.createElement)(external_wp_components_namespaceObject.DropdownMenu, { - icon: chevron_down - /* translators: button label text should, if possible, be under 16 characters. */, - label: (0,external_wp_i18n_namespaceObject.__)('More'), - toggleProps: { - ...toggleProps, - className: classnames_default()(toggleProps.className, { - 'is-pressed': hasActive - }), - describedBy: (0,external_wp_i18n_namespaceObject.__)('Displays more block tools') - }, - controls: orderBy(fills.map(([{ - props - }]) => props), 'title'), - popoverProps: format_toolbar_POPOVER_PROPS - })); - })); -}; -/* harmony default export */ var format_toolbar = (FormatToolbar); +const tablet = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17 4H7c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12zm-7.5-.5h4V16h-4v1.5z" +})); +/* harmony default export */ var library_tablet = (tablet); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar-container.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/desktop.js /** * WordPress dependencies */ +const desktop = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20.5 16h-.7V8c0-1.1-.9-2-2-2H6.2c-1.1 0-2 .9-2 2v8h-.7c-.8 0-1.5.7-1.5 1.5h20c0-.8-.7-1.5-1.5-1.5zM5.7 8c0-.3.2-.5.5-.5h11.6c.3 0 .5.2.5.5v7.6H5.7V8z" +})); +/* harmony default export */ var library_desktop = (desktop); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/preview-options/index.js +/** + * External dependencies + */ /** - * Internal dependencies + * WordPress dependencies */ -function InlineSelectionToolbar({ - editableContentElement, - activeFormats -}) { - const lastFormat = activeFormats[activeFormats.length - 1]; - const lastFormatType = lastFormat?.type; - const settings = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_richText_namespaceObject.store).getFormatType(lastFormatType), [lastFormatType]); - const popoverAnchor = (0,external_wp_richText_namespaceObject.useAnchor)({ - editableContentElement, - settings - }); - return (0,external_React_.createElement)(InlineToolbar, { - popoverAnchor: popoverAnchor - }); -} -function InlineToolbar({ - popoverAnchor +function PreviewOptions({ + children, + viewLabel, + className, + isEnabled = true, + deviceType, + setDeviceType, + label }) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover, { - placement: "top", - focusOnMount: false, - anchor: popoverAnchor, - className: "block-editor-rich-text__inline-format-toolbar", - __unstableSlotName: "block-toolbar" - }, (0,external_React_.createElement)(NavigableToolbar, { - className: "block-editor-rich-text__inline-format-toolbar-group" - /* translators: accessibility text for the inline format toolbar */, - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Format tools') - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_React_.createElement)(format_toolbar, null)))); + const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<'); + if (isMobile) return null; + const popoverProps = { + className: classnames_default()(className, 'block-editor-post-preview__dropdown-content'), + placement: 'bottom-end' + }; + const toggleProps = { + className: 'block-editor-post-preview__button-toggle', + disabled: !isEnabled, + __experimentalIsFocusable: !isEnabled, + children: viewLabel + }; + const menuProps = { + 'aria-label': (0,external_wp_i18n_namespaceObject.__)('View options') + }; + const deviceIcons = { + mobile: library_mobile, + tablet: library_tablet, + desktop: library_desktop + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + className: "block-editor-post-preview__dropdown", + popoverProps: popoverProps, + toggleProps: toggleProps, + menuProps: menuProps, + icon: deviceIcons[deviceType.toLowerCase()], + label: label || (0,external_wp_i18n_namespaceObject.__)('Preview'), + disableOpenOnArrowDown: !isEnabled + }, renderProps => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + className: "block-editor-post-preview__button-resize", + onClick: () => setDeviceType('Desktop'), + icon: deviceType === 'Desktop' && library_check + }, (0,external_wp_i18n_namespaceObject.__)('Desktop')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + className: "block-editor-post-preview__button-resize", + onClick: () => setDeviceType('Tablet'), + icon: deviceType === 'Tablet' && library_check + }, (0,external_wp_i18n_namespaceObject.__)('Tablet')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + className: "block-editor-post-preview__button-resize", + onClick: () => setDeviceType('Mobile'), + icon: deviceType === 'Mobile' && library_check + }, (0,external_wp_i18n_namespaceObject.__)('Mobile'))), children?.(renderProps))); } -const FormatToolbarContainer = ({ - inline, - editableContentElement, - value -}) => { - const hasInlineToolbar = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getSettings().hasInlineToolbar, []); - if (inline) { - return (0,external_React_.createElement)(InlineToolbar, { - popoverAnchor: editableContentElement - }); - } - if (hasInlineToolbar) { - const activeFormats = (0,external_wp_richText_namespaceObject.getActiveFormats)(value); - if ((0,external_wp_richText_namespaceObject.isCollapsed)(value) && !activeFormats.length) { - return null; - } - return (0,external_React_.createElement)(InlineSelectionToolbar, { - editableContentElement: editableContentElement, - activeFormats: activeFormats - }); - } - - // Render regular toolbar. - return (0,external_React_.createElement)(block_controls, { - group: "inline" - }, (0,external_React_.createElement)(format_toolbar, null)); -}; -/* harmony default export */ var format_toolbar_container = (FormatToolbarContainer); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-undo-automatic-change.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-resize-canvas/index.js /** * WordPress dependencies */ - - /** - * Internal dependencies + * Function to resize the editor window. + * + * @param {string} deviceType Used for determining the size of the container (e.g. Desktop, Tablet, Mobile) + * + * @return {Object} Inline styles to be added to resizable container. */ - -function useUndoAutomaticChange() { - const { - didAutomaticChange, - getSettings - } = (0,external_wp_data_namespaceObject.useSelect)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onKeyDown(event) { - const { - keyCode - } = event; - if (event.defaultPrevented) { - return; - } - if (keyCode !== external_wp_keycodes_namespaceObject.DELETE && keyCode !== external_wp_keycodes_namespaceObject.BACKSPACE && keyCode !== external_wp_keycodes_namespaceObject.ESCAPE) { - return; - } - const { - __experimentalUndo - } = getSettings(); - if (!__experimentalUndo) { - return; - } - if (!didAutomaticChange()) { - return; - } - event.preventDefault(); - __experimentalUndo(); +function useResizeCanvas(deviceType) { + const [actualWidth, updateActualWidth] = (0,external_wp_element_namespaceObject.useState)(window.innerWidth); + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (deviceType === 'Desktop') { + return; } - element.addEventListener('keydown', onKeyDown); + const resizeListener = () => updateActualWidth(window.innerWidth); + window.addEventListener('resize', resizeListener); return () => { - element.removeEventListener('keydown', onKeyDown); + window.removeEventListener('resize', resizeListener); }; - }, []); + }, [deviceType]); + const getCanvasWidth = device => { + let deviceWidth; + switch (device) { + case 'Tablet': + deviceWidth = 780; + break; + case 'Mobile': + deviceWidth = 360; + break; + default: + return null; + } + return deviceWidth < actualWidth ? deviceWidth : actualWidth; + }; + const marginValue = () => window.innerHeight < 800 ? 36 : 72; + const contentInlineStyles = device => { + const height = device === 'Mobile' ? '768px' : '1024px'; + const marginVertical = marginValue() + 'px'; + const marginHorizontal = 'auto'; + switch (device) { + case 'Tablet': + case 'Mobile': + return { + width: getCanvasWidth(device), + // Keeping margin styles separate to avoid warnings + // when those props get overridden in the iframe component + marginTop: marginVertical, + marginBottom: marginVertical, + marginLeft: marginHorizontal, + marginRight: marginHorizontal, + height, + borderRadius: '2px 2px 2px 2px', + border: '1px solid #ddd', + overflowY: 'auto' + }; + default: + return null; + } + }; + return contentInlineStyles(deviceType); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-mark-persistent.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/skip-to-selected-block/index.js + /** * WordPress dependencies */ + /** * Internal dependencies */ -function useMarkPersistent({ - html, - value -}) { - const previousText = (0,external_wp_element_namespaceObject.useRef)(); - const hasActiveFormats = !!value.activeFormats?.length; - const { - __unstableMarkLastChangeAsPersistent - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - // Must be set synchronously to make sure it applies to the last change. - (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - // Ignore mount. - if (!previousText.current) { - previousText.current = value.text; - return; - } +const SkipToSelectedBlock = ({ + selectedBlockClientId +}) => { + const ref = useBlockRef(selectedBlockClientId); + const onClick = () => { + ref.current.focus(); + }; + return selectedBlockClientId ? (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + variant: "secondary", + className: "block-editor-skip-to-selected-block", + onClick: onClick + }, (0,external_wp_i18n_namespaceObject.__)('Skip to the selected block')) : null; +}; - // Text input, so don't create an undo level for every character. - // Create an undo level after 1 second of no input. - if (previousText.current !== value.text) { - const timeout = window.setTimeout(() => { - __unstableMarkLastChangeAsPersistent(); - }, 1000); - previousText.current = value.text; - return () => { - window.clearTimeout(timeout); - }; - } - __unstableMarkLastChangeAsPersistent(); - }, [html, hasActiveFormats]); -} +/** + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md + */ +/* harmony default export */ var skip_to_selected_block = ((0,external_wp_data_namespaceObject.withSelect)(select => { + return { + selectedBlockClientId: select(store).getBlockSelectionStart() + }; +})(SkipToSelectedBlock)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/utils.js +;// CONCATENATED MODULE: external ["wp","wordcount"] +var external_wp_wordcount_namespaceObject = window["wp"]["wordcount"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/copy.js /** * WordPress dependencies */ +const copy_copy = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zm-13.5 0V4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1v11.8c0 .1-.1.1-.1.1H4.6l-.1-.1z" +})); +/* harmony default export */ var library_copy = (copy_copy); -function addActiveFormats(value, activeFormats) { - if (activeFormats?.length) { - let index = value.formats.length; - while (index--) { - value.formats[index] = [...activeFormats, ...(value.formats[index] || [])]; - } - } -} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/multi-selection-inspector/index.js /** - * Get the multiline tag based on the multiline prop. - * - * @param {?(string|boolean)} multiline The multiline prop. - * - * @return {string | undefined} The multiline tag. + * WordPress dependencies */ -function getMultilineTag(multiline) { - if (multiline !== true && multiline !== 'p' && multiline !== 'li') { - return; - } - return multiline === true ? 'p' : multiline; -} -function getAllowedFormats({ - allowedFormats, - disableFormats -}) { - if (disableFormats) { - return getAllowedFormats.EMPTY_ARRAY; - } - return allowedFormats; -} -getAllowedFormats.EMPTY_ARRAY = []; + + + + + /** - * Creates a link from pasted URL. - * Creates a paragraph block containing a link to the URL, and calls `onReplace`. - * - * @param {string} url The URL that could not be embedded. - * @param {Function} onReplace Function to call with the created fallback block. + * Internal dependencies */ -function createLinkInParagraph(url, onReplace) { - const link = createElement("a", { - href: url - }, url); - onReplace(createBlock('core/paragraph', { - content: renderToString(link) - })); + + +function MultiSelectionInspector({ + blocks +}) { + const words = (0,external_wp_wordcount_namespaceObject.count)((0,external_wp_blocks_namespaceObject.serialize)(blocks), 'words'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-multi-selection-inspector__card" + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: library_copy, + showColors: true + }), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-multi-selection-inspector__card-content" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-multi-selection-inspector__card-title" + }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of blocks */ + (0,external_wp_i18n_namespaceObject._n)('%d Block', '%d Blocks', blocks.length), blocks.length)), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-multi-selection-inspector__card-description" + }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of words */ + (0,external_wp_i18n_namespaceObject._n)('%d word selected.', '%d words selected.', words), words)))); } +/* harmony default export */ var multi_selection_inspector = ((0,external_wp_data_namespaceObject.withSelect)(select => { + const { + getMultiSelectedBlocks + } = select(store); + return { + blocks: getMultiSelectedBlocks() + }; +})(MultiSelectionInspector)); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-style-picker/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/split-value.js /** * WordPress dependencies */ -/* - * Signals to the RichText owner that the block can be replaced with two blocks - * as a result of splitting the block by pressing enter, or with blocks as a - * result of splitting the block by pasting block content in the instance. + + + + +/** + * Internal dependencies */ -function splitValue({ - value, - pastedBlocks = [], - onReplace, - onSplit + + +function DefaultStylePicker({ + blockName }) { - if (!onReplace || !onSplit) { - return; + const { + preferredStyle, + onUpdatePreferredStyleVariations, + styles + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + var _preferredStyleVariat; + const settings = select(store).getSettings(); + const preferredStyleVariations = settings.__experimentalPreferredStyleVariations; + return { + preferredStyle: preferredStyleVariations?.value?.[blockName], + onUpdatePreferredStyleVariations: (_preferredStyleVariat = preferredStyleVariations?.onChange) !== null && _preferredStyleVariat !== void 0 ? _preferredStyleVariat : null, + styles: select(external_wp_blocks_namespaceObject.store).getBlockStyles(blockName) + }; + }, [blockName]); + const selectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ + label: (0,external_wp_i18n_namespaceObject.__)('Not set'), + value: '' + }, ...styles.map(({ + label, + name + }) => ({ + label, + value: name + }))], [styles]); + const defaultStyleName = (0,external_wp_element_namespaceObject.useMemo)(() => getDefaultStyle(styles)?.name, [styles]); + const selectOnChange = (0,external_wp_element_namespaceObject.useCallback)(blockStyle => { + onUpdatePreferredStyleVariations(blockName, blockStyle); + }, [blockName, onUpdatePreferredStyleVariations]); + + // Until the functionality is migrated to global styles, + // only show the default style picker if a non-default style has already been selected. + if (!preferredStyle || preferredStyle === defaultStyleName) { + return null; } + return onUpdatePreferredStyleVariations && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "default-style-picker__default-switcher" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { + __nextHasNoMarginBottom: true, + options: selectOptions, + value: preferredStyle || '', + label: (0,external_wp_i18n_namespaceObject.__)('Default Style'), + onChange: selectOnChange + })); +} - // Ensure the value has a selection. This might happen when trying to split - // an empty value before there was a `selectionchange` event. - const { - start = 0, - end = 0 - } = value; - const valueWithEnsuredSelection = { - ...value, - start, - end - }; - const blocks = []; - const [before, after] = (0,external_wp_richText_namespaceObject.split)(valueWithEnsuredSelection); - const hasPastedBlocks = pastedBlocks.length > 0; - let lastPastedBlockIndex = -1; +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cog.js - // Consider the after value to be the original it is not empty and the - // before value *is* empty. - const isAfterOriginal = (0,external_wp_richText_namespaceObject.isEmpty)(before) && !(0,external_wp_richText_namespaceObject.isEmpty)(after); +/** + * WordPress dependencies + */ - // Create a block with the content before the caret if there's no pasted - // blocks, or if there are pasted blocks and the value is not empty. We do - // not want a leading empty block on paste, but we do if we split with e.g. - // the enter key. - if (!hasPastedBlocks || !(0,external_wp_richText_namespaceObject.isEmpty)(before)) { - blocks.push(onSplit((0,external_wp_richText_namespaceObject.toHTMLString)({ - value: before - }), !isAfterOriginal)); - lastPastedBlockIndex += 1; - } - if (hasPastedBlocks) { - blocks.push(...pastedBlocks); - lastPastedBlockIndex += pastedBlocks.length; - } +const cog = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + fillRule: "evenodd", + d: "M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z", + clipRule: "evenodd" +})); +/* harmony default export */ var library_cog = (cog); - // Create a block with the content after the caret if there's no pasted - // blocks, or if there are pasted blocks and the value is not empty. We do - // not want a trailing empty block on paste, but we do if we split with e.g. - // the enter key. - if (!hasPastedBlocks || !(0,external_wp_richText_namespaceObject.isEmpty)(after)) { - blocks.push(onSplit((0,external_wp_richText_namespaceObject.toHTMLString)({ - value: after - }), isAfterOriginal)); - } +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/styles.js + +/** + * WordPress dependencies + */ + +const styles = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z" +})); +/* harmony default export */ var library_styles = (styles); - // If there are pasted blocks, set the selection to the last one. Otherwise, - // set the selection to the second block. - const indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/utils.js +/** + * WordPress dependencies + */ - // If there are pasted blocks, move the caret to the end of the selected - // block Otherwise, retain the default value. - const initialPosition = hasPastedBlocks ? -1 : 0; - onReplace(blocks, indexToSelect, initialPosition); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-paste-handler.js +const TAB_SETTINGS = { + name: 'settings', + title: (0,external_wp_i18n_namespaceObject.__)('Settings'), + value: 'settings', + icon: library_cog, + className: 'block-editor-block-inspector__tab-item' +}; +const TAB_STYLES = { + name: 'styles', + title: (0,external_wp_i18n_namespaceObject.__)('Styles'), + value: 'styles', + icon: library_styles, + className: 'block-editor-block-inspector__tab-item' +}; +const TAB_LIST_VIEW = { + name: 'list', + title: (0,external_wp_i18n_namespaceObject.__)('List View'), + value: 'list-view', + icon: list_view, + className: 'block-editor-block-inspector__tab-item' +}; + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/advanced-controls-panel.js + /** * WordPress dependencies */ +/** + * Internal dependencies + */ +const AdvancedControls = () => { + const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(InspectorAdvancedControls.slotName); + const hasFills = Boolean(fills && fills.length); + if (!hasFills) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + className: "block-editor-block-inspector__advanced", + title: (0,external_wp_i18n_namespaceObject.__)('Advanced'), + initialOpen: false + }, (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "advanced" + })); +}; +/* harmony default export */ var advanced_controls_panel = (AdvancedControls); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/position-controls-panel.js /** - * Internal dependencies + * WordPress dependencies */ -/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */ -function usePasteHandler(props) { - const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); - propsRef.current = props; - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function _onPaste(event) { - const { - isSelected, - disableFormats, - onChange, - value, - formatTypes, - tagName, - onReplace, - onSplit, - __unstableEmbedURLOnPaste, - pastePlainText - } = propsRef.current; - if (!isSelected) { - return; - } - const { - plainText, - html, - files - } = getPasteEventData(event); - event.preventDefault(); +/** + * Internal dependencies + */ - // Allows us to ask for this information when we get a report. - window.console.log('Received HTML:\n\n', html); - window.console.log('Received plain text:\n\n', plainText); - if (disableFormats) { - onChange((0,external_wp_richText_namespaceObject.insert)(value, plainText)); - return; - } - const isInternal = event.clipboardData.getData('rich-text') === 'true'; - // If the data comes from a rich text instance, we can directly use it - // without filtering the data. The filters are only meant for externally - // pasted content and remove inline styles. - if (isInternal) { - const pastedValue = (0,external_wp_richText_namespaceObject.create)({ - html - }); - addActiveFormats(pastedValue, value.activeFormats); - onChange((0,external_wp_richText_namespaceObject.insert)(value, pastedValue)); - return; - } - if (pastePlainText) { - onChange((0,external_wp_richText_namespaceObject.insert)(value, (0,external_wp_richText_namespaceObject.create)({ - text: plainText - }))); - return; - } - if (files?.length) { - // Allows us to ask for this information when we get a report. - // eslint-disable-next-line no-console - window.console.log('Received items:\n\n', files); - const fromTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from'); - const blocks = files.reduce((accumulator, file) => { - const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file])); - if (transformation) { - accumulator.push(transformation.transform([file])); - } - return accumulator; - }, []).flat(); - if (!blocks.length) { - return; - } - if (onReplace && (0,external_wp_richText_namespaceObject.isEmpty)(value)) { - onReplace(blocks); - } else { - splitValue({ - value, - pastedBlocks: blocks, - onReplace, - onSplit - }); - } - return; - } - let mode = onReplace && onSplit ? 'AUTO' : 'INLINE'; - const trimmedPlainText = plainText.trim(); - if (__unstableEmbedURLOnPaste && (0,external_wp_richText_namespaceObject.isEmpty)(value) && (0,external_wp_url_namespaceObject.isURL)(trimmedPlainText) && - // For the link pasting feature, allow only http(s) protocols. - /^https?:/.test(trimmedPlainText)) { - mode = 'BLOCKS'; - } - const content = (0,external_wp_blocks_namespaceObject.pasteHandler)({ - HTML: html, - plainText, - mode, - tagName - }); - if (typeof content === 'string') { - const transformed = formatTypes.reduce((accumlator, { - __unstablePasteRule - }) => { - // Only allow one transform. - if (__unstablePasteRule && accumlator === value) { - accumlator = __unstablePasteRule(value, { - html, - plainText - }); - } - return accumlator; - }, value); - if (transformed !== value) { - onChange(transformed); - } else { - const valueToInsert = (0,external_wp_richText_namespaceObject.create)({ - html: content - }); - addActiveFormats(valueToInsert, value.activeFormats); - onChange((0,external_wp_richText_namespaceObject.insert)(value, valueToInsert)); - } - } else if (content.length > 0) { - if (onReplace && (0,external_wp_richText_namespaceObject.isEmpty)(value)) { - onReplace(content, content.length - 1, -1); - } else { - splitValue({ - value, - pastedBlocks: content, - onReplace, - onSplit - }); - } - } - } - element.addEventListener('paste', _onPaste); - return () => { - element.removeEventListener('paste', _onPaste); + +const PositionControlsPanel = () => { + const [initialOpen, setInitialOpen] = (0,external_wp_element_namespaceObject.useState)(); + + // Determine whether the panel should be expanded. + const { + multiSelectedBlocks + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlocksByClientId, + getSelectedBlockClientIds + } = select(store); + const clientIds = getSelectedBlockClientIds(); + return { + multiSelectedBlocks: getBlocksByClientId(clientIds) }; }, []); -} + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + // If any selected block has a position set, open the panel by default. + // The first block's value will still be used within the control though. + if (initialOpen === undefined) { + setInitialOpen(multiSelectedBlocks.some(({ + attributes + }) => !!attributes?.style?.position?.type)); + } + }, [initialOpen, multiSelectedBlocks, setInitialOpen]); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + className: "block-editor-block-inspector__position", + title: (0,external_wp_i18n_namespaceObject.__)('Position'), + initialOpen: initialOpen !== null && initialOpen !== void 0 ? initialOpen : false + }, (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "position" + })); +}; +const PositionControls = () => { + const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(inspector_controls_groups.position.Slot.__unstableName); + const hasFills = Boolean(fills && fills.length); + if (!hasFills) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(PositionControlsPanel, null); +}; +/* harmony default export */ var position_controls_panel = (PositionControls); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/settings-tab-hint.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-before-input-rules.js /** * WordPress dependencies */ @@ -62557,119 +57254,118 @@ function usePasteHandler(props) { + +const PREFERENCE_NAME = 'isInspectorControlsTabsHintVisible'; +function InspectorControlsTabsHint() { + const isInspectorControlsTabsHintVisible = (0,external_wp_data_namespaceObject.useSelect)(select => { + var _select$get; + return (_select$get = select(external_wp_preferences_namespaceObject.store).get('core', PREFERENCE_NAME)) !== null && _select$get !== void 0 ? _select$get : true; + }, []); + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const { + set: setPreference + } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); + if (!isInspectorControlsTabsHintVisible) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)("div", { + ref: ref, + className: "block-editor-inspector-controls-tabs__hint" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-inspector-controls-tabs__hint-content" + }, (0,external_wp_i18n_namespaceObject.__)("Looking for other block settings? They've moved to the styles tab.")), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-inspector-controls-tabs__hint-dismiss", + icon: library_close, + iconSize: "16", + label: (0,external_wp_i18n_namespaceObject.__)('Dismiss hint'), + onClick: () => { + // Retain focus when dismissing the element. + const previousElement = external_wp_dom_namespaceObject.focus.tabbable.findPrevious(ref.current); + previousElement?.focus(); + setPreference('core', PREFERENCE_NAME, false); + }, + showTooltip: false + })); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/settings-tab.js + /** * Internal dependencies */ -/** - * When typing over a selection, the selection will we wrapped by a matching - * character pair. The second character is optional, it defaults to the first - * character. - * - * @type {string[]} Array of character pairs. - */ -const wrapSelectionSettings = ['`', '"', "'", '“”', '‘’']; -function useBeforeInputRules(props) { - const { - __unstableMarkLastChangeAsPersistent, - __unstableMarkAutomaticChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); - propsRef.current = props; - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onInput(event) { - const { - inputType, - data - } = event; - const { - value, - onChange - } = propsRef.current; - // Only run the rules when inserting text. - if (inputType !== 'insertText') { - return; - } - if ((0,external_wp_richText_namespaceObject.isCollapsed)(value)) { - return; - } - const pair = (0,external_wp_hooks_namespaceObject.applyFilters)('blockEditor.wrapSelectionSettings', wrapSelectionSettings).find(([startChar, endChar]) => startChar === data || endChar === data); - if (!pair) { - return; - } - const [startChar, endChar = startChar] = pair; - const start = value.start; - const end = value.end + startChar.length; - let newValue = (0,external_wp_richText_namespaceObject.insert)(value, startChar, start, start); - newValue = (0,external_wp_richText_namespaceObject.insert)(newValue, endChar, end, end); - __unstableMarkLastChangeAsPersistent(); - onChange(newValue); - __unstableMarkAutomaticChange(); - const init = {}; - for (const key in event) { - init[key] = event[key]; - } - init.data = endChar; - const { - ownerDocument - } = element; - const { - defaultView - } = ownerDocument; - const newEvent = new defaultView.InputEvent('input', init); - // Dispatch an `input` event with the new data. This will trigger the - // input rules. - // Postpone the `input` to the next event loop tick so that the dispatch - // doesn't happen synchronously in the middle of `beforeinput` dispatch. - // This is closer to how native `input` event would be timed, and also - // makes sure that the `input` event is dispatched only after the `onChange` - // call few lines above has fully updated the data store state and rerendered - // all affected components. - window.queueMicrotask(() => { - event.target.dispatchEvent(newEvent); - }); - event.preventDefault(); - } - element.addEventListener('beforeinput', onInput); - return () => { - element.removeEventListener('beforeinput', onInput); - }; - }, []); -} +const SettingsTab = ({ + showAdvancedControls = false +}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, null), (0,external_wp_element_namespaceObject.createElement)(position_controls_panel, null), showAdvancedControls && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(advanced_controls_panel, null)), (0,external_wp_element_namespaceObject.createElement)(InspectorControlsTabsHint, null)); +/* harmony default export */ var settings_tab = (SettingsTab); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/styles-tab.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/prevent-event-discovery.js /** * WordPress dependencies */ -function preventEventDiscovery(value) { - const searchText = 'tales of gutenberg'; - const addText = ' 🐡🐢🦀🐤🦋🐘🐧🐹🦁🦄🦍🐼🐿🎃🐴🐝🐆🦕🦔🌱🍇π🍌🐉💧🥨🌌🍂🍠🥦🥚🥝🎟🥥🥒🛵🥖🍒🍯🎾🎲🐺🐚🐮⌛️'; - const { - start, - text - } = value; - if (start < searchText.length) { - return value; - } - const charactersBefore = text.slice(start - searchText.length, start); - if (charactersBefore.toLowerCase() !== searchText) { - return value; - } - return (0,external_wp_richText_namespaceObject.insert)(value, addText); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-input-rules.js + + /** - * WordPress dependencies + * Internal dependencies */ +const StylesTab = ({ + blockName, + clientId, + hasBlockStyles +}) => { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasBlockStyles && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Styles') + }, (0,external_wp_element_namespaceObject.createElement)(block_styles, { + clientId: clientId + }), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true) && (0,external_wp_element_namespaceObject.createElement)(DefaultStylePicker, { + blockName: blockName + }))), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "color", + label: (0,external_wp_i18n_namespaceObject.__)('Color'), + className: "color-block-support-panel__inner-wrapper" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "background", + label: (0,external_wp_i18n_namespaceObject.__)('Background') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "filter" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "typography", + label: (0,external_wp_i18n_namespaceObject.__)('Typography') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "dimensions", + label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "border", + label: (0,external_wp_i18n_namespaceObject.__)('Border') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "styles" + })); +}; +/* harmony default export */ var styles_tab = (StylesTab); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +// List view tab restricts the blocks that may render to it via the +// allowlist below. +const allowlist = ['core/navigation']; +const useIsListViewTabDisabled = blockName => { + return !allowlist.includes(blockName); +}; +/* harmony default export */ var use_is_list_view_tab_disabled = (useIsListViewTabDisabled); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/index.js +/** + * WordPress dependencies + */ /** @@ -62678,217 +57374,197 @@ function preventEventDiscovery(value) { -function findSelection(blocks) { - let i = blocks.length; - while (i--) { - const attributeKey = retrieveSelectedAttribute(blocks[i].attributes); - if (attributeKey) { - blocks[i].attributes[attributeKey] = blocks[i].attributes[attributeKey] - // To do: refactor this to use rich text's selection instead, so - // we no longer have to use on this hack inserting a special - // character. - .toString().replace(START_OF_SELECTED_AREA, ''); - return [blocks[i].clientId, attributeKey, 0, 0]; + + +function InspectorControlsTabs({ + blockName, + clientId, + hasBlockStyles, + tabs +}) { + // The tabs panel will mount before fills are rendered to the list view + // slot. This means the list view tab isn't initially included in the + // available tabs so the panel defaults selection to the settings tab + // which at the time is the first tab. This check allows blocks known to + // include the list view tab to set it as the tab selected by default. + const initialTabName = !use_is_list_view_tab_disabled(blockName) ? TAB_LIST_VIEW.name : undefined; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TabPanel, { + className: "block-editor-block-inspector__tabs", + tabs: tabs, + initialTabName: initialTabName, + key: clientId + }, tab => { + if (tab.name === TAB_SETTINGS.name) { + return (0,external_wp_element_namespaceObject.createElement)(settings_tab, { + showAdvancedControls: !!blockName + }); } - const nestedSelection = findSelection(blocks[i].innerBlocks); - if (nestedSelection) { - return nestedSelection; + if (tab.name === TAB_STYLES.name) { + return (0,external_wp_element_namespaceObject.createElement)(styles_tab, { + blockName: blockName, + clientId: clientId, + hasBlockStyles: hasBlockStyles + }); } - } - return []; + if (tab.name === TAB_LIST_VIEW.name) { + return (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "list" + }); + } + }); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js /** - * An input rule that replaces two spaces with an en space, and an en space - * followed by a space with an em space. - * - * @param {Object} value Value to replace spaces in. - * - * @return {Object} Value with spaces replaced. + * WordPress dependencies */ -function replacePrecedingSpaces(value) { - if (!(0,external_wp_richText_namespaceObject.isCollapsed)(value)) { - return value; - } - const { - text, - start - } = value; - const lastTwoCharacters = text.slice(start - 2, start); - // Replace two spaces with an em space. - if (lastTwoCharacters === ' ') { - return (0,external_wp_richText_namespaceObject.insert)(value, '\u2002', start - 2, start); + + +/** + * Internal dependencies + */ + + + + + +const use_inspector_controls_tabs_EMPTY_ARRAY = []; +function getShowTabs(blockName, tabSettings = {}) { + // Block specific setting takes precedence over generic default. + if (tabSettings[blockName] !== undefined) { + return tabSettings[blockName]; } - // Replace an en space followed by a space with an em space. - else if (lastTwoCharacters === '\u2002 ') { - return (0,external_wp_richText_namespaceObject.insert)(value, '\u2003', start - 2, start); + + // Use generic default if set over the Gutenberg experiment option. + if (tabSettings.default !== undefined) { + return tabSettings.default; } - return value; + return true; } -function useInputRules(props) { +function useInspectorControlsTabs(blockName) { + const tabs = []; const { - __unstableMarkLastChangeAsPersistent, - __unstableMarkAutomaticChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); - propsRef.current = props; - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function inputRule() { - const { - getValue, - onReplace, - selectionChange - } = propsRef.current; - if (!onReplace) { - return; - } - - // We must use getValue() here because value may be update - // asynchronously. - const value = getValue(); - const { - start, - text - } = value; - const characterBefore = text.slice(start - 1, start); + border: borderGroup, + color: colorGroup, + default: defaultGroup, + dimensions: dimensionsGroup, + list: listGroup, + position: positionGroup, + styles: stylesGroup, + typography: typographyGroup + } = inspector_controls_groups; - // The character right before the caret must be a plain space. - if (characterBefore !== ' ') { - return; - } - const trimmedTextBefore = text.slice(0, start).trim(); - const prefixTransforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from').filter(({ - type - }) => type === 'prefix'); - const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(prefixTransforms, ({ - prefix - }) => { - return trimmedTextBefore === prefix; - }); - if (!transformation) { - return; - } - const content = (0,external_wp_richText_namespaceObject.toHTMLString)({ - value: (0,external_wp_richText_namespaceObject.insert)(value, START_OF_SELECTED_AREA, 0, start) - }); - const block = transformation.transform(content); - selectionChange(...findSelection([block])); - onReplace([block]); - __unstableMarkAutomaticChange(); - return true; - } - function onInput(event) { - const { - inputType, - type - } = event; - const { - getValue, - onChange, - __unstableAllowPrefixTransformations, - formatTypes - } = propsRef.current; + // List View Tab: If there are any fills for the list group add that tab. + const listViewDisabled = use_is_list_view_tab_disabled(blockName); + const listFills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(listGroup.Slot.__unstableName); + const hasListFills = !listViewDisabled && !!listFills && listFills.length; - // Only run input rules when inserting text. - if (inputType !== 'insertText' && type !== 'compositionend') { - return; - } - if (__unstableAllowPrefixTransformations && inputRule()) { - return; - } - const value = getValue(); - const transformed = formatTypes.reduce((accumlator, { - __unstableInputRule - }) => { - if (__unstableInputRule) { - accumlator = __unstableInputRule(accumlator); - } - return accumlator; - }, preventEventDiscovery(replacePrecedingSpaces(value))); - if (transformed !== value) { - __unstableMarkLastChangeAsPersistent(); - onChange({ - ...transformed, - activeFormats: value.activeFormats - }); - __unstableMarkAutomaticChange(); - } - } - element.addEventListener('input', onInput); - element.addEventListener('compositionend', onInput); - return () => { - element.removeEventListener('input', onInput); - element.removeEventListener('compositionend', onInput); - }; + // Styles Tab: Add this tab if there are any fills for block supports + // e.g. border, color, spacing, typography, etc. + const styleFills = [...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(borderGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(colorGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(dimensionsGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(stylesGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(typographyGroup.Slot.__unstableName) || [])]; + const hasStyleFills = styleFills.length; + + // Settings Tab: If we don't have multiple tabs to display + // (i.e. both list view and styles), check only the default and position + // InspectorControls slots. If we have multiple tabs, we'll need to check + // the advanced controls slot as well to ensure they are rendered. + const advancedFills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(InspectorAdvancedControls.slotName) || []; + const settingsFills = [...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(defaultGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(positionGroup.Slot.__unstableName) || []), ...(hasListFills && hasStyleFills > 1 ? advancedFills : [])]; + + // Add the tabs in the order that they will default to if available. + // List View > Settings > Styles. + if (hasListFills) { + tabs.push(TAB_LIST_VIEW); + } + if (settingsFills.length) { + tabs.push(TAB_SETTINGS); + } + if (hasStyleFills) { + tabs.push(TAB_STYLES); + } + const tabSettings = (0,external_wp_data_namespaceObject.useSelect)(select => { + return select(store).getSettings().blockInspectorTabs; }, []); + const showTabs = getShowTabs(blockName, tabSettings); + return showTabs ? tabs : use_inspector_controls_tabs_EMPTY_ARRAY; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-delete.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js /** * WordPress dependencies */ +/** + * Internal dependencies + */ + +function useBlockInspectorAnimationSettings(blockType, selectedBlockClientId) { + return (0,external_wp_data_namespaceObject.useSelect)(select => { + if (blockType) { + const globalBlockInspectorAnimationSettings = select(store).getSettings().blockInspectorAnimation; + // Get the name of the block that will allow it's children to be animated. + const animationParent = globalBlockInspectorAnimationSettings?.animationParent; -function useDelete(props) { - const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); - propsRef.current = props; - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onKeyDown(event) { - const { - keyCode - } = event; - if (event.defaultPrevented) { - return; - } + // Determine whether the animationParent block is a parent of the selected block. const { - value, - onMerge, - onRemove - } = propsRef.current; - if (keyCode === external_wp_keycodes_namespaceObject.DELETE || keyCode === external_wp_keycodes_namespaceObject.BACKSPACE) { - const { - start, - end, - text - } = value; - const isReverse = keyCode === external_wp_keycodes_namespaceObject.BACKSPACE; - const hasActiveFormats = value.activeFormats && !!value.activeFormats.length; - - // Only process delete if the key press occurs at an uncollapsed edge. - if (!(0,external_wp_richText_namespaceObject.isCollapsed)(value) || hasActiveFormats || isReverse && start !== 0 || !isReverse && end !== text.length) { - return; - } - if (onMerge) { - onMerge(!isReverse); - } + getSelectedBlockClientId, + getBlockParentsByBlockName + } = select(store); + const _selectedBlockClientId = getSelectedBlockClientId(); + const animationParentBlockClientId = getBlockParentsByBlockName(_selectedBlockClientId, animationParent, true)[0]; - // Only handle remove on Backspace. This serves dual-purpose of being - // an intentional user interaction distinguishing between Backspace and - // Delete to remove the empty field, but also to avoid merge & remove - // causing destruction of two fields (merge, then removed merged). - else if (onRemove && (0,external_wp_richText_namespaceObject.isEmpty)(value) && isReverse) { - onRemove(!isReverse); - } - event.preventDefault(); + // If the selected block is not a child of the animationParent block, + // and not an animationParent block itself, don't animate. + if (!animationParentBlockClientId && blockType.name !== animationParent) { + return null; } + return globalBlockInspectorAnimationSettings?.[blockType.name]; } - element.addEventListener('keydown', onKeyDown); - return () => { - element.removeEventListener('keydown', onKeyDown); - }; - }, []); + return null; + }, [selectedBlockClientId, blockType]); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-enter.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-info-slot-fill/index.js + /** * WordPress dependencies */ +/** + * Internal dependencies + */ + + +const { + createPrivateSlotFill +} = unlock(external_wp_components_namespaceObject.privateApis); +const { + Fill: block_info_slot_fill_Fill, + Slot: block_info_slot_fill_Slot +} = createPrivateSlotFill('BlockInformation'); +const BlockInfo = props => { + const isDisplayed = useDisplayBlockControls(); + if (!isDisplayed) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(block_info_slot_fill_Fill, { + ...props + }); +}; +BlockInfo.Slot = props => (0,external_wp_element_namespaceObject.createElement)(block_info_slot_fill_Slot, { + ...props +}); +/* harmony default export */ var block_info_slot_fill = (BlockInfo); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-quick-navigation/index.js +/** + * WordPress dependencies + */ @@ -62898,280 +57574,305 @@ function useDelete(props) { */ -function useEnter(props) { - const registry = (0,external_wp_data_namespaceObject.useRegistry)(); +function BlockQuickNavigation({ + clientIds +}) { + if (!clientIds.length) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 1 + }, clientIds.map(clientId => (0,external_wp_element_namespaceObject.createElement)(BlockQuickNavigationItem, { + key: clientId, + clientId: clientId + }))); +} +function BlockQuickNavigationItem({ + clientId +}) { const { - __unstableMarkAutomaticChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const propsRef = (0,external_wp_element_namespaceObject.useRef)(props); - propsRef.current = props; - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onKeyDown(event) { - if (event.defaultPrevented) { - return; - } - if (event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) { - return; - } - const { - removeEditorOnlyFormats, - value, - onReplace, - onSplit, - onChange, - disableLineBreaks, - onSplitAtEnd, - onSplitAtDoubleLineEnd - } = propsRef.current; - event.preventDefault(); - const _value = { - ...value - }; - _value.formats = removeEditorOnlyFormats(value); - const canSplit = onReplace && onSplit; - if (onReplace) { - const transforms = (0,external_wp_blocks_namespaceObject.getBlockTransforms)('from').filter(({ - type - }) => type === 'enter'); - const transformation = (0,external_wp_blocks_namespaceObject.findTransform)(transforms, item => { - return item.regExp.test(_value.text); - }); - if (transformation) { - onReplace([transformation.transform({ - content: _value.text - })]); - __unstableMarkAutomaticChange(); - } - } - const { - text, - start, - end - } = _value; - if (event.shiftKey) { - if (!disableLineBreaks) { - onChange((0,external_wp_richText_namespaceObject.insert)(_value, '\n')); - } - } else if (canSplit) { - splitValue({ - value: _value, - onReplace, - onSplit - }); - } else if (onSplitAtEnd && start === end && end === text.length) { - onSplitAtEnd(); - } else if ( - // For some blocks it's desirable to split at the end of the - // block when there are two line breaks at the end of the - // block, so triple Enter exits the block. - onSplitAtDoubleLineEnd && start === end && end === text.length && text.slice(-2) === '\n\n') { - registry.batch(() => { - _value.start = _value.end - 2; - onChange((0,external_wp_richText_namespaceObject.remove)(_value)); - onSplitAtDoubleLineEnd(); - }); - } else if (!disableLineBreaks) { - onChange((0,external_wp_richText_namespaceObject.insert)(_value, '\n')); - } - } - element.addEventListener('keydown', onKeyDown); - return () => { - element.removeEventListener('keydown', onKeyDown); + name, + icon, + isSelected + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + getBlockAttributes, + isBlockSelected, + hasSelectedInnerBlock + } = select(store); + const { + getBlockType + } = select(external_wp_blocks_namespaceObject.store); + const blockType = getBlockType(getBlockName(clientId)); + const attributes = getBlockAttributes(clientId); + return { + name: blockType && (0,external_wp_blocks_namespaceObject.__experimentalGetBlockLabel)(blockType, attributes, 'list-view'), + icon: blockType?.icon, + isSelected: isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, /* deep: */true) }; - }, []); + }, [clientId]); + const { + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + isPressed: isSelected, + onClick: () => selectBlock(clientId) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, name))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-format-types.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-inspector/index.js + /** * WordPress dependencies */ -function formatTypesSelector(select) { - return select(external_wp_richText_namespaceObject.store).getFormatTypes(); -} -/** - * Set of all interactive content tags. - * - * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content - */ -const interactiveContentTags = new Set(['a', 'audio', 'button', 'details', 'embed', 'iframe', 'input', 'label', 'select', 'textarea', 'video']); -function prefixSelectKeys(selected, prefix) { - if (typeof selected !== 'object') return { - [prefix]: selected - }; - return Object.fromEntries(Object.entries(selected).map(([key, value]) => [`${prefix}.${key}`, value])); -} -function getPrefixedSelectKeys(selected, prefix) { - if (selected[prefix]) return selected[prefix]; - return Object.keys(selected).filter(key => key.startsWith(prefix + '.')).reduce((accumulator, key) => { - accumulator[key.slice(prefix.length + 1)] = selected[key]; - return accumulator; - }, {}); -} /** - * This hook provides RichText with the `formatTypes` and its derived props from - * experimental format type settings. - * - * @param {Object} $0 Options - * @param {string} $0.clientId Block client ID. - * @param {string} $0.identifier Block attribute. - * @param {boolean} $0.withoutInteractiveFormatting Whether to clean the interactive formattings or not. - * @param {Array} $0.allowedFormats Allowed formats + * Internal dependencies */ -function useFormatTypes({ - clientId, - identifier, - withoutInteractiveFormatting, - allowedFormats + + + + + + + + + + + + + + + + +function BlockInspectorLockedBlocks({ + topLevelLockedBlock }) { - const allFormatTypes = (0,external_wp_data_namespaceObject.useSelect)(formatTypesSelector, []); - const formatTypes = (0,external_wp_element_namespaceObject.useMemo)(() => { - return allFormatTypes.filter(({ - name, - interactive, - tagName - }) => { - if (allowedFormats && !allowedFormats.includes(name)) { - return false; - } - if (withoutInteractiveFormatting && (interactive || interactiveContentTags.has(tagName))) { - return false; - } - return true; - }); - }, [allFormatTypes, allowedFormats, withoutInteractiveFormatting]); - const keyedSelected = (0,external_wp_data_namespaceObject.useSelect)(select => formatTypes.reduce((accumulator, type) => { - if (!type.__experimentalGetPropsForEditableTreePreparation) { - return accumulator; - } + const contentClientIds = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getClientIdsOfDescendants, + getBlockName, + getBlockEditingMode + } = select(store); + return getClientIdsOfDescendants(topLevelLockedBlock).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly'); + }, [topLevelLockedBlock]); + const blockInformation = useBlockDisplayInformation(topLevelLockedBlock); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-inspector" + }, (0,external_wp_element_namespaceObject.createElement)(block_card, { + ...blockInformation, + className: blockInformation.isSynced && 'is-synced' + }), (0,external_wp_element_namespaceObject.createElement)(block_variation_transforms, { + blockClientId: topLevelLockedBlock + }), (0,external_wp_element_namespaceObject.createElement)(block_info_slot_fill.Slot, null), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Content') + }, (0,external_wp_element_namespaceObject.createElement)(BlockQuickNavigation, { + clientIds: contentClientIds + }))); +} +const BlockInspector = ({ + showNoBlockSelectedMessage = true +}) => { + const { + count, + selectedBlockName, + selectedBlockClientId, + blockType, + topLevelLockedBlock + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSelectedBlockClientId, + getSelectedBlockCount, + getBlockName, + __unstableGetContentLockingParent, + getTemplateLock + } = select(store); + const _selectedBlockClientId = getSelectedBlockClientId(); + const _selectedBlockName = _selectedBlockClientId && getBlockName(_selectedBlockClientId); + const _blockType = _selectedBlockName && (0,external_wp_blocks_namespaceObject.getBlockType)(_selectedBlockName); return { - ...accumulator, - ...prefixSelectKeys(type.__experimentalGetPropsForEditableTreePreparation(select, { - richTextIdentifier: identifier, - blockClientId: clientId - }), type.name) + count: getSelectedBlockCount(), + selectedBlockClientId: _selectedBlockClientId, + selectedBlockName: _selectedBlockName, + blockType: _blockType, + topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' ? _selectedBlockClientId : undefined) }; - }, {}), [formatTypes, clientId, identifier]); - const dispatch = (0,external_wp_data_namespaceObject.useDispatch)(); - const prepareHandlers = []; - const valueHandlers = []; - const changeHandlers = []; - const dependencies = []; - for (const key in keyedSelected) { - dependencies.push(keyedSelected[key]); + }, []); + const availableTabs = useInspectorControlsTabs(blockType?.name); + const showTabs = availableTabs?.length > 1; + + // The block inspector animation settings will be completely + // removed in the future to create an API which allows the block + // inspector to transition between what it + // displays based on the relationship between the selected block + // and its parent, and only enable it if the parent is controlling + // its children blocks. + const blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(blockType, selectedBlockClientId); + if (count > 1) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-inspector" + }, (0,external_wp_element_namespaceObject.createElement)(multi_selection_inspector, null), showTabs ? (0,external_wp_element_namespaceObject.createElement)(InspectorControlsTabs, { + tabs: availableTabs + }) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, null), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "color", + label: (0,external_wp_i18n_namespaceObject.__)('Color'), + className: "color-block-support-panel__inner-wrapper" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "typography", + label: (0,external_wp_i18n_namespaceObject.__)('Typography') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "dimensions", + label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "border", + label: (0,external_wp_i18n_namespaceObject.__)('Border') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "styles" + }))); } - formatTypes.forEach(type => { - if (type.__experimentalCreatePrepareEditableTree) { - const handler = type.__experimentalCreatePrepareEditableTree(getPrefixedSelectKeys(keyedSelected, type.name), { - richTextIdentifier: identifier, - blockClientId: clientId - }); - if (type.__experimentalCreateOnChangeEditableValue) { - valueHandlers.push(handler); - } else { - prepareHandlers.push(handler); - } + const isSelectedBlockUnregistered = selectedBlockName === (0,external_wp_blocks_namespaceObject.getUnregisteredTypeHandlerName)(); + + /* + * If the selected block is of an unregistered type, avoid showing it as an actual selection + * because we want the user to focus on the unregistered block warning, not block settings. + */ + if (!blockType || !selectedBlockClientId || isSelectedBlockUnregistered) { + if (showNoBlockSelectedMessage) { + return (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-inspector__no-blocks" + }, (0,external_wp_i18n_namespaceObject.__)('No block selected.')); } - if (type.__experimentalCreateOnChangeEditableValue) { - let dispatchers = {}; - if (type.__experimentalGetPropsForEditableTreeChangeHandler) { - dispatchers = type.__experimentalGetPropsForEditableTreeChangeHandler(dispatch, { - richTextIdentifier: identifier, - blockClientId: clientId - }); + return null; + } + if (topLevelLockedBlock) { + return (0,external_wp_element_namespaceObject.createElement)(BlockInspectorLockedBlocks, { + topLevelLockedBlock: topLevelLockedBlock + }); + } + return (0,external_wp_element_namespaceObject.createElement)(BlockInspectorSingleBlockWrapper, { + animate: blockInspectorAnimationSettings, + wrapper: children => (0,external_wp_element_namespaceObject.createElement)(AnimatedContainer, { + blockInspectorAnimationSettings: blockInspectorAnimationSettings, + selectedBlockClientId: selectedBlockClientId + }, children) + }, (0,external_wp_element_namespaceObject.createElement)(BlockInspectorSingleBlock, { + clientId: selectedBlockClientId, + blockName: blockType.name + })); +}; +const BlockInspectorSingleBlockWrapper = ({ + animate, + wrapper, + children +}) => { + return animate ? wrapper(children) : children; +}; +const AnimatedContainer = ({ + blockInspectorAnimationSettings, + selectedBlockClientId, + children +}) => { + const animationOrigin = blockInspectorAnimationSettings && blockInspectorAnimationSettings.enterDirection === 'leftToRight' ? -50 : 50; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { + animate: { + x: 0, + opacity: 1, + transition: { + ease: 'easeInOut', + duration: 0.14 } - const selected = getPrefixedSelectKeys(keyedSelected, type.name); - changeHandlers.push(type.__experimentalCreateOnChangeEditableValue({ - ...(typeof selected === 'object' ? selected : {}), - ...dispatchers - }, { - richTextIdentifier: identifier, - blockClientId: clientId - })); - } - }); - return { - formatTypes, - prepareHandlers, - valueHandlers, - changeHandlers, - dependencies - }; -} + }, + initial: { + x: animationOrigin, + opacity: 0 + }, + key: selectedBlockClientId + }, children); +}; +const BlockInspectorSingleBlock = ({ + clientId, + blockName +}) => { + const availableTabs = useInspectorControlsTabs(blockName); + const showTabs = availableTabs?.length > 1; + const hasBlockStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockStyles + } = select(external_wp_blocks_namespaceObject.store); + const blockStyles = getBlockStyles(blockName); + return blockStyles && blockStyles.length > 0; + }, [blockName]); + const blockInformation = useBlockDisplayInformation(clientId); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-inspector" + }, (0,external_wp_element_namespaceObject.createElement)(block_card, { + ...blockInformation, + className: blockInformation.isSynced && 'is-synced' + }), (0,external_wp_element_namespaceObject.createElement)(block_variation_transforms, { + blockClientId: clientId + }), (0,external_wp_element_namespaceObject.createElement)(block_info_slot_fill.Slot, null), showTabs && (0,external_wp_element_namespaceObject.createElement)(InspectorControlsTabs, { + hasBlockStyles: hasBlockStyles, + clientId: clientId, + blockName: blockName, + tabs: availableTabs + }), !showTabs && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hasBlockStyles && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.PanelBody, { + title: (0,external_wp_i18n_namespaceObject.__)('Styles') + }, (0,external_wp_element_namespaceObject.createElement)(block_styles, { + clientId: clientId + }), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true) && (0,external_wp_element_namespaceObject.createElement)(DefaultStylePicker, { + blockName: blockName + }))), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, null), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "list" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "color", + label: (0,external_wp_i18n_namespaceObject.__)('Color'), + className: "color-block-support-panel__inner-wrapper" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "typography", + label: (0,external_wp_i18n_namespaceObject.__)('Typography') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "dimensions", + label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "border", + label: (0,external_wp_i18n_namespaceObject.__)('Border') + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "styles" + }), (0,external_wp_element_namespaceObject.createElement)(inspector_controls.Slot, { + group: "background", + label: (0,external_wp_i18n_namespaceObject.__)('Background') + }), (0,external_wp_element_namespaceObject.createElement)(position_controls_panel, null), (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(advanced_controls_panel, null))), (0,external_wp_element_namespaceObject.createElement)(skip_to_selected_block, { + key: "back" + })); +}; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-remove-browser-shortcuts.js /** - * WordPress dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md */ +/* harmony default export */ var block_inspector = (BlockInspector); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/index.js - -/** - * Hook to prevent default behaviors for key combinations otherwise handled - * internally by RichText. - * - * @return {import('react').RefObject} The component to be rendered. - */ -function useRemoveBrowserShortcuts() { - return (0,external_wp_compose_namespaceObject.useRefEffect)(node => { - function onKeydown(event) { - if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z') || external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'y') || external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'z')) { - event.preventDefault(); - } - } - node.addEventListener('keydown', onKeydown); - return () => { - node.removeEventListener('keydown', onKeydown); - }; - }, []); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-shortcuts.js /** - * WordPress dependencies + * External dependencies */ -function useShortcuts(keyboardShortcuts) { - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onKeyDown(event) { - for (const keyboardShortcut of keyboardShortcuts.current) { - keyboardShortcut(event); - } - } - element.addEventListener('keydown', onKeyDown); - return () => { - element.removeEventListener('keydown', onKeyDown); - }; - }, []); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-input-events.js /** * WordPress dependencies */ -function useInputEvents(inputEvents) { - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onInput(event) { - for (const keyboardShortcut of inputEvents.current) { - keyboardShortcut(event); - } - } - element.addEventListener('input', onInput); - return () => { - element.removeEventListener('input', onInput); - }; - }, []); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-insert-replacement-text.js -/** - * WordPress dependencies - */ + @@ -63180,129 +57881,99 @@ function useInputEvents(inputEvents) { */ -/** - * When the browser is about to auto correct, add an undo level so the user can - * revert the change. - */ -function useInsertReplacementText() { + +function BlockMover({ + clientIds, + hideDragHandle +}) { const { - __unstableMarkLastChangeAsPersistent - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onInput(event) { - if (event.inputType === 'insertReplacementText') { - __unstableMarkLastChangeAsPersistent(); - } - } - element.addEventListener('beforeinput', onInput); - return () => { - element.removeEventListener('beforeinput', onInput); + canMove, + rootClientId, + isFirst, + isLast, + orientation + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockIndex, + getBlockListSettings, + canMoveBlocks, + getBlockOrder, + getBlockRootClientId + } = select(store); + const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds]; + const firstClientId = normalizedClientIds[0]; + const _rootClientId = getBlockRootClientId(firstClientId); + const firstIndex = getBlockIndex(firstClientId); + const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]); + const blockOrder = getBlockOrder(_rootClientId); + return { + canMove: canMoveBlocks(clientIds, _rootClientId), + rootClientId: _rootClientId, + isFirst: firstIndex === 0, + isLast: lastIndex === blockOrder.length - 1, + orientation: getBlockListSettings(_rootClientId)?.orientation }; - }, []); + }, [clientIds]); + if (!canMove || isFirst && isLast && !rootClientId) { + return null; + } + const dragHandleLabel = (0,external_wp_i18n_namespaceObject.__)('Drag'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { + className: classnames_default()('block-editor-block-mover', { + 'is-horizontal': orientation === 'horizontal' + }) + }, !hideDragHandle && (0,external_wp_element_namespaceObject.createElement)(block_draggable, { + clientIds: clientIds + }, draggableProps => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: drag_handle, + className: "block-editor-block-mover__drag-handle", + "aria-hidden": "true", + label: dragHandleLabel + // Should not be able to tab to drag handle as this + // button can only be used with a pointer device. + , + tabIndex: "-1", + ...draggableProps + })), (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-mover__move-button-container" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, itemProps => (0,external_wp_element_namespaceObject.createElement)(BlockMoverUpButton, { + clientIds: clientIds, + ...itemProps + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, itemProps => (0,external_wp_element_namespaceObject.createElement)(BlockMoverDownButton, { + clientIds: clientIds, + ...itemProps + })))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/use-firefox-compat.js -/** - * WordPress dependencies - */ - - - /** - * Internal dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md */ +/* harmony default export */ var block_mover = (BlockMover); -function useFirefoxCompat() { - const { - isMultiSelecting - } = (0,external_wp_data_namespaceObject.useSelect)(store); - return (0,external_wp_compose_namespaceObject.useRefEffect)(element => { - function onFocus() { - if (!isMultiSelecting()) { - return; - } - - // This is a little hack to work around focus issues with nested - // editable elements in Firefox. For some reason the editable child - // element sometimes regains focus, while it should not be focusable - // and focus should remain on the editable parent element. - // To do: try to find the cause of the shifting focus. - const parentEditable = element.parentElement.closest('[contenteditable="true"]'); - if (parentEditable) { - parentEditable.focus(); - } - } - element.addEventListener('focus', onFocus); - return () => { - element.removeEventListener('focus', onFocus); - }; - }, []); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-edit.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/index.js /** * WordPress dependencies */ - /** * Internal dependencies */ -const format_edit_DEFAULT_BLOCK_CONTEXT = {}; -const usesContextKey = Symbol('usesContext'); -function format_edit_Edit({ - onChange, - onFocus, - value, - forwardedRef, - settings -}) { - const { - name, - edit: EditFunction, - [usesContextKey]: usesContext - } = settings; - const blockContext = (0,external_wp_element_namespaceObject.useContext)(block_context); - - // Assign context values using the block type's declared context needs. - const context = (0,external_wp_element_namespaceObject.useMemo)(() => { - return usesContext ? Object.fromEntries(Object.entries(blockContext).filter(([key]) => usesContext.includes(key))) : format_edit_DEFAULT_BLOCK_CONTEXT; - }, [usesContext, blockContext]); - if (!EditFunction) { - return null; - } - const activeFormat = (0,external_wp_richText_namespaceObject.getActiveFormat)(value, name); - const isActive = activeFormat !== undefined; - const activeObject = (0,external_wp_richText_namespaceObject.getActiveObject)(value); - const isObjectActive = activeObject !== undefined && activeObject.type === name; - return (0,external_React_.createElement)(EditFunction, { - key: name, - isActive: isActive, - activeAttributes: isActive ? activeFormat.attributes || {} : {}, - isObjectActive: isObjectActive, - activeObjectAttributes: isObjectActive ? activeObject.attributes || {} : {}, - value: value, - onChange: onChange, - onFocus: onFocus, - contentRef: forwardedRef, - context: context - }); -} -function FormatEdit({ - formatTypes, +function BlockSettingsMenu({ + clientIds, ...props }) { - return formatTypes.map(settings => (0,external_React_.createElement)(format_edit_Edit, { - settings: settings, - ...props, - key: settings.name - })); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_wp_element_namespaceObject.createElement)(block_settings_dropdown, { + clientIds: clientIds, + toggleProps: toggleProps, + ...props + }))); } +/* harmony default export */ var block_settings_menu = (BlockSettingsMenu); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/content.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-parent-selector/index.js /** * WordPress dependencies @@ -63311,48 +57982,79 @@ function FormatEdit({ + + /** * Internal dependencies */ + + + /** - * Internal dependencies + * Block parent selector component, displaying the hierarchy of the + * current block selection as a single icon to "go up" a level. + * + * @return {WPComponent} Parent block selector. */ +function BlockParentSelector() { + const { + selectBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + firstParentClientId, + isVisible + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + getBlockParents, + getSelectedBlockClientId, + getBlockEditingMode + } = select(store); + const { + hasBlockSupport + } = select(external_wp_blocks_namespaceObject.store); + const selectedBlockClientId = getSelectedBlockClientId(); + const parents = getBlockParents(selectedBlockClientId); + const _firstParentClientId = parents[parents.length - 1]; + const parentBlockName = getBlockName(_firstParentClientId); + const _parentBlockType = (0,external_wp_blocks_namespaceObject.getBlockType)(parentBlockName); + return { + firstParentClientId: _firstParentClientId, + isVisible: _firstParentClientId && getBlockEditingMode(_firstParentClientId) === 'default' && hasBlockSupport(_parentBlockType, '__experimentalParentSelector', true) + }; + }, []); + const blockInformation = useBlockDisplayInformation(firstParentClientId); -function Content({ - value, - tagName: Tag, - multiline, - format, - ...props -}) { - if (rich_text.isEmpty(value)) { - const MultilineTag = getMultilineTag(multiline); - value = MultilineTag ? (0,external_React_.createElement)(MultilineTag, null) : null; - } else if (Array.isArray(value)) { - external_wp_deprecated_default()('wp.blockEditor.RichText value prop as children type', { - since: '6.1', - version: '6.3', - alternative: 'value prop as string', - link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/' - }); - value = (0,external_React_.createElement)(external_wp_element_namespaceObject.RawHTML, null, external_wp_blocks_namespaceObject.children.toHTML(value)); - } else if (typeof value === 'string') { - // To do: deprecate. - value = (0,external_React_.createElement)(external_wp_element_namespaceObject.RawHTML, null, value); - } else { - // To do: create a toReactComponent method on RichTextData, which we - // might in the future also use for the editable tree. See - // https://github.com/WordPress/gutenberg/pull/41655. - value = (0,external_React_.createElement)(external_wp_element_namespaceObject.RawHTML, null, value.toHTMLString()); + // Allows highlighting the parent block outline when focusing or hovering + // the parent block selector within the child. + const nodeRef = (0,external_wp_element_namespaceObject.useRef)(); + const showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures({ + ref: nodeRef, + highlightParent: true + }); + if (!isVisible) { + return null; } - return Tag ? (0,external_React_.createElement)(Tag, { - ...props - }, value) : value; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-parent-selector", + key: firstParentClientId, + ref: nodeRef, + ...showHoveredOrFocusedGestures + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + className: "block-editor-block-parent-selector__button", + onClick: () => selectBlock(firstParentClientId), + label: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: Name of the block's parent. */ + (0,external_wp_i18n_namespaceObject.__)('Select %s'), blockInformation?.title), + showTooltip: true, + icon: (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: blockInformation?.icon + }) + })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/multiline.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/preview-block-popover.js /** * WordPress dependencies @@ -63360,87 +58062,32 @@ function Content({ - /** * Internal dependencies */ - - - -function RichTextMultiline({ - children, - identifier, - tagName: TagName = 'div', - value = '', - onChange, - multiline, - ...props -}, forwardedRef) { - external_wp_deprecated_default()('wp.blockEditor.RichText multiline prop', { - since: '6.1', - version: '6.3', - alternative: 'nested blocks (InnerBlocks)', - link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/' - }); - const { - clientId - } = useBlockEditContext(); - const { - selectionChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const multilineTagName = getMultilineTag(multiline); - value = value || `<${multilineTagName}>`; - const padded = `${value}<${multilineTagName}>`; - const values = padded.split(`<${multilineTagName}>`); - values.shift(); - values.pop(); - function _onChange(newValues) { - onChange(`<${multilineTagName}>${newValues.join(`<${multilineTagName}>`)}`); - } - return (0,external_React_.createElement)(TagName, { - ref: forwardedRef - }, values.map((_value, index) => { - return (0,external_React_.createElement)(RichTextWrapper, { - key: index, - identifier: `${identifier}-${index}`, - tagName: multilineTagName, - value: _value, - onChange: newValue => { - const newValues = values.slice(); - newValues[index] = newValue; - _onChange(newValues); - }, - isSelected: undefined, - onSplit: v => v, - onReplace: array => { - const newValues = values.slice(); - newValues.splice(index, 1, ...array); - _onChange(newValues); - selectionChange(clientId, `${identifier}-${index + 1}`, 0, 0); - }, - onMerge: forward => { - const newValues = values.slice(); - let offset = 0; - if (forward) { - if (!newValues[index + 1]) return; - newValues.splice(index, 2, newValues[index] + newValues[index + 1]); - offset = newValues[index].length - 1; - } else { - if (!newValues[index - 1]) return; - newValues.splice(index - 1, 2, newValues[index - 1] + newValues[index]); - offset = newValues[index - 1].length - 1; - } - _onChange(newValues); - selectionChange(clientId, `${identifier}-${index - (forward ? 0 : 1)}`, offset, offset); - }, - ...props - }); - })); +function PreviewBlockPopover({ + blocks +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__popover__preview__parent" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__popover__preview__container" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + className: "block-editor-block-switcher__preview__popover", + placement: "bottom-start", + focusOnMount: false + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__preview" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__preview-title" + }, (0,external_wp_i18n_namespaceObject.__)('Preview')), (0,external_wp_element_namespaceObject.createElement)(block_preview, { + viewportWidth: 500, + blocks: blocks + }))))); } -/* harmony default export */ var multiline = ((0,external_wp_element_namespaceObject.forwardRef)(RichTextMultiline)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/with-deprecations.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-variation-transformations.js /** * WordPress dependencies @@ -63450,45 +58097,92 @@ function RichTextMultiline({ - /** * Internal dependencies */ -function withDeprecations(Component) { - return (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - let value = props.value; - let onChange = props.onChange; - // Handle deprecated format. - if (Array.isArray(value)) { - external_wp_deprecated_default()('wp.blockEditor.RichText value prop as children type', { - since: '6.1', - version: '6.3', - alternative: 'value prop as string', - link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/' - }); - value = external_wp_blocks_namespaceObject.children.toHTML(props.value); - onChange = newValue => props.onChange(external_wp_blocks_namespaceObject.children.fromDOM((0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, newValue).childNodes)); + +const block_variation_transformations_EMPTY_OBJECT = {}; +function useBlockVariationTransforms({ + clientIds, + blocks +}) { + const { + activeBlockVariation, + blockVariationTransformations + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockRootClientId, + getBlockAttributes, + canRemoveBlocks + } = select(store); + const { + getActiveBlockVariation, + getBlockVariations + } = select(external_wp_blocks_namespaceObject.store); + const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds); + const canRemove = canRemoveBlocks(clientIds, rootClientId); + // Only handle single selected blocks for now. + if (blocks.length !== 1 || !canRemove) { + return block_variation_transformations_EMPTY_OBJECT; } - const NewComponent = props.multiline ? multiline : Component; - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(NewComponent); - return (0,external_React_.createElement)(NewComponent, { - ...props, - identifier: props.identifier || instanceId, - value: value, - onChange: onChange, - ref: ref - }); - }); + const [firstBlock] = blocks; + return { + blockVariationTransformations: getBlockVariations(firstBlock.name, 'transform'), + activeBlockVariation: getActiveBlockVariation(firstBlock.name, getBlockAttributes(firstBlock.clientId)) + }; + }, [clientIds, blocks]); + const transformations = (0,external_wp_element_namespaceObject.useMemo)(() => { + return blockVariationTransformations?.filter(({ + name + }) => name !== activeBlockVariation?.name); + }, [blockVariationTransformations, activeBlockVariation]); + return transformations; +} +const BlockVariationTransformations = ({ + transformations, + onSelect, + blocks +}) => { + const [hoveredTransformItemName, setHoveredTransformItemName] = (0,external_wp_element_namespaceObject.useState)(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, hoveredTransformItemName && (0,external_wp_element_namespaceObject.createElement)(PreviewBlockPopover, { + blocks: (0,external_wp_blocks_namespaceObject.cloneBlock)(blocks[0], transformations.find(({ + name + }) => name === hoveredTransformItemName).attributes) + }), transformations?.map(item => (0,external_wp_element_namespaceObject.createElement)(BlockVariationTranformationItem, { + key: item.name, + item: item, + onSelect: onSelect, + setHoveredTransformItemName: setHoveredTransformItemName + }))); +}; +function BlockVariationTranformationItem({ + item, + onSelect, + setHoveredTransformItemName +}) { + const { + name, + icon, + title + } = item; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(name), + onClick: event => { + event.preventDefault(); + onSelect(name); + }, + onMouseLeave: () => setHoveredTransformItemName(null), + onMouseEnter: () => setHoveredTransformItemName(name) + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon, + showColors: true + }), title); } +/* harmony default export */ var block_variation_transformations = (BlockVariationTransformations); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/index.js - -/** - * External dependencies - */ - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-transformations-menu.js /** * WordPress dependencies @@ -63498,8 +58192,6 @@ function withDeprecations(Component) { - - /** * Internal dependencies */ @@ -63507,542 +58199,358 @@ function withDeprecations(Component) { - - - - - - - - - - - - - - - - - - -const keyboardShortcutContext = (0,external_wp_element_namespaceObject.createContext)(); -const inputEventContext = (0,external_wp_element_namespaceObject.createContext)(); - /** - * Removes props used for the native version of RichText so that they are not - * passed to the DOM element and log warnings. + * Helper hook to group transformations to display them in a specific order in the UI. + * For now we group only priority content driven transformations(ex. paragraph -> heading). * - * @param {Object} props Props to filter. + * Later on we could also group 'layout' transformations(ex. paragraph -> group) and + * display them in different sections. * - * @return {Object} Filtered props. + * @param {Object[]} possibleBlockTransformations The available block transformations. + * @return {Record} The grouped block transformations. */ -function removeNativeProps(props) { - const { - __unstableMobileNoFocusOnMount, - deleteEnter, - placeholderTextColor, - textAlign, - selectionColor, - tagsToEliminate, - disableEditingMenu, - fontSize, - fontFamily, - fontWeight, - fontStyle, - minWidth, - maxWidth, - setRef, - disableSuggestions, - disableAutocorrection, - ...restProps - } = props; - return restProps; -} -function RichTextWrapper({ - children, - tagName = 'div', - value: adjustedValue = '', - onChange: adjustedOnChange, - isSelected: originalIsSelected, - multiline, - inlineToolbar, - wrapperClassName, - autocompleters, - onReplace, - placeholder, - allowedFormats, - withoutInteractiveFormatting, - onRemove, - onMerge, - onSplit, - __unstableOnSplitAtEnd: onSplitAtEnd, - __unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd, - identifier, - preserveWhiteSpace, - __unstablePastePlainText: pastePlainText, - __unstableEmbedURLOnPaste, - __unstableDisableFormats: disableFormats, - disableLineBreaks, - __unstableAllowPrefixTransformations, - ...props -}, forwardedRef) { - props = removeNativeProps(props); - const anchorRef = (0,external_wp_element_namespaceObject.useRef)(); - const { - clientId, - isSelected: isBlockSelected, - name: blockName - } = useBlockEditContext(); - const selector = select => { - // Avoid subscribing to the block editor store if the block is not - // selected. - if (!isBlockSelected) { - return { - isSelected: false - }; - } - const { - getSelectionStart, - getSelectionEnd, - getBlockAttributes - } = select(store); - const selectionStart = getSelectionStart(); - const selectionEnd = getSelectionEnd(); - const blockBindings = getBlockAttributes(clientId)?.metadata?.bindings; - let isSelected; - if (originalIsSelected === undefined) { - isSelected = selectionStart.clientId === clientId && selectionEnd.clientId === clientId && selectionStart.attributeKey === identifier; - } else if (originalIsSelected) { - isSelected = selectionStart.clientId === clientId; - } - - // Disable Rich Text editing if block bindings specify that. - let shouldDisableEditing = false; - if (blockBindings) { - const blockTypeAttributes = (0,external_wp_blocks_namespaceObject.getBlockType)(blockName).attributes; +function useGroupedTransforms(possibleBlockTransformations) { + const priorityContentTranformationBlocks = { + 'core/paragraph': 1, + 'core/heading': 2, + 'core/list': 3, + 'core/quote': 4 + }; + const transformations = (0,external_wp_element_namespaceObject.useMemo)(() => { + const priorityTextTranformsNames = Object.keys(priorityContentTranformationBlocks); + return possibleBlockTransformations.reduce((accumulator, item) => { const { - getBlockBindingsSource - } = unlock(select(store)); - for (const [attribute, args] of Object.entries(blockBindings)) { - // If any of the attributes with source "rich-text" is part of the bindings, - // has a source with `lockAttributesEditing`, disable it. - if (blockTypeAttributes?.[attribute]?.source === 'rich-text' && getBlockBindingsSource(args.source.name)?.lockAttributesEditing) { - shouldDisableEditing = true; - break; - } + name + } = item; + if (priorityTextTranformsNames.includes(name)) { + accumulator.priorityTextTransformations.push(item); + } else { + accumulator.restTransformations.push(item); } - } - return { - selectionStart: isSelected ? selectionStart.offset : undefined, - selectionEnd: isSelected ? selectionEnd.offset : undefined, - isSelected, - shouldDisableEditing - }; - }; - const { - selectionStart, - selectionEnd, - isSelected, - shouldDisableEditing - } = (0,external_wp_data_namespaceObject.useSelect)(selector, [clientId, identifier, originalIsSelected, isBlockSelected]); - const { - getSelectionStart, - getSelectionEnd, - getBlockRootClientId - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - selectionChange - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - const adjustedAllowedFormats = getAllowedFormats({ - allowedFormats, - disableFormats + return accumulator; + }, { + priorityTextTransformations: [], + restTransformations: [] + }); + }, [possibleBlockTransformations]); + + // Order the priority text transformations. + transformations.priorityTextTransformations.sort(({ + name: currentName + }, { + name: nextName + }) => { + return priorityContentTranformationBlocks[currentName] < priorityContentTranformationBlocks[nextName] ? -1 : 1; }); - const hasFormats = !adjustedAllowedFormats || adjustedAllowedFormats.length > 0; - const onSelectionChange = (0,external_wp_element_namespaceObject.useCallback)((start, end) => { - const selection = {}; - const unset = start === undefined && end === undefined; - if (typeof start === 'number' || unset) { - // If we are only setting the start (or the end below), which - // means a partial selection, and we're not updating a selection - // with the same client ID, abort. This means the selected block - // is a parent block. - if (end === undefined && getBlockRootClientId(clientId) !== getBlockRootClientId(getSelectionEnd().clientId)) { - return; - } - selection.start = { - clientId, - attributeKey: identifier, - offset: start - }; - } - if (typeof end === 'number' || unset) { - if (start === undefined && getBlockRootClientId(clientId) !== getBlockRootClientId(getSelectionStart().clientId)) { - return; - } - selection.end = { - clientId, - attributeKey: identifier, - offset: end - }; - } - selectionChange(selection); - }, [clientId, identifier]); + return transformations; +} +const BlockTransformationsMenu = ({ + className, + possibleBlockTransformations, + possibleBlockVariationTransformations, + onSelect, + onSelectVariation, + blocks +}) => { + const [hoveredTransformItemName, setHoveredTransformItemName] = (0,external_wp_element_namespaceObject.useState)(); const { - formatTypes, - prepareHandlers, - valueHandlers, - changeHandlers, - dependencies - } = useFormatTypes({ - clientId, - identifier, - withoutInteractiveFormatting, - allowedFormats: adjustedAllowedFormats + priorityTextTransformations, + restTransformations + } = useGroupedTransforms(possibleBlockTransformations); + // We have to check if both content transformations(priority and rest) are set + // in order to create a separate MenuGroup for them. + const hasBothContentTransformations = priorityTextTransformations.length && restTransformations.length; + const restTransformItems = !!restTransformations.length && (0,external_wp_element_namespaceObject.createElement)(RestTransformationItems, { + restTransformations: restTransformations, + onSelect: onSelect, + setHoveredTransformItemName: setHoveredTransformItemName }); - function addEditorOnlyFormats(value) { - return valueHandlers.reduce((accumulator, fn) => fn(accumulator, value.text), value.formats); - } - function removeEditorOnlyFormats(value) { - formatTypes.forEach(formatType => { - // Remove formats created by prepareEditableTree, because they are editor only. - if (formatType.__experimentalCreatePrepareEditableTree) { - value = (0,external_wp_richText_namespaceObject.removeFormat)(value, formatType.name, 0, value.text.length); - } - }); - return value.formats; - } - function addInvisibleFormats(value) { - return prepareHandlers.reduce((accumulator, fn) => fn(accumulator, value.text), value.formats); - } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Transform to'), + className: className + }, hoveredTransformItemName && (0,external_wp_element_namespaceObject.createElement)(PreviewBlockPopover, { + blocks: (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, hoveredTransformItemName) + }), !!possibleBlockVariationTransformations?.length && (0,external_wp_element_namespaceObject.createElement)(block_variation_transformations, { + transformations: possibleBlockVariationTransformations, + blocks: blocks, + onSelect: onSelectVariation + }), priorityTextTransformations.map(item => (0,external_wp_element_namespaceObject.createElement)(BlockTranformationItem, { + key: item.name, + item: item, + onSelect: onSelect, + setHoveredTransformItemName: setHoveredTransformItemName + })), !hasBothContentTransformations && restTransformItems), !!hasBothContentTransformations && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + className: className + }, restTransformItems)); +}; +function RestTransformationItems({ + restTransformations, + onSelect, + setHoveredTransformItemName +}) { + return restTransformations.map(item => (0,external_wp_element_namespaceObject.createElement)(BlockTranformationItem, { + key: item.name, + item: item, + onSelect: onSelect, + setHoveredTransformItemName: setHoveredTransformItemName + })); +} +function BlockTranformationItem({ + item, + onSelect, + setHoveredTransformItemName +}) { const { - value, - getValue, - onChange, - ref: richTextRef - } = (0,external_wp_richText_namespaceObject.__unstableUseRichText)({ - value: adjustedValue, - onChange(html, { - __unstableFormats, - __unstableText - }) { - adjustedOnChange(html); - Object.values(changeHandlers).forEach(changeHandler => { - changeHandler(__unstableFormats, __unstableText); - }); + name, + icon, + title, + isDisabled + } = item; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + className: (0,external_wp_blocks_namespaceObject.getBlockMenuDefaultClassName)(name), + onClick: event => { + event.preventDefault(); + onSelect(name); }, - selectionStart, - selectionEnd, - onSelectionChange, - placeholder, - __unstableIsSelected: isSelected, - __unstableDisableFormats: disableFormats, - preserveWhiteSpace, - __unstableDependencies: [...dependencies, tagName], - __unstableAfterParse: addEditorOnlyFormats, - __unstableBeforeSerialize: removeEditorOnlyFormats, - __unstableAddInvisibleFormats: addInvisibleFormats - }); - const autocompleteProps = useBlockEditorAutocompleteProps({ - onReplace, - completers: autocompleters, - record: value, - onChange - }); - useMarkPersistent({ - html: adjustedValue, - value - }); - const keyboardShortcuts = (0,external_wp_element_namespaceObject.useRef)(new Set()); - const inputEvents = (0,external_wp_element_namespaceObject.useRef)(new Set()); - function onFocus() { - anchorRef.current?.focus(); - } - const TagName = tagName; - return (0,external_React_.createElement)(external_React_.Fragment, null, isSelected && (0,external_React_.createElement)(keyboardShortcutContext.Provider, { - value: keyboardShortcuts - }, (0,external_React_.createElement)(inputEventContext.Provider, { - value: inputEvents - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Popover.__unstableSlotNameProvider, { - value: "__unstable-block-tools-after" - }, children && children({ - value, - onChange, - onFocus - }), (0,external_React_.createElement)(FormatEdit, { - value: value, - onChange: onChange, - onFocus: onFocus, - formatTypes: formatTypes, - forwardedRef: anchorRef - })))), isSelected && hasFormats && (0,external_React_.createElement)(format_toolbar_container, { - inline: inlineToolbar, - editableContentElement: anchorRef.current, - value: value - }), (0,external_React_.createElement)(TagName - // Overridable props. - , { - role: "textbox", - "aria-multiline": !disableLineBreaks, - "aria-label": placeholder, - ...props, - ...autocompleteProps, - ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ - // Rich text ref must be first because its focus listener - // must be set up before any other ref calls .focus() on - // mount. - richTextRef, forwardedRef, autocompleteProps.ref, props.ref, useBeforeInputRules({ - value, - onChange - }), useInputRules({ - getValue, - onChange, - __unstableAllowPrefixTransformations, - formatTypes, - onReplace, - selectionChange - }), useInsertReplacementText(), useRemoveBrowserShortcuts(), useShortcuts(keyboardShortcuts), useInputEvents(inputEvents), useUndoAutomaticChange(), usePasteHandler({ - isSelected, - disableFormats, - onChange, - value, - formatTypes, - tagName, - onReplace, - onSplit, - __unstableEmbedURLOnPaste, - pastePlainText - }), useDelete({ - value, - onMerge, - onRemove - }), useEnter({ - removeEditorOnlyFormats, - value, - onReplace, - onSplit, - onChange, - disableLineBreaks, - onSplitAtEnd, - onSplitAtDoubleLineEnd - }), useFirefoxCompat(), anchorRef]), - contentEditable: !shouldDisableEditing, - suppressContentEditableWarning: true, - className: classnames_default()('block-editor-rich-text__editable', props.className, 'rich-text') - // Setting tabIndex to 0 is unnecessary, the element is already - // focusable because it's contentEditable. This also fixes a - // Safari bug where it's not possible to Shift+Click multi - // select blocks when Shift Clicking into an element with - // tabIndex because Safari will focus the element. However, - // Safari will correctly ignore nested contentEditable elements. - , - tabIndex: props.tabIndex === 0 && !shouldDisableEditing ? null : props.tabIndex, - "data-wp-block-attribute-key": identifier - })); + disabled: isDisabled, + onMouseLeave: () => setHoveredTransformItemName(null), + onMouseEnter: () => setHoveredTransformItemName(name) + }, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon, + showColors: true + }), title); } -const ForwardedRichTextContainer = withDeprecations((0,external_wp_element_namespaceObject.forwardRef)(RichTextWrapper)); -ForwardedRichTextContainer.Content = Content; -ForwardedRichTextContainer.isEmpty = value => { - return !value || value.length === 0; -}; +/* harmony default export */ var block_transformations_menu = (BlockTransformationsMenu); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/menu-items.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md + * WordPress dependencies */ -/* harmony default export */ var rich_text = (ForwardedRichTextContainer); +/** + * Internal dependencies + */ -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editable-text/index.js +const menu_items_noop = () => {}; +function BlockStylesMenuItems({ + clientId, + onSwitch = menu_items_noop +}) { + const { + onSelect, + stylesToRender, + activeStyle + } = useStylesForBlocks({ + clientId, + onSwitch + }); + if (!stylesToRender || stylesToRender.length === 0) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, stylesToRender.map(style => { + const menuItemText = style.label || style.name; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + key: style.name, + icon: activeStyle.name === style.name ? library_check : null, + onClick: () => onSelect(style) + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, { + as: "span", + limit: 18, + ellipsizeMode: "tail", + truncate: true + }, menuItemText)); + })); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-styles-menu.js /** * WordPress dependencies */ + /** * Internal dependencies */ -const EditableText = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { - return (0,external_React_.createElement)(rich_text, { - ref: ref, - ...props, - __unstableDisableFormats: true - }); -}); -EditableText.Content = ({ - value = '', - tagName: Tag = 'div', - ...props -}) => { - return (0,external_React_.createElement)(Tag, { - ...props - }, value); -}; +function BlockStylesMenu({ + hoveredBlock, + onSwitch +}) { + const { + clientId + } = hoveredBlock; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + label: (0,external_wp_i18n_namespaceObject.__)('Styles'), + className: "block-editor-block-switcher__styles__menugroup" + }, (0,external_wp_element_namespaceObject.createElement)(BlockStylesMenuItems, { + clientId: clientId, + onSwitch: onSwitch + })); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/utils.js /** - * Renders an editable text input in which text formatting is not allowed. + * WordPress dependencies */ -/* harmony default export */ var editable_text = (EditableText); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/plain-text/index.js /** - * External dependencies + * Try to find a matching block by a block's name in a provided + * block. We recurse through InnerBlocks and return the reference + * of the matched block (it could be an InnerBlock). + * If no match is found return nothing. + * + * @param {WPBlock} block The block to try to find a match. + * @param {string} selectedBlockName The block's name to use for matching condition. + * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks. + * + * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`). */ +const getMatchingBlockByName = (block, selectedBlockName, consumedBlocks = new Set()) => { + const { + clientId, + name, + innerBlocks = [] + } = block; + // Check if block has been consumed already. + if (consumedBlocks.has(clientId)) return; + if (name === selectedBlockName) return block; + // Try to find a matching block from InnerBlocks recursively. + for (const innerBlock of innerBlocks) { + const match = getMatchingBlockByName(innerBlock, selectedBlockName, consumedBlocks); + if (match) return match; + } +}; +/** + * Find and return the block attributes to retain through + * the transformation, based on Block Type's `role:content` + * attributes. If no `role:content` attributes exist, + * return selected block's attributes. + * + * @param {string} name Block type's namespaced name. + * @param {Object} attributes Selected block's attributes. + * @return {Object} The block's attributes to retain. + */ +const getRetainedBlockAttributes = (name, attributes) => { + const contentAttributes = (0,external_wp_blocks_namespaceObject.__experimentalGetBlockAttributesNamesByRole)(name, 'content'); + if (!contentAttributes?.length) return attributes; + return contentAttributes.reduce((_accumulator, attribute) => { + if (attributes[attribute]) _accumulator[attribute] = attributes[attribute]; + return _accumulator; + }, {}); +}; - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/use-transformed-patterns.js /** * WordPress dependencies */ + /** * Internal dependencies */ /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/plain-text/README.md + * Mutate the matched block's attributes by getting + * which block type's attributes to retain and prioritize + * them in the merging of the attributes. + * + * @param {WPBlock} match The matched block. + * @param {WPBlock} selectedBlock The selected block. + * @return {void} */ -const PlainText = (0,external_wp_element_namespaceObject.forwardRef)(({ - __experimentalVersion, - ...props -}, ref) => { - if (__experimentalVersion === 2) { - return (0,external_React_.createElement)(editable_text, { - ref: ref, - ...props - }); - } - const { - className, - onChange, - ...remainingProps - } = props; - return (0,external_React_.createElement)(react_autosize_textarea_lib/* default */.Z, { - ref: ref, - className: classnames_default()('block-editor-plain-text', className), - onChange: event => onChange(event.target.value), - ...remainingProps - }); -}); -/* harmony default export */ var plain_text = (PlainText); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/label.js +const transformMatchingBlock = (match, selectedBlock) => { + // Get the block attributes to retain through the transformation. + const retainedBlockAttributes = getRetainedBlockAttributes(selectedBlock.name, selectedBlock.attributes); + match.attributes = { + ...match.attributes, + ...retainedBlockAttributes + }; +}; /** - * WordPress dependencies + * By providing the selected blocks and pattern's blocks + * find the matching blocks, transform them and return them. + * If not all selected blocks are matched, return nothing. + * + * @param {WPBlock[]} selectedBlocks The selected blocks. + * @param {WPBlock[]} patternBlocks The pattern's blocks. + * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched. */ - - - -function ResponsiveBlockControlLabel({ - property, - viewport, - desc -}) { - const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ResponsiveBlockControlLabel); - const accessibleLabel = desc || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: property name. 2: viewport name. */ - (0,external_wp_i18n_namespaceObject._x)('Controls the %1$s property for %2$s viewports.', 'Text labelling a interface as controlling a given layout property (eg: margin) for a given screen size.'), property, viewport.label); - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)("span", { - "aria-describedby": `rbc-desc-${instanceId}` - }, viewport.label), (0,external_React_.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { - as: "span", - id: `rbc-desc-${instanceId}` - }, accessibleLabel)); -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/index.js +const getPatternTransformedBlocks = (selectedBlocks, patternBlocks) => { + // Clone Pattern's blocks to produce new clientIds and be able to mutate the matches. + const _patternBlocks = patternBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)); + /** + * Keep track of the consumed pattern blocks. + * This is needed because we loop the selected blocks + * and for example we may have selected two paragraphs and + * the pattern's blocks could have more `paragraphs`. + */ + const consumedBlocks = new Set(); + for (const selectedBlock of selectedBlocks) { + let isMatch = false; + for (const patternBlock of _patternBlocks) { + const match = getMatchingBlockByName(patternBlock, selectedBlock.name, consumedBlocks); + if (!match) continue; + isMatch = true; + consumedBlocks.add(match.clientId); + // We update (mutate) the matching pattern block. + transformMatchingBlock(match, selectedBlock); + // No need to loop through other pattern's blocks. + break; + } + // Bail eary if a selected block has not been matched. + if (!isMatch) return; + } + return _patternBlocks; +}; /** - * External dependencies + * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern */ - /** - * WordPress dependencies + * Custom hook that accepts patterns from state and the selected + * blocks and tries to match these with the pattern's blocks. + * If all selected blocks are matched with a Pattern's block, + * we transform them by retaining block's attributes with `role:content`. + * The transformed pattern's blocks are set to a new pattern + * property `transformedBlocks`. + * + * @param {WPBlockPattern[]} patterns Patterns from state. + * @param {WPBlock[]} selectedBlocks The currently selected blocks. + * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks. */ +const useTransformedPatterns = (patterns, selectedBlocks) => { + return (0,external_wp_element_namespaceObject.useMemo)(() => patterns.reduce((accumulator, _pattern) => { + const transformedBlocks = getPatternTransformedBlocks(selectedBlocks, _pattern.blocks); + if (transformedBlocks) { + accumulator.push({ + ..._pattern, + transformedBlocks + }); + } + return accumulator; + }, []), [patterns, selectedBlocks]); +}; +/* harmony default export */ var use_transformed_patterns = (useTransformedPatterns); - - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/pattern-transformations-menu.js /** - * Internal dependencies + * WordPress dependencies */ -function ResponsiveBlockControl(props) { - const { - title, - property, - toggleLabel, - onIsResponsiveChange, - renderDefaultControl, - renderResponsiveControls, - isResponsive = false, - defaultLabel = { - id: 'all', - /* translators: 'Label. Used to signify a layout property (eg: margin, padding) will apply uniformly to all screensizes.' */ - label: (0,external_wp_i18n_namespaceObject.__)('All') - }, - viewports = [{ - id: 'small', - label: (0,external_wp_i18n_namespaceObject.__)('Small screens') - }, { - id: 'medium', - label: (0,external_wp_i18n_namespaceObject.__)('Medium screens') - }, { - id: 'large', - label: (0,external_wp_i18n_namespaceObject.__)('Large screens') - }] - } = props; - if (!title || !property || !renderDefaultControl) { - return null; - } - const toggleControlLabel = toggleLabel || (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 'Toggle control label. Should the property be the same across all screen sizes or unique per screen size.'. %s property value for the control (eg: margin, padding...etc) */ - (0,external_wp_i18n_namespaceObject.__)('Use the same %s on all screensizes.'), property); - /* translators: 'Help text for the responsive mode toggle control.' */ - const toggleHelpText = (0,external_wp_i18n_namespaceObject.__)('Toggle between using the same value for all screen sizes or using a unique value per screen size.'); - const defaultControl = renderDefaultControl((0,external_React_.createElement)(ResponsiveBlockControlLabel, { - property: property, - viewport: defaultLabel - }), defaultLabel); - const defaultResponsiveControls = () => { - return viewports.map(viewport => (0,external_React_.createElement)(external_wp_element_namespaceObject.Fragment, { - key: viewport.id - }, renderDefaultControl((0,external_React_.createElement)(ResponsiveBlockControlLabel, { - property: property, - viewport: viewport - }), viewport))); - }; - return (0,external_React_.createElement)("fieldset", { - className: "block-editor-responsive-block-control" - }, (0,external_React_.createElement)("legend", { - className: "block-editor-responsive-block-control__title" - }, title), (0,external_React_.createElement)("div", { - className: "block-editor-responsive-block-control__inner" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - className: "block-editor-responsive-block-control__toggle", - label: toggleControlLabel, - checked: !isResponsive, - onChange: onIsResponsiveChange, - help: toggleHelpText - }), (0,external_React_.createElement)("div", { - className: classnames_default()('block-editor-responsive-block-control__group', { - 'is-responsive': isResponsive - }) - }, !isResponsive && defaultControl, isResponsive && (renderResponsiveControls ? renderResponsiveControls(viewports) : defaultResponsiveControls())))); -} -/* harmony default export */ var responsive_block_control = (ResponsiveBlockControl); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/shortcut.js -/** - * WordPress dependencies - */ @@ -64050,288 +58558,400 @@ function ResponsiveBlockControl(props) { * Internal dependencies */ -function RichTextShortcut({ - character, - type, - onUse + +function PatternTransformationsMenu({ + blocks, + patterns: statePatterns, + onSelect }) { - const keyboardShortcuts = (0,external_wp_element_namespaceObject.useContext)(keyboardShortcutContext); - const onUseRef = (0,external_wp_element_namespaceObject.useRef)(); - onUseRef.current = onUse; - (0,external_wp_element_namespaceObject.useEffect)(() => { - function callback(event) { - if (external_wp_keycodes_namespaceObject.isKeyboardEvent[type](event, character)) { - onUseRef.current(); - event.preventDefault(); - } - } - keyboardShortcuts.current.add(callback); - return () => { - keyboardShortcuts.current.delete(callback); - }; - }, [character, type]); - return null; + const [showTransforms, setShowTransforms] = (0,external_wp_element_namespaceObject.useState)(false); + const patterns = use_transformed_patterns(statePatterns, blocks); + if (!patterns.length) return null; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, { + className: "block-editor-block-switcher__pattern__transforms__menugroup" + }, showTransforms && (0,external_wp_element_namespaceObject.createElement)(PreviewPatternsPopover, { + patterns: patterns, + onSelect: onSelect + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, { + onClick: event => { + event.preventDefault(); + setShowTransforms(!showTransforms); + }, + icon: chevron_right + }, (0,external_wp_i18n_namespaceObject.__)('Patterns'))); +} +function PreviewPatternsPopover({ + patterns, + onSelect +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__popover__preview__parent" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__popover__preview__container" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, { + className: "block-editor-block-switcher__preview__popover", + position: "bottom right" + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__preview is-pattern-list-preview" + }, (0,external_wp_element_namespaceObject.createElement)(BlockPatternsList, { + patterns: patterns, + onSelect: onSelect + }))))); +} +function BlockPatternsList({ + patterns, + onSelect +}) { + const composite = (0,external_wp_components_namespaceObject.__unstableUseCompositeState)(); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableComposite, { + ...composite, + role: "listbox", + className: "block-editor-block-switcher__preview-patterns-container", + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Patterns list') + }, patterns.map(pattern => (0,external_wp_element_namespaceObject.createElement)(pattern_transformations_menu_BlockPattern, { + key: pattern.name, + pattern: pattern, + onSelect: onSelect, + composite: composite + }))); +} +function pattern_transformations_menu_BlockPattern({ + pattern, + onSelect, + composite +}) { + // TODO check pattern/preview width... + const baseClassName = 'block-editor-block-switcher__preview-patterns-container'; + const descriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(pattern_transformations_menu_BlockPattern, `${baseClassName}-list__item-description`); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseClassName}-list__list-item` + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__unstableCompositeItem, { + role: "option", + as: "div", + ...composite, + "aria-label": pattern.title, + "aria-describedby": pattern.description ? descriptionId : undefined, + className: `${baseClassName}-list__item`, + onClick: () => onSelect(pattern.transformedBlocks) + }, (0,external_wp_element_namespaceObject.createElement)(block_preview, { + blocks: pattern.transformedBlocks, + viewportWidth: pattern.viewportWidth || 500 + }), (0,external_wp_element_namespaceObject.createElement)("div", { + className: `${baseClassName}-list__item-title` + }, pattern.title)), !!pattern.description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.VisuallyHidden, { + id: descriptionId + }, pattern.description)); } +/* harmony default export */ var pattern_transformations_menu = (PatternTransformationsMenu); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/toolbar-button.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/index.js /** * WordPress dependencies */ -function RichTextToolbarButton({ - name, - shortcutType, - shortcutCharacter, - ...props -}) { - let shortcut; - let fillName = 'RichText.ToolbarControls'; - if (name) { - fillName += `.${name}`; - } - if (shortcutType && shortcutCharacter) { - shortcut = external_wp_keycodes_namespaceObject.displayShortcut[shortcutType](shortcutCharacter); - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Fill, { - name: fillName - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - ...props, - shortcut: shortcut - })); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/input-event.js -/** - * WordPress dependencies - */ + /** * Internal dependencies */ -function __unstableRichTextInputEvent({ - inputType, - onInput -}) { - const callbacks = (0,external_wp_element_namespaceObject.useContext)(inputEventContext); - const onInputRef = (0,external_wp_element_namespaceObject.useRef)(); - onInputRef.current = onInput; - (0,external_wp_element_namespaceObject.useEffect)(() => { - function callback(event) { - if (event.inputType === inputType) { - onInputRef.current(); - event.preventDefault(); - } - } - callbacks.current.add(callback); - return () => { - callbacks.current.delete(callback); - }; - }, [inputType]); - return null; -} - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/tool-selector/index.js - -/** - * WordPress dependencies - */ -/** - * Internal dependencies - */ -const selectIcon = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - width: "24", - height: "24", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z" -})); -function ToolSelector(props, ref) { - const mode = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).__unstableGetEditorMode(), []); +const BlockSwitcherDropdownMenu = ({ + clientIds, + blocks +}) => { const { - __unstableSetEditorMode + replaceBlocks, + multiSelect, + updateBlockAttributes } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Dropdown, { - renderToggle: ({ - isOpen, - onToggle - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - ...props, - ref: ref, - icon: mode === 'navigation' ? selectIcon : edit, - "aria-expanded": isOpen, - "aria-haspopup": "true", - onClick: onToggle - /* translators: button label text should, if possible, be under 16 characters. */, - label: (0,external_wp_i18n_namespaceObject.__)('Tools') - }), - popoverProps: { - placement: 'bottom-start' - }, - renderContent: () => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.NavigableMenu, { - role: "menu", - "aria-label": (0,external_wp_i18n_namespaceObject.__)('Tools') - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, { - value: mode === 'navigation' ? 'navigation' : 'edit', - onSelect: __unstableSetEditorMode, - choices: [{ - value: 'edit', - label: (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(build_module_icon, { - icon: edit - }), (0,external_wp_i18n_namespaceObject.__)('Edit')) - }, { - value: 'navigation', - label: (0,external_React_.createElement)(external_React_.Fragment, null, selectIcon, (0,external_wp_i18n_namespaceObject.__)('Select')) - }] - })), (0,external_React_.createElement)("div", { - className: "block-editor-tool-selector__help" - }, (0,external_wp_i18n_namespaceObject.__)('Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'))) + const blockInformation = useBlockDisplayInformation(blocks[0].clientId); + const { + possibleBlockTransformations, + canRemove, + hasBlockStyles, + icon, + patterns + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockRootClientId, + getBlockTransformItems, + __experimentalGetPatternTransformItems, + canRemoveBlocks + } = select(store); + const { + getBlockStyles, + getBlockType + } = select(external_wp_blocks_namespaceObject.store); + const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds); + const [{ + name: firstBlockName + }] = blocks; + const _isSingleBlockSelected = blocks.length === 1; + const styles = _isSingleBlockSelected && getBlockStyles(firstBlockName); + let _icon; + if (_isSingleBlockSelected) { + _icon = blockInformation?.icon; // Take into account active block variations. + } else { + const isSelectionOfSameType = new Set(blocks.map(({ + name + }) => name)).size === 1; + // When selection consists of blocks of multiple types, display an + // appropriate icon to communicate the non-uniformity. + _icon = isSelectionOfSameType ? getBlockType(firstBlockName)?.icon : library_copy; + } + return { + possibleBlockTransformations: getBlockTransformItems(blocks, rootClientId), + canRemove: canRemoveBlocks(clientIds, rootClientId), + hasBlockStyles: !!styles?.length, + icon: _icon, + patterns: __experimentalGetPatternTransformItems(blocks, rootClientId) + }; + }, [clientIds, blocks, blockInformation?.icon]); + const blockVariationTransformations = useBlockVariationTransforms({ + clientIds, + blocks }); -} -/* harmony default export */ var tool_selector = ((0,external_wp_element_namespaceObject.forwardRef)(ToolSelector)); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/unit-control/index.js - -/** - * WordPress dependencies - */ + const blockTitle = useBlockDisplayTitle({ + clientId: Array.isArray(clientIds) ? clientIds[0] : clientIds, + maximumLength: 35 + }); + const isReusable = blocks.length === 1 && (0,external_wp_blocks_namespaceObject.isReusableBlock)(blocks[0]); + const isTemplate = blocks.length === 1 && (0,external_wp_blocks_namespaceObject.isTemplatePart)(blocks[0]); + function selectForMultipleBlocks(insertedBlocks) { + if (insertedBlocks.length > 1) { + multiSelect(insertedBlocks[0].clientId, insertedBlocks[insertedBlocks.length - 1].clientId); + } + } + // Simple block tranformation based on the `Block Transforms` API. + function onBlockTransform(name) { + const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocks, name); + replaceBlocks(clientIds, newBlocks); + selectForMultipleBlocks(newBlocks); + } + function onBlockVariationTransform(name) { + updateBlockAttributes(blocks[0].clientId, { + ...blockVariationTransformations.find(({ + name: variationName + }) => variationName === name).attributes + }); + } -/** - * Internal dependencies - */ + // Pattern transformation through the `Patterns` API. + function onPatternTransform(transformedBlocks) { + replaceBlocks(clientIds, transformedBlocks); + selectForMultipleBlocks(transformedBlocks); + } -function UnitControl({ - units: unitsProp, - ...props -}) { - const [availableUnits] = use_settings_useSettings('spacing.units'); - const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({ - availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw'], - units: unitsProp - }); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { - units: units, - ...props + /** + * The `isTemplate` check is a stopgap solution here. + * Ideally, the Transforms API should handle this + * by allowing to exclude blocks from wildcard transformations. + */ + const hasPossibleBlockTransformations = !!possibleBlockTransformations.length && canRemove && !isTemplate; + const hasPossibleBlockVariationTransformations = !!blockVariationTransformations?.length; + const hasPatternTransformation = !!patterns?.length && canRemove; + if (!hasBlockStyles && !hasPossibleBlockTransformations && !hasPossibleBlockVariationTransformations) { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + disabled: true, + className: "block-editor-block-switcher__no-switcher-icon", + title: blockTitle, + icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon, + showColors: true + }), (isReusable || isTemplate) && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-switcher__toggle-text" + }, blockTitle)) + })); + } + const blockSwitcherLabel = blockTitle; + const blockSwitcherDescription = 1 === blocks.length ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: block title. */ + (0,external_wp_i18n_namespaceObject.__)('%s: Change block type or style'), blockTitle) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of blocks. */ + (0,external_wp_i18n_namespaceObject._n)('Change type of %d block', 'Change type of %d blocks', blocks.length), blocks.length); + const hasBlockOrBlockVariationTransforms = hasPossibleBlockTransformations || hasPossibleBlockVariationTransformations; + const showDropDown = hasBlockStyles || hasBlockOrBlockVariationTransforms || hasPatternTransformation; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, null, toggleProps => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, { + className: "block-editor-block-switcher", + label: blockSwitcherLabel, + popoverProps: { + placement: 'bottom-start', + className: 'block-editor-block-switcher__popover' + }, + icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: icon, + className: "block-editor-block-switcher__toggle", + showColors: true + }), (isReusable || isTemplate) && (0,external_wp_element_namespaceObject.createElement)("span", { + className: "block-editor-block-switcher__toggle-text" + }, blockTitle)), + toggleProps: { + describedBy: blockSwitcherDescription, + ...toggleProps + }, + menuProps: { + orientation: 'both' + } + }, ({ + onClose + }) => showDropDown && (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-switcher__container" + }, hasPatternTransformation && (0,external_wp_element_namespaceObject.createElement)(pattern_transformations_menu, { + blocks: blocks, + patterns: patterns, + onSelect: transformedBlocks => { + onPatternTransform(transformedBlocks); + onClose(); + } + }), hasBlockOrBlockVariationTransforms && (0,external_wp_element_namespaceObject.createElement)(block_transformations_menu, { + className: "block-editor-block-switcher__transforms__menugroup", + possibleBlockTransformations: possibleBlockTransformations, + possibleBlockVariationTransformations: blockVariationTransformations, + blocks: blocks, + onSelect: name => { + onBlockTransform(name); + onClose(); + }, + onSelectVariation: name => { + onBlockVariationTransform(name); + onClose(); + } + }), hasBlockStyles && (0,external_wp_element_namespaceObject.createElement)(BlockStylesMenu, { + hoveredBlock: blocks[0], + onSwitch: onClose + }))))); +}; +const BlockSwitcher = ({ + clientIds +}) => { + const blocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlocksByClientId(clientIds), [clientIds]); + if (!blocks.length || blocks.some(block => !block)) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(BlockSwitcherDropdownMenu, { + clientIds: clientIds, + blocks: blocks }); -} +}; +/* harmony default export */ var block_switcher = (BlockSwitcher); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-left.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-lock/toolbar.js /** * WordPress dependencies */ -const arrowLeft = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z" -})); -/* harmony default export */ var arrow_left = (arrowLeft); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/button.js + + + /** - * WordPress dependencies + * Internal dependencies */ +function BlockLockToolbar({ + clientId, + wrapperRef +}) { + const { + canEdit, + canMove, + canRemove, + canLock + } = useBlockLock(clientId); + const [isModalOpen, toggleModal] = (0,external_wp_element_namespaceObject.useReducer)(isActive => !isActive, false); + const lockButtonRef = (0,external_wp_element_namespaceObject.useRef)(null); + const isFirstRender = (0,external_wp_element_namespaceObject.useRef)(true); + const shouldHideBlockLockUI = !canLock || canEdit && canMove && canRemove; + // Restore focus manually on the first focusable element in the toolbar + // when the block lock modal is closed and the block is not locked anymore. + // See https://github.com/WordPress/gutenberg/issues/51447 + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (isFirstRender.current) { + isFirstRender.current = false; + return; + } + if (!isModalOpen && shouldHideBlockLockUI) { + external_wp_dom_namespaceObject.focus.focusable.find(wrapperRef.current, { + sequential: false + }).find(element => element.tagName === 'BUTTON' && element !== lockButtonRef.current)?.focus(); + } + // wrapperRef is a reference object and should be stable + }, [isModalOpen, shouldHideBlockLockUI, wrapperRef]); + if (shouldHideBlockLockUI) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { + className: "block-editor-block-lock-toolbar" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + ref: lockButtonRef, + icon: library_lock, + label: (0,external_wp_i18n_namespaceObject.__)('Unlock'), + onClick: toggleModal, + "aria-expanded": isModalOpen, + "aria-haspopup": "dialog" + })), isModalOpen && (0,external_wp_element_namespaceObject.createElement)(BlockLockModal, { + clientId: clientId, + onClose: toggleModal + })); +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js /** - * Internal dependencies + * WordPress dependencies */ -class URLInputButton extends external_wp_element_namespaceObject.Component { - constructor() { - super(...arguments); - this.toggle = this.toggle.bind(this); - this.submitLink = this.submitLink.bind(this); - this.state = { - expanded: false - }; - } - toggle() { - this.setState({ - expanded: !this.state.expanded - }); - } - submitLink(event) { - event.preventDefault(); - this.toggle(); - } - render() { - const { - url, - onChange - } = this.props; - const { - expanded - } = this.state; - const buttonLabel = url ? (0,external_wp_i18n_namespaceObject.__)('Edit link') : (0,external_wp_i18n_namespaceObject.__)('Insert link'); - return (0,external_React_.createElement)("div", { - className: "block-editor-url-input__button" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: library_link, - label: buttonLabel, - onClick: this.toggle, - className: "components-toolbar__control", - isPressed: !!url - }), expanded && (0,external_React_.createElement)("form", { - className: "block-editor-url-input__button-modal", - onSubmit: this.submitLink - }, (0,external_React_.createElement)("div", { - className: "block-editor-url-input__button-modal-line" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-url-input__back", - icon: arrow_left, - label: (0,external_wp_i18n_namespaceObject.__)('Close'), - onClick: this.toggle - }), (0,external_React_.createElement)(url_input, { - __nextHasNoMarginBottom: true, - value: url || '', - onChange: onChange - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: keyboard_return, - label: (0,external_wp_i18n_namespaceObject.__)('Submit'), - type: "submit" - })))); - } -} +const group_group = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z" +})); +/* harmony default export */ var library_group = (group_group); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/row.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md + * WordPress dependencies */ -/* harmony default export */ var url_input_button = (URLInputButton); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js +const row = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M4 6.5h5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H4V16h5a.5.5 0 0 0 .5-.5v-7A.5.5 0 0 0 9 8H4V6.5Zm16 0h-5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h5V16h-5a.5.5 0 0 1-.5-.5v-7A.5.5 0 0 1 15 8h5V6.5Z" +})); +/* harmony default export */ var library_row = (row); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js /** * WordPress dependencies */ -const close_close = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const stack = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M17.5 4v5a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V4H8v5a.5.5 0 0 0 .5.5h7A.5.5 0 0 0 16 9V4h1.5Zm0 16v-5a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v5H8v-5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v5h1.5Z" })); -/* harmony default export */ var library_close = (close_close); +/* harmony default export */ var library_stack = (stack); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/image-url-input-ui.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/convert-to-group-buttons/toolbar.js /** * WordPress dependencies @@ -64341,318 +58961,132 @@ const close_close = (0,external_React_.createElement)(external_wp_primitives_nam + /** * Internal dependencies */ -const LINK_DESTINATION_NONE = 'none'; -const LINK_DESTINATION_CUSTOM = 'custom'; -const LINK_DESTINATION_MEDIA = 'media'; -const LINK_DESTINATION_ATTACHMENT = 'attachment'; -const NEW_TAB_REL = ['noreferrer', 'noopener']; -const icon = (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M0,0h24v24H0V0z", - fill: "none" -}), (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z" -}), (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z" -})); -const ImageURLInputUI = ({ - linkDestination, - onChangeUrl, - url, - mediaType = 'image', - mediaUrl, - mediaLink, - linkTarget, - linkClass, - rel -}) => { - const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(false); - // Use internal state instead of a ref to make sure that the component - // re-renders when the popover's anchor updates. - const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null); - const openLinkUI = () => { - setIsOpen(true); - }; - const [isEditingLink, setIsEditingLink] = (0,external_wp_element_namespaceObject.useState)(false); - const [urlInput, setUrlInput] = (0,external_wp_element_namespaceObject.useState)(null); - const autocompleteRef = (0,external_wp_element_namespaceObject.useRef)(null); - const startEditLink = () => { - if (linkDestination === LINK_DESTINATION_MEDIA || linkDestination === LINK_DESTINATION_ATTACHMENT) { - setUrlInput(''); - } - setIsEditingLink(true); - }; - const stopEditLink = () => { - setIsEditingLink(false); - }; - const closeLinkUI = () => { - setUrlInput(null); - stopEditLink(); - setIsOpen(false); - }; - const getUpdatedLinkTargetSettings = value => { - const newLinkTarget = value ? '_blank' : undefined; - let updatedRel; - if (newLinkTarget) { - const rels = (rel !== null && rel !== void 0 ? rel : '').split(' '); - NEW_TAB_REL.forEach(relVal => { - if (!rels.includes(relVal)) { - rels.push(relVal); - } - }); - updatedRel = rels.join(' '); - } else { - const rels = (rel !== null && rel !== void 0 ? rel : '').split(' ').filter(relVal => NEW_TAB_REL.includes(relVal) === false); - updatedRel = rels.length ? rels.join(' ') : undefined; - } + +const layouts = { + group: { + type: 'constrained' + }, + row: { + type: 'flex', + flexWrap: 'nowrap' + }, + stack: { + type: 'flex', + orientation: 'vertical' + } +}; +function BlockGroupToolbar() { + const { + blocksSelection, + clientIds, + groupingBlockName, + isGroupable + } = useConvertToGroupButtonProps(); + const { + replaceBlocks + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const { + canRemove, + variations + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + canRemoveBlocks + } = select(store); + const { + getBlockVariations + } = select(external_wp_blocks_namespaceObject.store); return { - linkTarget: newLinkTarget, - rel: updatedRel - }; - }; - const onFocusOutside = () => { - return event => { - // The autocomplete suggestions list renders in a separate popover (in a portal), - // so onFocusOutside fails to detect that a click on a suggestion occurred in the - // LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and - // return to avoid the popover being closed. - const autocompleteElement = autocompleteRef.current; - if (autocompleteElement && autocompleteElement.contains(event.target)) { - return; - } - setIsOpen(false); - setUrlInput(null); - stopEditLink(); - }; - }; - const onSubmitLinkChange = () => { - return event => { - if (urlInput) { - // It is possible the entered URL actually matches a named link destination. - // This check will ensure our link destination is correct. - const selectedDestination = getLinkDestinations().find(destination => destination.url === urlInput)?.linkDestination || LINK_DESTINATION_CUSTOM; - onChangeUrl({ - href: urlInput, - linkDestination: selectedDestination - }); - } - stopEditLink(); - setUrlInput(null); - event.preventDefault(); + canRemove: canRemoveBlocks(clientIds), + variations: getBlockVariations(groupingBlockName, 'transform') }; - }; - const onLinkRemove = () => { - onChangeUrl({ - linkDestination: LINK_DESTINATION_NONE, - href: '' - }); - }; - const getLinkDestinations = () => { - const linkDestinations = [{ - linkDestination: LINK_DESTINATION_MEDIA, - title: (0,external_wp_i18n_namespaceObject.__)('Media File'), - url: mediaType === 'image' ? mediaUrl : undefined, - icon - }]; - if (mediaType === 'image' && mediaLink) { - linkDestinations.push({ - linkDestination: LINK_DESTINATION_ATTACHMENT, - title: (0,external_wp_i18n_namespaceObject.__)('Attachment Page'), - url: mediaType === 'image' ? mediaLink : undefined, - icon: (0,external_React_.createElement)(external_wp_components_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M0 0h24v24H0V0z", - fill: "none" - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Path, { - d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" - })) - }); + }, [clientIds, groupingBlockName]); + const onConvertToGroup = layout => { + const newBlocks = (0,external_wp_blocks_namespaceObject.switchToBlockType)(blocksSelection, groupingBlockName); + if (typeof layout !== 'string') { + layout = 'group'; } - return linkDestinations; - }; - const onSetHref = value => { - const linkDestinations = getLinkDestinations(); - let linkDestinationInput; - if (!value) { - linkDestinationInput = LINK_DESTINATION_NONE; - } else { - linkDestinationInput = (linkDestinations.find(destination => { - return destination.url === value; - }) || { - linkDestination: LINK_DESTINATION_CUSTOM - }).linkDestination; + if (newBlocks && newBlocks.length > 0) { + // Because the block is not in the store yet we can't use + // updateBlockAttributes so need to manually update attributes. + newBlocks[0].attributes.layout = layouts[layout]; + replaceBlocks(clientIds, newBlocks); } - onChangeUrl({ - linkDestination: linkDestinationInput, - href: value - }); }; - const onSetNewTab = value => { - const updatedLinkTarget = getUpdatedLinkTargetSettings(value); - onChangeUrl(updatedLinkTarget); - }; - const onSetLinkRel = value => { - onChangeUrl({ - rel: value - }); - }; - const onSetLinkClass = value => { - onChangeUrl({ - linkClass: value - }); - }; - const advancedOptions = (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: "3" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'), - onChange: onSetNewTab, - checked: linkTarget === '_blank' - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Link rel'), - value: rel !== null && rel !== void 0 ? rel : '', - onChange: onSetLinkRel - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.TextControl, { - __nextHasNoMarginBottom: true, - label: (0,external_wp_i18n_namespaceObject.__)('Link CSS Class'), - value: linkClass || '', - onChange: onSetLinkClass + const onConvertToRow = () => onConvertToGroup('row'); + const onConvertToStack = () => onConvertToGroup('stack'); + + // Don't render the button if the current selection cannot be grouped. + // A good example is selecting multiple button blocks within a Buttons block: + // The group block is not a valid child of Buttons, so we should not show the button. + // Any blocks that are locked against removal also cannot be grouped. + if (!isGroupable || !canRemove) { + return null; + } + const canInsertRow = !!variations.find(({ + name + }) => name === 'group-row'); + const canInsertStack = !!variations.find(({ + name + }) => name === 'group-stack'); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: library_group, + label: (0,external_wp_i18n_namespaceObject._x)('Group', 'verb'), + onClick: onConvertToGroup + }), canInsertRow && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: library_row, + label: (0,external_wp_i18n_namespaceObject._x)('Row', 'single horizontal line'), + onClick: onConvertToRow + }), canInsertStack && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + icon: library_stack, + label: (0,external_wp_i18n_namespaceObject._x)('Stack', 'verb'), + onClick: onConvertToStack })); - const linkEditorValue = urlInput !== null ? urlInput : url; - const urlLabel = (getLinkDestinations().find(destination => destination.linkDestination === linkDestination) || {}).title; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToolbarButton, { - icon: library_link, - className: "components-toolbar__control", - label: url ? (0,external_wp_i18n_namespaceObject.__)('Edit link') : (0,external_wp_i18n_namespaceObject.__)('Insert link'), - "aria-expanded": isOpen, - onClick: openLinkUI, - ref: setPopoverAnchor, - isActive: !!url - }), isOpen && (0,external_React_.createElement)(url_popover, { - anchor: popoverAnchor, - onFocusOutside: onFocusOutside(), - onClose: closeLinkUI, - renderSettings: () => advancedOptions, - additionalControls: !linkEditorValue && (0,external_React_.createElement)(external_wp_components_namespaceObject.NavigableMenu, null, getLinkDestinations().map(link => (0,external_React_.createElement)(external_wp_components_namespaceObject.MenuItem, { - key: link.linkDestination, - icon: link.icon, - onClick: () => { - setUrlInput(null); - onSetHref(link.url); - stopEditLink(); - } - }, link.title))) - }, (!url || isEditingLink) && (0,external_React_.createElement)(url_popover.LinkEditor, { - className: "block-editor-format-toolbar__link-container-content", - value: linkEditorValue, - onChangeInputValue: setUrlInput, - onSubmit: onSubmitLinkChange(), - autocompleteRef: autocompleteRef - }), url && !isEditingLink && (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(url_popover.LinkViewer, { - className: "block-editor-format-toolbar__link-container-content", - url: url, - onEditLinkClick: startEditLink, - urlLabel: urlLabel - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: library_close, - label: (0,external_wp_i18n_namespaceObject.__)('Remove link'), - onClick: onLinkRemove - })))); -}; +} +/* harmony default export */ var toolbar = (BlockGroupToolbar); +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit-visually-button/index.js -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/preview-options/index.js /** * WordPress dependencies */ -function PreviewOptions() { - external_wp_deprecated_default()('wp.blockEditor.PreviewOptions', { - version: '6.5' - }); - return null; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-resize-canvas/index.js -/** - * WordPress dependencies - */ /** - * Function to resize the editor window. - * - * @param {string} deviceType Used for determining the size of the container (e.g. Desktop, Tablet, Mobile) - * - * @return {Object} Inline styles to be added to resizable container. + * Internal dependencies */ -function useResizeCanvas(deviceType) { - const [actualWidth, updateActualWidth] = (0,external_wp_element_namespaceObject.useState)(window.innerWidth); - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (deviceType === 'Desktop') { - return; - } - const resizeListener = () => updateActualWidth(window.innerWidth); - window.addEventListener('resize', resizeListener); - return () => { - window.removeEventListener('resize', resizeListener); - }; - }, [deviceType]); - const getCanvasWidth = device => { - let deviceWidth; - switch (device) { - case 'Tablet': - deviceWidth = 780; - break; - case 'Mobile': - deviceWidth = 360; - break; - default: - return null; - } - return deviceWidth < actualWidth ? deviceWidth : actualWidth; - }; - const marginValue = () => window.innerHeight < 800 ? 36 : 72; - const contentInlineStyles = device => { - const height = device === 'Mobile' ? '768px' : '1024px'; - const marginVertical = marginValue() + 'px'; - const marginHorizontal = 'auto'; - switch (device) { - case 'Tablet': - case 'Mobile': - return { - width: getCanvasWidth(device), - // Keeping margin styles separate to avoid warnings - // when those props get overridden in the iframe component - marginTop: marginVertical, - marginBottom: marginVertical, - marginLeft: marginHorizontal, - marginRight: marginHorizontal, - height, - borderRadius: '2px 2px 2px 2px', - border: '1px solid #ddd', - overflowY: 'auto' - }; - default: - return { - marginLeft: marginHorizontal, - marginRight: marginHorizontal - }; + +function BlockEditVisuallyButton({ + clientIds +}) { + // Edit visually only works for single block selection. + const clientId = clientIds.length === 1 ? clientIds[0] : undefined; + const canEditVisually = (0,external_wp_data_namespaceObject.useSelect)(select => !!clientId && select(store).getBlockMode(clientId) === 'html', [clientId]); + const { + toggleBlockMode + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + if (!canEditVisually) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, { + onClick: () => { + toggleBlockMode(clientId); } - }; - return contentInlineStyles(deviceType); + }, (0,external_wp_i18n_namespaceObject.__)('Edit visually'))); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/skip-to-selected-block/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/index.js + +/** + * External dependencies + */ + /** * WordPress dependencies @@ -64661,37 +59095,126 @@ function useResizeCanvas(deviceType) { + + +/** + * Internal dependencies + */ + + + + + + + + + + + + +const BlockToolbar = ({ + hideDragHandle +}) => { + const { + blockClientIds, + blockType, + isValid, + isVisual, + blockEditingMode + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockName, + getBlockMode, + getSelectedBlockClientIds, + isBlockValid, + getBlockRootClientId, + getBlockEditingMode + } = select(store); + const selectedBlockClientIds = getSelectedBlockClientIds(); + const selectedBlockClientId = selectedBlockClientIds[0]; + const blockRootClientId = getBlockRootClientId(selectedBlockClientId); + return { + blockClientIds: selectedBlockClientIds, + blockType: selectedBlockClientId && (0,external_wp_blocks_namespaceObject.getBlockType)(getBlockName(selectedBlockClientId)), + rootClientId: blockRootClientId, + isValid: selectedBlockClientIds.every(id => isBlockValid(id)), + isVisual: selectedBlockClientIds.every(id => getBlockMode(id) === 'visual'), + blockEditingMode: getBlockEditingMode(selectedBlockClientId) + }; + }, []); + const toolbarWrapperRef = (0,external_wp_element_namespaceObject.useRef)(null); + + // Handles highlighting the current block outline on hover or focus of the + // block type toolbar area. + const nodeRef = (0,external_wp_element_namespaceObject.useRef)(); + const showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures({ + ref: nodeRef + }); + const isLargeViewport = !(0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<'); + if (blockType) { + if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, '__experimentalToolbar', true)) { + return null; + } + } + if (blockClientIds.length === 0) { + return null; + } + const shouldShowVisualToolbar = isValid && isVisual; + const isMultiToolbar = blockClientIds.length > 1; + const isSynced = (0,external_wp_blocks_namespaceObject.isReusableBlock)(blockType) || (0,external_wp_blocks_namespaceObject.isTemplatePart)(blockType); + const classes = classnames_default()('block-editor-block-toolbar', { + 'is-synced': isSynced + }); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classes, + ref: toolbarWrapperRef + }, !isMultiToolbar && isLargeViewport && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(BlockParentSelector, null), (shouldShowVisualToolbar || isMultiToolbar) && blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)("div", { + ref: nodeRef, + ...showHoveredOrFocusedGestures + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { + className: "block-editor-block-toolbar__block-controls" + }, (0,external_wp_element_namespaceObject.createElement)(block_switcher, { + clientIds: blockClientIds + }), !isMultiToolbar && (0,external_wp_element_namespaceObject.createElement)(BlockLockToolbar, { + clientId: blockClientIds[0], + wrapperRef: toolbarWrapperRef + }), (0,external_wp_element_namespaceObject.createElement)(block_mover, { + clientIds: blockClientIds, + hideDragHandle: hideDragHandle + }))), shouldShowVisualToolbar && isMultiToolbar && (0,external_wp_element_namespaceObject.createElement)(toolbar, null), shouldShowVisualToolbar && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(block_controls.Slot, { + group: "parent", + className: "block-editor-block-toolbar__slot" + }), (0,external_wp_element_namespaceObject.createElement)(block_controls.Slot, { + group: "block", + className: "block-editor-block-toolbar__slot" + }), (0,external_wp_element_namespaceObject.createElement)(block_controls.Slot, { + className: "block-editor-block-toolbar__slot" + }), (0,external_wp_element_namespaceObject.createElement)(block_controls.Slot, { + group: "inline", + className: "block-editor-block-toolbar__slot" + }), (0,external_wp_element_namespaceObject.createElement)(block_controls.Slot, { + group: "other", + className: "block-editor-block-toolbar__slot" + }), (0,external_wp_element_namespaceObject.createElement)(block_name_context.Provider, { + value: blockType?.name + }, (0,external_wp_element_namespaceObject.createElement)(block_toolbar_last_item.Slot, null))), (0,external_wp_element_namespaceObject.createElement)(BlockEditVisuallyButton, { + clientIds: blockClientIds + }), blockEditingMode === 'default' && (0,external_wp_element_namespaceObject.createElement)(block_settings_menu, { + clientIds: blockClientIds + })); +}; + /** - * Internal dependencies + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md */ +/* harmony default export */ var block_toolbar = (BlockToolbar); - -const SkipToSelectedBlock = ({ - selectedBlockClientId -}) => { - const ref = useBlockRef(selectedBlockClientId); - const onClick = () => { - ref.current.focus(); - }; - return selectedBlockClientId ? (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - variant: "secondary", - className: "block-editor-skip-to-selected-block", - onClick: onClick - }, (0,external_wp_i18n_namespaceObject.__)('Skip to the selected block')) : null; -}; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/block-selection-button.js /** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md + * External dependencies */ -/* harmony default export */ var skip_to_selected_block = ((0,external_wp_data_namespaceObject.withSelect)(select => { - return { - selectedBlockClientId: select(store).getBlockSelectionStart() - }; -})(SkipToSelectedBlock)); -;// CONCATENATED MODULE: external ["wp","wordcount"] -var external_wp_wordcount_namespaceObject = window["wp"]["wordcount"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/multi-selection-inspector/index.js /** * WordPress dependencies @@ -64702,43 +59225,12 @@ var external_wp_wordcount_namespaceObject = window["wp"]["wordcount"]; -/** - * Internal dependencies - */ -function MultiSelectionInspector({ - blocks -}) { - const words = (0,external_wp_wordcount_namespaceObject.count)((0,external_wp_blocks_namespaceObject.serialize)(blocks), 'words'); - return (0,external_React_.createElement)("div", { - className: "block-editor-multi-selection-inspector__card" - }, (0,external_React_.createElement)(block_icon, { - icon: library_copy, - showColors: true - }), (0,external_React_.createElement)("div", { - className: "block-editor-multi-selection-inspector__card-content" - }, (0,external_React_.createElement)("div", { - className: "block-editor-multi-selection-inspector__card-title" - }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of blocks */ - (0,external_wp_i18n_namespaceObject._n)('%d Block', '%d Blocks', blocks.length), blocks.length)), (0,external_React_.createElement)("div", { - className: "block-editor-multi-selection-inspector__card-description" - }, (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %d: number of words */ - (0,external_wp_i18n_namespaceObject._n)('%d word selected.', '%d words selected.', words), words)))); -} -/* harmony default export */ var multi_selection_inspector = ((0,external_wp_data_namespaceObject.withSelect)(select => { - const { - getMultiSelectedBlocks - } = select(store); - return { - blocks: getMultiSelectedBlocks() - }; -})(MultiSelectionInspector)); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-style-picker/index.js /** - * WordPress dependencies + * Internal dependencies */ @@ -64746,146 +59238,281 @@ function MultiSelectionInspector({ -/** - * Internal dependencies - */ -function DefaultStylePicker({ - blockName +/** + * Block selection button component, displaying the label of the block. If the block + * descends from a root block, a button is displayed enabling the user to select + * the root block. + * + * @param {string} props Component props. + * @param {string} props.clientId Client ID of block. + * + * @return {WPComponent} The component to be rendered. + */ +function BlockSelectionButton({ + clientId, + rootClientId }) { - const { - preferredStyle, - onUpdatePreferredStyleVariations, - styles - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - var _preferredStyleVariat; - const settings = select(store).getSettings(); - const preferredStyleVariations = settings.__experimentalPreferredStyleVariations; + const blockInformation = useBlockDisplayInformation(clientId); + const selected = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlock, + getBlockIndex, + hasBlockMovingClientId, + getBlockListSettings, + __unstableGetEditorMode + } = select(store); + const index = getBlockIndex(clientId); + const { + name, + attributes + } = getBlock(clientId); + const blockMovingMode = hasBlockMovingClientId(); return { - preferredStyle: preferredStyleVariations?.value?.[blockName], - onUpdatePreferredStyleVariations: (_preferredStyleVariat = preferredStyleVariations?.onChange) !== null && _preferredStyleVariat !== void 0 ? _preferredStyleVariat : null, - styles: select(external_wp_blocks_namespaceObject.store).getBlockStyles(blockName) + index, + name, + attributes, + blockMovingMode, + orientation: getBlockListSettings(rootClientId)?.orientation, + editorMode: __unstableGetEditorMode() }; - }, [blockName]); - const selectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{ - label: (0,external_wp_i18n_namespaceObject.__)('Not set'), - value: '' - }, ...styles.map(({ - label, - name - }) => ({ - label, - value: name - }))], [styles]); - const defaultStyleName = (0,external_wp_element_namespaceObject.useMemo)(() => getDefaultStyle(styles)?.name, [styles]); - const selectOnChange = (0,external_wp_element_namespaceObject.useCallback)(blockStyle => { - onUpdatePreferredStyleVariations(blockName, blockStyle); - }, [blockName, onUpdatePreferredStyleVariations]); + }, [clientId, rootClientId]); + const { + index, + name, + attributes, + blockMovingMode, + orientation, + editorMode + } = selected; + const { + setNavigationMode, + removeBlock + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const ref = (0,external_wp_element_namespaceObject.useRef)(); + const blockType = (0,external_wp_blocks_namespaceObject.getBlockType)(name); + const label = (0,external_wp_blocks_namespaceObject.__experimentalGetAccessibleBlockLabel)(blockType, attributes, index + 1, orientation); - // Until the functionality is migrated to global styles, - // only show the default style picker if a non-default style has already been selected. - if (!preferredStyle || preferredStyle === defaultStyleName) { - return null; + // Focus the breadcrumb in navigation mode. + (0,external_wp_element_namespaceObject.useEffect)(() => { + ref.current.focus(); + (0,external_wp_a11y_namespaceObject.speak)(label); + }, [label]); + const blockElement = useBlockElement(clientId); + const { + hasBlockMovingClientId, + getBlockIndex, + getBlockRootClientId, + getClientIdsOfDescendants, + getSelectedBlockClientId, + getMultiSelectedBlocksEndClientId, + getPreviousBlockClientId, + getNextBlockClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + selectBlock, + clearSelectedBlock, + setBlockMovingClientId, + moveBlockToPosition + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + function onKeyDown(event) { + const { + keyCode + } = event; + const isUp = keyCode === external_wp_keycodes_namespaceObject.UP; + const isDown = keyCode === external_wp_keycodes_namespaceObject.DOWN; + const isLeft = keyCode === external_wp_keycodes_namespaceObject.LEFT; + const isRight = keyCode === external_wp_keycodes_namespaceObject.RIGHT; + const isTab = keyCode === external_wp_keycodes_namespaceObject.TAB; + const isEscape = keyCode === external_wp_keycodes_namespaceObject.ESCAPE; + const isEnter = keyCode === external_wp_keycodes_namespaceObject.ENTER; + const isSpace = keyCode === external_wp_keycodes_namespaceObject.SPACE; + const isShift = event.shiftKey; + if (keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || keyCode === external_wp_keycodes_namespaceObject.DELETE) { + removeBlock(clientId); + event.preventDefault(); + return; + } + const selectedBlockClientId = getSelectedBlockClientId(); + const selectionEndClientId = getMultiSelectedBlocksEndClientId(); + const selectionBeforeEndClientId = getPreviousBlockClientId(selectionEndClientId || selectedBlockClientId); + const selectionAfterEndClientId = getNextBlockClientId(selectionEndClientId || selectedBlockClientId); + const navigateUp = isTab && isShift || isUp; + const navigateDown = isTab && !isShift || isDown; + // Move out of current nesting level (no effect if at root level). + const navigateOut = isLeft; + // Move into next nesting level (no effect if the current block has no innerBlocks). + const navigateIn = isRight; + let focusedBlockUid; + if (navigateUp) { + focusedBlockUid = selectionBeforeEndClientId; + } else if (navigateDown) { + focusedBlockUid = selectionAfterEndClientId; + } else if (navigateOut) { + var _getBlockRootClientId; + focusedBlockUid = (_getBlockRootClientId = getBlockRootClientId(selectedBlockClientId)) !== null && _getBlockRootClientId !== void 0 ? _getBlockRootClientId : selectedBlockClientId; + } else if (navigateIn) { + var _getClientIdsOfDescen; + focusedBlockUid = (_getClientIdsOfDescen = getClientIdsOfDescendants(selectedBlockClientId)[0]) !== null && _getClientIdsOfDescen !== void 0 ? _getClientIdsOfDescen : selectedBlockClientId; + } + const startingBlockClientId = hasBlockMovingClientId(); + if (isEscape && startingBlockClientId && !event.defaultPrevented) { + setBlockMovingClientId(null); + event.preventDefault(); + } + if ((isEnter || isSpace) && startingBlockClientId) { + const sourceRoot = getBlockRootClientId(startingBlockClientId); + const destRoot = getBlockRootClientId(selectedBlockClientId); + const sourceBlockIndex = getBlockIndex(startingBlockClientId); + let destinationBlockIndex = getBlockIndex(selectedBlockClientId); + if (sourceBlockIndex < destinationBlockIndex && sourceRoot === destRoot) { + destinationBlockIndex -= 1; + } + moveBlockToPosition(startingBlockClientId, sourceRoot, destRoot, destinationBlockIndex); + selectBlock(startingBlockClientId); + setBlockMovingClientId(null); + } + // Prevent the block from being moved into itself. + if (startingBlockClientId && selectedBlockClientId === startingBlockClientId && navigateIn) { + return; + } + if (navigateDown || navigateUp || navigateOut || navigateIn) { + if (focusedBlockUid) { + event.preventDefault(); + selectBlock(focusedBlockUid); + } else if (isTab && selectedBlockClientId) { + let nextTabbable; + if (navigateDown) { + nextTabbable = blockElement; + do { + nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findNext(nextTabbable); + } while (nextTabbable && blockElement.contains(nextTabbable)); + if (!nextTabbable) { + nextTabbable = blockElement.ownerDocument.defaultView.frameElement; + nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findNext(nextTabbable); + } + } else { + nextTabbable = external_wp_dom_namespaceObject.focus.tabbable.findPrevious(blockElement); + } + if (nextTabbable) { + event.preventDefault(); + nextTabbable.focus(); + clearSelectedBlock(); + } + } + } } - return onUpdatePreferredStyleVariations && (0,external_React_.createElement)("div", { - className: "default-style-picker__default-switcher" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SelectControl, { - __nextHasNoMarginBottom: true, - options: selectOptions, - value: preferredStyle || '', - label: (0,external_wp_i18n_namespaceObject.__)('Default Style'), - onChange: selectOnChange - })); + const classNames = classnames_default()('block-editor-block-list__block-selection-button', { + 'is-block-moving-mode': !!blockMovingMode + }); + const dragHandleLabel = (0,external_wp_i18n_namespaceObject.__)('Drag'); + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: classNames + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Flex, { + justify: "center", + className: "block-editor-block-list__block-selection-button__content" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(block_icon, { + icon: blockInformation?.icon, + showColors: true + })), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, editorMode === 'zoom-out' && (0,external_wp_element_namespaceObject.createElement)(block_mover, { + clientIds: [clientId], + hideDragHandle: true + }), editorMode === 'navigation' && (0,external_wp_element_namespaceObject.createElement)(block_draggable, { + clientIds: [clientId] + }, draggableProps => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + icon: drag_handle, + className: "block-selection-button_drag-handle", + "aria-hidden": "true", + label: dragHandleLabel + // Should not be able to tab to drag handle as this + // button can only be used with a pointer device. + , + tabIndex: "-1", + ...draggableProps + }))), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ref: ref, + onClick: editorMode === 'navigation' ? () => setNavigationMode(false) : undefined, + onKeyDown: onKeyDown, + label: label, + showTooltip: false, + className: "block-selection-button_select-button" + }, (0,external_wp_element_namespaceObject.createElement)(BlockTitle, { + clientId: clientId, + maximumLength: 35 + }))))); } +/* harmony default export */ var block_selection_button = (BlockSelectionButton); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cog.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/next.js /** * WordPress dependencies */ -const cog = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const next = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - d: "M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z", - clipRule: "evenodd" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z" })); -/* harmony default export */ var library_cog = (cog); +/* harmony default export */ var library_next = (next); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/styles.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/previous.js /** * WordPress dependencies */ -const styles = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z" +const previous = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z" })); -/* harmony default export */ var library_styles = (styles); +/* harmony default export */ var library_previous = (previous); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/utils.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/use-has-block-controls.js /** * WordPress dependencies */ -const TAB_SETTINGS = { - name: 'settings', - title: (0,external_wp_i18n_namespaceObject.__)('Settings'), - value: 'settings', - icon: library_cog, - className: 'block-editor-block-inspector__tab-item' -}; -const TAB_STYLES = { - name: 'styles', - title: (0,external_wp_i18n_namespaceObject.__)('Styles'), - value: 'styles', - icon: library_styles, - className: 'block-editor-block-inspector__tab-item' -}; -const TAB_LIST_VIEW = { - name: 'list', - title: (0,external_wp_i18n_namespaceObject.__)('List View'), - value: 'list-view', - icon: list_view, - className: 'block-editor-block-inspector__tab-item' -}; - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/advanced-controls-panel.js /** - * WordPress dependencies + * Internal dependencies */ +function useHasAnyBlockControls() { + let hasAnyBlockControls = false; + for (const group in block_controls_groups) { + // It is safe to violate the rules of hooks here as the `groups` object + // is static and will not change length between renders. Do not return + // early as that will cause the hook to be called a different number of + // times between renders. + // eslint-disable-next-line react-hooks/rules-of-hooks + if (useHasBlockControls(group)) { + hasAnyBlockControls = true; + } + } + return hasAnyBlockControls; +} +function useHasBlockControls(group = 'default') { + const Slot = block_controls_groups[group]?.Slot; + const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(Slot?.__unstableName); + if (!Slot) { + true ? external_wp_warning_default()(`Unknown BlockControls group "${group}" provided.`) : 0; + return null; + } + return !!fills?.length; +} +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/block-contextual-toolbar.js /** - * Internal dependencies + * External dependencies */ -const AdvancedControls = () => { - const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(InspectorAdvancedControls.slotName); - const hasFills = Boolean(fills && fills.length); - if (!hasFills) { - return null; - } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - className: "block-editor-block-inspector__advanced", - title: (0,external_wp_i18n_namespaceObject.__)('Advanced'), - initialOpen: false - }, (0,external_React_.createElement)(inspector_controls.Slot, { - group: "advanced" - })); -}; -/* harmony default export */ var advanced_controls_panel = (AdvancedControls); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/position-controls-panel.js /** * WordPress dependencies @@ -64895,116 +59522,144 @@ const AdvancedControls = () => { + + + /** * Internal dependencies */ -const PositionControlsPanel = () => { - const [initialOpen, setInitialOpen] = (0,external_wp_element_namespaceObject.useState)(); - // Determine whether the panel should be expanded. +function BlockContextualToolbar({ + focusOnMount, + isFixed, + ...props +}) { + // When the toolbar is fixed it can be collapsed + const [isCollapsed, setIsCollapsed] = (0,external_wp_element_namespaceObject.useState)(false); + const toolbarButtonRef = (0,external_wp_element_namespaceObject.useRef)(); + const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); const { - multiSelectedBlocks + blockType, + blockEditingMode, + hasParents, + showParentSelector, + selectedBlockClientId } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlocksByClientId, - getSelectedBlockClientIds + getBlockName, + getBlockParents, + getSelectedBlockClientIds, + getBlockEditingMode } = select(store); - const clientIds = getSelectedBlockClientIds(); + const { + getBlockType + } = select(external_wp_blocks_namespaceObject.store); + const selectedBlockClientIds = getSelectedBlockClientIds(); + const _selectedBlockClientId = selectedBlockClientIds[0]; + const parents = getBlockParents(_selectedBlockClientId); + const firstParentClientId = parents[parents.length - 1]; + const parentBlockName = getBlockName(firstParentClientId); + const parentBlockType = getBlockType(parentBlockName); return { - multiSelectedBlocks: getBlocksByClientId(clientIds) + selectedBlockClientId: _selectedBlockClientId, + blockType: _selectedBlockClientId && getBlockType(getBlockName(_selectedBlockClientId)), + blockEditingMode: getBlockEditingMode(_selectedBlockClientId), + hasParents: parents.length, + showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && getBlockEditingMode(_selectedBlockClientId) === 'default' }; }, []); + (0,external_wp_element_namespaceObject.useEffect)(() => { + setIsCollapsed(false); + }, [selectedBlockClientId]); + const isLargerThanTabletViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('large', '>='); + const isFullscreen = document.body.classList.contains('is-fullscreen-mode'); + + /** + * The following code is a workaround to fix the width of the toolbar + * it should be removed when the toolbar will be rendered inline + * FIXME: remove this layout effect when the toolbar is no longer + * absolutely positioned + */ (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { - // If any selected block has a position set, open the panel by default. - // The first block's value will still be used within the control though. - if (initialOpen === undefined) { - setInitialOpen(multiSelectedBlocks.some(({ - attributes - }) => !!attributes?.style?.position?.type)); + // don't do anything if not fixed toolbar + if (!isFixed) { + return; + } + const blockToolbar = document.querySelector('.block-editor-block-contextual-toolbar'); + if (!blockToolbar) { + return; + } + if (!blockType) { + blockToolbar.style.width = 'initial'; + return; + } + if (!isLargerThanTabletViewport) { + // set the width of the toolbar to auto + blockToolbar.style = {}; + return; + } + if (isCollapsed) { + // set the width of the toolbar to auto + blockToolbar.style.width = 'auto'; + return; } - }, [initialOpen, multiSelectedBlocks, setInitialOpen]); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - className: "block-editor-block-inspector__position", - title: (0,external_wp_i18n_namespaceObject.__)('Position'), - initialOpen: initialOpen !== null && initialOpen !== void 0 ? initialOpen : false - }, (0,external_React_.createElement)(inspector_controls.Slot, { - group: "position" - })); -}; -const PositionControls = () => { - const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(inspector_controls_groups.position.Slot.__unstableName); - const hasFills = Boolean(fills && fills.length); - if (!hasFills) { - return null; - } - return (0,external_React_.createElement)(PositionControlsPanel, null); -}; -/* harmony default export */ var position_controls_panel = (PositionControls); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/settings-tab-hint.js - -/** - * WordPress dependencies - */ - - - - - - -const PREFERENCE_NAME = 'isInspectorControlsTabsHintVisible'; -function InspectorControlsTabsHint() { - const isInspectorControlsTabsHintVisible = (0,external_wp_data_namespaceObject.useSelect)(select => { - var _select$get; - return (_select$get = select(external_wp_preferences_namespaceObject.store).get('core', PREFERENCE_NAME)) !== null && _select$get !== void 0 ? _select$get : true; - }, []); - const ref = (0,external_wp_element_namespaceObject.useRef)(); - const { - set: setPreference - } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store); - if (!isInspectorControlsTabsHintVisible) { + // get the width of the pinned items in the post editor or widget editor + const pinnedItems = document.querySelector('.edit-post-header__settings, .edit-widgets-header__actions'); + // get the width of the left header in the site editor + const leftHeader = document.querySelector('.edit-site-header-edit-mode__end'); + const computedToolbarStyle = window.getComputedStyle(blockToolbar); + const computedPinnedItemsStyle = pinnedItems ? window.getComputedStyle(pinnedItems) : false; + const computedLeftHeaderStyle = leftHeader ? window.getComputedStyle(leftHeader) : false; + const marginLeft = parseFloat(computedToolbarStyle.marginLeft); + const pinnedItemsWidth = computedPinnedItemsStyle ? parseFloat(computedPinnedItemsStyle.width) : 0; + const leftHeaderWidth = computedLeftHeaderStyle ? parseFloat(computedLeftHeaderStyle.width) : 0; + + // set the new witdth of the toolbar + blockToolbar.style.width = `calc(100% - ${leftHeaderWidth + pinnedItemsWidth + marginLeft + (pinnedItems || leftHeader ? 2 : 0) + ( + // Prevents button focus border from being cut off + isFullscreen ? 0 : 160) // the width of the admin sidebar expanded + }px)`; + }, [isFixed, isLargerThanTabletViewport, isCollapsed, isFullscreen, blockType]); + const isToolbarEnabled = !blockType || (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, '__experimentalToolbar', true); + const hasAnyBlockControls = useHasAnyBlockControls(); + if (!isToolbarEnabled || blockEditingMode !== 'default' && !hasAnyBlockControls) { return null; - } - return (0,external_React_.createElement)("div", { - ref: ref, - className: "block-editor-inspector-controls-tabs__hint" - }, (0,external_React_.createElement)("div", { - className: "block-editor-inspector-controls-tabs__hint-content" - }, (0,external_wp_i18n_namespaceObject.__)("Looking for other block settings? They've moved to the styles tab.")), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - className: "block-editor-inspector-controls-tabs__hint-dismiss", - icon: library_close, - iconSize: "16", - label: (0,external_wp_i18n_namespaceObject.__)('Dismiss hint'), + } + + // Shifts the toolbar to make room for the parent block selector. + const classes = classnames_default()('block-editor-block-contextual-toolbar', { + 'has-parent': hasParents && showParentSelector, + 'is-fixed': isFixed, + 'is-collapsed': isCollapsed + }); + return (0,external_wp_element_namespaceObject.createElement)(navigable_toolbar, { + focusOnMount: focusOnMount, + className: classes + /* translators: accessibility text for the block toolbar */, + "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block tools'), + ...props + }, !isCollapsed && (0,external_wp_element_namespaceObject.createElement)(block_toolbar, { + hideDragHandle: isFixed + }), isFixed && isLargeViewport && blockType && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarGroup, { + className: isCollapsed ? 'block-editor-block-toolbar__group-expand-fixed-toolbar' : 'block-editor-block-toolbar__group-collapse-fixed-toolbar' + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarItem, { + as: external_wp_components_namespaceObject.ToolbarButton, + ref: toolbarButtonRef, + icon: isCollapsed ? library_next : library_previous, onClick: () => { - // Retain focus when dismissing the element. - const previousElement = external_wp_dom_namespaceObject.focus.tabbable.findPrevious(ref.current); - previousElement?.focus(); - setPreference('core', PREFERENCE_NAME, false); + setIsCollapsed(collapsed => !collapsed); + toolbarButtonRef.current.focus(); }, - showTooltip: false - })); + label: isCollapsed ? (0,external_wp_i18n_namespaceObject.__)('Show block tools') : (0,external_wp_i18n_namespaceObject.__)('Hide block tools') + }))); } +/* harmony default export */ var block_contextual_toolbar = (BlockContextualToolbar); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/settings-tab.js - -/** - * Internal dependencies - */ - - - - -const SettingsTab = ({ - showAdvancedControls = false -}) => (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(inspector_controls.Slot, null), (0,external_React_.createElement)(position_controls_panel, null), showAdvancedControls && (0,external_React_.createElement)("div", null, (0,external_React_.createElement)(advanced_controls_panel, null)), (0,external_React_.createElement)(InspectorControlsTabsHint, null)); -/* harmony default export */ var settings_tab = (SettingsTab); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/styles-tab.js - +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/use-block-toolbar-popover-props.js /** * WordPress dependencies */ @@ -65012,271 +59667,426 @@ const SettingsTab = ({ + /** * Internal dependencies */ -const StylesTab = ({ - blockName, - clientId, - hasBlockStyles -}) => { - return (0,external_React_.createElement)(external_React_.Fragment, null, hasBlockStyles && (0,external_React_.createElement)("div", null, (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - title: (0,external_wp_i18n_namespaceObject.__)('Styles') - }, (0,external_React_.createElement)(block_styles, { - clientId: clientId - }), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true) && (0,external_React_.createElement)(DefaultStylePicker, { - blockName: blockName - }))), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "color", - label: (0,external_wp_i18n_namespaceObject.__)('Color'), - className: "color-block-support-panel__inner-wrapper" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "background", - label: (0,external_wp_i18n_namespaceObject.__)('Background') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "filter" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "typography", - label: (0,external_wp_i18n_namespaceObject.__)('Typography') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "dimensions", - label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "border", - label: (0,external_wp_i18n_namespaceObject.__)('Border') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "effects", - label: (0,external_wp_i18n_namespaceObject.__)('Effects') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "styles" - })); +const COMMON_PROPS = { + placement: 'top-start' }; -/* harmony default export */ var styles_tab = (StylesTab); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js -// List view tab restricts the blocks that may render to it via the -// allowlist below. -const allowlist = ['core/navigation']; -const useIsListViewTabDisabled = blockName => { - return !allowlist.includes(blockName); +// By default the toolbar sets the `shift` prop. If the user scrolls the page +// down the toolbar will stay on screen by adopting a sticky position at the +// top of the viewport. +const use_block_toolbar_popover_props_DEFAULT_PROPS = { + ...COMMON_PROPS, + flip: false, + shift: true }; -/* harmony default export */ var use_is_list_view_tab_disabled = (useIsListViewTabDisabled); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/index.js +// When there isn't enough height between the top of the block and the editor +// canvas, the `shift` prop is set to `false`, as it will cause the block to be +// obscured. The `flip` behavior is enabled, which positions the toolbar below +// the block. This only happens if the block is smaller than the viewport, as +// otherwise the toolbar will be off-screen. +const RESTRICTED_HEIGHT_PROPS = { + ...COMMON_PROPS, + flip: true, + shift: false +}; /** - * WordPress dependencies + * Get the popover props for the block toolbar, determined by the space at the top of the canvas and the toolbar height. + * + * @param {Element} contentElement The DOM element that represents the editor content or canvas. + * @param {Element} selectedBlockElement The outer DOM element of the first selected block. + * @param {Element} scrollContainer The scrollable container for the contentElement. + * @param {number} toolbarHeight The height of the toolbar in pixels. + * @param {boolean} isSticky Whether or not the selected block is sticky or fixed. + * + * @return {Object} The popover props used to determine the position of the toolbar. */ +function getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky) { + if (!contentElement || !selectedBlockElement) { + return use_block_toolbar_popover_props_DEFAULT_PROPS; + } + // Get how far the content area has been scrolled. + const scrollTop = scrollContainer?.scrollTop || 0; + const blockRect = selectedBlockElement.getBoundingClientRect(); + const contentRect = contentElement.getBoundingClientRect(); -/** - * Internal dependencies - */ + // Get the vertical position of top of the visible content area. + const topOfContentElementInViewport = scrollTop + contentRect.top; + + // The document element's clientHeight represents the viewport height. + const viewportHeight = contentElement.ownerDocument.documentElement.clientHeight; + + // The restricted height area is calculated as the sum of the + // vertical position of the visible content area, plus the height + // of the block toolbar. + const restrictedTopArea = topOfContentElementInViewport + toolbarHeight; + const hasSpaceForToolbarAbove = blockRect.top > restrictedTopArea; + const isBlockTallerThanViewport = blockRect.height > viewportHeight - toolbarHeight; + // Sticky blocks are treated as if they will never have enough space for the toolbar above. + if (!isSticky && (hasSpaceForToolbarAbove || isBlockTallerThanViewport)) { + return use_block_toolbar_popover_props_DEFAULT_PROPS; + } + return RESTRICTED_HEIGHT_PROPS; +} +/** + * Determines the desired popover positioning behavior, returning a set of appropriate props. + * + * @param {Object} elements + * @param {Element} elements.contentElement The DOM element that represents the editor content or canvas. + * @param {string} elements.clientId The clientId of the first selected block. + * + * @return {Object} The popover props used to determine the position of the toolbar. + */ +function useBlockToolbarPopoverProps({ + contentElement, + clientId +}) { + const selectedBlockElement = useBlockElement(clientId); + const [toolbarHeight, setToolbarHeight] = (0,external_wp_element_namespaceObject.useState)(0); + const { + blockIndex, + isSticky + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getBlockIndex, + getBlockAttributes + } = select(store); + return { + blockIndex: getBlockIndex(clientId), + isSticky: hasStickyOrFixedPositionValue(getBlockAttributes(clientId)) + }; + }, [clientId]); + const scrollContainer = (0,external_wp_element_namespaceObject.useMemo)(() => { + if (!contentElement) { + return; + } + return (0,external_wp_dom_namespaceObject.getScrollContainer)(contentElement); + }, [contentElement]); + const [props, setProps] = (0,external_wp_element_namespaceObject.useState)(() => getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky)); + const popoverRef = (0,external_wp_compose_namespaceObject.useRefEffect)(popoverNode => { + setToolbarHeight(popoverNode.offsetHeight); + }, []); + const updateProps = (0,external_wp_element_namespaceObject.useCallback)(() => setProps(getProps(contentElement, selectedBlockElement, scrollContainer, toolbarHeight, isSticky)), [contentElement, selectedBlockElement, scrollContainer, toolbarHeight]); + // Update props when the block is moved. This also ensures the props are + // correct on initial mount, and when the selected block or content element + // changes (since the callback ref will update). + (0,external_wp_element_namespaceObject.useLayoutEffect)(updateProps, [blockIndex, updateProps]); + // Update props when the viewport is resized or the block is resized. + (0,external_wp_element_namespaceObject.useLayoutEffect)(() => { + if (!contentElement || !selectedBlockElement) { + return; + } + // Update the toolbar props on viewport resize. + const contentView = contentElement?.ownerDocument?.defaultView; + contentView?.addEventHandler?.('resize', updateProps); -const { - Tabs: inspector_controls_tabs_Tabs -} = unlock(external_wp_components_namespaceObject.privateApis); -function InspectorControlsTabs({ - blockName, - clientId, - hasBlockStyles, - tabs -}) { - // The tabs panel will mount before fills are rendered to the list view - // slot. This means the list view tab isn't initially included in the - // available tabs so the panel defaults selection to the settings tab - // which at the time is the first tab. This check allows blocks known to - // include the list view tab to set it as the tab selected by default. - const initialTabName = !use_is_list_view_tab_disabled(blockName) ? TAB_LIST_VIEW.name : undefined; - return (0,external_React_.createElement)("div", { - className: "block-editor-block-inspector__tabs" - }, (0,external_React_.createElement)(inspector_controls_tabs_Tabs, { - initialTabId: initialTabName, - key: clientId - }, (0,external_React_.createElement)(inspector_controls_tabs_Tabs.TabList, null, tabs.map(tab => (0,external_React_.createElement)(inspector_controls_tabs_Tabs.Tab, { - key: tab.name, - tabId: tab.name, - render: (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - icon: tab.icon, - label: tab.title, - className: tab.className - }) - }))), (0,external_React_.createElement)(inspector_controls_tabs_Tabs.TabPanel, { - tabId: TAB_SETTINGS.name, - focusable: false - }, (0,external_React_.createElement)(settings_tab, { - showAdvancedControls: !!blockName - })), (0,external_React_.createElement)(inspector_controls_tabs_Tabs.TabPanel, { - tabId: TAB_STYLES.name, - focusable: false - }, (0,external_React_.createElement)(styles_tab, { - blockName: blockName, - clientId: clientId, - hasBlockStyles: hasBlockStyles - })), (0,external_React_.createElement)(inspector_controls_tabs_Tabs.TabPanel, { - tabId: TAB_LIST_VIEW.name, - focusable: false - }, (0,external_React_.createElement)(inspector_controls.Slot, { - group: "list" - })))); + // Update the toolbar props on block resize. + let resizeObserver; + const blockView = selectedBlockElement?.ownerDocument?.defaultView; + if (blockView.ResizeObserver) { + resizeObserver = new blockView.ResizeObserver(updateProps); + resizeObserver.observe(selectedBlockElement); + } + return () => { + contentView?.removeEventHandler?.('resize', updateProps); + if (resizeObserver) { + resizeObserver.disconnect(); + } + }; + }, [updateProps, contentElement, selectedBlockElement]); + return { + ...props, + ref: popoverRef + }; } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/use-should-contextual-toolbar-show.js /** * WordPress dependencies */ + /** * Internal dependencies */ - - -const use_inspector_controls_tabs_EMPTY_ARRAY = []; -function getShowTabs(blockName, tabSettings = {}) { - // Block specific setting takes precedence over generic default. - if (tabSettings[blockName] !== undefined) { - return tabSettings[blockName]; - } - - // Use generic default if set over the Gutenberg experiment option. - if (tabSettings.default !== undefined) { - return tabSettings.default; - } - return true; -} -function useInspectorControlsTabs(blockName) { - const tabs = []; +/** + * Returns true if the contextual block toolbar should show, or false if it should be hidden. + * + * @return {boolean} Whether the block toolbar is hidden. + */ +function useShouldContextualToolbarShow() { + const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); const { - border: borderGroup, - color: colorGroup, - default: defaultGroup, - dimensions: dimensionsGroup, - list: listGroup, - position: positionGroup, - styles: stylesGroup, - typography: typographyGroup, - effects: effectsGroup - } = inspector_controls_groups; - - // List View Tab: If there are any fills for the list group add that tab. - const listViewDisabled = use_is_list_view_tab_disabled(blockName); - const listFills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(listGroup.Slot.__unstableName); - const hasListFills = !listViewDisabled && !!listFills && listFills.length; + shouldShowContextualToolbar, + canFocusHiddenToolbar, + fixedToolbarCanBeFocused + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + __unstableGetEditorMode, + isMultiSelecting, + isTyping, + isBlockInterfaceHidden, + getBlock, + getSettings, + isNavigationMode, + getSelectedBlockClientId, + getFirstMultiSelectedBlockClientId + } = unlock(select(store)); + const isEditMode = __unstableGetEditorMode() === 'edit'; + const hasFixedToolbar = getSettings().hasFixedToolbar; + const isDistractionFree = getSettings().isDistractionFree; + const selectedBlockId = getFirstMultiSelectedBlockClientId() || getSelectedBlockClientId(); + const hasSelectedBlockId = !!selectedBlockId; + const isEmptyDefaultBlock = (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(getBlock(selectedBlockId) || {}); + const _shouldShowContextualToolbar = isEditMode && !hasFixedToolbar && (!isDistractionFree || isNavigationMode()) && isLargeViewport && !isMultiSelecting() && !isTyping() && hasSelectedBlockId && !isEmptyDefaultBlock && !isBlockInterfaceHidden(); + const _canFocusHiddenToolbar = isEditMode && hasSelectedBlockId && !_shouldShowContextualToolbar && !hasFixedToolbar && !isDistractionFree && !isEmptyDefaultBlock; + return { + shouldShowContextualToolbar: _shouldShowContextualToolbar, + canFocusHiddenToolbar: _canFocusHiddenToolbar, + fixedToolbarCanBeFocused: (hasFixedToolbar || !isLargeViewport) && selectedBlockId + }; + }, [isLargeViewport]); + return { + shouldShowContextualToolbar, + canFocusHiddenToolbar, + fixedToolbarCanBeFocused + }; +} - // Styles Tab: Add this tab if there are any fills for block supports - // e.g. border, color, spacing, typography, etc. - const styleFills = [...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(borderGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(colorGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(dimensionsGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(stylesGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(typographyGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(effectsGroup.Slot.__unstableName) || [])]; - const hasStyleFills = styleFills.length; +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/selected-block-popover.js - // Settings Tab: If we don't have multiple tabs to display - // (i.e. both list view and styles), check only the default and position - // InspectorControls slots. If we have multiple tabs, we'll need to check - // the advanced controls slot as well to ensure they are rendered. - const advancedFills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(InspectorAdvancedControls.slotName) || []; - const settingsFills = [...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(defaultGroup.Slot.__unstableName) || []), ...((0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(positionGroup.Slot.__unstableName) || []), ...(hasListFills && hasStyleFills > 1 ? advancedFills : [])]; +/** + * External dependencies + */ - // Add the tabs in the order that they will default to if available. - // List View > Settings > Styles. - if (hasListFills) { - tabs.push(TAB_LIST_VIEW); - } - if (settingsFills.length) { - tabs.push(TAB_SETTINGS); - } - if (hasStyleFills) { - tabs.push(TAB_STYLES); - } - const tabSettings = (0,external_wp_data_namespaceObject.useSelect)(select => { - return select(store).getSettings().blockInspectorTabs; - }, []); - const showTabs = getShowTabs(blockName, tabSettings); - return showTabs ? tabs : use_inspector_controls_tabs_EMPTY_ARRAY; -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js /** * WordPress dependencies */ + + + /** * Internal dependencies */ -function useBlockInspectorAnimationSettings(blockType, selectedBlockClientId) { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - if (blockType) { - const globalBlockInspectorAnimationSettings = select(store).getSettings().blockInspectorAnimation; - // Get the name of the block that will allow it's children to be animated. - const animationParent = globalBlockInspectorAnimationSettings?.animationParent; - // Determine whether the animationParent block is a parent of the selected block. - const { - getSelectedBlockClientId, - getBlockParentsByBlockName - } = select(store); - const _selectedBlockClientId = getSelectedBlockClientId(); - const animationParentBlockClientId = getBlockParentsByBlockName(_selectedBlockClientId, animationParent, true)[0]; - // If the selected block is not a child of the animationParent block, - // and not an animationParent block itself, don't animate. - if (!animationParentBlockClientId && blockType.name !== animationParent) { - return null; - } - return globalBlockInspectorAnimationSettings?.[blockType.name]; - } - return null; - }, [selectedBlockClientId, blockType]); -} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-info-slot-fill/index.js -/** - * WordPress dependencies - */ +function selected_block_popover_selector(select) { + const { + __unstableGetEditorMode, + hasMultiSelection, + isTyping, + getLastMultiSelectedBlockClientId + } = select(store); + return { + editorMode: __unstableGetEditorMode(), + hasMultiSelection: hasMultiSelection(), + isTyping: isTyping(), + lastClientId: hasMultiSelection() ? getLastMultiSelectedBlockClientId() : null + }; +} +function SelectedBlockPopover({ + clientId, + rootClientId, + isEmptyDefaultBlock, + capturingClientId, + __unstablePopoverSlot, + __unstableContentRef +}) { + const { + editorMode, + hasMultiSelection, + isTyping, + lastClientId + } = (0,external_wp_data_namespaceObject.useSelect)(selected_block_popover_selector, []); + const isInsertionPointVisible = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + isBlockInsertionPointVisible, + getBlockInsertionPoint, + getBlockOrder + } = select(store); + if (!isBlockInsertionPointVisible()) { + return false; + } + const insertionPoint = getBlockInsertionPoint(); + const order = getBlockOrder(insertionPoint.rootClientId); + return order[insertionPoint.index] === clientId; + }, [clientId]); + const isToolbarForced = (0,external_wp_element_namespaceObject.useRef)(false); + const { + shouldShowContextualToolbar, + canFocusHiddenToolbar + } = useShouldContextualToolbarShow(); + const { + stopTyping + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + const showEmptyBlockSideInserter = !isTyping && editorMode === 'edit' && isEmptyDefaultBlock; + const shouldShowBreadcrumb = !hasMultiSelection && (editorMode === 'navigation' || editorMode === 'zoom-out'); + (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/focus-toolbar', () => { + isToolbarForced.current = true; + stopTyping(true); + }, { + isDisabled: !canFocusHiddenToolbar + }); + (0,external_wp_element_namespaceObject.useEffect)(() => { + isToolbarForced.current = false; + }); -/** - * Internal dependencies - */ + // Stores the active toolbar item index so the block toolbar can return focus + // to it when re-mounting. + const initialToolbarItemIndexRef = (0,external_wp_element_namespaceObject.useRef)(); + (0,external_wp_element_namespaceObject.useEffect)(() => { + // Resets the index whenever the active block changes so this is not + // persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169 + initialToolbarItemIndexRef.current = undefined; + }, [clientId]); + const popoverProps = useBlockToolbarPopoverProps({ + contentElement: __unstableContentRef?.current, + clientId + }); + if (showEmptyBlockSideInserter) { + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { + clientId: capturingClientId || clientId, + __unstableCoverTarget: true, + bottomClientId: lastClientId, + className: classnames_default()('block-editor-block-list__block-side-inserter-popover', { + 'is-insertion-point-visible': isInsertionPointVisible + }), + __unstablePopoverSlot: __unstablePopoverSlot, + __unstableContentRef: __unstableContentRef, + resize: false, + shift: false, + ...popoverProps + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-list__empty-block-inserter" + }, (0,external_wp_element_namespaceObject.createElement)(inserter, { + position: "bottom right", + rootClientId: rootClientId, + clientId: clientId, + __experimentalIsQuick: true + }))); + } + if (shouldShowBreadcrumb || shouldShowContextualToolbar) { + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { + clientId: capturingClientId || clientId, + bottomClientId: lastClientId, + className: classnames_default()('block-editor-block-list__block-popover', { + 'is-insertion-point-visible': isInsertionPointVisible + }), + __unstablePopoverSlot: __unstablePopoverSlot, + __unstableContentRef: __unstableContentRef, + resize: false, + ...popoverProps + }, shouldShowContextualToolbar && (0,external_wp_element_namespaceObject.createElement)(block_contextual_toolbar + // If the toolbar is being shown because of being forced + // it should focus the toolbar right after the mount. + , { + focusOnMount: isToolbarForced.current, + __experimentalInitialIndex: initialToolbarItemIndexRef.current, + __experimentalOnIndexChange: index => { + initialToolbarItemIndexRef.current = index; + } + // Resets the index whenever the active block changes so + // this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169 + , + key: clientId + }), shouldShowBreadcrumb && (0,external_wp_element_namespaceObject.createElement)(block_selection_button, { + clientId: clientId, + rootClientId: rootClientId + })); + } + return null; +} +function wrapperSelector(select) { + const { + getSelectedBlockClientId, + getFirstMultiSelectedBlockClientId, + getBlockRootClientId, + getBlock, + getBlockParents, + __experimentalGetBlockListSettingsForBlocks + } = select(store); + const clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId(); + if (!clientId) { + return; + } + const { + name, + attributes = {} + } = getBlock(clientId) || {}; + const blockParentsClientIds = getBlockParents(clientId); + // Get Block List Settings for all ancestors of the current Block clientId. + const parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(blockParentsClientIds); -const { - createPrivateSlotFill -} = unlock(external_wp_components_namespaceObject.privateApis); -const { - Fill: block_info_slot_fill_Fill, - Slot: block_info_slot_fill_Slot -} = createPrivateSlotFill('BlockInformation'); -const BlockInfo = props => { - const context = useBlockEditContext(); - if (!context[mayDisplayControlsKey]) { + // Get the clientId of the topmost parent with the capture toolbars setting. + const capturingClientId = blockParentsClientIds.find(parentClientId => parentBlockListSettings[parentClientId]?.__experimentalCaptureToolbars); + return { + clientId, + rootClientId: getBlockRootClientId(clientId), + name, + isEmptyDefaultBlock: name && (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)({ + name, + attributes + }), + capturingClientId + }; +} +function WrappedBlockPopover({ + __unstablePopoverSlot, + __unstableContentRef +}) { + const selected = (0,external_wp_data_namespaceObject.useSelect)(wrapperSelector, []); + if (!selected) { return null; } - return (0,external_React_.createElement)(block_info_slot_fill_Fill, { - ...props + const { + clientId, + rootClientId, + name, + isEmptyDefaultBlock, + capturingClientId + } = selected; + if (!name) { + return null; + } + return (0,external_wp_element_namespaceObject.createElement)(SelectedBlockPopover, { + clientId: clientId, + rootClientId: rootClientId, + isEmptyDefaultBlock: isEmptyDefaultBlock, + capturingClientId: capturingClientId, + __unstablePopoverSlot: __unstablePopoverSlot, + __unstableContentRef: __unstableContentRef }); -}; -BlockInfo.Slot = props => (0,external_React_.createElement)(block_info_slot_fill_Slot, { - ...props -}); -/* harmony default export */ var block_info_slot_fill = (BlockInfo); +} -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-quick-navigation/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/zoom-out-mode-inserters.js /** * WordPress dependencies @@ -65284,66 +60094,53 @@ BlockInfo.Slot = props => (0,external_React_.createElement)(block_info_slot_fill - /** * Internal dependencies */ -function BlockQuickNavigation({ - clientIds + +function ZoomOutModeInserters({ + __unstableContentRef }) { - if (!clientIds.length) { + const [isReady, setIsReady] = (0,external_wp_element_namespaceObject.useState)(false); + const blockOrder = (0,external_wp_data_namespaceObject.useSelect)(select => { + return select(store).getBlockOrder(); + }, []); + + // Defer the initial rendering to avoid the jumps due to the animation. + (0,external_wp_element_namespaceObject.useEffect)(() => { + const timeout = setTimeout(() => { + setIsReady(true); + }, 500); + return () => { + clearTimeout(timeout); + }; + }, []); + if (!isReady) { return null; } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { - spacing: 1 - }, clientIds.map(clientId => (0,external_React_.createElement)(BlockQuickNavigationItem, { - key: clientId, - clientId: clientId - }))); -} -function BlockQuickNavigationItem({ - clientId -}) { - const { - name, - icon, - isSelected - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockName, - getBlockAttributes, - isBlockSelected, - hasSelectedInnerBlock - } = select(store); - const { - getBlockType - } = select(external_wp_blocks_namespaceObject.store); - const blockType = getBlockType(getBlockName(clientId)); - const attributes = getBlockAttributes(clientId); - return { - name: blockType && (0,external_wp_blocks_namespaceObject.__experimentalGetBlockLabel)(blockType, attributes, 'list-view'), - icon: blockType?.icon, - isSelected: isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, /* deep: */true) - }; - }, [clientId]); - const { - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { - isPressed: isSelected, - onClick: () => selectBlock(clientId) - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Flex, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_React_.createElement)(block_icon, { - icon: icon - })), (0,external_React_.createElement)(external_wp_components_namespaceObject.FlexBlock, { - style: { - textAlign: 'left' + return blockOrder.map((clientId, index) => { + if (index === blockOrder.length - 1) { + return null; } - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, null, name)))); + return (0,external_wp_element_namespaceObject.createElement)(inbetween, { + key: clientId, + previousClientId: clientId, + nextClientId: blockOrder[index + 1], + __unstableContentRef: __unstableContentRef + }, (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-block-list__insertion-point-inserter is-with-inserter" + }, (0,external_wp_element_namespaceObject.createElement)(inserter, { + position: "bottom center", + clientId: blockOrder[index + 1], + __experimentalIsQuick: true + }))); + }); } +/* harmony default export */ var zoom_out_mode_inserters = (ZoomOutModeInserters); -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-inspector/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-tools/index.js /** * WordPress dependencies @@ -65353,6 +60150,7 @@ function BlockQuickNavigationItem({ + /** * Internal dependencies */ @@ -65362,263 +60160,137 @@ function BlockQuickNavigationItem({ +function block_tools_selector(select) { + const { + __unstableGetEditorMode, + getSettings, + isTyping + } = select(store); + return { + isZoomOutMode: __unstableGetEditorMode() === 'zoom-out', + hasFixedToolbar: getSettings().hasFixedToolbar, + isTyping: isTyping() + }; +} - - - - - - - - - -function BlockInspectorLockedBlocks({ - topLevelLockedBlock +/** + * Renders block tools (the block toolbar, select/navigation mode toolbar, the + * insertion point and a slot for the inline rich text toolbar). Must be wrapped + * around the block content and editor styles wrapper or iframe. + * + * @param {Object} $0 Props. + * @param {Object} $0.children The block content and style container. + * @param {Object} $0.__unstableContentRef Ref holding the content scroll container. + */ +function BlockTools({ + children, + __unstableContentRef, + ...props }) { - const contentClientIds = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getClientIdsOfDescendants, - getBlockName, - getBlockEditingMode - } = select(store); - return getClientIdsOfDescendants(topLevelLockedBlock).filter(clientId => getBlockName(clientId) !== 'core/list-item' && getBlockEditingMode(clientId) === 'contentOnly'); - }, [topLevelLockedBlock]); - const blockInformation = useBlockDisplayInformation(topLevelLockedBlock); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-inspector" - }, (0,external_React_.createElement)(block_card, { - ...blockInformation, - className: blockInformation.isSynced && 'is-synced' - }), (0,external_React_.createElement)(block_variation_transforms, { - blockClientId: topLevelLockedBlock - }), (0,external_React_.createElement)(block_info_slot_fill.Slot, null), (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - title: (0,external_wp_i18n_namespaceObject.__)('Content') - }, (0,external_React_.createElement)(BlockQuickNavigation, { - clientIds: contentClientIds - }))); -} -const BlockInspector = ({ - showNoBlockSelectedMessage = true -}) => { + const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium'); const { - count, - selectedBlockName, - selectedBlockClientId, - blockType, - topLevelLockedBlock - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectedBlockClientId, - getSelectedBlockCount, - getBlockName, - __unstableGetContentLockingParent, - getTemplateLock - } = select(store); - const _selectedBlockClientId = getSelectedBlockClientId(); - const _selectedBlockName = _selectedBlockClientId && getBlockName(_selectedBlockClientId); - const _blockType = _selectedBlockName && (0,external_wp_blocks_namespaceObject.getBlockType)(_selectedBlockName); - return { - count: getSelectedBlockCount(), - selectedBlockClientId: _selectedBlockClientId, - selectedBlockName: _selectedBlockName, - blockType: _blockType, - topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId) || (getTemplateLock(_selectedBlockClientId) === 'contentOnly' || _selectedBlockName === 'core/block' ? _selectedBlockClientId : undefined) - }; - }, []); - const availableTabs = useInspectorControlsTabs(blockType?.name); - const showTabs = availableTabs?.length > 1; - - // The block inspector animation settings will be completely - // removed in the future to create an API which allows the block - // inspector to transition between what it - // displays based on the relationship between the selected block - // and its parent, and only enable it if the parent is controlling - // its children blocks. - const blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(blockType, selectedBlockClientId); - if (count > 1) { - return (0,external_React_.createElement)("div", { - className: "block-editor-block-inspector" - }, (0,external_React_.createElement)(multi_selection_inspector, null), showTabs ? (0,external_React_.createElement)(InspectorControlsTabs, { - tabs: availableTabs - }) : (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(inspector_controls.Slot, null), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "color", - label: (0,external_wp_i18n_namespaceObject.__)('Color'), - className: "color-block-support-panel__inner-wrapper" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "typography", - label: (0,external_wp_i18n_namespaceObject.__)('Typography') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "dimensions", - label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "border", - label: (0,external_wp_i18n_namespaceObject.__)('Border') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "styles" - }))); - } - const isSelectedBlockUnregistered = selectedBlockName === (0,external_wp_blocks_namespaceObject.getUnregisteredTypeHandlerName)(); + hasFixedToolbar, + isZoomOutMode, + isTyping + } = (0,external_wp_data_namespaceObject.useSelect)(block_tools_selector, []); + const isMatch = (0,external_wp_keyboardShortcuts_namespaceObject.__unstableUseShortcutEventMatch)(); + const { + getSelectedBlockClientIds, + getBlockRootClientId + } = (0,external_wp_data_namespaceObject.useSelect)(store); + const { + duplicateBlocks, + removeBlocks, + insertAfterBlock, + insertBeforeBlock, + clearSelectedBlock, + selectBlock, + moveBlocksUp, + moveBlocksDown + } = (0,external_wp_data_namespaceObject.useDispatch)(store); + function onKeyDown(event) { + if (event.defaultPrevented) return; + if (isMatch('core/block-editor/move-up', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + const rootClientId = getBlockRootClientId(clientIds[0]); + moveBlocksUp(clientIds, rootClientId); + } + } else if (isMatch('core/block-editor/move-down', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + const rootClientId = getBlockRootClientId(clientIds[0]); + moveBlocksDown(clientIds, rootClientId); + } + } else if (isMatch('core/block-editor/duplicate', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + duplicateBlocks(clientIds); + } + } else if (isMatch('core/block-editor/remove', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + removeBlocks(clientIds); + } + } else if (isMatch('core/block-editor/insert-after', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + insertAfterBlock(clientIds[clientIds.length - 1]); + } + } else if (isMatch('core/block-editor/insert-before', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); + insertBeforeBlock(clientIds[0]); + } + } else if (isMatch('core/block-editor/unselect', event)) { + const clientIds = getSelectedBlockClientIds(); + if (clientIds.length) { + event.preventDefault(); - /* - * If the selected block is of an unregistered type, avoid showing it as an actual selection - * because we want the user to focus on the unregistered block warning, not block settings. - */ - if (!blockType || !selectedBlockClientId || isSelectedBlockUnregistered) { - if (showNoBlockSelectedMessage) { - return (0,external_React_.createElement)("span", { - className: "block-editor-block-inspector__no-blocks" - }, (0,external_wp_i18n_namespaceObject.__)('No block selected.')); + // If there is more than one block selected, select the first + // block so that focus is directed back to the beginning of the selection. + // In effect, to the user this feels like deselecting the multi-selection. + if (clientIds.length > 1) { + selectBlock(clientIds[0]); + } else { + clearSelectedBlock(); + } + event.target.ownerDocument.defaultView.getSelection().removeAllRanges(); + __unstableContentRef?.current.focus(); + } } - return null; } - if (topLevelLockedBlock) { - return (0,external_React_.createElement)(BlockInspectorLockedBlocks, { - topLevelLockedBlock: topLevelLockedBlock - }); - } - return (0,external_React_.createElement)(BlockInspectorSingleBlockWrapper, { - animate: blockInspectorAnimationSettings, - wrapper: children => (0,external_React_.createElement)(AnimatedContainer, { - blockInspectorAnimationSettings: blockInspectorAnimationSettings, - selectedBlockClientId: selectedBlockClientId - }, children) - }, (0,external_React_.createElement)(BlockInspectorSingleBlock, { - clientId: selectedBlockClientId, - blockName: blockType.name - })); -}; -const BlockInspectorSingleBlockWrapper = ({ - animate, - wrapper, - children -}) => { - return animate ? wrapper(children) : children; -}; -const AnimatedContainer = ({ - blockInspectorAnimationSettings, - selectedBlockClientId, - children -}) => { - const animationOrigin = blockInspectorAnimationSettings && blockInspectorAnimationSettings.enterDirection === 'leftToRight' ? -50 : 50; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__unstableMotion.div, { - animate: { - x: 0, - opacity: 1, - transition: { - ease: 'easeInOut', - duration: 0.14 - } - }, - initial: { - x: animationOrigin, - opacity: 0 - }, - key: selectedBlockClientId - }, children); -}; -const BlockInspectorSingleBlock = ({ - clientId, - blockName -}) => { - const availableTabs = useInspectorControlsTabs(blockName); - const showTabs = availableTabs?.length > 1; - const hasBlockStyles = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getBlockStyles - } = select(external_wp_blocks_namespaceObject.store); - const blockStyles = getBlockStyles(blockName); - return blockStyles && blockStyles.length > 0; - }, [blockName]); - const blockInformation = useBlockDisplayInformation(clientId); - return (0,external_React_.createElement)("div", { - className: "block-editor-block-inspector" - }, (0,external_React_.createElement)(block_card, { - ...blockInformation, - className: blockInformation.isSynced && 'is-synced' - }), (0,external_React_.createElement)(block_variation_transforms, { - blockClientId: clientId - }), (0,external_React_.createElement)(block_info_slot_fill.Slot, null), showTabs && (0,external_React_.createElement)(InspectorControlsTabs, { - hasBlockStyles: hasBlockStyles, - clientId: clientId, - blockName: blockName, - tabs: availableTabs - }), !showTabs && (0,external_React_.createElement)(external_React_.Fragment, null, hasBlockStyles && (0,external_React_.createElement)("div", null, (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelBody, { - title: (0,external_wp_i18n_namespaceObject.__)('Styles') - }, (0,external_React_.createElement)(block_styles, { - clientId: clientId - }), (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockName, 'defaultStylePicker', true) && (0,external_React_.createElement)(DefaultStylePicker, { - blockName: blockName - }))), (0,external_React_.createElement)(inspector_controls.Slot, null), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "list" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "color", - label: (0,external_wp_i18n_namespaceObject.__)('Color'), - className: "color-block-support-panel__inner-wrapper" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "typography", - label: (0,external_wp_i18n_namespaceObject.__)('Typography') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "dimensions", - label: (0,external_wp_i18n_namespaceObject.__)('Dimensions') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "border", - label: (0,external_wp_i18n_namespaceObject.__)('Border') - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "styles" - }), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "background", - label: (0,external_wp_i18n_namespaceObject.__)('Background') - }), (0,external_React_.createElement)(position_controls_panel, null), (0,external_React_.createElement)(inspector_controls.Slot, { - group: "effects", - label: (0,external_wp_i18n_namespaceObject.__)('Effects') - }), (0,external_React_.createElement)("div", null, (0,external_React_.createElement)(advanced_controls_panel, null))), (0,external_React_.createElement)(skip_to_selected_block, { - key: "back" - })); -}; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md - */ -/* harmony default export */ var block_inspector = (BlockInspector); - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/copy-handler/index.js - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -/** - * @deprecated - */ -const __unstableUseClipboardHandler = () => { - external_wp_deprecated_default()('__unstableUseClipboardHandler', { - alternative: 'BlockCanvas or WritingFlow', - since: '6.4', - version: '6.7' - }); - return useClipboardHandler(); -}; - -/** - * @deprecated - * @param {Object} props - */ -function CopyHandler(props) { - external_wp_deprecated_default()('CopyHandler', { - alternative: 'BlockCanvas or WritingFlow', - since: '6.4', - version: '6.7' - }); - return (0,external_React_.createElement)("div", { - ...props, - ref: useClipboardHandler() - }); + const blockToolbarRef = use_popover_scroll(__unstableContentRef); + const blockToolbarAfterRef = use_popover_scroll(__unstableContentRef); + return ( + // eslint-disable-next-line jsx-a11y/no-static-element-interactions + (0,external_wp_element_namespaceObject.createElement)("div", { + ...props, + onKeyDown: onKeyDown + }, (0,external_wp_element_namespaceObject.createElement)(insertion_point_InsertionPointOpenRef.Provider, { + value: (0,external_wp_element_namespaceObject.useRef)(false) + }, !isTyping && (0,external_wp_element_namespaceObject.createElement)(InsertionPoint, { + __unstableContentRef: __unstableContentRef + }), !isZoomOutMode && (hasFixedToolbar || !isLargeViewport) && (0,external_wp_element_namespaceObject.createElement)(block_contextual_toolbar, { + isFixed: true + }), (0,external_wp_element_namespaceObject.createElement)(WrappedBlockPopover, { + __unstableContentRef: __unstableContentRef + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.Slot, { + name: "block-toolbar", + ref: blockToolbarRef + }), children, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover.Slot, { + name: "__unstable-block-tools-after", + ref: blockToolbarAfterRef + }), isZoomOutMode && (0,external_wp_element_namespaceObject.createElement)(zoom_out_mode_inserters, { + __unstableContentRef: __unstableContentRef + }))) + ); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/library.js @@ -65647,17 +60319,20 @@ function InserterLibrary({ shouldFocusBlock = false }, ref) { const { - destinationRootClientId + destinationRootClientId, + prioritizePatterns } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { - getBlockRootClientId + getBlockRootClientId, + getSettings } = select(store); const _rootClientId = rootClientId || getBlockRootClientId(clientId) || undefined; return { - destinationRootClientId: _rootClientId + destinationRootClientId: _rootClientId, + prioritizePatterns: getSettings().__experimentalPreferPatternsOnRoot && !_rootClientId }; }, [clientId, rootClientId]); - return (0,external_React_.createElement)(menu, { + return (0,external_wp_element_namespaceObject.createElement)(menu, { onSelect: onSelect, rootClientId: destinationRootClientId, clientId: clientId, @@ -65667,6 +60342,7 @@ function InserterLibrary({ __experimentalInsertionIndex: __experimentalInsertionIndex, __experimentalFilterValue: __experimentalFilterValue, shouldFocusBlock: shouldFocusBlock, + prioritizePatterns: prioritizePatterns, ref: ref }); } @@ -65889,7 +60565,7 @@ function useTypewriter() { function Typewriter({ children }) { - return (0,external_React_.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)("div", { ref: useTypewriter(), className: "block-editor__typewriter" }, children); @@ -65900,7 +60576,7 @@ function Typewriter({ * challenges in Internet Explorer, and is simply skipped, rendering the given * props children instead. * - * @type {Component} + * @type {WPComponent} */ const TypewriterOrIEBypass = isIE ? props => props.children : Typewriter; @@ -65918,7 +60594,6 @@ const TypewriterOrIEBypass = isIE ? props => props.children : Typewriter; */ - /** * Internal dependencies */ @@ -65968,7 +60643,7 @@ function RecursionProvider({ } = useBlockEditContext(); blockName = blockName || name; const newRenderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => addToBlockType(previouslyRenderedBlocks, blockName, uniqueId), [previouslyRenderedBlocks, blockName, uniqueId]); - return (0,external_React_.createElement)(RenderedRefsContext.Provider, { + return (0,external_wp_element_namespaceObject.createElement)(RenderedRefsContext.Provider, { value: newRenderedBlocks }, children); } @@ -65994,22 +60669,6 @@ function useHasRecursion(uniqueId, blockName = '') { blockName = blockName || name; return Boolean(previouslyRenderedBlocks[blockName]?.has(uniqueId)); } -const DeprecatedExperimentalRecursionProvider = props => { - external_wp_deprecated_default()('wp.blockEditor.__experimentalRecursionProvider', { - since: '6.5', - alternative: 'wp.blockEditor.RecursionProvider' - }); - return (0,external_React_.createElement)(RecursionProvider, { - ...props - }); -}; -const DeprecatedExperimentalUseHasRecursion = props => { - external_wp_deprecated_default()('wp.blockEditor.__experimentalUseHasRecursion', { - since: '6.5', - alternative: 'wp.blockEditor.useHasRecursion' - }); - return useHasRecursion(...props); -}; ;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js @@ -66017,10 +60676,10 @@ const DeprecatedExperimentalUseHasRecursion = props => { * WordPress dependencies */ -const closeSmall = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" })); /* harmony default export */ var close_small = (closeSmall); @@ -66039,32 +60698,32 @@ function InspectorPopoverHeader({ actions = [], onClose }) { - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { className: "block-editor-inspector-popover-header", spacing: 4 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { alignment: "center" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { className: "block-editor-inspector-popover-header__heading", level: 2, size: 13 - }, title), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, null), actions.map(({ + }, title), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalSpacer, null), actions.map(({ label, icon, onClick - }) => (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { + }) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { key: label, className: "block-editor-inspector-popover-header__action", label: label, icon: icon, variant: !icon && 'tertiary', onClick: onClick - }, !icon && label)), onClose && (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { + }, !icon && label)), onClose && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { className: "block-editor-inspector-popover-header__action", label: (0,external_wp_i18n_namespaceObject.__)('Close'), icon: close_small, onClick: onClose - })), help && (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalText, null, help)); + })), help && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, null, help)); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/publish-date-time-picker/index.js @@ -66086,17 +60745,17 @@ function PublishDateTimePicker({ onChange, ...additionalProps }, ref) { - return (0,external_React_.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)("div", { ref: ref, className: "block-editor-publish-date-time-picker" - }, (0,external_React_.createElement)(InspectorPopoverHeader, { + }, (0,external_wp_element_namespaceObject.createElement)(InspectorPopoverHeader, { title: (0,external_wp_i18n_namespaceObject.__)('Publish'), actions: [{ label: (0,external_wp_i18n_namespaceObject.__)('Now'), onClick: () => onChange?.(null) }], onClose: onClose - }), (0,external_React_.createElement)(external_wp_components_namespaceObject.DateTimePicker, { + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DateTimePicker, { startOfWeek: (0,external_wp_date_namespaceObject.getSettings)().l10n.startOfWeek, onChange: onChange, ...additionalProps @@ -66106,49 +60765,47 @@ function PublishDateTimePicker({ ;// CONCATENATED MODULE: external ["wp","commands"] var external_wp_commands_namespaceObject = window["wp"]["commands"]; -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/move-to.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/trash.js /** * WordPress dependencies */ -const move_to_moveTo = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const trash = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M19.75 9c0-1.257-.565-2.197-1.39-2.858-.797-.64-1.827-1.017-2.815-1.247-1.802-.42-3.703-.403-4.383-.396L11 4.5V6l.177-.001c.696-.006 2.416-.02 4.028.356.887.207 1.67.518 2.216.957.52.416.829.945.829 1.688 0 .592-.167.966-.407 1.23-.255.281-.656.508-1.236.674-1.19.34-2.82.346-4.607.346h-.077c-1.692 0-3.527 0-4.942.404-.732.209-1.424.545-1.935 1.108-.526.579-.796 1.33-.796 2.238 0 1.257.565 2.197 1.39 2.858.797.64 1.827 1.017 2.815 1.247 1.802.42 3.703.403 4.383.396L13 19.5h.714V22L18 18.5 13.714 15v3H13l-.177.001c-.696.006-2.416.02-4.028-.356-.887-.207-1.67-.518-2.216-.957-.52-.416-.829-.945-.829-1.688 0-.592.167-.966.407-1.23.255-.281.656-.508 1.237-.674 1.189-.34 2.819-.346 4.606-.346h.077c1.692 0 3.527 0 4.941-.404.732-.209 1.425-.545 1.936-1.108.526-.579.796-1.33.796-2.238z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M20 5h-5.7c0-1.3-1-2.3-2.3-2.3S9.7 3.7 9.7 5H4v2h1.5v.3l1.7 11.1c.1 1 1 1.7 2 1.7h5.7c1 0 1.8-.7 2-1.7l1.7-11.1V7H20V5zm-3.2 2l-1.7 11.1c0 .1-.1.2-.3.2H9.1c-.1 0-.3-.1-.3-.2L7.2 7h9.6z" })); -/* harmony default export */ var move_to = (move_to_moveTo); +/* harmony default export */ var library_trash = (trash); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/ungroup.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/move-to.js /** * WordPress dependencies */ -const ungroup = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const move_to_moveTo = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - d: "M18 4h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7zm-5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h1V9H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-1h-1.5v1z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M19.75 9c0-1.257-.565-2.197-1.39-2.858-.797-.64-1.827-1.017-2.815-1.247-1.802-.42-3.703-.403-4.383-.396L11 4.5V6l.177-.001c.696-.006 2.416-.02 4.028.356.887.207 1.67.518 2.216.957.52.416.829.945.829 1.688 0 .592-.167.966-.407 1.23-.255.281-.656.508-1.236.674-1.19.34-2.82.346-4.607.346h-.077c-1.692 0-3.527 0-4.942.404-.732.209-1.424.545-1.935 1.108-.526.579-.796 1.33-.796 2.238 0 1.257.565 2.197 1.39 2.858.797.64 1.827 1.017 2.815 1.247 1.802.42 3.703.403 4.383.396L13 19.5h.714V22L18 18.5 13.714 15v3H13l-.177.001c-.696.006-2.416.02-4.028-.356-.887-.207-1.67-.518-2.216-.957-.52-.416-.829-.945-.829-1.688 0-.592.167-.966.407-1.23.255-.281.656-.508 1.237-.674 1.189-.34 2.819-.346 4.606-.346h.077c1.692 0 3.527 0 4.941-.404.732-.209 1.425-.545 1.936-1.108.526-.579.796-1.33.796-2.238z" })); -/* harmony default export */ var library_ungroup = (ungroup); +/* harmony default export */ var move_to = (move_to_moveTo); -;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/trash.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/ungroup.js /** * WordPress dependencies */ -const trash = (0,external_React_.createElement)(external_wp_primitives_namespaceObject.SVG, { +const ungroup = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" -}, (0,external_React_.createElement)(external_wp_primitives_namespaceObject.Path, { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M18 4h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7zm-5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h1V9H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-1h-1.5v1z" })); -/* harmony default export */ var library_trash = (trash); +/* harmony default export */ var library_ungroup = (ungroup); ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-commands/index.js @@ -66167,33 +60824,37 @@ const trash = (0,external_React_.createElement)(external_wp_primitives_namespace const useTransformCommands = () => { + const { + clientIds + } = (0,external_wp_data_namespaceObject.useSelect)(select => { + const { + getSelectedBlockClientIds + } = select(store); + const selectedBlockClientIds = getSelectedBlockClientIds(); + return { + clientIds: selectedBlockClientIds + }; + }, []); + const blocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getBlocksByClientId(clientIds), [clientIds]); const { replaceBlocks, multiSelect } = (0,external_wp_data_namespaceObject.useDispatch)(store); const { - blocks, - clientIds, - canRemove, - possibleBlockTransformations + possibleBlockTransformations, + canRemove } = (0,external_wp_data_namespaceObject.useSelect)(select => { const { getBlockRootClientId, getBlockTransformItems, - getSelectedBlockClientIds, - getBlocksByClientId, canRemoveBlocks } = select(store); - const selectedBlockClientIds = getSelectedBlockClientIds(); - const selectedBlocks = getBlocksByClientId(selectedBlockClientIds); - const rootClientId = getBlockRootClientId(selectedBlockClientIds[0]); + const rootClientId = getBlockRootClientId(Array.isArray(clientIds) ? clientIds[0] : clientIds); return { - blocks: selectedBlocks, - clientIds: selectedBlockClientIds, - possibleBlockTransformations: getBlockTransformItems(selectedBlocks, rootClientId), - canRemove: canRemoveBlocks(selectedBlockClientIds, rootClientId) + possibleBlockTransformations: getBlockTransformItems(blocks, rootClientId), + canRemove: canRemoveBlocks(clientIds, rootClientId) }; - }, []); + }, [clientIds, blocks]); const isTemplate = blocks.length === 1 && (0,external_wp_blocks_namespaceObject.isTemplatePart)(blocks[0]); function selectForMultipleBlocks(insertedBlocks) { if (insertedBlocks.length > 1) { @@ -66230,7 +60891,7 @@ const useTransformCommands = () => { name: 'core/block-editor/transform-to-' + name.replace('/', '-'), // translators: %s: block title/name. label: (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Transform to %s'), title), - icon: (0,external_React_.createElement)(block_icon, { + icon: (0,external_wp_element_namespaceObject.createElement)(block_icon, { icon: icon }), callback: ({ @@ -66247,63 +60908,6 @@ const useTransformCommands = () => { }; }; const useActionsCommands = () => { - const { - clientIds - } = (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - getSelectedBlockClientIds - } = select(store); - const selectedBlockClientIds = getSelectedBlockClientIds(); - return { - clientIds: selectedBlockClientIds - }; - }, []); - const { - getBlockRootClientId, - canMoveBlocks, - getBlockCount - } = (0,external_wp_data_namespaceObject.useSelect)(store); - const { - setBlockMovingClientId, - setNavigationMode, - selectBlock - } = (0,external_wp_data_namespaceObject.useDispatch)(store); - if (!clientIds || clientIds.length < 1) { - return { - isLoading: false, - commands: [] - }; - } - const rootClientId = getBlockRootClientId(clientIds[0]); - const canMove = canMoveBlocks(clientIds, rootClientId) && getBlockCount(rootClientId) !== 1; - const commands = []; - if (canMove) { - commands.push({ - name: 'move-to', - label: (0,external_wp_i18n_namespaceObject.__)('Move to'), - callback: () => { - setNavigationMode(true); - selectBlock(clientIds[0]); - setBlockMovingClientId(clientIds[0]); - }, - icon: move_to - }); - } - return { - isLoading: false, - commands: commands.map(command => ({ - ...command, - name: 'core/block-editor/action-' + command.name, - callback: ({ - close - }) => { - command.callback(); - close(); - } - })) - }; -}; -const useQuickActionsCommands = () => { const { clientIds, isUngroupable, @@ -66325,7 +60929,9 @@ const useQuickActionsCommands = () => { canInsertBlockType, getBlockRootClientId, getBlocksByClientId, - canRemoveBlocks + canMoveBlocks, + canRemoveBlocks, + getBlockCount } = (0,external_wp_data_namespaceObject.useSelect)(store); const { getDefaultBlockName, @@ -66337,7 +60943,10 @@ const useQuickActionsCommands = () => { replaceBlocks, duplicateBlocks, insertAfterBlock, - insertBeforeBlock + insertBeforeBlock, + setBlockMovingClientId, + setNavigationMode, + selectBlock } = (0,external_wp_data_namespaceObject.useDispatch)(store); const onGroup = () => { if (!blocks.length) { @@ -66374,25 +60983,10 @@ const useQuickActionsCommands = () => { return !!block && (0,external_wp_blocks_namespaceObject.hasBlockSupport)(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId); }); const canRemove = canRemoveBlocks(clientIds, rootClientId); + const canMove = canMoveBlocks(clientIds, rootClientId) && getBlockCount(rootClientId) !== 1; const commands = []; - if (canDuplicate) { - commands.push({ - name: 'duplicate', - label: (0,external_wp_i18n_namespaceObject.__)('Duplicate'), - callback: () => duplicateBlocks(clientIds, true), - icon: library_copy - }); - } if (canInsertDefaultBlock) { commands.push({ - name: 'add-before', - label: (0,external_wp_i18n_namespaceObject.__)('Add before'), - callback: () => { - const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId; - insertBeforeBlock(clientId); - }, - icon: library_plus - }, { name: 'add-after', label: (0,external_wp_i18n_namespaceObject.__)('Add after'), callback: () => { @@ -66400,14 +60994,42 @@ const useQuickActionsCommands = () => { insertAfterBlock(clientId); }, icon: library_plus + }, { + name: 'add-before', + label: (0,external_wp_i18n_namespaceObject.__)('Add before'), + callback: () => { + const clientId = Array.isArray(clientIds) ? clientIds[0] : clientId; + insertBeforeBlock(clientId); + }, + icon: library_plus }); } - if (isGroupable) { + if (canRemove) { commands.push({ - name: 'Group', - label: (0,external_wp_i18n_namespaceObject.__)('Group'), - callback: onGroup, - icon: library_group + name: 'remove', + label: (0,external_wp_i18n_namespaceObject.__)('Delete'), + callback: () => removeBlocks(clientIds, true), + icon: library_trash + }); + } + if (canDuplicate) { + commands.push({ + name: 'duplicate', + label: (0,external_wp_i18n_namespaceObject.__)('Duplicate'), + callback: () => duplicateBlocks(clientIds, true), + icon: library_copy + }); + } + if (canMove) { + commands.push({ + name: 'move-to', + label: (0,external_wp_i18n_namespaceObject.__)('Move to'), + callback: () => { + setNavigationMode(true); + selectBlock(clientIds[0]); + setBlockMovingClientId(clientIds[0]); + }, + icon: move_to }); } if (isUngroupable) { @@ -66418,12 +61040,12 @@ const useQuickActionsCommands = () => { icon: library_ungroup }); } - if (canRemove) { + if (isGroupable) { commands.push({ - name: 'remove', - label: (0,external_wp_i18n_namespaceObject.__)('Delete'), - callback: () => removeBlocks(clientIds, true), - icon: library_trash + name: 'Group', + label: (0,external_wp_i18n_namespaceObject.__)('Group'), + callback: onGroup, + icon: library_group }); } return { @@ -66449,11 +61071,6 @@ const useBlockCommands = () => { name: 'core/block-editor/blockActions', hook: useActionsCommands }); - (0,external_wp_commands_namespaceObject.useCommandLoader)({ - name: 'core/block-editor/blockQuickActions', - hook: useQuickActionsCommands, - context: 'block-selection-edit' - }); }; ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/reusable-block-rename-hint.js @@ -66498,12 +61115,12 @@ function ReusableBlocksRenameHint() { if (!isReusableBlocksRenameHint) { return null; } - return (0,external_React_.createElement)("div", { + return (0,external_wp_element_namespaceObject.createElement)("div", { ref: ref, className: "reusable-blocks-menu-items__rename-hint" - }, (0,external_React_.createElement)("div", { + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "reusable-blocks-menu-items__rename-hint-content" - }, (0,external_wp_i18n_namespaceObject.__)('Reusable blocks are now synced patterns. A synced pattern will behave in exactly the same way as a reusable block.')), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { + }, (0,external_wp_i18n_namespaceObject.__)('Reusable blocks are now synced patterns. A synced pattern will behave in exactly the same way as a reusable block.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { className: "reusable-blocks-menu-items__rename-hint-dismiss", icon: library_close, iconSize: "16", @@ -66656,20 +61273,322 @@ const __experimentalGetElementClassName = element => { return ELEMENT_CLASS_NAMES[element] ? ELEMENT_CLASS_NAMES[element] : ''; }; -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/get-px-from-css-unit.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/block-variation-transforms.js +/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */ + +function matchesAttributes(blockAttributes, variation) { + return Object.entries(variation).every(([key, value]) => { + if (typeof value === 'object' && typeof blockAttributes[key] === 'object') { + return matchesAttributes(blockAttributes[key], value); + } + return blockAttributes[key] === value; + }); +} + /** - * This function was accidentially exposed for mobile/native usage. + * Matches the provided block variations with a block's attributes. If no match + * or more than one matches are found it returns `undefined`. If a single match is + * found it returns it. * - * @deprecated + * This is a simple implementation for now as it takes into account only the attributes + * of a block variation and not `InnerBlocks`. * - * @return {string} Empty string. + * @param {Object} blockAttributes - The block attributes to try to find a match. + * @param {WPBlockVariation[]} variations - A list of block variations to test for a match. + * @return {WPBlockVariation | undefined} - If a match is found returns it. If not or more than one matches are found returns `undefined`. */ -/* harmony default export */ var get_px_from_css_unit = (() => ''); +const __experimentalGetMatchingVariation = (blockAttributes, variations) => { + if (!variations || !blockAttributes) return; + const matches = variations.filter(({ + attributes + }) => { + if (!attributes || !Object.keys(attributes).length) return false; + return matchesAttributes(blockAttributes, attributes); + }); + if (matches.length !== 1) return; + return matches[0]; +}; + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/parse-css-unit-to-px.js +/** + * Converts string to object { value, unit }. + * + * @param {string} cssUnit + * @return {Object} parsedUnit + */ +function parseUnit(cssUnit) { + const match = cssUnit?.trim().match(/^(0?[-.]?\d*\.?\d+)(r?e[m|x]|v[h|w|min|max]+|p[x|t|c]|[c|m]m|%|in|ch|Q|lh)$/); + if (!isNaN(cssUnit) && !isNaN(parseFloat(cssUnit))) { + return { + value: parseFloat(cssUnit), + unit: 'px' + }; + } + return match ? { + value: parseFloat(match[1]) || match[1], + unit: match[2] + } : { + value: cssUnit, + unit: undefined + }; +} +/** + * Evaluate a math expression. + * + * @param {string} expression + * @return {number} evaluated expression. + */ +function calculate(expression) { + try { + return Function(`'use strict'; return (${expression})`)(); + } catch (err) { + return null; + } +} + +/** + * Calculates the css function value for the supported css functions such as max, min, clamp and calc. + * + * @param {string} functionUnitValue string should be in a particular format (for example min(12px,12px) ) no nested loops. + * @param {Object} options + * @return {string} unit containing the unit in PX. + */ +function getFunctionUnitValue(functionUnitValue, options) { + const functionUnit = functionUnitValue.split(/[(),]/g).filter(Boolean); + const units = functionUnit.slice(1).map(unit => parseUnit(getPxFromCssUnit(unit, options)).value).filter(Boolean); + switch (functionUnit[0]) { + case 'min': + return Math.min(...units) + 'px'; + case 'max': + return Math.max(...units) + 'px'; + case 'clamp': + if (units.length !== 3) { + return null; + } + if (units[1] < units[0]) { + return units[0] + 'px'; + } + if (units[1] > units[2]) { + return units[2] + 'px'; + } + return units[1] + 'px'; + case 'calc': + return units[0] + 'px'; + } +} + +/** + * Take a css function such as min, max, calc, clamp and returns parsedUnit + * + * How this works for the nested function is that it first replaces the inner function call. + * Then it tackles the outer onces. + * So for example: min( max(25px, 35px), 40px ) + * in the first pass we would replace max(25px, 35px) with 35px. + * then we would try to evaluate min( 35px, 40px ) + * and then finally return 35px. + * + * @param {string} cssUnit + * @return {Object} parsedUnit object. + */ +function parseUnitFunction(cssUnit) { + while (true) { + const currentCssUnit = cssUnit; + const regExp = /(max|min|calc|clamp)\(([^()]*)\)/g; + const matches = regExp.exec(cssUnit) || []; + if (matches[0]) { + const functionUnitValue = getFunctionUnitValue(matches[0]); + cssUnit = cssUnit.replace(matches[0], functionUnitValue); + } + + // If the unit hasn't been modified or we have a single value break free. + if (cssUnit === currentCssUnit || parseFloat(cssUnit)) { + break; + } + } + return parseUnit(cssUnit); +} +/** + * Return true if we think this is a math expression. + * + * @param {string} cssUnit the cssUnit value being evaluted. + * @return {boolean} Whether the cssUnit is a math expression. + */ +function isMathExpression(cssUnit) { + for (let i = 0; i < cssUnit.length; i++) { + if (['+', '-', '/', '*'].includes(cssUnit[i])) { + return true; + } + } + return false; +} +/** + * Evaluates the math expression and return a px value. + * + * @param {string} cssUnit the cssUnit value being evaluted. + * @return {string} return a converfted value to px. + */ +function evalMathExpression(cssUnit) { + let errorFound = false; + // Convert every part of the expression to px values. + // The following regex matches numbers that have a following unit + // E.g. 5.25rem, 1vw + const cssUnitsBits = cssUnit.match(/\d+\.?\d*[a-zA-Z]+|\.\d+[a-zA-Z]+/g); + if (cssUnitsBits) { + for (const unit of cssUnitsBits) { + // Standardize the unit to px and extract the value. + const parsedUnit = parseUnit(getPxFromCssUnit(unit)); + if (!parseFloat(parsedUnit.value)) { + errorFound = true; + // End early since we are dealing with a null value. + break; + } + cssUnit = cssUnit.replace(unit, parsedUnit.value); + } + } else { + errorFound = true; + } + + // For mixed math expressions wrapped within CSS expressions + const expressionsMatches = cssUnit.match(/(max|min|clamp)/g); + if (!errorFound && expressionsMatches) { + const values = cssUnit.split(','); + for (const currentValue of values) { + // Check for nested calc() and remove them to calculate the value. + const rawCurrentValue = currentValue.replace(/\s|calc/g, ''); + if (isMathExpression(rawCurrentValue)) { + const calculatedExpression = calculate(rawCurrentValue); + if (calculatedExpression) { + const calculatedValue = calculatedExpression.toFixed(0) + 'px'; + cssUnit = cssUnit.replace(currentValue, calculatedValue); + } + } + } + const parsedValue = parseUnitFunction(cssUnit); + return !parsedValue ? null : parsedValue.value + parsedValue.unit; + } + if (errorFound) { + return null; + } + const calculatedResult = calculate(cssUnit); + return calculatedResult ? calculatedResult.toFixed(0) + 'px' : null; +} + +/** + * Convert a parsedUnit object to px value. + * + * @param {Object} parsedUnit + * @param {Object} options + * @return {string} or {null} returns the converted with in a px value format. + */ +function convertParsedUnitToPx(parsedUnit, options) { + const PIXELS_PER_INCH = 96; + const ONE_PERCENT = 0.01; + const defaultProperties = { + fontSize: 16, + lineHeight: 16, + width: 375, + height: 812, + type: 'font' + }; + const setOptions = Object.assign({}, defaultProperties, options); + const relativeUnits = { + em: setOptions.fontSize, + rem: setOptions.fontSize, + vh: setOptions.height * ONE_PERCENT, + vw: setOptions.width * ONE_PERCENT, + vmin: (setOptions.width < setOptions.height ? setOptions.width : setOptions.height) * ONE_PERCENT, + vmax: (setOptions.width > setOptions.height ? setOptions.width : setOptions.height) * ONE_PERCENT, + '%': (setOptions.type === 'font' ? setOptions.fontSize : setOptions.width) * ONE_PERCENT, + ch: 8, + // The advance measure (width) of the glyph "0" of the element's font. Approximate + ex: 7.15625, + // X-height of the element's font. Approximate. + lh: setOptions.lineHeight + }; + const absoluteUnits = { + in: PIXELS_PER_INCH, + cm: PIXELS_PER_INCH / 2.54, + mm: PIXELS_PER_INCH / 25.4, + pt: PIXELS_PER_INCH / 72, + pc: PIXELS_PER_INCH / 6, + px: 1, + Q: PIXELS_PER_INCH / 2.54 / 40 + }; + if (relativeUnits[parsedUnit.unit]) { + return (relativeUnits[parsedUnit.unit] * parsedUnit.value).toFixed(0) + 'px'; + } + if (absoluteUnits[parsedUnit.unit]) { + return (absoluteUnits[parsedUnit.unit] * parsedUnit.value).toFixed(0) + 'px'; + } + return null; +} + +/** + * Returns the px value of a cssUnit. + * + * @param {string} cssUnit + * @param {Object} options + * @return {string} returns the cssUnit value in a simple px format. + */ +function getPxFromCssUnit(cssUnit, options = {}) { + if (Number.isFinite(cssUnit)) { + return cssUnit.toFixed(0) + 'px'; + } + if (cssUnit === undefined) { + return null; + } + let parsedUnit = parseUnit(cssUnit); + if (!parsedUnit.unit) { + parsedUnit = parseUnitFunction(cssUnit); + } + if (isMathExpression(cssUnit) && !parsedUnit.unit) { + return evalMathExpression(cssUnit); + } + return convertParsedUnitToPx(parsedUnit, options); +} + +// Use simple cache. +const cache = {}; +/** + * Returns the px value of a cssUnit. The memoized version of getPxFromCssUnit; + * + * @param {string} cssUnit + * @param {Object} options + * @return {string} returns the cssUnit value in a simple px format. + */ +function memoizedGetPxFromCssUnit(cssUnit, options = {}) { + const hash = cssUnit + hashOptions(options); + if (!cache[hash]) { + cache[hash] = getPxFromCssUnit(cssUnit, options); + } + return cache[hash]; +} +function hashOptions(options) { + let hash = ''; + if (options.hasOwnProperty('fontSize')) { + hash = ':' + options.width; + } + if (options.hasOwnProperty('lineHeight')) { + hash = ':' + options.lineHeight; + } + if (options.hasOwnProperty('width')) { + hash = ':' + options.width; + } + if (options.hasOwnProperty('height')) { + hash = ':' + options.height; + } + if (options.hasOwnProperty('type')) { + hash = ':' + options.type; + } + return hash; +} +/* harmony default export */ var parse_css_unit_to_px = (memoizedGetPxFromCssUnit); ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/index.js + ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/use-global-styles-output.js /** * WordPress dependencies @@ -66679,7 +61598,6 @@ const __experimentalGetElementClassName = element => { - /** * Internal dependencies */ @@ -66695,7 +61613,6 @@ const __experimentalGetElementClassName = element => { - // List of block support features that can have their related styles // generated under their own feature level selector rather than the block's. const BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = { @@ -66724,9 +61641,6 @@ function compileStyleValue(uncompiledValue) { * @return {Array} An array of style declarations. */ function getPresetsDeclarations(blockPresets = {}, mergedSettings) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); return PRESET_METADATA.reduce((declarations, { path, valueKey, @@ -66757,9 +61671,6 @@ function getPresetsDeclarations(blockPresets = {}, mergedSettings) { * @return {string} CSS declarations for the preset classes. */ function getPresetsClasses(blockSelector = '*', blockPresets = {}) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); return PRESET_METADATA.reduce((declarations, { path, cssVarInfix, @@ -66799,9 +61710,6 @@ function getPresetsSvgFilters(blockPresets = {}) { }); } function flattenTree(input = {}, prefix, token) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); let result = []; Object.keys(input).forEach(key => { const newKey = prefix + kebabCase(key.replace('/', '-')); @@ -66918,9 +61826,6 @@ const getFeatureDeclarations = (selectors, styles) => { * @return {Array} An array of style declarations. */ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAlign, tree = {}, isTemplate = true) { - const { - kebabCase - } = unlock(external_wp_components_namespaceObject.privateApis); const isRoot = ROOT_BLOCK_SELECTOR === selector; const output = Object.entries(external_wp_blocks_namespaceObject.__EXPERIMENTAL_STYLE_PROPERTY).reduce((declarations, [key, { value, @@ -66993,12 +61898,6 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl size: ruleValue }, getFluidTypographyOptionsFromSettings(tree?.settings)); } - - // For aspect ratio to work, other dimensions rules (and Cover block defaults) must be unset. - // This ensures that a fixed height does not override the aspect ratio. - if (cssProperty === 'aspect-ratio') { - output.push('min-height: unset'); - } output.push(`${cssProperty}: ${ruleValue}`); }); return output; @@ -67595,7 +62494,26 @@ function useGlobalStylesOutput() { return useGlobalStylesOutputWithConfig(mergedConfig); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/image-settings-panel.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shadow.js + +/** + * WordPress dependencies + */ + +const shadow = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, { + viewBox: "0 0 24 24", + xmlns: "http://www.w3.org/2000/svg" +}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, { + d: "M12 8c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 6.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12.8 3h-1.5v3h1.5V3zm-1.6 18h1.5v-3h-1.5v3zm6.8-9.8v1.5h3v-1.5h-3zm-12 0H3v1.5h3v-1.5zm9.7 5.6 2.1 2.1 1.1-1.1-2.1-2.1-1.1 1.1zM8.3 7.2 6.2 5.1 5.1 6.2l2.1 2.1 1.1-1.1zM5.1 17.8l1.1 1.1 2.1-2.1-1.1-1.1-2.1 2.1zM18.9 6.2l-1.1-1.1-2.1 2.1 1.1 1.1 2.1-2.1z" +})); +/* harmony default export */ var library_shadow = (shadow); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/effects-panel.js + +/** + * External dependencies + */ + /** * WordPress dependencies @@ -67603,10 +62521,204 @@ function useGlobalStylesOutput() { + + /** * Internal dependencies */ + +function useHasEffectsPanel(settings) { + const hasShadowControl = useHasShadowControl(settings); + return hasShadowControl; +} +function useHasShadowControl(settings) { + return !!settings?.shadow; +} +function EffectsToolsPanel({ + resetAllFilter, + onChange, + value, + panelId, + children +}) { + const resetAll = () => { + const updatedValue = resetAllFilter(value); + onChange(updatedValue); + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + label: (0,external_wp_i18n_namespaceObject.__)('Effects'), + resetAll: resetAll, + panelId: panelId + }, children); +} +const effects_panel_DEFAULT_CONTROLS = { + shadow: true +}; +function EffectsPanel({ + as: Wrapper = EffectsToolsPanel, + value, + onChange, + inheritedValue = value, + settings, + panelId, + defaultControls = effects_panel_DEFAULT_CONTROLS +}) { + const decodeValue = rawValue => getValueFromVariable({ + settings + }, '', rawValue); + + // Shadow + const hasShadowEnabled = useHasShadowControl(settings); + const shadow = decodeValue(inheritedValue?.shadow); + const setShadow = newValue => { + onChange(setImmutably(value, ['shadow'], newValue)); + }; + const hasShadow = () => !!value?.shadow; + const resetShadow = () => setShadow(undefined); + const resetAllFilter = (0,external_wp_element_namespaceObject.useCallback)(previousValue => { + return { + ...previousValue, + shadow: undefined + }; + }, []); + return (0,external_wp_element_namespaceObject.createElement)(Wrapper, { + resetAllFilter: resetAllFilter, + value: value, + onChange: onChange, + panelId: panelId + }, hasShadowEnabled && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + label: (0,external_wp_i18n_namespaceObject.__)('Shadow'), + hasValue: hasShadow, + onDeselect: resetShadow, + isShownByDefault: defaultControls.shadow, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalItemGroup, { + isBordered: true, + isSeparated: true + }, (0,external_wp_element_namespaceObject.createElement)(ShadowPopover, { + shadow: shadow, + onShadowChange: setShadow, + settings: settings + })))); +} +const ShadowPopover = ({ + shadow, + onShadowChange, + settings +}) => { + const popoverProps = { + placement: 'left-start', + offset: 36, + shift: true + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { + popoverProps: popoverProps, + className: "block-editor-global-styles-effects-panel__shadow-dropdown", + renderToggle: renderShadowToggle(), + renderContent: () => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, { + paddingSize: "medium" + }, (0,external_wp_element_namespaceObject.createElement)(ShadowPopoverContainer, { + shadow: shadow, + onShadowChange: onShadowChange, + settings: settings + })) + }); +}; +function renderShadowToggle() { + return ({ + onToggle, + isOpen + }) => { + const toggleProps = { + onClick: onToggle, + className: classnames_default()({ + 'is-open': isOpen + }), + 'aria-expanded': isOpen + }; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + ...toggleProps + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + justify: "flex-start" + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + className: "block-editor-global-styles-effects-panel__toggle-icon", + icon: library_shadow, + size: 24 + }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FlexItem, null, (0,external_wp_i18n_namespaceObject.__)('Shadow')))); + }; +} +function ShadowPopoverContainer({ + shadow, + onShadowChange, + settings +}) { + const defaultShadows = settings?.shadow?.presets?.default; + const themeShadows = settings?.shadow?.presets?.theme; + const defaultPresetsEnabled = settings?.shadow?.defaultPresets; + const shadows = [...(defaultPresetsEnabled ? defaultShadows : []), ...(themeShadows || [])]; + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-global-styles-effects-panel__shadow-popover-container" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + spacing: 4 + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, { + level: 5 + }, (0,external_wp_i18n_namespaceObject.__)('Shadow')), (0,external_wp_element_namespaceObject.createElement)(ShadowPresets, { + presets: shadows, + activeShadow: shadow, + onSelect: onShadowChange + }))); +} +function ShadowPresets({ + presets, + activeShadow, + onSelect +}) { + return !presets ? null : (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalGrid, { + columns: 6, + gap: 0, + align: "center", + justify: "center" + }, presets.map(({ + name, + slug, + shadow + }) => (0,external_wp_element_namespaceObject.createElement)(ShadowIndicator, { + key: slug, + label: name, + isActive: shadow === activeShadow, + onSelect: () => onSelect(shadow === activeShadow ? undefined : shadow), + shadow: shadow + }))); +} +function ShadowIndicator({ + label, + isActive, + onSelect, + shadow +}) { + return (0,external_wp_element_namespaceObject.createElement)("div", { + className: "block-editor-global-styles-effects-panel__shadow-indicator-wrapper" + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { + className: "block-editor-global-styles-effects-panel__shadow-indicator", + onClick: onSelect, + label: label, + style: { + boxShadow: shadow + }, + showTooltip: true + }, isActive && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { + icon: library_check + }))); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/image-settings-panel.js + +/** + * WordPress dependencies + */ + + function useHasImageSettingsPanel(name, value, inheritedValue) { // Note: If lightbox `value` exists, that means it was // defined via the the Global Styles UI and will NOT @@ -67632,12 +62744,11 @@ function ImageSettingsPanel({ if (inheritedValue?.lightbox?.enabled) { lightboxChecked = inheritedValue.lightbox.enabled; } - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, { label: (0,external_wp_i18n_namespaceObject._x)('Settings', 'Image settings'), resetAll: resetLightbox, - panelId: panelId, - dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem // We use the `userSettings` prop instead of `settings`, because `settings` // contains the core/theme values for the lightbox and we want to show the // "RESET" button ONLY when the user has explicitly set a value in the @@ -67648,7 +62759,7 @@ function ImageSettingsPanel({ onDeselect: resetLightbox, isShownByDefault: true, panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ToggleControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, { label: (0,external_wp_i18n_namespaceObject.__)('Expand on click'), checked: lightboxChecked, onChange: onChangeLightbox @@ -67684,7 +62795,7 @@ function AdvancedPanel({ }); if (cssError) { const [transformed] = transform_styles([{ - css: newValue + css: value }], '.editor-styles-wrapper'); if (transformed) { setCSSError(null); @@ -67701,9 +62812,9 @@ function AdvancedPanel({ }], '.editor-styles-wrapper'); setCSSError(transformed === null ? (0,external_wp_i18n_namespaceObject.__)('There is an error with your CSS structure.') : null); } - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalVStack, { spacing: 3 - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.TextareaControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, { label: (0,external_wp_i18n_namespaceObject.__)('Additional CSS'), __nextHasNoMarginBottom: true, value: customCSS, @@ -67711,363 +62822,16 @@ function AdvancedPanel({ onBlur: handleOnBlur, className: "block-editor-global-styles-advanced-panel__custom-css-input", spellCheck: false - }), cssError && (0,external_React_.createElement)(external_wp_components_namespaceObject.Tooltip, { + }), cssError && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Tooltip, { text: cssError - }, (0,external_React_.createElement)("div", { + }, (0,external_wp_element_namespaceObject.createElement)("div", { className: "block-editor-global-styles-advanced-panel__custom-css-validation-wrapper" - }, (0,external_React_.createElement)(build_module_icon, { + }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, { icon: library_info, className: "block-editor-global-styles-advanced-panel__custom-css-validation-icon" })))); } -;// CONCATENATED MODULE: ./node_modules/memize/dist/index.js -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {(...args: any[]) => any} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {((...args: Parameters) => ReturnType) & MemizeMemoizedFunction} Memoized function. - */ -function memize(fn, options) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized(/* ...args */) { - var node = head, - len = arguments.length, - args, - i; - - searchCache: while (node) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if (node.args.length !== arguments.length) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for (i = 0; i < len; i++) { - if (node.args[i] !== arguments[i]) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if (node !== head) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if (node === tail) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ (node.prev).next = node.next; - if (node.next) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ (head).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array(len); - for (i = 0; i < len; i++) { - args[i] = arguments[i]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply(null, args), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if (head) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if (size === /** @type {MemizeOptions} */ (options).maxSize) { - tail = /** @type {MemizeCacheNode} */ (tail).prev; - /** @type {MemizeCacheNode} */ (tail).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function () { - head = null; - tail = null; - size = 0; - }; - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - - - -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/get-global-styles-changes.js -/** - * External dependencies - */ - - -/** - * WordPress dependencies - */ - - -const globalStylesChangesCache = new Map(); -const get_global_styles_changes_EMPTY_ARRAY = []; -const translationMap = { - caption: (0,external_wp_i18n_namespaceObject.__)('Caption'), - link: (0,external_wp_i18n_namespaceObject.__)('Link'), - button: (0,external_wp_i18n_namespaceObject.__)('Button'), - heading: (0,external_wp_i18n_namespaceObject.__)('Heading'), - h1: (0,external_wp_i18n_namespaceObject.__)('H1'), - h2: (0,external_wp_i18n_namespaceObject.__)('H2'), - h3: (0,external_wp_i18n_namespaceObject.__)('H3'), - h4: (0,external_wp_i18n_namespaceObject.__)('H4'), - h5: (0,external_wp_i18n_namespaceObject.__)('H5'), - h6: (0,external_wp_i18n_namespaceObject.__)('H6'), - 'settings.color': (0,external_wp_i18n_namespaceObject.__)('Color settings'), - 'settings.typography': (0,external_wp_i18n_namespaceObject.__)('Typography settings'), - 'styles.color': (0,external_wp_i18n_namespaceObject.__)('Colors'), - 'styles.spacing': (0,external_wp_i18n_namespaceObject.__)('Spacing'), - 'styles.typography': (0,external_wp_i18n_namespaceObject.__)('Typography') -}; -const getBlockNames = memize(() => (0,external_wp_blocks_namespaceObject.getBlockTypes)().reduce((accumulator, { - name, - title -}) => { - accumulator[name] = title; - return accumulator; -}, {})); -const isObject = obj => obj !== null && typeof obj === 'object'; - -/** - * Get the translation for a given global styles key. - * @param {string} key A key representing a path to a global style property or setting. - * @return {string|undefined} A translated key or undefined if no translation exists. - */ -function getTranslation(key) { - if (translationMap[key]) { - return translationMap[key]; - } - const keyArray = key.split('.'); - if (keyArray?.[0] === 'blocks') { - const blockName = getBlockNames()?.[keyArray[1]]; - return blockName ? (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: block name. - (0,external_wp_i18n_namespaceObject.__)('%s block'), blockName) : keyArray[1]; - } - if (keyArray?.[0] === 'elements') { - const elementName = translationMap[keyArray[1]] || keyArray[1]; - return (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %s: element name, e.g., heading button, link, caption. - (0,external_wp_i18n_namespaceObject.__)('%s element'), elementName); - } - return undefined; -} - -/** - * A deep comparison of two objects, optimized for comparing global styles. - * @param {Object} changedObject The changed object to compare. - * @param {Object} originalObject The original object to compare against. - * @param {string} parentPath A key/value pair object of block names and their rendered titles. - * @return {string[]} An array of paths whose values have changed. - */ -function deepCompare(changedObject, originalObject, parentPath = '') { - // We have two non-object values to compare. - if (!isObject(changedObject) && !isObject(originalObject)) { - /* - * Only return a path if the value has changed. - * And then only the path name up to 2 levels deep. - */ - return changedObject !== originalObject ? parentPath.split('.').slice(0, 2).join('.') : undefined; - } - - // Enable comparison when an object doesn't have a corresponding property to compare. - changedObject = isObject(changedObject) ? changedObject : {}; - originalObject = isObject(originalObject) ? originalObject : {}; - const allKeys = new Set([...Object.keys(changedObject), ...Object.keys(originalObject)]); - let diffs = []; - for (const key of allKeys) { - const path = parentPath ? parentPath + '.' + key : key; - const changedPath = deepCompare(changedObject[key], originalObject[key], path); - if (changedPath) { - diffs = diffs.concat(changedPath); - } - } - return diffs; -} - -/** - * Returns an array of translated summarized global styles changes. - * Results are cached using a Map() key of `JSON.stringify( { next, previous } )`. - * - * @param {Object} next The changed object to compare. - * @param {Object} previous The original object to compare against. - * @return {string[]} An array of translated changes. - */ -function getGlobalStylesChangelist(next, previous) { - const cacheKey = JSON.stringify({ - next, - previous - }); - if (globalStylesChangesCache.has(cacheKey)) { - return globalStylesChangesCache.get(cacheKey); - } - - /* - * Compare the two changesets with normalized keys. - * The order of these keys determines the order in which - * they'll appear in the results. - */ - const changedValueTree = deepCompare({ - styles: { - color: next?.styles?.color, - typography: next?.styles?.typography, - spacing: next?.styles?.spacing - }, - blocks: next?.styles?.blocks, - elements: next?.styles?.elements, - settings: next?.settings - }, { - styles: { - color: previous?.styles?.color, - typography: previous?.styles?.typography, - spacing: previous?.styles?.spacing - }, - blocks: previous?.styles?.blocks, - elements: previous?.styles?.elements, - settings: previous?.settings - }); - if (!changedValueTree.length) { - globalStylesChangesCache.set(cacheKey, get_global_styles_changes_EMPTY_ARRAY); - return get_global_styles_changes_EMPTY_ARRAY; - } - - // Remove duplicate results. - const result = [...new Set(changedValueTree)] - /* - * Translate the keys. - * Remove duplicate or empty translations. - */.reduce((acc, curr) => { - const translation = getTranslation(curr); - if (translation && !acc.includes(translation)) { - acc.push(translation); - } - return acc; - }, []); - globalStylesChangesCache.set(cacheKey, result); - return result; -} - -/** - * From a getGlobalStylesChangelist() result, returns a truncated array of translated changes. - * Appends a translated string indicating the number of changes that were truncated. - * - * @param {Object} next The changed object to compare. - * @param {Object} previous The original object to compare against. - * @param {{maxResults:number}} options Options. maxResults: results to return before truncating. - * @return {string[]} An array of translated changes. - */ -function getGlobalStylesChanges(next, previous, options = {}) { - const changes = getGlobalStylesChangelist(next, previous); - const changesLength = changes.length; - const { - maxResults - } = options; - - // Truncate to `n` results if necessary. - if (!!maxResults && changesLength && changesLength > maxResults) { - const deleteCount = changesLength - maxResults; - const andMoreText = (0,external_wp_i18n_namespaceObject.sprintf)( - // translators: %d: number of global styles changes that are not displayed in the UI. - (0,external_wp_i18n_namespaceObject._n)('…and %d more change.', '…and %d more changes.', deleteCount), deleteCount); - changes.splice(maxResults, deleteCount, andMoreText); - } - return changes; -} - ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/index.js @@ -68083,7 +62847,6 @@ function getGlobalStylesChanges(next, previous, options = {}) { - ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/get-rich-text-values.js /** @@ -68092,7 +62855,6 @@ function getGlobalStylesChanges(next, previous, options = {}) { - /** * Internal dependencies */ @@ -68160,7 +62922,7 @@ function addValuesForBlocks(values, blocks) { // Instead of letting save elements use `useInnerBlocksProps.save`, // force them to use InnerBlocks.Content instead so we can intercept // a single component. - (0,external_React_.createElement)(inner_blocks.Content, null)); + (0,external_wp_element_namespaceObject.createElement)(inner_blocks.Content, null)); addValuesForElement(saveElement, values, innerBlocks); } } @@ -68169,7 +62931,7 @@ function getRichTextValues(blocks = []) { const values = []; addValuesForBlocks(values, blocks); external_wp_blocks_namespaceObject.__unstableGetBlockProps.skipFilters = false; - return values.map(value => value instanceof external_wp_richText_namespaceObject.RichTextData ? value : external_wp_richText_namespaceObject.RichTextData.fromHTMLString(value)); + return values; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/resizable-box-popover/index.js @@ -68188,58 +62950,17 @@ function ResizableBoxPopover({ resizableBoxProps, ...props }) { - return (0,external_React_.createElement)(block_popover, { + return (0,external_wp_element_namespaceObject.createElement)(block_popover, { clientId: clientId, __unstableCoverTarget: true, - __unstablePopoverSlot: "__unstable-block-tools-after", + __unstablePopoverSlot: "block-toolbar", shift: false, ...props - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.ResizableBox, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ResizableBox, { ...resizableBoxProps })); } -;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/use-can-block-toolbar-be-focused.js -/** - * WordPress dependencies - */ - - - -/** - * Internal dependencies - */ - - - -/** - * Returns true if the block toolbar should be able to receive focus. - * - * @return {boolean} Whether the block toolbar should be able to receive focus - */ -function useCanBlockToolbarBeFocused() { - return (0,external_wp_data_namespaceObject.useSelect)(select => { - const { - __unstableGetEditorMode, - getBlock, - getSettings, - getSelectedBlockClientId, - getFirstMultiSelectedBlockClientId - } = unlock(select(store)); - const selectedBlockId = getFirstMultiSelectedBlockClientId() || getSelectedBlockClientId(); - const isEmptyDefaultBlock = (0,external_wp_blocks_namespaceObject.isUnmodifiedDefaultBlock)(getBlock(selectedBlockId) || {}); - - // Fixed Toolbar can be focused when: - // - a block is selected - // - fixed toolbar is on - // Block Toolbar Popover can be focused when: - // - a block is selected - // - we are in edit mode - // - it is not an empty default block - return !!selectedBlockId && (getSettings().hasFixedToolbar || __unstableGetEditorMode() === 'edit' && !isEmptyDefaultBlock); - }, []); -} - ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-removal-warning-modal/index.js /** @@ -68284,21 +63005,115 @@ function BlockRemovalWarningModal({ privateRemoveBlocks(clientIds, selectPrevious, /* force */true); clearBlockRemovalPrompt(); }; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.Modal, { - title: (0,external_wp_i18n_namespaceObject.__)('Be careful!'), - onRequestClose: clearBlockRemovalPrompt, - size: "medium" - }, (0,external_React_.createElement)("p", null, (0,external_wp_i18n_namespaceObject._n)('Deleting this block will stop your post or page content from displaying on this template. It is not recommended.', 'Deleting these blocks will stop your post or page content from displaying on this template. It is not recommended.', blockNamesForPrompt.length)), (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, { + title: (0,external_wp_i18n_namespaceObject.__)('Are you sure?'), + onRequestClose: clearBlockRemovalPrompt + }, blockNamesForPrompt.length === 1 ? (0,external_wp_element_namespaceObject.createElement)("p", null, rules[blockNamesForPrompt[0]]) : (0,external_wp_element_namespaceObject.createElement)("ul", { + style: { + listStyleType: 'disc', + paddingLeft: '1rem' + } + }, blockNamesForPrompt.map(name => (0,external_wp_element_namespaceObject.createElement)("li", { + key: name + }, rules[name]))), (0,external_wp_element_namespaceObject.createElement)("p", null, blockNamesForPrompt.length > 1 ? (0,external_wp_i18n_namespaceObject.__)('Removing these blocks is not advised.') : (0,external_wp_i18n_namespaceObject.__)('Removing this block is not advised.')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHStack, { justify: "right" - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { variant: "tertiary", onClick: clearBlockRemovalPrompt - }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, { + }, (0,external_wp_i18n_namespaceObject.__)('Cancel')), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { variant: "primary", onClick: onConfirmRemoval }, (0,external_wp_i18n_namespaceObject.__)('Delete')))); } +;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/dimensions-tool/aspect-ratio-tool.js + +/** + * WordPress dependencies + */ + + + +/** + * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps + */ + +/** + * @type {SelectControlProps[]} + */ +const DEFAULT_ASPECT_RATIO_OPTIONS = [{ + label: (0,external_wp_i18n_namespaceObject._x)('Original', 'Aspect ratio option for dimensions control'), + value: 'auto' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Square - 1:1', 'Aspect ratio option for dimensions control'), + value: '1' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Standard - 4:3', 'Aspect ratio option for dimensions control'), + value: '4/3' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Portrait - 3:4', 'Aspect ratio option for dimensions control'), + value: '3/4' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Classic - 3:2', 'Aspect ratio option for dimensions control'), + value: '3/2' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Classic Portrait - 2:3', 'Aspect ratio option for dimensions control'), + value: '2/3' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Wide - 16:9', 'Aspect ratio option for dimensions control'), + value: '16/9' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Tall - 9:16', 'Aspect ratio option for dimensions control'), + value: '9/16' +}, { + label: (0,external_wp_i18n_namespaceObject._x)('Custom', 'Aspect ratio option for dimensions control'), + value: 'custom', + disabled: true, + hidden: true +}]; + +/** + * @callback AspectRatioToolPropsOnChange + * @param {string} [value] New aspect ratio value. + * @return {void} No return. + */ + +/** + * @typedef {Object} AspectRatioToolProps + * @property {string} [panelId] ID of the panel this tool is associated with. + * @property {string} [value] Current aspect ratio value. + * @property {AspectRatioToolPropsOnChange} [onChange] Callback to update the aspect ratio value. + * @property {SelectControlProps[]} [options] Aspect ratio options. + * @property {string} [defaultValue] Default aspect ratio value. + * @property {boolean} [isShownByDefault] Whether the tool is shown by default. + */ + +function AspectRatioTool({ + panelId, + value, + onChange = () => {}, + options = DEFAULT_ASPECT_RATIO_OPTIONS, + defaultValue = DEFAULT_ASPECT_RATIO_OPTIONS[0].value, + isShownByDefault = true +}) { + // Match the CSS default so if the value is used directly in CSS it will look correct in the control. + const displayValue = value !== null && value !== void 0 ? value : 'auto'; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + hasValue: () => displayValue !== defaultValue, + label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'), + onDeselect: () => onChange(undefined), + isShownByDefault: isShownByDefault, + panelId: panelId + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { + label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'), + value: displayValue, + options: options, + onChange: onChange, + size: '__unstable-large', + __nextHasNoMarginBottom: true + })); +} + ;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/dimensions-tool/scale-tool.js /** @@ -68365,7 +63180,7 @@ const DEFAULT_SCALE_OPTIONS = [{ * * @param {ScaleToolProps} props * - * @return {import('react').ReactElement} The scale tool. + * @return {import('@wordpress/element').WPElement} The scale tool. */ function ScaleTool({ panelId, @@ -68383,20 +63198,20 @@ function ScaleTool({ return acc; }, {}); }, [options]); - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { label: (0,external_wp_i18n_namespaceObject.__)('Scale'), isShownByDefault: isShownByDefault, hasValue: () => displayValue !== defaultValue, onDeselect: () => onChange(defaultValue), panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, { label: (0,external_wp_i18n_namespaceObject.__)('Scale'), isBlock: true, help: scaleHelp[displayValue], value: displayValue, onChange: onChange, - size: '__unstable-large' - }, options.map(option => (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { + __nextHasNoMarginBottom: true + }, options.map(option => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, { key: option.value, ...option })))); @@ -68619,7 +63434,7 @@ function hash (value, length) { * @param {string} value * @return {string} */ -function trim (value) { +function Utility_trim (value) { return value.trim() } @@ -68710,7 +63525,7 @@ function Utility_combine (array, callback) { var line = 1 var column = 1 var Tokenizer_length = 0 -var Tokenizer_position = 0 +var position = 0 var Tokenizer_character = 0 var characters = '' @@ -68747,7 +63562,7 @@ function Tokenizer_char () { * @return {number} */ function prev () { - Tokenizer_character = Tokenizer_position > 0 ? Utility_charat(characters, --Tokenizer_position) : 0 + Tokenizer_character = position > 0 ? Utility_charat(characters, --position) : 0 if (column--, Tokenizer_character === 10) column = 1, line-- @@ -68758,8 +63573,8 @@ function prev () { /** * @return {number} */ -function next () { - Tokenizer_character = Tokenizer_position < Tokenizer_length ? Utility_charat(characters, Tokenizer_position++) : 0 +function Tokenizer_next () { + Tokenizer_character = position < Tokenizer_length ? Utility_charat(characters, position++) : 0 if (column++, Tokenizer_character === 10) column = 1, line++ @@ -68771,14 +63586,14 @@ function next () { * @return {number} */ function peek () { - return Utility_charat(characters, Tokenizer_position) + return Utility_charat(characters, position) } /** * @return {number} */ function caret () { - return Tokenizer_position + return position } /** @@ -68823,7 +63638,7 @@ function token (type) { * @return {any[]} */ function alloc (value) { - return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), Tokenizer_position = 0, [] + return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), position = 0, [] } /** @@ -68839,7 +63654,7 @@ function dealloc (value) { * @return {string} */ function delimit (type) { - return trim(slice(Tokenizer_position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type))) + return Utility_trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type))) } /** @@ -68857,7 +63672,7 @@ function Tokenizer_tokenize (value) { function whitespace (type) { while (Tokenizer_character = peek()) if (Tokenizer_character < 33) - next() + Tokenizer_next() else break @@ -68869,9 +63684,9 @@ function whitespace (type) { * @return {string[]} */ function tokenizer (children) { - while (next()) + while (Tokenizer_next()) switch (token(Tokenizer_character)) { - case 0: append(identifier(Tokenizer_position - 1), children) + case 0: append(identifier(position - 1), children) break case 2: append(delimit(Tokenizer_character), children) break @@ -68887,12 +63702,12 @@ function tokenizer (children) { * @return {string} */ function escaping (index, count) { - while (--count && next()) + while (--count && Tokenizer_next()) // not 0-9 A-F a-f if (Tokenizer_character < 48 || Tokenizer_character > 102 || (Tokenizer_character > 57 && Tokenizer_character < 65) || (Tokenizer_character > 70 && Tokenizer_character < 97)) break - return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32)) + return slice(index, caret() + (count < 6 && peek() == 32 && Tokenizer_next() == 32)) } /** @@ -68900,11 +63715,11 @@ function escaping (index, count) { * @return {number} */ function delimiter (type) { - while (next()) + while (Tokenizer_next()) switch (Tokenizer_character) { // ] ) " ' case type: - return Tokenizer_position + return position // " ' case 34: case 39: if (type !== 34 && type !== 39) @@ -68917,11 +63732,11 @@ function delimiter (type) { break // \ case 92: - next() + Tokenizer_next() break } - return Tokenizer_position + return position } /** @@ -68930,7 +63745,7 @@ function delimiter (type) { * @return {number} */ function commenter (type, index) { - while (next()) + while (Tokenizer_next()) // // if (type + Tokenizer_character === 47 + 10) break @@ -68938,7 +63753,7 @@ function commenter (type, index) { else if (type + Tokenizer_character === 42 + 42 && peek() === 47) break - return '/*' + slice(index, Tokenizer_position - 1) + '*' + Utility_from(type === 47 ? type : next()) + return '/*' + slice(index, position - 1) + '*' + Utility_from(type === 47 ? type : Tokenizer_next()) } /** @@ -68947,9 +63762,9 @@ function commenter (type, index) { */ function identifier (index) { while (!token(peek())) - next() + Tokenizer_next() - return slice(index, Tokenizer_position) + return slice(index, position) } ;// CONCATENATED MODULE: ./node_modules/stylis/src/Enum.js @@ -69166,7 +63981,7 @@ function Parser_parse (value, root, parent, rule, rules, rulesets, pseudo, point var characters = type while (scanning) - switch (previous = character, character = next()) { + switch (previous = character, character = Tokenizer_next()) { // ( case 40: if (previous != 108 && Utility_charat(characters, length - 1) == 58) { @@ -69190,7 +64005,7 @@ function Parser_parse (value, root, parent, rule, rules, rulesets, pseudo, point case 47: switch (peek()) { case 42: case 47: - Utility_append(Parser_comment(commenter(next(), caret()), root, parent), declarations) + Utility_append(comment(commenter(Tokenizer_next(), caret()), root, parent), declarations) break default: characters += '/' @@ -69254,7 +64069,7 @@ function Parser_parse (value, root, parent, rule, rules, rulesets, pseudo, point case 64: // - if (peek() === 45) - characters += delimit(next()) + characters += delimit(Tokenizer_next()) atrule = peek(), offset = length = Utility_strlen(type = characters += identifier(caret())), character++ break @@ -69289,7 +64104,7 @@ function ruleset (value, root, parent, index, offset, rules, points, type, props for (var i = 0, j = 0, k = 0; i < index; ++i) for (var x = 0, y = Utility_substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x) - if (z = trim(j > 0 ? rule[x] + ' ' + y : Utility_replace(y, /&\f/g, rule[x]))) + if (z = Utility_trim(j > 0 ? rule[x] + ' ' + y : Utility_replace(y, /&\f/g, rule[x]))) props[k++] = z return node(value, root, parent, offset === 0 ? Enum_RULESET : type, props, children, length) @@ -69301,7 +64116,7 @@ function ruleset (value, root, parent, index, offset, rules, points, type, props * @param {object?} parent * @return {object} */ -function Parser_comment (value, root, parent) { +function comment (value, root, parent) { return node(value, root, parent, COMMENT, Utility_from(Tokenizer_char()), Utility_substr(value, 2, -2), 0) } @@ -69338,10 +64153,10 @@ var identifierWithPointTracking = function identifierWithPointTracking(begin, po break; } - next(); + Tokenizer_next(); } - return slice(begin, Tokenizer_position); + return slice(begin, position); }; var toRules = function toRules(parsed, points) { @@ -69361,7 +64176,7 @@ var toRules = function toRules(parsed, points) { points[index] = 1; } - parsed[index] += identifierWithPointTracking(Tokenizer_position - 1, points, index); + parsed[index] += identifierWithPointTracking(position - 1, points, index); break; case 2: @@ -69382,7 +64197,7 @@ var toRules = function toRules(parsed, points) { default: parsed[index] += Utility_from(character); } - } while (character = next()); + } while (character = Tokenizer_next()); return parsed; }; @@ -70761,7 +65576,7 @@ const SingleColumnToolsPanelItem = /*#__PURE__*/createStyled(external_wp_compone * * @param {WidthHeightToolProps} props The component props. * - * @return {import('react').ReactElement} The width and height tool. + * @return {import('@wordpress/element').WPElement} The width and height tool. */ function WidthHeightTool({ panelId, @@ -70786,13 +65601,13 @@ function WidthHeightTool({ } onChange(nextValue); }; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(SingleColumnToolsPanelItem, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(SingleColumnToolsPanelItem, { label: (0,external_wp_i18n_namespaceObject.__)('Width'), isShownByDefault: isShownByDefault, hasValue: () => width !== '', onDeselect: onDimensionChange('width'), panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { label: (0,external_wp_i18n_namespaceObject.__)('Width'), placeholder: (0,external_wp_i18n_namespaceObject.__)('Auto'), labelPosition: "top", @@ -70801,13 +65616,13 @@ function WidthHeightTool({ value: width, onChange: onDimensionChange('width'), size: '__unstable-large' - })), (0,external_React_.createElement)(SingleColumnToolsPanelItem, { + })), (0,external_wp_element_namespaceObject.createElement)(SingleColumnToolsPanelItem, { label: (0,external_wp_i18n_namespaceObject.__)('Height'), isShownByDefault: isShownByDefault, hasValue: () => height !== '', onDeselect: onDimensionChange('height'), panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalUnitControl, { label: (0,external_wp_i18n_namespaceObject.__)('Height'), placeholder: (0,external_wp_i18n_namespaceObject.__)('Auto'), labelPosition: "top", @@ -70870,7 +65685,7 @@ function WidthHeightTool({ * * @param {DimensionsControlsProps} props The component props. * - * @return {Element} The dimensions controls. + * @return {WPElement} The dimensions controls. */ function DimensionsTool({ panelId, @@ -70903,7 +65718,7 @@ function DimensionsTool({ // as a custom aspect ratio. const aspectRatioValue = width && height ? 'custom' : lastAspectRatio; const showScaleControl = aspectRatio || width && height; - return (0,external_React_.createElement)(external_React_.Fragment, null, (0,external_React_.createElement)(AspectRatioTool, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(AspectRatioTool, { panelId: panelId, options: aspectRatioOptions, defaultValue: defaultAspectRatio, @@ -70940,7 +65755,29 @@ function DimensionsTool({ } onChange(nextValue); } - }), (0,external_React_.createElement)(WidthHeightTool, { + }), showScaleControl && (0,external_wp_element_namespaceObject.createElement)(ScaleTool, { + panelId: panelId, + options: scaleOptions, + defaultValue: defaultScale, + value: lastScale, + onChange: nextScale => { + const nextValue = { + ...value + }; + + // 'fill' is CSS default, so it gets treated as null. + nextScale = nextScale === 'fill' ? null : nextScale; + setLastScale(nextScale); + + // Update scale. + if (!nextScale) { + delete nextValue.scale; + } else { + nextValue.scale = nextScale; + } + onChange(nextValue); + } + }), (0,external_wp_element_namespaceObject.createElement)(WidthHeightTool, { panelId: panelId, units: unitsOptions, value: { @@ -70995,28 +65832,6 @@ function DimensionsTool({ } onChange(nextValue); } - }), showScaleControl && (0,external_React_.createElement)(ScaleTool, { - panelId: panelId, - options: scaleOptions, - defaultValue: defaultScale, - value: lastScale, - onChange: nextScale => { - const nextValue = { - ...value - }; - - // 'fill' is CSS default, so it gets treated as null. - nextScale = nextScale === 'fill' ? null : nextScale; - setLastScale(nextScale); - - // Update scale. - if (!nextScale) { - delete nextValue.scale; - } else { - nextValue.scale = nextScale; - } - onChange(nextValue); - } })); } /* harmony default export */ var dimensions_tool = (DimensionsTool); @@ -71050,13 +65865,13 @@ function ResolutionTool({ isShownByDefault = true }) { const displayValue = value !== null && value !== void 0 ? value : defaultValue; - return (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, { hasValue: () => displayValue !== defaultValue, label: (0,external_wp_i18n_namespaceObject.__)('Resolution'), onDeselect: () => onChange(defaultValue), isShownByDefault: isShownByDefault, panelId: panelId - }, (0,external_React_.createElement)(external_wp_components_namespaceObject.SelectControl, { + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SelectControl, { label: (0,external_wp_i18n_namespaceObject.__)('Resolution'), value: displayValue, options: options, @@ -71099,15 +65914,14 @@ lock(privateApis, { ...global_styles_namespaceObject, ExperimentalBlockCanvas: ExperimentalBlockCanvas, ExperimentalBlockEditorProvider: ExperimentalBlockEditorProvider, - getDuotoneFilter: getDuotoneFilter, getRichTextValues: getRichTextValues, + kebabCase: kebabCase, PrivateInserter: ComposedPrivateInserter, PrivateListView: PrivateListView, ResizableBoxPopover: ResizableBoxPopover, BlockInfo: block_info_slot_fill, - useCanBlockToolbarBeFocused: useCanBlockToolbarBeFocused, + useShouldContextualToolbarShow: useShouldContextualToolbarShow, cleanEmptyObject: utils_cleanEmptyObject, - useStyleOverride: useStyleOverride, BlockQuickNavigation: BlockQuickNavigation, LayoutStyle: LayoutStyle, BlockRemovalWarningModal: BlockRemovalWarningModal, diff --git a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.min.js b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.min.js index d9a046c2f0..b2b353cf4c 100755 --- a/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.min.js +++ b/packages/playground/wordpress/public/wp-nightly/wp-includes/js/dist/block-editor.min.js @@ -4,12 +4,12 @@ autosize 4.0.4 license: MIT http://www.jacklmoore.com/autosize -*/o=[e,t],n=function(e,t){"use strict";var n,o,r="function"==typeof Map?new Map:(n=[],o=[],{has:function(e){return n.indexOf(e)>-1},get:function(e){return o[n.indexOf(e)]},set:function(e,t){-1===n.indexOf(e)&&(n.push(e),o.push(t))},delete:function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),o.splice(t,1))}}),l=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){l=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}function i(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!r.has(e)){var t=null,n=null,o=null,i=function(){e.clientWidth!==n&&p()},s=function(t){window.removeEventListener("resize",i,!1),e.removeEventListener("input",p,!1),e.removeEventListener("keyup",p,!1),e.removeEventListener("autosize:destroy",s,!1),e.removeEventListener("autosize:update",p,!1),Object.keys(t).forEach((function(n){e.style[n]=t[n]})),r.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",s,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",p,!1),window.addEventListener("resize",i,!1),e.addEventListener("input",p,!1),e.addEventListener("autosize:update",p,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",r.set(e,{destroy:s,update:p}),a()}function a(){var n=window.getComputedStyle(e,null);"vertical"===n.resize?e.style.resize="none":"both"===n.resize&&(e.style.resize="horizontal"),t="content-box"===n.boxSizing?-(parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)):parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),isNaN(t)&&(t=0),p()}function c(t){var n=e.style.width;e.style.width="0px",e.offsetWidth,e.style.width=n,e.style.overflowY=t}function u(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}function d(){if(0!==e.scrollHeight){var o=u(e),r=document.documentElement&&document.documentElement.scrollTop;e.style.height="",e.style.height=e.scrollHeight+t+"px",n=e.clientWidth,o.forEach((function(e){e.node.scrollTop=e.scrollTop})),r&&(document.documentElement.scrollTop=r)}}function p(){d();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(r-1},get:function(e){return o[n.indexOf(e)]},set:function(e,t){-1===n.indexOf(e)&&(n.push(e),o.push(t))},delete:function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),o.splice(t,1))}}),l=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){l=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}function i(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!r.has(e)){var t=null,n=null,o=null,i=function(){e.clientWidth!==n&&p()},a=function(t){window.removeEventListener("resize",i,!1),e.removeEventListener("input",p,!1),e.removeEventListener("keyup",p,!1),e.removeEventListener("autosize:destroy",a,!1),e.removeEventListener("autosize:update",p,!1),Object.keys(t).forEach((function(n){e.style[n]=t[n]})),r.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",a,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",p,!1),window.addEventListener("resize",i,!1),e.addEventListener("input",p,!1),e.addEventListener("autosize:update",p,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",r.set(e,{destroy:a,update:p}),s()}function s(){var n=window.getComputedStyle(e,null);"vertical"===n.resize?e.style.resize="none":"both"===n.resize&&(e.style.resize="horizontal"),t="content-box"===n.boxSizing?-(parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)):parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),isNaN(t)&&(t=0),p()}function c(t){var n=e.style.width;e.style.width="0px",e.offsetWidth,e.style.width=n,e.style.overflowY=t}function u(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}function d(){if(0!==e.scrollHeight){var o=u(e),r=document.documentElement&&document.documentElement.scrollTop;e.style.height="",e.style.height=e.scrollHeight+t+"px",n=e.clientWidth,o.forEach((function(e){e.node.scrollTop=e.scrollTop})),r&&(document.documentElement.scrollTop=r)}}function p(){d();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(re.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(s,s+c.count));s+=c.count,c.added||(a+=c.count)}}var p=t[i-1];return i>1&&"string"==typeof p.value&&(p.added||p.removed)&&e.equals("",p.value)&&(t[i-2].value+=p.value,t.pop()),t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,n.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var l=this;function i(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,c=1,u=s+a,d=[{newPos:-1,components:[]}],p=this.extractCommon(d[0],t,e,0);if(d[0].newPos+1>=s&&p+1>=a)return i([{value:this.join(t),count:t.length}]);function m(){for(var n=-1*c;n<=c;n+=2){var r=void 0,u=d[n-1],p=d[n+1],m=(p?p.newPos:0)-n;u&&(d[n-1]=void 0);var f=u&&u.newPos+1=s&&m+1>=a)return i(o(l,r.components,t,e,l.useLongestToken));d[n]=r}else d[n]=void 0}var g;c++}if(r)!function e(){setTimeout((function(){if(c>u)return r();m()||e()}),0)}();else for(;c<=u;){var f=m();if(f)return f}},pushComponent:function(e,t,n){var o=e[e.length-1];o&&o.added===t&&o.removed===n?e[e.length-1]={count:o.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,o){for(var r=t.length,l=n.length,i=e.newPos,s=i-o,a=0;i+10?!0===i?o.scrollTop(t,k.top+_.top):!1===i?o.scrollTop(t,k.top+y.top):_.top<0?o.scrollTop(t,k.top+_.top):o.scrollTop(t,k.top+y.top):l||((i=void 0===i||!!i)?o.scrollTop(t,k.top+_.top):o.scrollTop(t,k.top+y.top)),r&&(_.left<0||y.left>0?!0===s?o.scrollLeft(t,k.left+_.left):!1===s?o.scrollLeft(t,k.left+y.left):_.left<0?o.scrollLeft(t,k.left+_.left):o.scrollLeft(t,k.left+y.left):l||((s=void 0===s||!!s)?o.scrollLeft(t,k.left+_.left):o.scrollLeft(t,k.left+y.left)))}},5425:function(e,t,n){"use strict";e.exports=n(1345)},5022:function(e){"use strict";var t=Object.assign||function(e){for(var t=1;tt},ie64:function(){return v.ie()&&d},firefox:function(){return b()||n},opera:function(){return b()||o},webkit:function(){return b()||r},safari:function(){return v.webkit()},chrome:function(){return b()||l},windows:function(){return b()||a},osx:function(){return b()||s},linux:function(){return b()||c},iphone:function(){return b()||p},mobile:function(){return b()||p||m||u||h},nativeApp:function(){return b()||f},android:function(){return b()||u},ipad:function(){return b()||m}};e.exports=v},7939:function(e,t,n){"use strict";var o,r=n(3110);r.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")) +*/!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;te.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(a,a+c.count));a+=c.count,c.added||(s+=c.count)}}var p=t[i-1];return i>1&&"string"==typeof p.value&&(p.added||p.removed)&&e.equals("",p.value)&&(t[i-2].value+=p.value,t.pop()),t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,n.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var l=this;function i(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var a=(t=this.removeEmpty(this.tokenize(t))).length,s=e.length,c=1,u=a+s,d=[{newPos:-1,components:[]}],p=this.extractCommon(d[0],t,e,0);if(d[0].newPos+1>=a&&p+1>=s)return i([{value:this.join(t),count:t.length}]);function m(){for(var n=-1*c;n<=c;n+=2){var r=void 0,u=d[n-1],p=d[n+1],m=(p?p.newPos:0)-n;u&&(d[n-1]=void 0);var f=u&&u.newPos+1=a&&m+1>=s)return i(o(l,r.components,t,e,l.useLongestToken));d[n]=r}else d[n]=void 0}var h;c++}if(r)!function e(){setTimeout((function(){if(c>u)return r();m()||e()}),0)}();else for(;c<=u;){var f=m();if(f)return f}},pushComponent:function(e,t,n){var o=e[e.length-1];o&&o.added===t&&o.removed===n?e[e.length-1]={count:o.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,o){for(var r=t.length,l=n.length,i=e.newPos,a=i-o,s=0;i+10?!0===i?o.scrollTop(t,_.top+k.top):!1===i?o.scrollTop(t,_.top+y.top):k.top<0?o.scrollTop(t,_.top+k.top):o.scrollTop(t,_.top+y.top):l||((i=void 0===i||!!i)?o.scrollTop(t,_.top+k.top):o.scrollTop(t,_.top+y.top)),r&&(k.left<0||y.left>0?!0===a?o.scrollLeft(t,_.left+k.left):!1===a?o.scrollLeft(t,_.left+y.left):k.left<0?o.scrollLeft(t,_.left+k.left):o.scrollLeft(t,_.left+y.left):l||((a=void 0===a||!!a)?o.scrollLeft(t,_.left+k.left):o.scrollLeft(t,_.left+y.left)))}},5425:function(e,t,n){"use strict";e.exports=n(1345)},5022:function(e){"use strict";var t=Object.assign||function(e){for(var t=1;tt},ie64:function(){return v.ie()&&d},firefox:function(){return b()||n},opera:function(){return b()||o},webkit:function(){return b()||r},safari:function(){return v.webkit()},chrome:function(){return b()||l},windows:function(){return b()||s},osx:function(){return b()||a},linux:function(){return b()||c},iphone:function(){return b()||p},mobile:function(){return b()||p||m||u||g},nativeApp:function(){return b()||f},android:function(){return b()||u},ipad:function(){return b()||m}};e.exports=v},7939:function(e,t,n){"use strict";var o,r=n(3110);r.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")) /** * Checks if an event is supported in the current execution environment. * @@ -23,7 +23,7 @@ * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT - */,e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,l=n in document;if(!l){var i=document.createElement("div");i.setAttribute(n,"return;"),l="function"==typeof i[n]}return!l&&o&&"wheel"===e&&(l=document.implementation.hasFeature("Events.wheel","3.0")),l}},195:function(e,t,n){"use strict";var o=n(3812),r=n(7939);function l(e){var t=0,n=0,o=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=10*t,r=10*n,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(o=e.deltaX),(o||r)&&e.deltaMode&&(1==e.deltaMode?(o*=40,r*=40):(o*=800,r*=800)),o&&!t&&(t=o<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:r}}l.getEventType=function(){return o.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=l},9122:function(e){var t=String,n=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=n(),e.exports.createColors=n},6807:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5959:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};n(6807);const r=o(n(4743)),l=o(n(6764));e.exports=(0,l.default)(r.default)},3626:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prefixWrapCSSSelector=t.prefixWrapCSSRule=void 0;const o=n(1146);t.prefixWrapCSSRule=(e,n,r,l,i)=>{const s=e.selector.split(",").filter((e=>!(0,o.cssRuleMatchesPrefixSelector)({selector:e},l)));0!==s.length&&(e.selector=s.map((o=>(0,t.prefixWrapCSSSelector)(o,e,n,r,l,i))).filter(o.isValidCSSSelector).join(", "))};t.prefixWrapCSSSelector=(e,t,n,r,l,i)=>{const s=(0,o.cleanSelector)(e);return""===s?null:null!==n&&s.startsWith(n,0)||(0,o.isKeyframes)(t)||r.some((e=>s.match(e)))?s:(0,o.isNotRootTag)(s)?l+" "+s:i?l+" ."+s:s.replace(/^(body|html|:root)/,l)}},1146:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cssRuleMatchesPrefixSelector=t.isNotRootTag=t.isKeyframes=t.cleanSelector=t.isValidCSSSelector=void 0;const n=/(^\s*|\s*$)/g,o=/^(body|html|:root).*$/;t.isValidCSSSelector=e=>null!==e;t.cleanSelector=e=>e.replace(n,"");t.isKeyframes=e=>{const{parent:t}=e,n=t;return void 0!==t&&"atrule"===n.type&&void 0!==n.name&&null!==n.name.match(/keyframes$/)};t.isNotRootTag=e=>!e.match(o);t.cssRuleMatchesPrefixSelector=(e,t)=>{const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^${n}$`).test(e.selector)}},5318:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldIncludeFilePath=void 0;t.shouldIncludeFilePath=(e,t,n)=>t.length>0?null!=e&&t.some((t=>e.match(t))):!(n.length>0)||!(null!=e&&n.some((t=>e.match(t))))},504:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.asPostCSSv7PluginGenerator=void 0;const i=l(n(6483));t.asPostCSSv7PluginGenerator=e=>e.plugin(i.PLUGIN_NAME,((e,t)=>new i.default(e,t).prefix()))},2210:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.asPostCSSv8PluginGenerator=t.isPostCSSv8=void 0;const i=l(n(6483));t.isPostCSSv8=e=>void 0!==e.Root;t.asPostCSSv8PluginGenerator=()=>(e,t)=>{const n=new i.default(e,t);return{postcssPlugin:i.PLUGIN_NAME,Once(e){n.prefixRoot(e)}}}},6764:function(e,t,n){"use strict";const o=n(2210),r=n(504);e.exports=e=>(0,o.isPostCSSv8)(e)?(0,o.asPostCSSv8PluginGenerator)():(0,r.asPostCSSv7PluginGenerator)(e)},6483:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PLUGIN_NAME=void 0;const o=n(3626),r=n(5318);t.PLUGIN_NAME="postcss-prefixwrap";t.default=class{blacklist;ignoredSelectors;isPrefixSelector;prefixRootTags;prefixSelector;whitelist;nested;constructor(e,t={}){this.blacklist=t.blacklist??[],this.ignoredSelectors=t.ignoredSelectors??[],this.isPrefixSelector=new RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`),this.prefixRootTags=t.prefixRootTags??!1,this.prefixSelector=e,this.whitelist=t.whitelist??[],this.nested=t.nested??null}prefixRoot(e){(0,r.shouldIncludeFilePath)(e.source?.input?.file,this.whitelist,this.blacklist)&&e.walkRules((e=>{(0,o.prefixWrapCSSRule)(e,this.nested,this.ignoredSelectors,this.prefixSelector,this.prefixRootTags)}))}prefix(){return e=>{this.prefixRoot(e)}}}},7036:function(e,t,n){const o=n(9069);e.exports=e=>{const t=Object.assign({skipHostRelativeUrls:!0},e);return{postcssPlugin:"rebaseUrl",Declaration(n){const r=o(n.value);let l=!1;r.walk((n=>{if("function"!==n.type||"url"!==n.value)return;const o=n.nodes[0].value,r=new URL(o,e.rootUrl);return r.pathname===o&&t.skipHostRelativeUrls||(n.nodes[0].value=r.toString(),l=!0),!1})),l&&(n.value=o.stringify(r))}}},e.exports.postcss=!0},9069:function(e,t,n){var o=n(27),r=n(6714),l=n(6895);function i(e){return this instanceof i?(this.nodes=o(e),this):new i(e)}i.prototype.toString=function(){return Array.isArray(this.nodes)?l(this.nodes):""},i.prototype.walk=function(e,t){return r(this.nodes,e,t),this},i.unit=n(2280),i.walk=r,i.stringify=l,e.exports=i},27:function(e){var t="(".charCodeAt(0),n=")".charCodeAt(0),o="'".charCodeAt(0),r='"'.charCodeAt(0),l="\\".charCodeAt(0),i="/".charCodeAt(0),s=",".charCodeAt(0),a=":".charCodeAt(0),c="*".charCodeAt(0),u="u".charCodeAt(0),d="U".charCodeAt(0),p="+".charCodeAt(0),m=/^[a-f0-9?-]+$/i;e.exports=function(e){for(var f,h,g,b,v,k,_,y,E,w=[],S=e,C=0,x=S.charCodeAt(C),B=S.length,I=[{nodes:w}],T=0,M="",P="",R="";C=48&&r<=57)return!0;var i=e.charCodeAt(2);return r===o&&i>=48&&i<=57}return l===o?(r=e.charCodeAt(1))>=48&&r<=57:l>=48&&l<=57}(e))return!1;for((i=e.charCodeAt(c))!==n&&i!==t||c++;c57);)c+=1;if(i=e.charCodeAt(c),s=e.charCodeAt(c+1),i===o&&s>=48&&s<=57)for(c+=2;c57);)c+=1;if(i=e.charCodeAt(c),s=e.charCodeAt(c+1),a=e.charCodeAt(c+2),(i===r||i===l)&&(s>=48&&s<=57||(s===n||s===t)&&a>=48&&a<=57))for(c+=s===n||s===t?3:2;c57);)c+=1;return{number:e.slice(0,c),unit:e.slice(c)}}},6714:function(e){e.exports=function e(t,n,o){var r,l,i,s;for(r=0,l=t.length;r(e.nodes&&(e.nodes=p(e.nodes)),delete e.source,e)))}function m(e){if(e[s]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)m(t)}class f extends d{append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t,n,o=this.getIterator();for(;this.indexes[o]e[t](...n.map((e=>"function"==typeof e?(t,n)=>e(t.toProxy(),n):e))):"every"===t||"some"===t?n=>e[t](((e,...t)=>n(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]},set(e,t,n){return e[t]===n||(e[t]=n,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0}}}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let n,o=this.index(e),r=this.normalize(t,this.proxyOf.nodes[o]).reverse();o=this.index(e);for(let e of r)this.proxyOf.nodes.splice(o+1,0,e);for(let e in this.indexes)n=this.indexes[e],o(e[a]||f.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[s]&&m(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let n in this.indexes)t=this.indexes[n],t>=e&&(this.indexes[n]=t-1);return this.markDirty(),this}replaceValues(e,t,n){return n||(n=t,t={}),this.walkDecls((o=>{t.props&&!t.props.includes(o.prop)||t.fast&&!o.value.includes(t.fast)||(o.value=o.value.replace(e,n))})),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each(((t,n)=>{let o;try{o=e(t,n)}catch(e){throw t.addToError(e)}return!1!==o&&t.walk&&(o=t.walk(e)),o}))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((n,o)=>{if("atrule"===n.type&&e.test(n.name))return t(n,o)})):this.walk(((n,o)=>{if("atrule"===n.type&&n.name===e)return t(n,o)})):(t=e,this.walk(((e,n)=>{if("atrule"===e.type)return t(e,n)})))}walkComments(e){return this.walk(((t,n)=>{if("comment"===t.type)return e(t,n)}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((n,o)=>{if("decl"===n.type&&e.test(n.prop))return t(n,o)})):this.walk(((n,o)=>{if("decl"===n.type&&n.prop===e)return t(n,o)})):(t=e,this.walk(((e,n)=>{if("decl"===e.type)return t(e,n)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((n,o)=>{if("rule"===n.type&&e.test(n.selector))return t(n,o)})):this.walk(((n,o)=>{if("rule"===n.type&&n.selector===e)return t(n,o)})):(t=e,this.walk(((e,n)=>{if("rule"===e.type)return t(e,n)})))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}f.registerParse=e=>{o=e},f.registerRule=e=>{r=e},f.registerAtRule=e=>{l=e},f.registerRoot=e=>{i=e},e.exports=f,f.default=f,f.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,l.prototype):"rule"===e.type?Object.setPrototypeOf(e,r.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,u.prototype):"root"===e.type&&Object.setPrototypeOf(e,i.prototype),e[a]=!0,e.nodes&&e.nodes.forEach((e=>{f.rebuild(e)}))}},8743:function(e,t,n){"use strict";let o=n(9122),r=n(2868);class l extends Error{constructor(e,t,n,o,r,i){super(e),this.name="CssSyntaxError",this.reason=e,r&&(this.file=r),o&&(this.source=o),i&&(this.plugin=i),void 0!==t&&void 0!==n&&("number"==typeof t?(this.line=t,this.column=n):(this.line=t.line,this.column=t.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,l)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=o.isColorSupported),r&&e&&(t=r(t));let n,l,i=t.split(/\r?\n/),s=Math.max(this.line-3,0),a=Math.min(this.line+2,i.length),c=String(a).length;if(e){let{bold:e,gray:t,red:r}=o.createColors(!0);n=t=>e(r(t)),l=e=>t(e)}else n=l=e=>e;return i.slice(s,a).map(((e,t)=>{let o=s+1+t,r=" "+(" "+o).slice(-c)+" | ";if(o===this.line){let t=l(r.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+l(r)+e+"\n "+t+n("^")}return" "+l(r)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=l,l.default=l},5818:function(e,t,n){"use strict";let o=n(8753);class r extends o{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}e.exports=r,r.default=r},3866:function(e,t,n){"use strict";let o,r,l=n(9795);class i extends l{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new o(new r,this,e).stringify()}}i.registerLazyResult=e=>{o=e},i.registerProcessor=e=>{r=e},e.exports=i,i.default=i},3667:function(e,t,n){"use strict";let o=n(5818),r=n(2393),l=n(9882),i=n(2433),s=n(9961),a=n(3823),c=n(5871);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:n,...d}=e;if(n){t=[];for(let e of n){let n={...e,__proto__:s.prototype};n.map&&(n.map={...n.map,__proto__:r.prototype}),t.push(n)}}if(d.nodes&&(d.nodes=e.nodes.map((e=>u(e,t)))),d.source){let{inputId:e,...n}=d.source;d.source=n,null!=e&&(d.source.input=t[e])}if("root"===d.type)return new a(d);if("decl"===d.type)return new o(d);if("rule"===d.type)return new c(d);if("comment"===d.type)return new l(d);if("atrule"===d.type)return new i(d);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},9961:function(e,t,n){"use strict";let{SourceMapConsumer:o,SourceMapGenerator:r}=n(209),{fileURLToPath:l,pathToFileURL:i}=n(7414),{isAbsolute:s,resolve:a}=n(9830),{nanoid:c}=n(2961),u=n(2868),d=n(8743),p=n(2393),m=Symbol("fromOffsetCache"),f=Boolean(o&&r),h=Boolean(a&&s);class g{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!h||/^\w+:\/\//.test(t.from)||s(t.from)?this.file=t.from:this.file=a(t.from)),h&&f){let e=new p(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(e,t,n,o={}){let r,l,s;if(t&&"object"==typeof t){let e=t,o=n;if("number"==typeof e.offset){let o=this.fromOffset(e.offset);t=o.line,n=o.col}else t=e.line,n=e.column;if("number"==typeof o.offset){let e=this.fromOffset(o.offset);l=e.line,s=e.col}else l=o.line,s=o.column}else if(!n){let e=this.fromOffset(t);t=e.line,n=e.col}let a=this.origin(t,n,l,s);return r=a?new d(e,void 0===a.endLine?a.line:{column:a.column,line:a.line},void 0===a.endLine?a.column:{column:a.endColumn,line:a.endLine},a.source,a.file,o.plugin):new d(e,void 0===l?t:{column:n,line:t},void 0===l?n:{column:s,line:l},this.css,this.file,o.plugin),r.input={column:n,endColumn:s,endLine:l,line:t,source:this.css},this.file&&(i&&(r.input.url=i(this.file).toString()),r.input.file=this.file),r}fromOffset(e){let t,n;if(this[m])n=this[m];else{let e=this.css.split("\n");n=new Array(e.length);let t=0;for(let o=0,r=e.length;o=t)o=n.length-1;else{let t,r=n.length-2;for(;o>1),e=n[t+1])){o=t;break}o=t+1}}return{col:e-n[o]+1,line:o+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,n,o){if(!this.map)return!1;let r,a,c=this.map.consumer(),u=c.originalPositionFor({column:t,line:e});if(!u.source)return!1;"number"==typeof n&&(r=c.originalPositionFor({column:o,line:n})),a=s(u.source)?i(u.source):new URL(u.source,this.map.consumer().sourceRoot||i(this.map.mapFile));let d={column:u.column,endColumn:r&&r.column,endLine:r&&r.line,line:u.line,url:a.toString()};if("file:"===a.protocol){if(!l)throw new Error("file: protocol is not available in this PostCSS build");d.file=l(a)}let p=c.sourceContentFor(u.source);return p&&(d.source=p),d}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}}e.exports=g,g.default=g,u&&u.registerInput&&u.registerInput(g)},3993:function(e,t,n){"use strict";let{isClean:o,my:r}=n(3719),l=n(2491),i=n(2530),s=n(9795),a=n(3866),c=(n(7892),n(2072)),u=n(9301),d=n(3823);const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},m={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},f={Once:!0,postcssPlugin:!0,prepare:!0},h=0;function g(e){return"object"==typeof e&&"function"==typeof e.then}function b(e){let t=!1,n=p[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,h,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,h,n+"Exit"]:[n,n+"Exit"]}function v(e){let t;return t="document"===e.type?["Document",h,"DocumentExit"]:"root"===e.type?["Root",h,"RootExit"]:b(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function k(e){return e[o]=!1,e.nodes&&e.nodes.forEach((e=>k(e))),e}let _={};class y{constructor(e,t,n){let o;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof y||t instanceof c)o=k(t.root),t.map&&(void 0===n.map&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=t.map);else{let e=u;n.syntax&&(e=n.syntax.parse),n.parser&&(e=n.parser),e.parse&&(e=e.parse);try{o=e(t,n)}catch(e){this.processed=!0,this.error=e}o&&!o[r]&&s.rebuild(o)}else o=k(t);this.result=new c(e,o,n),this.helpers={..._,postcss:_,result:this.result},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let n=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?n.postcssVersion:(e.plugin=n.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}prepareVisitors(){this.listeners={};let e=(e,t,n)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,n])};for(let t of this.plugins)if("object"==typeof t)for(let n in t){if(!m[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[n])if("object"==typeof t[n])for(let o in t[n])e(t,"*"===o?n:n+"-"+o.toLowerCase(),t[n][o]);else"function"==typeof t[n]&&e(t,n,t[n])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(g(e))try{await e}catch(e){let n=t[t.length-1].node;throw this.handleError(e,n)}}}if(this.listeners.OnceExit)for(let[t,n]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>n(e,this.helpers)));await Promise.all(t)}else await n(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return g(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=i;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new l(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){if(g(this.runOnRoot(e)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[o];)e[o]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[n,o]of e){let e;this.result.lastPlugin=n;try{e=o(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(g(e))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:n,visitors:r}=t;if("root"!==n.type&&"document"!==n.type&&!n.parent)return void e.pop();if(r.length>0&&t.visitorIndex{e[o]||this.walkSync(e)}));else{let t=this.listeners[n];if(t&&this.visitSync(t,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}}y.registerPostcss=e=>{_=e},e.exports=y,y.default=y,d.registerLazyResult(y),a.registerLazyResult(y)},8446:function(e){"use strict";let t={comma(e){return t.split(e,[","],!0)},space(e){return t.split(e,[" ","\n","\t"])},split(e,t,n){let o=[],r="",l=!1,i=0,s=!1,a="",c=!1;for(let n of e)c?c=!1:"\\"===n?c=!0:s?n===a&&(s=!1):'"'===n||"'"===n?(s=!0,a=n):"("===n?i+=1:")"===n?i>0&&(i-=1):0===i&&t.includes(n)&&(l=!0),l?(""!==r&&o.push(r.trim()),r="",l=!1):r+=n;return(n||""!==r)&&o.push(r.trim()),o}};e.exports=t,t.default=t},2491:function(e,t,n){"use strict";let{SourceMapConsumer:o,SourceMapGenerator:r}=n(209),{dirname:l,relative:i,resolve:s,sep:a}=n(9830),{pathToFileURL:c}=n(7414),u=n(9961),d=Boolean(o&&r),p=Boolean(l&&s&&i&&a);e.exports=class{constructor(e,t,n,o){this.stringify=e,this.mapOpts=n.map||{},this.root=t,this.opts=n,this.css=o,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t,n=this.toUrl(this.path(e.file)),r=e.root||l(e.file);!1===this.mapOpts.sourcesContent?(t=new o(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),p&&d&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=r.fromSourceMap(e)}else this.map=new r({file:this.outputFile()}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new r({file:this.outputFile()});let e,t,n=1,o=1,l="",i={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,((r,s,a)=>{if(this.css+=r,s&&"end"!==a&&(i.generated.line=n,i.generated.column=o-1,s.source&&s.source.start?(i.source=this.sourcePath(s),i.original.line=s.source.start.line,i.original.column=s.source.start.column-1,this.map.addMapping(i)):(i.source=l,i.original.line=1,i.original.column=0,this.map.addMapping(i))),e=r.match(/\n/g),e?(n+=e.length,t=r.lastIndexOf("\n"),o=r.length-t):o+=r.length,s&&"start"!==a){let e=s.parent||{raws:{}};("decl"===s.type||"atrule"===s.type&&!s.nodes)&&s===e.last&&!e.raws.semicolon||(s.source&&s.source.end?(i.source=this.sourcePath(s),i.original.line=s.source.end.line,i.original.column=s.source.end.column-1,i.generated.line=n,i.generated.column=o-2,this.map.addMapping(i)):(i.source=l,i.original.line=1,i.original.column=0,i.generated.line=n,i.generated.column=o-1,this.map.addMapping(i)))}}))}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let n=this.opts.to?l(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(n=l(s(n,this.mapOpts.annotation)));let o=i(n,e);return this.memoizedPaths.set(e,o),o}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let n=t.source.input.from;if(n&&!e[n]){e[n]=!0;let o=this.usesFileUrls?this.toFileUrl(n):this.toUrl(this.path(n));this.map.setSourceContent(o,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(c){let t=c(e).toString();return this.memoizedFileURLs.set(e,t),t}throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;"\\"===a&&(e=e.replace(/\\/g,"/"));let n=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,n),n}}},2882:function(e,t,n){"use strict";let o=n(2491),r=n(2530),l=(n(7892),n(9301));const i=n(2072);class s{constructor(e,t,n){let l;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=n,this._map=void 0;let s=r;this.result=new i(this._processor,l,this._opts),this.result.css=t;let a=this;Object.defineProperty(this.result,"root",{get(){return a.root}});let c=new o(s,l,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=l;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}}e.exports=s,s.default=s},8753:function(e,t,n){"use strict";let{isClean:o,my:r}=n(3719),l=n(8743),i=n(3951),s=n(2530);function a(e,t){let n=new e.constructor;for(let o in e){if(!Object.prototype.hasOwnProperty.call(e,o))continue;if("proxyCache"===o)continue;let r=e[o],l=typeof r;"parent"===o&&"object"===l?t&&(n[o]=t):"source"===o?n[o]=r:Array.isArray(r)?n[o]=r.map((e=>a(e,n))):("object"===l&&null!==r&&(r=a(r)),n[o]=r)}return n}class c{constructor(e={}){this.raws={},this[o]=!1,this[r]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let n of e[t])"function"==typeof n.clone?this.append(n.clone()):this.append(n)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=a(this);for(let n in e)t[n]=e[n];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:n,start:o}=this.rangeBy(t);return this.source.input.error(e,{column:o.column,line:o.line},{column:n.column,line:n.line},t)}return new l(e)}getProxyProcessor(){return{get(e,t){return"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]},set(e,t,n){return e[t]===n||(e[t]=n,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0}}}markDirty(){if(this[o]){this[o]=!1;let e=this;for(;e=e.parent;)e[o]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let n=this.source.start;if(e.index)n=this.positionInside(e.index,t);else if(e.word){let o=(t=this.toString()).indexOf(e.word);-1!==o&&(n=this.positionInside(o,t))}return n}positionInside(e,t){let n=t||this.toString(),o=this.source.start.column,r=this.source.start.line;for(let t=0;t"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof o&&o.toJSON)n[e]=o.toJSON(null,t);else if("source"===e){let l=t.get(o.input);null==l&&(l=r,t.set(o.input,r),r++),n[e]={end:o.end,inputId:l,start:o.start}}else n[e]=o}return o&&(n.inputs=[...t.keys()].map((e=>e.toJSON()))),n}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=s){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}warn(e,t,n){let o={node:this};for(let e in n)o[e]=n[e];return e.warn(t,o)}get proxyOf(){return this}}e.exports=c,c.default=c},9301:function(e,t,n){"use strict";let o=n(9795),r=n(3915),l=n(9961);function i(e,t){let n=new l(e,t),o=new r(n);try{o.parse()}catch(e){throw e}return o.root}e.exports=i,i.default=i,o.registerParse(i)},3915:function(e,t,n){"use strict";let o=n(5818),r=n(9215),l=n(9882),i=n(2433),s=n(3823),a=n(5871);const c={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new s,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t,n,o,r=new i;r.name=e[1].slice(1),""===r.name&&this.unnamedAtrule(r,e),this.init(r,e[2]);let l=!1,s=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){r.source.end=this.getPosition(e[2]),r.source.end.offset++,this.semicolon=!0;break}if("{"===t){s=!0;break}if("}"===t){if(a.length>0){for(o=a.length-1,n=a[o];n&&"space"===n[0];)n=a[--o];n&&(r.source.end=this.getPosition(n[3]||n[2]),r.source.end.offset++)}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){l=!0;break}}r.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(r.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(r,"params",a),l&&(e=a[a.length-1],r.source.end=this.getPosition(e[3]||e[2]),r.source.end.offset++,this.spaces=r.raws.between,r.raws.between="")):(r.raws.afterName="",r.params=""),s&&(r.nodes=[],this.current=r)}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let n,o=0;for(let r=t-1;r>=0&&(n=e[r],"space"===n[0]||(o+=1,2!==o));r--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}colon(e){let t,n,o,r=0;for(let[l,i]of e.entries()){if(t=i,n=t[0],"("===n&&(r+=1),")"===n&&(r-=1),0===r&&":"===n){if(o){if("word"===o[0]&&"progid"===o[1])continue;return l}this.doubleColon(t)}o=t}return!1}comment(e){let t=new l;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let n=e[1].slice(2,-2);if(/^\s*$/.test(n))t.text="",t.raws.left=n,t.raws.right="";else{let e=n.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}createTokenizer(){this.tokenizer=r(this.input)}decl(e,t){let n=new o;this.init(n,e[0][2]);let r,l=e[e.length-1];for(";"===l[0]&&(this.semicolon=!0,e.pop()),n.source.end=this.getPosition(l[3]||l[2]||function(e){for(let t=e.length-1;t>=0;t--){let n=e[t],o=n[3]||n[2];if(o)return o}}(e)),n.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),n.raws.before+=e.shift()[1];for(n.source.start=this.getPosition(e[0][2]),n.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;n.prop+=e.shift()[1]}for(n.raws.between="";e.length;){if(r=e.shift(),":"===r[0]){n.raws.between+=r[1];break}"word"===r[0]&&/\w/.test(r[1])&&this.unknownWord([r]),n.raws.between+=r[1]}"_"!==n.prop[0]&&"*"!==n.prop[0]||(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));let i,s=[];for(;e.length&&(i=e[0][0],"space"===i||"comment"===i);)s.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(r=e[t],"!important"===r[1].toLowerCase()){n.important=!0;let o=this.stringFrom(e,t);o=this.spacesFromEnd(e)+o," !important"!==o&&(n.raws.important=o);break}if("important"===r[1].toLowerCase()){let o=e.slice(0),r="";for(let e=t;e>0;e--){let t=o[e][0];if(0===r.trim().indexOf("!")&&"space"!==t)break;r=o.pop()[1]+r}0===r.trim().indexOf("!")&&(n.important=!0,n.raws.important=r,e=o)}if("space"!==r[0]&&"comment"!==r[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(n.raws.between+=s.map((e=>e[1])).join(""),s=[]),this.raw(n,"value",s.concat(e),t),n.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new a;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}other(e){let t=!1,n=null,o=!1,r=null,l=[],i=e[1].startsWith("--"),s=[],a=e;for(;a;){if(n=a[0],s.push(a),"("===n||"["===n)r||(r=a),l.push("("===n?")":"]");else if(i&&o&&"{"===n)r||(r=a),l.push("}");else if(0===l.length){if(";"===n){if(o)return void this.decl(s,i);break}if("{"===n)return void this.rule(s);if("}"===n){this.tokenizer.back(s.pop()),t=!0;break}":"===n&&(o=!0)}else n===l[l.length-1]&&(l.pop(),0===l.length&&(r=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),l.length>0&&this.unclosedBracket(r),t&&o){if(!i)for(;s.length&&(a=s[s.length-1][0],"space"===a||"comment"===a);)this.tokenizer.back(s.pop());this.decl(s,i)}else this.unknownWord(s)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}precheckMissedSemicolon(){}raw(e,t,n,o){let r,l,i,s,a=n.length,u="",d=!0;for(let e=0;ee+t[1]),"");e.raws[t]={raw:o,value:u}}e[t]=u}rule(e){e.pop();let t=new a;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)n=e.pop()[1]+n;return n}spacesAndCommentsFromStart(e){let t,n="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)n+=e.shift()[1];return n}spacesFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)n=e.pop()[1]+n;return n}stringFrom(e,t){let n="";for(let o=t;onew p(e),y.atRule=e=>new m(e),y.decl=e=>new r(e),y.rule=e=>new v(e),y.root=e=>new k(e),y.document=e=>new u(e),y.CssSyntaxError=o,y.Declaration=r,y.Container=i,y.Processor=s,y.Document=u,y.Comment=p,y.Warning=d,y.AtRule=m,y.Result=f,y.Input=h,y.Rule=v,y.Root=k,y.Node=_,l.registerPostcss(y),e.exports=y,y.default=y},2393:function(e,t,n){"use strict";let{SourceMapConsumer:o,SourceMapGenerator:r}=n(209),{existsSync:l,readFileSync:i}=n(4777),{dirname:s,join:a}=n(9830);class c{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let n=t.map?t.map.prev:void 0,o=this.loadMap(t.from,n);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=s(this.mapFile)),o&&(this.text=o)}consumer(){return this.consumerCache||(this.consumerCache=new o(this.text)),this.consumerCache}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let n=e.lastIndexOf(t.pop()),o=e.indexOf("*/",n);n>-1&&o>-1&&(this.annotation=this.getAnnotationURL(e.substring(n,o)))}loadFile(e){if(this.root=s(e),l(e))return this.mapFile=e,i(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof o)return r.fromSourceMap(t).toString();if(t instanceof r)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let n=t(e);if(n){let e=this.loadFile(n);if(!e)throw new Error("Unable to load previous source map: "+n.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=a(s(e),t)),this.loadFile(t)}}}startWith(e,t){return!!e&&e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}e.exports=c,c.default=c},5937:function(e,t,n){"use strict";let o=n(2882),r=n(3993),l=n(3866),i=n(3823);class s{constructor(e=[]){this.version="8.4.31",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let n of e)if(!0===n.postcss?n=n():n.postcss&&(n=n.postcss),"object"==typeof n&&Array.isArray(n.plugins))t=t.concat(n.plugins);else if("object"==typeof n&&n.postcssPlugin)t.push(n);else if("function"==typeof n)t.push(n);else{if("object"!=typeof n||!n.parse&&!n.stringify)throw new Error(n+" is not a PostCSS plugin")}return t}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new o(this,e,t):new r(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}}e.exports=s,s.default=s,i.registerProcessor(s),l.registerProcessor(s)},2072:function(e,t,n){"use strict";let o=n(9871);class r{constructor(e,t,n){this.processor=e,this.messages=[],this.root=t,this.opts=n,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let n=new o(e,t);return this.messages.push(n),n}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}e.exports=r,r.default=r},3823:function(e,t,n){"use strict";let o,r,l=n(9795);class i extends l{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,n){let o=super.normalize(e);if(t)if("prepend"===n)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of o)e.raws.before=t.raws.before;return o}removeChild(e,t){let n=this.index(e);return!t&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),super.removeChild(e)}toResult(e={}){return new o(new r,this,e).stringify()}}i.registerLazyResult=e=>{o=e},i.registerProcessor=e=>{r=e},e.exports=i,i.default=i,l.registerRoot(i)},5871:function(e,t,n){"use strict";let o=n(9795),r=n(8446);class l extends o{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return r.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,n=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(n)}}e.exports=l,l.default=l,o.registerRule(l)},3951:function(e){"use strict";const t={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};class n{constructor(e){this.builder=e}atrule(e,t){let n="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?n+=e.raws.afterName:o&&(n+=" "),e.nodes)this.block(e,n+o);else{let r=(e.raws.between||"")+(t?";":"");this.builder(n+o+r,e)}}beforeAfter(e,t){let n;n="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let o=e.parent,r=0;for(;o&&"root"!==o.type;)r+=1,o=o.parent;if(n.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e0&&"comment"===e.nodes[t].type;)t-=1;let n=this.raw(e,"semicolon");for(let o=0;o{if(r=e.raws[n],void 0!==r)return!1}))}var s;return void 0===r&&(r=t[o]),i.rawCache[o]=r,r}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let n;return e.walkComments((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeDecl"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeDecl(e,t){let n;return e.walkDecls((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeRule"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawBeforeRule(e){let t;return e.walk((n=>{if(n.nodes&&(n.parent!==e||e.first!==n)&&void 0!==n.raws.before)return t=n.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((n=>{let o=n.parent;if(o&&o!==e&&o.parent&&o.parent===e&&void 0!==n.raws.before){let e=n.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawValue(e,t){let n=e[t],o=e.raws[t];return o&&o.value===n?o.raw:n}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}}e.exports=n,n.default=n},2530:function(e,t,n){"use strict";let o=n(3951);function r(e,t){new o(t).stringify(e)}e.exports=r,r.default=r},3719:function(e){"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},9215:function(e){"use strict";const t="'".charCodeAt(0),n='"'.charCodeAt(0),o="\\".charCodeAt(0),r="/".charCodeAt(0),l="\n".charCodeAt(0),i=" ".charCodeAt(0),s="\f".charCodeAt(0),a="\t".charCodeAt(0),c="\r".charCodeAt(0),u="[".charCodeAt(0),d="]".charCodeAt(0),p="(".charCodeAt(0),m=")".charCodeAt(0),f="{".charCodeAt(0),h="}".charCodeAt(0),g=";".charCodeAt(0),b="*".charCodeAt(0),v=":".charCodeAt(0),k="@".charCodeAt(0),_=/[\t\n\f\r "#'()/;[\\\]{}]/g,y=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,E=/.[\r\n"'(/\\]/,w=/[\da-f]/i;e.exports=function(e,S={}){let C,x,B,I,T,M,P,R,N,A,L=e.css.valueOf(),O=S.ignoreErrors,D=L.length,z=0,V=[],F=[];function H(t){throw e.error("Unclosed "+t,z)}return{back:function(e){F.push(e)},endOfFile:function(){return 0===F.length&&z>=D},nextToken:function(e){if(F.length)return F.pop();if(z>=D)return;let S=!!e&&e.ignoreUnclosed;switch(C=L.charCodeAt(z),C){case l:case i:case a:case c:case s:x=z;do{x+=1,C=L.charCodeAt(x)}while(C===i||C===l||C===a||C===c||C===s);A=["space",L.slice(z,x)],z=x-1;break;case u:case d:case f:case h:case v:case g:case m:{let e=String.fromCharCode(C);A=[e,e,z];break}case p:if(R=V.length?V.pop()[1]:"",N=L.charCodeAt(z+1),"url"===R&&N!==t&&N!==n&&N!==i&&N!==l&&N!==a&&N!==s&&N!==c){x=z;do{if(M=!1,x=L.indexOf(")",x+1),-1===x){if(O||S){x=z;break}H("bracket")}for(P=x;L.charCodeAt(P-1)===o;)P-=1,M=!M}while(M);A=["brackets",L.slice(z,x+1),z,x],z=x}else x=L.indexOf(")",z+1),I=L.slice(z,x+1),-1===x||E.test(I)?A=["(","(",z]:(A=["brackets",I,z,x],z=x);break;case t:case n:B=C===t?"'":'"',x=z;do{if(M=!1,x=L.indexOf(B,x+1),-1===x){if(O||S){x=z+1;break}H("string")}for(P=x;L.charCodeAt(P-1)===o;)P-=1,M=!M}while(M);A=["string",L.slice(z,x+1),z,x],z=x;break;case k:_.lastIndex=z+1,_.test(L),x=0===_.lastIndex?L.length-1:_.lastIndex-2,A=["at-word",L.slice(z,x+1),z,x],z=x;break;case o:for(x=z,T=!0;L.charCodeAt(x+1)===o;)x+=1,T=!T;if(C=L.charCodeAt(x+1),T&&C!==r&&C!==i&&C!==l&&C!==a&&C!==c&&C!==s&&(x+=1,w.test(L.charAt(x)))){for(;w.test(L.charAt(x+1));)x+=1;L.charCodeAt(x+1)===i&&(x+=1)}A=["word",L.slice(z,x+1),z,x],z=x;break;default:C===r&&L.charCodeAt(z+1)===b?(x=L.indexOf("*/",z+2)+1,0===x&&(O||S?x=L.length:H("comment")),A=["comment",L.slice(z,x+1),z,x],z=x):(y.lastIndex=z+1,y.test(L),x=0===y.lastIndex?L.length-1:y.lastIndex-2,A=["word",L.slice(z,x+1),z,x],V.push(A),z=x)}return z++,A},position:function(){return z}}}},7892:function(e){"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},9871:function(e){"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},5372:function(e,t,n){"use strict";var o=n(9567);function r(){}function l(){}l.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,l,i){if(i!==o){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:l,resetWarningCache:r};return n.PropTypes=n,n}},2652:function(e,t,n){e.exports=n(5372)()},9567:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},5438:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),l=this&&this.__assign||Object.assign||function(e){for(var t,n=1,o=arguments.length;n{let t="",n=e;for(;n--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(n=t)=>{let o="",r=n;for(;r--;)o+=e[Math.random()*e.length|0];return o}}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var l=t[o]={exports:{}};return e[o].call(l.exports,l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};!function(){"use strict";n.r(o),n.d(o,{AlignmentControl:function(){return Bh},AlignmentToolbar:function(){return Ih},Autocomplete:function(){return og},BlockAlignmentControl:function(){return Qi},BlockAlignmentToolbar:function(){return Ji},BlockBreadcrumb:function(){return ug},BlockCanvas:function(){return NC},BlockColorsStyleSelector:function(){return DC},BlockContextProvider:function(){return mg},BlockControls:function(){return Cl},BlockEdit:function(){return vg},BlockEditorKeyboardShortcuts:function(){return N_},BlockEditorProvider:function(){return L_},BlockFormatControls:function(){return Sl},BlockIcon:function(){return Yf},BlockInspector:function(){return DT},BlockList:function(){return Gw},BlockMover:function(){return aS},BlockNavigationDropdown:function(){return vx},BlockPreview:function(){return yy},BlockSelectionClearer:function(){return D_},BlockSettingsMenu:function(){return dC},BlockSettingsMenuControls:function(){return Wf},BlockStyles:function(){return yx},BlockTitle:function(){return cg},BlockToolbar:function(){return CC},BlockTools:function(){return PC},BlockVerticalAlignmentControl:function(){return ui},BlockVerticalAlignmentToolbar:function(){return di},ButtonBlockAppender:function(){return tw},ButtonBlockerAppender:function(){return ew},ColorPalette:function(){return Zx},ColorPaletteControl:function(){return qx},ContrastChecker:function(){return Yu},CopyHandler:function(){return VT},DefaultBlockAppender:function(){return QE},FontSizePicker:function(){return bh},HeadingLevelDropdown:function(){return xx},HeightControl:function(){return Np},InnerBlocks:function(){return Nw},Inserter:function(){return XE},InspectorAdvancedControls:function(){return Ss},InspectorControls:function(){return Cs},JustifyContentControl:function(){return fi},JustifyToolbar:function(){return hi},LineHeightControl:function(){return wd},MediaPlaceholder:function(){return qB},MediaReplaceFlow:function(){return Qa},MediaUpload:function(){return Fs},MediaUploadCheck:function(){return Hs},MultiSelectScrollIntoView:function(){return GT},NavigableToolbar:function(){return EC},ObserveTyping:function(){return Dw},PanelColorSettings:function(){return YB},PlainText:function(){return OI},RecursionProvider:function(){return qT},ReusableBlocksRenameHint:function(){return dM},RichText:function(){return NI},RichTextShortcut:function(){return VI},RichTextToolbarButton:function(){return FI},SETTINGS_DEFAULTS:function(){return I},SkipToSelectedBlock:function(){return rT},ToolSelector:function(){return UI},Typewriter:function(){return KT},URLInput:function(){return Js},URLInputButton:function(){return KI},URLPopover:function(){return jB},Warning:function(){return _g},WritingFlow:function(){return ey},__experimentalBlockAlignmentMatrixControl:function(){return sg},__experimentalBlockFullHeightAligmentControl:function(){return lg},__experimentalBlockPatternSetup:function(){return Gx},__experimentalBlockPatternsList:function(){return Yy},__experimentalBlockVariationPicker:function(){return Ix},__experimentalBlockVariationTransforms:function(){return Wx},__experimentalBorderRadiusControl:function(){return lu},__experimentalColorGradientControl:function(){return Lu},__experimentalColorGradientSettingsDropdown:function(){return oB},__experimentalDateFormatPicker:function(){return Qx},__experimentalDuotoneControl:function(){return Fm},__experimentalFontAppearanceControl:function(){return yd},__experimentalFontFamilyControl:function(){return bd},__experimentalGetBorderClassesAndStyles:function(){return th},__experimentalGetColorClassesAndStyles:function(){return lh},__experimentalGetElementClassName:function(){return mM},__experimentalGetGapCSSValue:function(){return ti},__experimentalGetGradientClass:function(){return xu},__experimentalGetGradientObjectByGradientValue:function(){return Iu},__experimentalGetShadowClassesAndStyles:function(){return oh},__experimentalGetSpacingClassesAndStyles:function(){return sh},__experimentalImageEditor:function(){return zB},__experimentalImageSizeControl:function(){return HB},__experimentalImageURLInputUI:function(){return tT},__experimentalInspectorPopoverHeader:function(){return eM},__experimentalLetterSpacingControl:function(){return Sd},__experimentalLibrary:function(){return HT},__experimentalLinkControl:function(){return qa},__experimentalLinkControlSearchInput:function(){return Ma},__experimentalLinkControlSearchItem:function(){return ha},__experimentalLinkControlSearchResults:function(){return Ea},__experimentalListView:function(){return gx},__experimentalPanelColorGradientSettings:function(){return sB},__experimentalPreviewOptions:function(){return nT},__experimentalPublishDateTimePicker:function(){return tM},__experimentalRecursionProvider:function(){return XT},__experimentalResponsiveBlockControl:function(){return zI},__experimentalSpacingSizesControl:function(){return Pp},__experimentalTextDecorationControl:function(){return Ad},__experimentalTextTransformControl:function(){return Md},__experimentalUnitControl:function(){return $I},__experimentalUseBlockOverlayActive:function(){return dg},__experimentalUseBlockPreview:function(){return Ey},__experimentalUseBorderProps:function(){return nh},__experimentalUseColorProps:function(){return ih},__experimentalUseCustomSides:function(){return mm},__experimentalUseGradient:function(){return Mu},__experimentalUseHasRecursion:function(){return QT},__experimentalUseMultipleOriginColorsAndGradients:function(){return jc},__experimentalUseResizeCanvas:function(){return oT},__experimentalUseShadowProps:function(){return rh},__experimentalWritingModeControl:function(){return zd},__unstableBlockNameContext:function(){return kC},__unstableBlockSettingsMenuFirstItem:function(){return lC},__unstableBlockToolbarLastItem:function(){return GS},__unstableEditorStyles:function(){return gy},__unstableIframe:function(){return ly},__unstableInserterMenuExtension:function(){return zE},__unstableRichTextInputEvent:function(){return HI},__unstableUseBlockSelectionClearer:function(){return O_},__unstableUseClipboardHandler:function(){return zT},__unstableUseMouseMoveTypingReset:function(){return Lw},__unstableUseTypewriter:function(){return WT},__unstableUseTypingObserver:function(){return Ow},createCustomColorsHOC:function(){return hh},getColorClassName:function(){return $c},getColorObjectByAttributeValues:function(){return Gc},getColorObjectByColorValue:function(){return Uc},getComputedFluidTypographyValue:function(){return Hr},getCustomValueFromPreset:function(){return Yl},getFontSize:function(){return sp},getFontSizeClass:function(){return cp},getFontSizeObjectByValue:function(){return ap},getGradientSlugByValue:function(){return Tu},getGradientValueBySlug:function(){return Bu},getPxFromCssUnit:function(){return fM},getSpacingPresetCssVar:function(){return Ql},getTypographyClassesAndStyles:function(){return ah},isValueSpacingPreset:function(){return ql},privateApis:function(){return xR},store:function(){return wr},storeConfig:function(){return Er},transformStyles:function(){return fy},useBlockCommands:function(){return cM},useBlockDisplayInformation:function(){return sf},useBlockEditContext:function(){return y},useBlockEditingMode:function(){return es},useBlockProps:function(){return b_},useCachedTruthy:function(){return ch},useHasRecursion:function(){return YT},useInnerBlocksProps:function(){return Rw},useSetting:function(){return Ar},useSettings:function(){return Nr},withColorContext:function(){return Kx},withColors:function(){return gh},withFontSizes:function(){return _h}});var e={};n.r(e),n.d(e,{__experimentalGetActiveBlockIdByBlockNames:function(){return un},__experimentalGetAllowedBlocks:function(){return Ft},__experimentalGetAllowedPatterns:function(){return jt},__experimentalGetBlockListSettingsForBlocks:function(){return Qt},__experimentalGetDirectInsertBlock:function(){return Gt},__experimentalGetGlobalBlocksByName:function(){return _e},__experimentalGetLastBlockAttributeChanges:function(){return tn},__experimentalGetParsedPattern:function(){return Ut},__experimentalGetPatternTransformItems:function(){return Zt},__experimentalGetPatternsByBlockTypes:function(){return Kt},__experimentalGetReusableBlockTitle:function(){return Jt},__unstableGetBlockWithoutInnerBlocks:function(){return pe},__unstableGetClientIdWithClientIdsTree:function(){return fe},__unstableGetClientIdsTree:function(){return he},__unstableGetContentLockingParent:function(){return fn},__unstableGetEditorMode:function(){return rn},__unstableGetSelectedBlocksWithPartialSelection:function(){return tt},__unstableGetTemporarilyEditingAsBlocks:function(){return hn},__unstableGetTemporarilyEditingFocusModeToRevert:function(){return gn},__unstableGetVisibleBlocks:function(){return mn},__unstableHasActiveBlockOverlayActive:function(){return bn},__unstableIsFullySelected:function(){return Xe},__unstableIsLastBlockChangeIgnored:function(){return en},__unstableIsSelectionCollapsed:function(){return Qe},__unstableIsSelectionMergeable:function(){return et},__unstableIsWithinBlockOverlay:function(){return vn},__unstableSelectionHasUnmergeableBlock:function(){return Je},areInnerBlocksControlled:function(){return cn},canEditBlock:function(){return Mt},canInsertBlockType:function(){return St},canInsertBlocks:function(){return Ct},canLockBlockType:function(){return Pt},canMoveBlock:function(){return It},canMoveBlocks:function(){return Tt},canRemoveBlock:function(){return xt},canRemoveBlocks:function(){return Bt},didAutomaticChange:function(){return sn},getAdjacentBlockClientId:function(){return De},getAllowedBlocks:function(){return Vt},getBlock:function(){return de},getBlockAttributes:function(){return ue},getBlockCount:function(){return we},getBlockEditingMode:function(){return kn},getBlockHierarchyRootClientId:function(){return Le},getBlockIndex:function(){return ot},getBlockInsertionPoint:function(){return vt},getBlockListSettings:function(){return qt},getBlockMode:function(){return dt},getBlockName:function(){return ae},getBlockNamesByClientId:function(){return Ee},getBlockOrder:function(){return nt},getBlockParents:function(){return Ne},getBlockParentsByBlockName:function(){return Ae},getBlockRootClientId:function(){return Re},getBlockSelectionEnd:function(){return Be},getBlockSelectionStart:function(){return xe},getBlockTransformItems:function(){return Dt},getBlocks:function(){return me},getBlocksByClientId:function(){return ye},getBlocksByName:function(){return ke},getClientIdsOfDescendants:function(){return ge},getClientIdsWithDescendants:function(){return be},getDirectInsertBlock:function(){return Ht},getDraggedBlockClientIds:function(){return ft},getFirstMultiSelectedBlockClientId:function(){return $e},getGlobalBlockCount:function(){return ve},getInserterItems:function(){return Ot},getLastMultiSelectedBlockClientId:function(){return je},getLowestCommonAncestorWithSelectedBlock:function(){return Oe},getMultiSelectedBlockClientIds:function(){return Ge},getMultiSelectedBlocks:function(){return Ue},getMultiSelectedBlocksEndClientId:function(){return Ye},getMultiSelectedBlocksStartClientId:function(){return qe},getNextBlockClientId:function(){return Ve},getPatternsByBlockTypes:function(){return Wt},getPreviousBlockClientId:function(){return ze},getSelectedBlock:function(){return Pe},getSelectedBlockClientId:function(){return Me},getSelectedBlockClientIds:function(){return He},getSelectedBlockCount:function(){return Ie},getSelectedBlocksInitialCaretPosition:function(){return Fe},getSelectionEnd:function(){return Ce},getSelectionStart:function(){return Se},getSettings:function(){return Yt},getTemplate:function(){return yt},getTemplateLock:function(){return Et},hasBlockMovingClientId:function(){return ln},hasDraggedInnerBlock:function(){return it},hasInserterItems:function(){return zt},hasMultiSelection:function(){return at},hasSelectedBlock:function(){return Te},hasSelectedInnerBlock:function(){return lt},isAncestorBeingDragged:function(){return gt},isAncestorMultiSelected:function(){return Ze},isBlockBeingDragged:function(){return ht},isBlockHighlighted:function(){return an},isBlockInsertionPointVisible:function(){return kt},isBlockMultiSelected:function(){return Ke},isBlockSelected:function(){return rt},isBlockValid:function(){return ce},isBlockVisible:function(){return pn},isBlockWithinSelection:function(){return st},isCaretWithinFormattedText:function(){return bt},isDraggingBlocks:function(){return mt},isFirstMultiSelectedBlock:function(){return We},isGroupable:function(){return yn},isLastBlockChangePersistent:function(){return Xt},isMultiSelecting:function(){return ct},isNavigationMode:function(){return on},isSelectionEnabled:function(){return ut},isTyping:function(){return pt},isUngroupable:function(){return _n},isValidTemplate:function(){return _t},wasBlockJustInserted:function(){return dn}});var t={};n.r(t),n.d(t,{__experimentalUpdateSettings:function(){return Sn},clearBlockRemovalPrompt:function(){return Tn},deleteStyleOverride:function(){return Nn},ensureDefaultBlock:function(){return In},hideBlockInterface:function(){return Cn},privateRemoveBlocks:function(){return Bn},registerBlockBindingsSource:function(){return Dn},setBlockRemovalRules:function(){return Mn},setLastFocus:function(){return Ln},setOpenedBlockSettingsMenu:function(){return Pn},setStyleOverride:function(){return Rn},showBlockInterface:function(){return xn},stopEditingAsBlocks:function(){return On},syncDerivedUpdates:function(){return An}});var r={};n.r(r),n.d(r,{getAllBlockBindingsSources:function(){return ro},getAllPatterns:function(){return no},getBlockBindingsSource:function(){return lo},getBlockRemovalRules:function(){return qn},getEnabledBlockParents:function(){return Kn},getEnabledClientIdsTree:function(){return Wn},getFetchedPatterns:function(){return eo},getInserterMediaCategories:function(){return Jn},getLastFocus:function(){return oo},getLastInsertedBlocksClientIds:function(){return $n},getOpenedBlockSettingsMenu:function(){return Yn},getRegisteredInserterMediaCategories:function(){return Qn},getRemovalPromptData:function(){return Zn},getStyleOverrides:function(){return Xn},hasAllowedPatterns:function(){return to},isBlockInterfaceHidden:function(){return Un},isBlockSubtreeDisabled:function(){return jn}});var l={};n.r(l),n.d(l,{getFetchedPatterns:function(){return io}});var i={};n.r(i),n.d(i,{__unstableDeleteSelection:function(){return Fo},__unstableExpandSelection:function(){return Go},__unstableMarkAutomaticChange:function(){return sr},__unstableMarkLastChangeAsPersistent:function(){return lr},__unstableMarkNextChangeAsNotPersistent:function(){return ir},__unstableSaveReusableBlock:function(){return rr},__unstableSetEditorMode:function(){return cr},__unstableSetTemporarilyEditingAsBlocks:function(){return vr},__unstableSplitSelection:function(){return Ho},clearSelectedBlock:function(){return So},duplicateBlocks:function(){return dr},enterFormattedText:function(){return Qo},exitFormattedText:function(){return Jo},flashBlock:function(){return hr},hideInsertionPoint:function(){return Do},insertAfterBlock:function(){return mr},insertBeforeBlock:function(){return pr},insertBlock:function(){return Ao},insertBlocks:function(){return Lo},insertDefaultBlock:function(){return tr},mergeBlocks:function(){return Uo},moveBlockToPosition:function(){return No},moveBlocksDown:function(){return Mo},moveBlocksToPosition:function(){return Ro},moveBlocksUp:function(){return Po},multiSelect:function(){return wo},receiveBlocks:function(){return ho},registerInserterMediaCategory:function(){return kr},removeBlock:function(){return jo},removeBlocks:function(){return $o},replaceBlock:function(){return Io},replaceBlocks:function(){return Bo},replaceInnerBlocks:function(){return Wo},resetBlocks:function(){return po},resetSelection:function(){return fo},selectBlock:function(){return vo},selectNextBlock:function(){return _o},selectPreviousBlock:function(){return ko},selectionChange:function(){return er},setBlockEditingMode:function(){return _r},setBlockMovingClientId:function(){return ur},setBlockVisibility:function(){return br},setHasControlledInnerBlocks:function(){return gr},setNavigationMode:function(){return ar},setTemplateValidity:function(){return zo},showInsertionPoint:function(){return Oo},startDraggingBlocks:function(){return Yo},startMultiSelect:function(){return yo},startTyping:function(){return Zo},stopDraggingBlocks:function(){return Xo},stopMultiSelect:function(){return Eo},stopTyping:function(){return qo},synchronizeTemplate:function(){return Vo},toggleBlockHighlight:function(){return fr},toggleBlockMode:function(){return Ko},toggleSelection:function(){return Co},unsetBlockEditingMode:function(){return yr},updateBlock:function(){return bo},updateBlockAttributes:function(){return go},updateBlockListSettings:function(){return nr},updateSettings:function(){return or},validateBlocksToTemplate:function(){return mo}});var s={};n.r(s),n.d(s,{AdvancedPanel:function(){return NM},BorderPanel:function(){return mu},ColorPanel:function(){return qu},DimensionsPanel:function(){return Jp},EffectsPanel:function(){return km},FiltersPanel:function(){return Jm},GlobalStylesContext:function(){return tl},ImageSettingsPanel:function(){return RM},TypographyPanel:function(){return ep},areGlobalStyleConfigsEqual:function(){return el},getBlockCSSSelector:function(){return $m},getGlobalStylesChanges:function(){return HM},getLayoutStyles:function(){return _M},useGlobalSetting:function(){return ll},useGlobalStyle:function(){return il},useGlobalStylesOutput:function(){return MM},useGlobalStylesOutputWithConfig:function(){return TM},useGlobalStylesReset:function(){return rl},useHasBorderPanel:function(){return iu},useHasColorPanel:function(){return Ou},useHasDimensionsPanel:function(){return Fp},useHasEffectsPanel:function(){return hm},useHasFiltersPanel:function(){return Km},useHasImageSettingsPanel:function(){return PM},useHasTypographyPanel:function(){return Hd},useSettingsForBlockElement:function(){return sl}});var a=n(9196),c=n.n(a),u=window.wp.blocks,d=window.wp.element,p=window.wp.data,m=window.wp.compose,f=window.wp.hooks;const h=Symbol("mayDisplayControls"),g=Symbol("mayDisplayParentControls"),b=Symbol("blockEditingMode"),v={name:"",isSelected:!1},k=(0,d.createContext)(v),{Provider:_}=k;function y(){return(0,d.useContext)(k)}var E=window.wp.deprecated,w=n.n(E),S=n(5619),C=n.n(S),x=window.wp.i18n;const B={insertUsage:{}},I={alignWide:!1,supportsLayout:!0,colors:[{name:(0,x.__)("Black"),slug:"black",color:"#000000"},{name:(0,x.__)("Cyan bluish gray"),slug:"cyan-bluish-gray",color:"#abb8c3"},{name:(0,x.__)("White"),slug:"white",color:"#ffffff"},{name:(0,x.__)("Pale pink"),slug:"pale-pink",color:"#f78da7"},{name:(0,x.__)("Vivid red"),slug:"vivid-red",color:"#cf2e2e"},{name:(0,x.__)("Luminous vivid orange"),slug:"luminous-vivid-orange",color:"#ff6900"},{name:(0,x.__)("Luminous vivid amber"),slug:"luminous-vivid-amber",color:"#fcb900"},{name:(0,x.__)("Light green cyan"),slug:"light-green-cyan",color:"#7bdcb5"},{name:(0,x.__)("Vivid green cyan"),slug:"vivid-green-cyan",color:"#00d084"},{name:(0,x.__)("Pale cyan blue"),slug:"pale-cyan-blue",color:"#8ed1fc"},{name:(0,x.__)("Vivid cyan blue"),slug:"vivid-cyan-blue",color:"#0693e3"},{name:(0,x.__)("Vivid purple"),slug:"vivid-purple",color:"#9b51e0"}],fontSizes:[{name:(0,x._x)("Small","font size name"),size:13,slug:"small"},{name:(0,x._x)("Normal","font size name"),size:16,slug:"normal"},{name:(0,x._x)("Medium","font size name"),size:20,slug:"medium"},{name:(0,x._x)("Large","font size name"),size:36,slug:"large"},{name:(0,x._x)("Huge","font size name"),size:42,slug:"huge"}],imageDefaultSize:"large",imageSizes:[{slug:"thumbnail",name:(0,x.__)("Thumbnail")},{slug:"medium",name:(0,x.__)("Medium")},{slug:"large",name:(0,x.__)("Large")},{slug:"full",name:(0,x.__)("Full Size")}],imageEditing:!0,maxWidth:580,allowedBlockTypes:!0,maxUploadFileSize:0,allowedMimeTypes:null,canLockBlocks:!0,enableOpenverseMediaCategory:!0,clearBlockSelection:!0,__experimentalCanUserUseUnfilteredHTML:!1,__experimentalBlockDirectory:!1,__mobileEnablePageTemplates:!1,__experimentalBlockPatterns:[],__experimentalBlockPatternCategories:[],__unstableGalleryWithImageBlocks:!1,__unstableIsPreviewMode:!1,blockInspectorAnimation:{animationParent:"core/navigation","core/navigation":{enterDirection:"leftToRight"},"core/navigation-submenu":{enterDirection:"rightToLeft"},"core/navigation-link":{enterDirection:"rightToLeft"},"core/search":{enterDirection:"rightToLeft"},"core/social-links":{enterDirection:"rightToLeft"},"core/page-list":{enterDirection:"rightToLeft"},"core/spacer":{enterDirection:"rightToLeft"},"core/home-link":{enterDirection:"rightToLeft"},"core/site-title":{enterDirection:"rightToLeft"},"core/site-logo":{enterDirection:"rightToLeft"}},generateAnchors:!1,gradients:[{name:(0,x.__)("Vivid cyan blue to vivid purple"),gradient:"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)",slug:"vivid-cyan-blue-to-vivid-purple"},{name:(0,x.__)("Light green cyan to vivid green cyan"),gradient:"linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)",slug:"light-green-cyan-to-vivid-green-cyan"},{name:(0,x.__)("Luminous vivid amber to luminous vivid orange"),gradient:"linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)",slug:"luminous-vivid-amber-to-luminous-vivid-orange"},{name:(0,x.__)("Luminous vivid orange to vivid red"),gradient:"linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)",slug:"luminous-vivid-orange-to-vivid-red"},{name:(0,x.__)("Very light gray to cyan bluish gray"),gradient:"linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)",slug:"very-light-gray-to-cyan-bluish-gray"},{name:(0,x.__)("Cool to warm spectrum"),gradient:"linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)",slug:"cool-to-warm-spectrum"},{name:(0,x.__)("Blush light purple"),gradient:"linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)",slug:"blush-light-purple"},{name:(0,x.__)("Blush bordeaux"),gradient:"linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)",slug:"blush-bordeaux"},{name:(0,x.__)("Luminous dusk"),gradient:"linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)",slug:"luminous-dusk"},{name:(0,x.__)("Pale ocean"),gradient:"linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)",slug:"pale-ocean"},{name:(0,x.__)("Electric grass"),gradient:"linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)",slug:"electric-grass"},{name:(0,x.__)("Midnight"),gradient:"linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)",slug:"midnight"}],__unstableResolvedAssets:{styles:[],scripts:[]}};function T(e,t,n){return[...e.slice(0,n),...Array.isArray(t)?t:[t],...e.slice(n)]}function M(e,t,n,o=1){const r=[...e];return r.splice(t,o),T(r,e.slice(t,t+o),n)}const P=e=>e;function R(e,t=""){const n=new Map,o=[];return n.set(t,o),e.forEach((e=>{const{clientId:t,innerBlocks:r}=e;o.push(t),R(r,t).forEach(((e,t)=>{n.set(t,e)}))})),n}function N(e,t=""){const n=[],o=[[t,e]];for(;o.length;){const[e,t]=o.shift();t.forEach((({innerBlocks:t,...r})=>{n.push([r.clientId,e]),t?.length&&o.push([r.clientId,t])}))}return n}function A(e,t=P){const n=[],o=[...e];for(;o.length;){const{innerBlocks:e,...r}=o.shift();o.push(...e),n.push([r.clientId,t(r)])}return n}function L(e){return A(e,(e=>{const{attributes:t,...n}=e;return n}))}function O(e){return A(e,(e=>e.attributes))}function D(e,t){return"UPDATE_BLOCK_ATTRIBUTES"===e.type&&void 0!==t&&"UPDATE_BLOCK_ATTRIBUTES"===t.type&&C()(e.clientIds,t.clientIds)&&function(e,t){return C()(Object.keys(e),Object.keys(t))}(e.attributes,t.attributes)}function z(e,t){const n=e.tree,o=[...t],r=[...t];for(;o.length;){const e=o.shift();o.push(...e.innerBlocks),r.push(...e.innerBlocks)}for(const e of r)n.set(e.clientId,{});for(const t of r)n.set(t.clientId,Object.assign(n.get(t.clientId),{...e.byClientId.get(t.clientId),attributes:e.attributes.get(t.clientId),innerBlocks:t.innerBlocks.map((e=>n.get(e.clientId)))}))}function V(e,t,n=!1){const o=e.tree,r=new Set([]),l=new Set;for(const o of t){let t=n?o:e.parents.get(o);do{if(e.controlledInnerBlocks[t]){l.add(t);break}r.add(t),t=e.parents.get(t)}while(void 0!==t)}for(const e of r)o.set(e,{...o.get(e)});for(const t of r)o.get(t).innerBlocks=(e.order.get(t)||[]).map((e=>o.get(e)));for(const t of l)o.set("controlled||"+t,{innerBlocks:(e.order.get(t)||[]).map((e=>o.get(e)))})}const F=(0,m.pipe)(p.combineReducers,(e=>(t,n)=>{if(t&&"SAVE_REUSABLE_BLOCK_SUCCESS"===n.type){const{id:e,updatedId:o}=n;if(e===o)return t;(t={...t}).attributes=new Map(t.attributes),t.attributes.forEach(((n,r)=>{const{name:l}=t.byClientId.get(r);"core/block"===l&&n.ref===e&&t.attributes.set(r,{...n,ref:o})}))}return e(t,n)}),(e=>(t={},n)=>{const o=e(t,n);if(o===t)return t;switch(o.tree=t.tree?t.tree:new Map,n.type){case"RECEIVE_BLOCKS":case"INSERT_BLOCKS":o.tree=new Map(o.tree),z(o,n.blocks),V(o,n.rootClientId?[n.rootClientId]:[""],!0);break;case"UPDATE_BLOCK":o.tree=new Map(o.tree),o.tree.set(n.clientId,{...o.tree.get(n.clientId),...o.byClientId.get(n.clientId),attributes:o.attributes.get(n.clientId)}),V(o,[n.clientId],!1);break;case"SYNC_DERIVED_BLOCK_ATTRIBUTES":case"UPDATE_BLOCK_ATTRIBUTES":o.tree=new Map(o.tree),n.clientIds.forEach((e=>{o.tree.set(e,{...o.tree.get(e),attributes:o.attributes.get(e)})})),V(o,n.clientIds,!1);break;case"REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const e=function(e){const t={},n=[...e];for(;n.length;){const{innerBlocks:e,...o}=n.shift();n.push(...e),t[o.clientId]=!0}return t}(n.blocks);o.tree=new Map(o.tree),n.replacedClientIds.concat(n.replacedClientIds.filter((t=>!e[t])).map((e=>"controlled||"+e))).forEach((e=>{o.tree.delete(e)})),z(o,n.blocks),V(o,n.blocks.map((e=>e.clientId)),!1);const r=[];for(const e of n.clientIds)void 0===t.parents.get(e)||""!==t.parents.get(e)&&!o.byClientId.get(t.parents.get(e))||r.push(t.parents.get(e));V(o,r,!0);break}case"REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN":const e=[];for(const r of n.clientIds)void 0===t.parents.get(r)||""!==t.parents.get(r)&&!o.byClientId.get(t.parents.get(r))||e.push(t.parents.get(r));o.tree=new Map(o.tree),n.removedClientIds.concat(n.removedClientIds.map((e=>"controlled||"+e))).forEach((e=>{o.tree.delete(e)})),V(o,e,!0);break;case"MOVE_BLOCKS_TO_POSITION":{const e=[];n.fromRootClientId?e.push(n.fromRootClientId):e.push(""),n.toRootClientId&&e.push(n.toRootClientId),o.tree=new Map(o.tree),V(o,e,!0);break}case"MOVE_BLOCKS_UP":case"MOVE_BLOCKS_DOWN":{const e=[n.rootClientId?n.rootClientId:""];o.tree=new Map(o.tree),V(o,e,!0);break}case"SAVE_REUSABLE_BLOCK_SUCCESS":{const e=[];o.attributes.forEach(((t,r)=>{"core/block"===o.byClientId.get(r).name&&t.ref===n.updatedId&&e.push(r)})),o.tree=new Map(o.tree),e.forEach((e=>{o.tree.set(e,{...o.byClientId.get(e),attributes:o.attributes.get(e),innerBlocks:o.tree.get(e).innerBlocks})})),V(o,e,!1)}}return o}),(e=>(t,n)=>{const o=e=>{let o=e;for(let r=0;r(t,n)=>{if("REPLACE_INNER_BLOCKS"!==n.type)return e(t,n);const o={};if(Object.keys(t.controlledInnerBlocks).length){const e=[...n.blocks];for(;e.length;){const{innerBlocks:n,...r}=e.shift();e.push(...n),t.controlledInnerBlocks[r.clientId]&&(o[r.clientId]=!0)}}let r=t;t.order.get(n.rootClientId)&&(r=e(r,{type:"REMOVE_BLOCKS",keepControlledInnerBlocks:o,clientIds:t.order.get(n.rootClientId)}));let l=r;if(n.blocks.length){l=e(l,{...n,type:"INSERT_BLOCKS",index:0});const r=new Map(l.order);Object.keys(o).forEach((e=>{t.order.get(e)&&r.set(e,t.order.get(e))})),l.order=r,l.tree=new Map(l.tree),Object.keys(o).forEach((e=>{const n=`controlled||${e}`;t.tree.has(n)&&l.tree.set(n,t.tree.get(n))}))}return l}),(e=>(t,n)=>{if("RESET_BLOCKS"===n.type){const e={...t,byClientId:new Map(L(n.blocks)),attributes:new Map(O(n.blocks)),order:R(n.blocks),parents:new Map(N(n.blocks)),controlledInnerBlocks:{}};return e.tree=new Map(t?.tree),z(e,n.blocks),e.tree.set("",{innerBlocks:n.blocks.map((t=>e.tree.get(t.clientId)))}),e}return e(t,n)}),(function(e){let t,n,o=!1;return(r,l)=>{let i,s=e(r,l);var a;"SET_EXPLICIT_PERSISTENT"===l.type&&(n=l.isPersistentChange,i=null===(a=r.isPersistentChange)||void 0===a||a);if(void 0!==n)return i=n,i===s.isPersistentChange?s:{...s,isPersistentChange:i};const c="MARK_LAST_CHANGE_AS_PERSISTENT"===l.type||o;var u;return r!==s||c?(s={...s,isPersistentChange:c?!o:!D(l,t)},t=l,o="MARK_NEXT_CHANGE_AS_NOT_PERSISTENT"===l.type,s):(o="MARK_NEXT_CHANGE_AS_NOT_PERSISTENT"===l.type,i=null===(u=r?.isPersistentChange)||void 0===u||u,r.isPersistentChange===i?r:{...s,isPersistentChange:i})}}),(function(e){const t=new Set(["RECEIVE_BLOCKS"]);return(n,o)=>{const r=e(n,o);return r!==n&&(r.isIgnoredChange=t.has(o.type)),r}}),(e=>(t,n)=>{if("SET_HAS_CONTROLLED_INNER_BLOCKS"===n.type){const o=e(t,{type:"REPLACE_INNER_BLOCKS",rootClientId:n.clientId,blocks:[]});return e(o,n)}return e(t,n)}))({byClientId(e=new Map,t){switch(t.type){case"RECEIVE_BLOCKS":case"INSERT_BLOCKS":{const n=new Map(e);return L(t.blocks).forEach((([e,t])=>{n.set(e,t)})),n}case"UPDATE_BLOCK":{if(!e.has(t.clientId))return e;const{attributes:n,...o}=t.updates;if(0===Object.values(o).length)return e;const r=new Map(e);return r.set(t.clientId,{...e.get(t.clientId),...o}),r}case"REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN":{if(!t.blocks)return e;const n=new Map(e);return t.replacedClientIds.forEach((e=>{n.delete(e)})),L(t.blocks).forEach((([e,t])=>{n.set(e,t)})),n}case"REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const n=new Map(e);return t.removedClientIds.forEach((e=>{n.delete(e)})),n}}return e},attributes(e=new Map,t){switch(t.type){case"RECEIVE_BLOCKS":case"INSERT_BLOCKS":{const n=new Map(e);return O(t.blocks).forEach((([e,t])=>{n.set(e,t)})),n}case"UPDATE_BLOCK":{if(!e.get(t.clientId)||!t.updates.attributes)return e;const n=new Map(e);return n.set(t.clientId,{...e.get(t.clientId),...t.updates.attributes}),n}case"SYNC_DERIVED_BLOCK_ATTRIBUTES":case"UPDATE_BLOCK_ATTRIBUTES":{if(t.clientIds.every((t=>!e.get(t))))return e;let o=!1;const r=new Map(e);for(const l of t.clientIds){var n;const i=Object.entries(t.uniqueByBlock?t.attributes[l]:null!==(n=t.attributes)&&void 0!==n?n:{});if(0===i.length)continue;let s=!1;const a=e.get(l),c={};i.forEach((([e,t])=>{a[e]!==t&&(s=!0,c[e]=t)})),o=o||s,s&&r.set(l,{...a,...c})}return o?r:e}case"REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN":{if(!t.blocks)return e;const n=new Map(e);return t.replacedClientIds.forEach((e=>{n.delete(e)})),O(t.blocks).forEach((([e,t])=>{n.set(e,t)})),n}case"REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const n=new Map(e);return t.removedClientIds.forEach((e=>{n.delete(e)})),n}}return e},order(e=new Map,t){switch(t.type){case"RECEIVE_BLOCKS":{var n;const o=R(t.blocks),r=new Map(e);return o.forEach(((e,t)=>{""!==t&&r.set(t,e)})),r.set("",(null!==(n=e.get(""))&&void 0!==n?n:[]).concat(o[""])),r}case"INSERT_BLOCKS":{const{rootClientId:n=""}=t,o=e.get(n)||[],r=R(t.blocks,n),{index:l=o.length}=t,i=new Map(e);return r.forEach(((e,t)=>{i.set(t,e)})),i.set(n,T(o,r.get(n),l)),i}case"MOVE_BLOCKS_TO_POSITION":{var o;const{fromRootClientId:n="",toRootClientId:r="",clientIds:l}=t,{index:i=e.get(r).length}=t;if(n===r){const t=e.get(r).indexOf(l[0]),n=new Map(e);return n.set(r,M(e.get(r),t,i,l.length)),n}const s=new Map(e);return s.set(n,null!==(o=e.get(n)?.filter((e=>!l.includes(e))))&&void 0!==o?o:[]),s.set(r,T(e.get(r),l,i)),s}case"MOVE_BLOCKS_UP":{const{clientIds:n,rootClientId:o=""}=t,r=n[0],l=e.get(o);if(!l.length||r===l[0])return e;const i=l.indexOf(r),s=new Map(e);return s.set(o,M(l,i,i-1,n.length)),s}case"MOVE_BLOCKS_DOWN":{const{clientIds:n,rootClientId:o=""}=t,r=n[0],l=n[n.length-1],i=e.get(o);if(!i.length||l===i[i.length-1])return e;const s=i.indexOf(r),a=new Map(e);return a.set(o,M(i,s,s+1,n.length)),a}case"REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const{clientIds:n}=t;if(!t.blocks)return e;const o=R(t.blocks),r=new Map(e);return t.replacedClientIds.forEach((e=>{r.delete(e)})),o.forEach(((e,t)=>{""!==t&&r.set(t,e)})),r.forEach(((e,t)=>{const l=Object.values(e).reduce(((e,t)=>t===n[0]?[...e,...o.get("")]:(-1===n.indexOf(t)&&e.push(t),e)),[]);r.set(t,l)})),r}case"REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const n=new Map(e);return t.removedClientIds.forEach((e=>{n.delete(e)})),n.forEach(((e,o)=>{var r;const l=null!==(r=e?.filter((e=>!t.removedClientIds.includes(e))))&&void 0!==r?r:[];l.length!==e.length&&n.set(o,l)})),n}}return e},parents(e=new Map,t){switch(t.type){case"RECEIVE_BLOCKS":{const n=new Map(e);return N(t.blocks).forEach((([e,t])=>{n.set(e,t)})),n}case"INSERT_BLOCKS":{const n=new Map(e);return N(t.blocks,t.rootClientId||"").forEach((([e,t])=>{n.set(e,t)})),n}case"MOVE_BLOCKS_TO_POSITION":{const n=new Map(e);return t.clientIds.forEach((e=>{n.set(e,t.toRootClientId||"")})),n}case"REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const n=new Map(e);return t.replacedClientIds.forEach((e=>{n.delete(e)})),N(t.blocks,e.get(t.clientIds[0])).forEach((([e,t])=>{n.set(e,t)})),n}case"REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN":{const n=new Map(e);return t.removedClientIds.forEach((e=>{n.delete(e)})),n}}return e},controlledInnerBlocks(e={},{type:t,clientId:n,hasControlledInnerBlocks:o}){return"SET_HAS_CONTROLLED_INNER_BLOCKS"===t?{...e,[n]:o}:e}});function H(e={},t){switch(t.type){case"CLEAR_SELECTED_BLOCK":return e.clientId?{}:e;case"SELECT_BLOCK":return t.clientId===e.clientId?e:{clientId:t.clientId};case"REPLACE_INNER_BLOCKS":case"INSERT_BLOCKS":return t.updateSelection&&t.blocks.length?{clientId:t.blocks[0].clientId}:e;case"REMOVE_BLOCKS":return t.clientIds&&t.clientIds.length&&-1!==t.clientIds.indexOf(e.clientId)?{}:e;case"REPLACE_BLOCKS":{if(-1===t.clientIds.indexOf(e.clientId))return e;const n=t.blocks[t.indexToSelect]||t.blocks[t.blocks.length-1];return n?n.clientId===e.clientId?e:{clientId:n.clientId}:{}}}return e}const G=(0,p.combineReducers)({blocks:F,isTyping:function(e=!1,t){switch(t.type){case"START_TYPING":return!0;case"STOP_TYPING":return!1}return e},isBlockInterfaceHidden:function(e=!1,t){switch(t.type){case"HIDE_BLOCK_INTERFACE":return!0;case"SHOW_BLOCK_INTERFACE":return!1}return e},draggedBlocks:function(e=[],t){switch(t.type){case"START_DRAGGING_BLOCKS":return t.clientIds;case"STOP_DRAGGING_BLOCKS":return[]}return e},selection:function(e={},t){switch(t.type){case"SELECTION_CHANGE":return t.clientId?{selectionStart:{clientId:t.clientId,attributeKey:t.attributeKey,offset:t.startOffset},selectionEnd:{clientId:t.clientId,attributeKey:t.attributeKey,offset:t.endOffset}}:{selectionStart:t.start||e.selectionStart,selectionEnd:t.end||e.selectionEnd};case"RESET_SELECTION":const{selectionStart:n,selectionEnd:o}=t;return{selectionStart:n,selectionEnd:o};case"MULTI_SELECT":const{start:r,end:l}=t;return r===e.selectionStart?.clientId&&l===e.selectionEnd?.clientId?e:{selectionStart:{clientId:r},selectionEnd:{clientId:l}};case"RESET_BLOCKS":const i=e?.selectionStart?.clientId,s=e?.selectionEnd?.clientId;if(!i&&!s)return e;if(!t.blocks.some((e=>e.clientId===i)))return{selectionStart:{},selectionEnd:{}};if(!t.blocks.some((e=>e.clientId===s)))return{...e,selectionEnd:e.selectionStart}}const n=H(e.selectionStart,t),o=H(e.selectionEnd,t);return n===e.selectionStart&&o===e.selectionEnd?e:{selectionStart:n,selectionEnd:o}},isMultiSelecting:function(e=!1,t){switch(t.type){case"START_MULTI_SELECT":return!0;case"STOP_MULTI_SELECT":return!1}return e},isSelectionEnabled:function(e=!0,t){return"TOGGLE_SELECTION"===t.type?t.isSelectionEnabled:e},initialPosition:function(e=null,t){return"REPLACE_BLOCKS"===t.type&&void 0!==t.initialPosition||["MULTI_SELECT","SELECT_BLOCK","RESET_SELECTION","INSERT_BLOCKS","REPLACE_INNER_BLOCKS"].includes(t.type)?t.initialPosition:e},blocksMode:function(e={},t){if("TOGGLE_BLOCK_MODE"===t.type){const{clientId:n}=t;return{...e,[n]:e[n]&&"html"===e[n]?"visual":"html"}}return e},blockListSettings:(e={},t)=>{switch(t.type){case"REPLACE_BLOCKS":case"REMOVE_BLOCKS":return Object.fromEntries(Object.entries(e).filter((([e])=>!t.clientIds.includes(e))));case"UPDATE_BLOCK_LIST_SETTINGS":{const{clientId:n}=t;if(!t.settings){if(e.hasOwnProperty(n)){const{[n]:t,...o}=e;return o}return e}return C()(e[n],t.settings)?e:{...e,[n]:t.settings}}}return e},insertionPoint:function(e=null,t){switch(t.type){case"SHOW_INSERTION_POINT":{const{rootClientId:n,index:o,__unstableWithInserter:r,operation:l,nearestSide:i}=t,s={rootClientId:n,index:o,__unstableWithInserter:r,operation:l,nearestSide:i};return C()(e,s)?e:s}case"HIDE_INSERTION_POINT":return null}return e},template:function(e={isValid:!0},t){return"SET_TEMPLATE_VALIDITY"===t.type?{...e,isValid:t.isValid}:e},settings:function(e=I,t){return"UPDATE_SETTINGS"===t.type?t.reset?{...I,...t.settings}:{...e,...t.settings}:e},preferences:function(e=B,t){switch(t.type){case"INSERT_BLOCKS":case"REPLACE_BLOCKS":return t.blocks.reduce(((e,n)=>{const{attributes:o,name:r}=n;let l=r;const i=(0,p.select)(u.store).getActiveBlockVariation(r,o);return i?.name&&(l+="/"+i.name),"core/block"===r&&(l+="/"+o.ref),{...e,insertUsage:{...e.insertUsage,[l]:{time:t.time,count:e.insertUsage[l]?e.insertUsage[l].count+1:1}}}}),e)}return e},lastBlockAttributesChange:function(e=null,t){switch(t.type){case"UPDATE_BLOCK":if(!t.updates.attributes)break;return{[t.clientId]:t.updates.attributes};case"UPDATE_BLOCK_ATTRIBUTES":return t.clientIds.reduce(((e,n)=>({...e,[n]:t.uniqueByBlock?t.attributes[n]:t.attributes})),{})}return e},lastFocus:function(e=!1,t){return"LAST_FOCUS"===t.type?t.lastFocus:e},editorMode:function(e="edit",t){return"INSERT_BLOCKS"===t.type&&"navigation"===e?"edit":"SET_EDITOR_MODE"===t.type?t.mode:e},hasBlockMovingClientId:function(e=null,t){return"SET_BLOCK_MOVING_MODE"===t.type?t.hasBlockMovingClientId:"SET_EDITOR_MODE"===t.type?null:e},highlightedBlock:function(e,t){switch(t.type){case"TOGGLE_BLOCK_HIGHLIGHT":const{clientId:n,isHighlighted:o}=t;return o?n:e===n?null:e;case"SELECT_BLOCK":if(t.clientId!==e)return null}return e},lastBlockInserted:function(e={},t){switch(t.type){case"INSERT_BLOCKS":case"REPLACE_BLOCKS":if(!t.blocks.length)return e;const n=t.blocks.map((e=>e.clientId)),o=t.meta?.source;return{clientIds:n,source:o};case"RESET_BLOCKS":return{}}return e},temporarilyEditingAsBlocks:function(e="",t){return"SET_TEMPORARILY_EDITING_AS_BLOCKS"===t.type?t.temporarilyEditingAsBlocks:e},temporarilyEditingFocusModeRevert:function(e="",t){return"SET_TEMPORARILY_EDITING_AS_BLOCKS"===t.type?t.focusModeToRevert:e},blockVisibility:function(e={},t){return"SET_BLOCK_VISIBILITY"===t.type?{...e,...t.updates}:e},blockEditingModes:function(e=new Map,t){switch(t.type){case"SET_BLOCK_EDITING_MODE":return new Map(e).set(t.clientId,t.mode);case"UNSET_BLOCK_EDITING_MODE":{const n=new Map(e);return n.delete(t.clientId),n}case"RESET_BLOCKS":return e.has("")?(new Map).set("",e.get("")):e}return e},styleOverrides:function(e=new Map,t){switch(t.type){case"SET_STYLE_OVERRIDE":return new Map(e).set(t.id,t.style);case"DELETE_STYLE_OVERRIDE":{const n=new Map(e);return n.delete(t.id),n}}return e},removalPromptData:function(e=!1,t){switch(t.type){case"DISPLAY_BLOCK_REMOVAL_PROMPT":const{clientIds:e,selectPrevious:n,blockNamesForPrompt:o}=t;return{clientIds:e,selectPrevious:n,blockNamesForPrompt:o};case"CLEAR_BLOCK_REMOVAL_PROMPT":return!1}return e},blockRemovalRules:function(e=!1,t){return"SET_BLOCK_REMOVAL_RULES"===t.type?t.rules:e},openedBlockSettingsMenu:function(e=null,t){var n;return"SET_OPENED_BLOCK_SETTINGS_MENU"===t.type?null!==(n=t?.clientId)&&void 0!==n?n:null:e},registeredInserterMediaCategories:function(e=[],t){return"REGISTER_INSERTER_MEDIA_CATEGORY"===t.type?[...e,t.category]:e},blockBindingsSources:function(e={},t){return"REGISTER_BLOCK_BINDINGS_SOURCE"===t.type?{...e,[t.sourceName]:{label:t.sourceLabel,useSource:t.useSource,lockAttributesEditing:t.lockAttributesEditing}}:e},blockPatterns:function(e=[],t){return"RECEIVE_BLOCK_PATTERNS"===t.type?t.patterns:e}});var U=function(e){return(t,n)=>{const o=e(t,n);return t?(o.automaticChangeStatus=t.automaticChangeStatus,"MARK_AUTOMATIC_CHANGE"===n.type?{...o,automaticChangeStatus:"pending"}:"MARK_AUTOMATIC_CHANGE_FINAL"===n.type&&"pending"===t.automaticChangeStatus?{...o,automaticChangeStatus:"final"}:o.blocks===t.blocks&&o.selection===t.selection||"final"!==o.automaticChangeStatus&&o.selection!==t.selection?o:{...o,automaticChangeStatus:void 0}):o}}(G),$={};function j(e){return[e]}function W(e,t,n){var o;if(e.length!==t.length)return!1;for(o=n;o"boolean"==typeof e?e:Array.isArray(e)?!(!e.includes("core/post-content")||null!==t)||e.includes(t):n,Q=(e,t)=>{if("boolean"==typeof t)return t;const n=[...e];for(;n.length>0;){const e=n.shift();if(!X(t,e.name||e.blockName,!0))return!1;e.innerBlocks?.forEach((e=>{n.push(e)}))}return!0},J=e=>[e.settings.__experimentalBlockPatterns,e.settings.__experimentalUserPatternCategories,e.settings.__experimentalReusableBlocks,e.settings.__experimentalFetchBlockPatterns,e.blockPatterns],ee=(e,t,n)=>(o,r)=>{let l,i;if("function"==typeof e?(l=e(o),i=e(r)):(l=o[e],i=r[e]),l>i)return"asc"===n?1:-1;if(i>l)return"asc"===n?-1:1;const s=t.findIndex((e=>e===o)),a=t.findIndex((e=>e===r));return s>a?1:a>s?-1:0};function te(e,t,n="asc"){return e.concat().sort(ee(t,e,n))}const ne="core/block-editor";var oe=window.wp.privateApis;const{lock:re,unlock:le}=(0,oe.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.","@wordpress/block-editor"),ie=[],se=new Set;function ae(e,t){const n=e.blocks.byClientId.get(t),o="core/social-link";if("web"!==d.Platform.OS&&n?.name===o){const n=e.blocks.attributes.get(t),{service:r}=null!=n?n:{};return r?`${o}-${r}`:o}return n?n.name:null}function ce(e,t){const n=e.blocks.byClientId.get(t);return!!n&&n.isValid}function ue(e,t){return e.blocks.byClientId.get(t)?e.blocks.attributes.get(t):null}function de(e,t){return e.blocks.byClientId.has(t)?e.blocks.tree.get(t):null}const pe=K(((e,t)=>e.blocks.byClientId.has(t)?{...e.blocks.byClientId.get(t),attributes:ue(e,t)}:null),((e,t)=>[e.blocks.byClientId.get(t),e.blocks.attributes.get(t)]));function me(e,t){const n=t&&cn(e,t)?"controlled||"+t:t||"";return e.blocks.tree.get(n)?.innerBlocks||ie}const fe=K(((e,t)=>(w()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdWithClientIdsTree",{since:"6.3",version:"6.5"}),{clientId:t,innerBlocks:he(e,t)})),(e=>[e.blocks.order])),he=K(((e,t="")=>(w()("wp.data.select( 'core/block-editor' ).__unstableGetClientIdsTree",{since:"6.3",version:"6.5"}),nt(e,t).map((t=>fe(e,t))))),(e=>[e.blocks.order])),ge=K(((e,t)=>{const n=Array.isArray(t)?t:[t],o=[];for(const t of n)for(const n of nt(e,t))o.push(n,...ge(e,n));return o}),(e=>[e.blocks.order])),be=K((e=>{const t=[];for(const n of nt(e))t.push(n,...ge(e,n));return t}),(e=>[e.blocks.order])),ve=K(((e,t)=>{const n=be(e);return t?n.reduce(((n,o)=>e.blocks.byClientId.get(o).name===t?n+1:n),0):n.length}),(e=>[e.blocks.order,e.blocks.byClientId])),ke=K(((e,t)=>{if(!t)return ie;const n=Array.isArray(t)?t:[t],o=be(e).filter((t=>{const o=e.blocks.byClientId.get(t);return n.includes(o.name)}));return o.length>0?o:ie}),(e=>[e.blocks.order,e.blocks.byClientId]));function _e(e,t){return w()("wp.data.select( 'core/block-editor' ).__experimentalGetGlobalBlocksByName",{since:"6.5",alternative:"wp.data.select( 'core/block-editor' ).getBlocksByName"}),ke(e,t)}const ye=K(((e,t)=>(Array.isArray(t)?t:[t]).map((t=>de(e,t)))),((e,t)=>(Array.isArray(t)?t:[t]).map((t=>e.blocks.tree.get(t))))),Ee=K(((e,t)=>ye(e,t).filter(Boolean).map((e=>e.name))),((e,t)=>ye(e,t)));function we(e,t){return nt(e,t).length}function Se(e){return e.selection.selectionStart}function Ce(e){return e.selection.selectionEnd}function xe(e){return e.selection.selectionStart.clientId}function Be(e){return e.selection.selectionEnd.clientId}function Ie(e){const t=Ge(e).length;return t||(e.selection.selectionStart.clientId?1:0)}function Te(e){const{selectionStart:t,selectionEnd:n}=e.selection;return!!t.clientId&&t.clientId===n.clientId}function Me(e){const{selectionStart:t,selectionEnd:n}=e.selection,{clientId:o}=t;return o&&o===n.clientId?o:null}function Pe(e){const t=Me(e);return t?de(e,t):null}function Re(e,t){return e.blocks.parents.has(t)?e.blocks.parents.get(t):null}const Ne=K(((e,t,n=!1)=>{const o=[];let r=t;for(;e.blocks.parents.get(r);)r=e.blocks.parents.get(r),o.push(r);return o.length?n?o:o.reverse():ie}),(e=>[e.blocks.parents])),Ae=K(((e,t,n,o=!1)=>{const r=Ne(e,t,o),l=Array.isArray(n)?e=>n.includes(e):e=>n===e;return r.filter((t=>l(ae(e,t))))}),(e=>[e.blocks.parents]));function Le(e,t){let n,o=t;do{n=o,o=e.blocks.parents.get(o)}while(o);return n}function Oe(e,t){const n=Me(e),o=[...Ne(e,t),t],r=[...Ne(e,n),n];let l;const i=Math.min(o.length,r.length);for(let e=0;e{const{selectionStart:t,selectionEnd:n}=e.selection;if(!t.clientId||!n.clientId)return ie;if(t.clientId===n.clientId)return[t.clientId];const o=Re(e,t.clientId);if(null===o)return ie;const r=nt(e,o),l=r.indexOf(t.clientId),i=r.indexOf(n.clientId);return l>i?r.slice(i,l+1):r.slice(l,i+1)}),(e=>[e.blocks.order,e.selection.selectionStart.clientId,e.selection.selectionEnd.clientId]));function Ge(e){const{selectionStart:t,selectionEnd:n}=e.selection;return t.clientId===n.clientId?ie:He(e)}const Ue=K((e=>{const t=Ge(e);return t.length?t.map((t=>de(e,t))):ie}),(e=>[...He.getDependants(e),e.blocks.byClientId,e.blocks.order,e.blocks.attributes]));function $e(e){return Ge(e)[0]||null}function je(e){const t=Ge(e);return t[t.length-1]||null}function We(e,t){return $e(e)===t}function Ke(e,t){return-1!==Ge(e).indexOf(t)}const Ze=K(((e,t)=>{let n=t,o=!1;for(;n&&!o;)n=Re(e,n),o=Ke(e,n);return o}),(e=>[e.blocks.order,e.selection.selectionStart.clientId,e.selection.selectionEnd.clientId]));function qe(e){const{selectionStart:t,selectionEnd:n}=e.selection;return t.clientId===n.clientId?null:t.clientId||null}function Ye(e){const{selectionStart:t,selectionEnd:n}=e.selection;return t.clientId===n.clientId?null:n.clientId||null}function Xe(e){const t=Se(e),n=Ce(e);return!t.attributeKey&&!n.attributeKey&&void 0===t.offset&&void 0===n.offset}function Qe(e){const t=Se(e),n=Ce(e);return!!t&&!!n&&t.clientId===n.clientId&&t.attributeKey===n.attributeKey&&t.offset===n.offset}function Je(e){return He(e).some((t=>{const n=ae(e,t);return!(0,u.getBlockType)(n).merge}))}function et(e,t){const n=Se(e),o=Ce(e);if(n.clientId===o.clientId)return!1;if(!n.attributeKey||!o.attributeKey||void 0===n.offset||void 0===o.offset)return!1;const r=Re(e,n.clientId);if(r!==Re(e,o.clientId))return!1;const l=nt(e,r);let i,s;l.indexOf(n.clientId)>l.indexOf(o.clientId)?(i=o,s=n):(i=n,s=o);const a=t?s.clientId:i.clientId,c=t?i.clientId:s.clientId,d=ae(e,a);if(!(0,u.getBlockType)(d).merge)return!1;const p=de(e,c);if(p.name===d)return!0;const m=(0,u.switchToBlockType)(p,d);return m&&m.length}const tt=e=>{const t=Se(e),n=Ce(e);if(t.clientId===n.clientId)return ie;if(!t.attributeKey||!n.attributeKey||void 0===t.offset||void 0===n.offset)return ie;const o=Re(e,t.clientId);if(o!==Re(e,n.clientId))return ie;const r=nt(e,o),l=r.indexOf(t.clientId),i=r.indexOf(n.clientId),[s,a]=l>i?[n,t]:[t,n],c=de(e,s.clientId),u=de(e,a.clientId),d=c.attributes[s.attributeKey],p=u.attributes[a.attributeKey];let m=(0,Y.create)({html:d}),f=(0,Y.create)({html:p});return m=(0,Y.remove)(m,0,s.offset),f=(0,Y.remove)(f,a.offset,f.text.length),[{...c,attributes:{...c.attributes,[s.attributeKey]:(0,Y.toHTMLString)({value:m})}},{...u,attributes:{...u.attributes,[a.attributeKey]:(0,Y.toHTMLString)({value:f})}}]};function nt(e,t){return e.blocks.order.get(t||"")||ie}function ot(e,t){return nt(e,Re(e,t)).indexOf(t)}function rt(e,t){const{selectionStart:n,selectionEnd:o}=e.selection;return n.clientId===o.clientId&&n.clientId===t}function lt(e,t,n=!1){return nt(e,t).some((t=>rt(e,t)||Ke(e,t)||n&<(e,t,n)))}function it(e,t,n=!1){return nt(e,t).some((t=>ht(e,t)||n&&it(e,t,n)))}function st(e,t){if(!t)return!1;const n=Ge(e),o=n.indexOf(t);return o>-1&&oht(e,t)))}function bt(){return w()('wp.data.select( "core/block-editor" ).isCaretWithinFormattedText',{since:"6.1",version:"6.3"}),!1}const vt=K((e=>{let t,n;const{insertionPoint:o,selection:{selectionEnd:r}}=e;if(null!==o)return o;const{clientId:l}=r;return l?(t=Re(e,l)||void 0,n=ot(e,r.clientId)+1):n=nt(e).length,{rootClientId:t,index:n}}),(e=>[e.insertionPoint,e.selection.selectionEnd.clientId,e.blocks.parents,e.blocks.order]));function kt(e){return null!==e.insertionPoint}function _t(e){return e.template.isValid}function yt(e){return e.settings.template}function Et(e,t){var n,o;return t?null!==(n=qt(e,t)?.templateLock)&&void 0!==n&&n:null!==(o=e.settings.templateLock)&&void 0!==o&&o}const wt=(e,t,n=null)=>{let o;if(t&&"object"==typeof t?(o=t,t=o.name):o=(0,u.getBlockType)(t),!o)return!1;const{allowedBlockTypes:r}=Yt(e);if(!X(r,t,!0))return!1;if(!!Et(e,n))return!1;if("disabled"===kn(e,null!=n?n:""))return!1;const l=qt(e,n);if(n&&void 0===l)return!1;const i=l?.allowedBlocks,s=X(i,t),a=o.parent,c=ae(e,n),d=X(a,c);let p=!0;const m=o.ancestor;if(m){p=[n,...Ne(e,n)].some((t=>X(m,ae(e,t))))}const h=p&&(null===s&&null===d||!0===s||!0===d);return h?(0,f.applyFilters)("blockEditor.__unstableCanInsertBlockType",h,o,n,{getBlock:de.bind(null,e),getBlockParentsByBlockName:Ae.bind(null,e)}):h},St=K(wt,((e,t,n)=>[e.blockListSettings[n],e.blocks.byClientId.get(n),e.settings.allowedBlockTypes,e.settings.templateLock,e.blockEditingModes]));function Ct(e,t,n=null){return t.every((t=>St(e,ae(e,t),n)))}function xt(e,t,n=null){const o=ue(e,t);return null===o||(void 0!==o.lock?.remove?!o.lock.remove:!Et(e,n)&&"disabled"!==kn(e,n))}function Bt(e,t,n=null){return t.every((t=>xt(e,t,n)))}function It(e,t,n=null){const o=ue(e,t);return null===o||(void 0!==o.lock?.move?!o.lock.move:"all"!==Et(e,n)&&"disabled"!==kn(e,n))}function Tt(e,t,n=null){return t.every((t=>It(e,t,n)))}function Mt(e,t){const n=ue(e,t);if(null===n)return!0;const{lock:o}=n;return!o?.edit}function Pt(e,t){return!!(0,u.hasBlockSupport)(t,"lock",!0)&&!!e.settings?.canLockBlocks}function Rt(e,t){var n;return null!==(n=e.preferences.insertUsage?.[t])&&void 0!==n?n:null}const Nt=(e,t,n)=>!!(0,u.hasBlockSupport)(t,"inserter",!0)&&wt(e,t.name,n),At=(e,t)=>{if(!e)return t;const n=Date.now()-e;switch(!0){case n<36e5:return 4*t;case n<864e5:return 2*t;case n<6048e5:return t/2;default:return t/4}},Lt=(e,{buildScope:t="inserter"})=>n=>{const o=n.name;let r=!1;(0,u.hasBlockSupport)(n.name,"multiple",!0)||(r=ye(e,be(e)).some((({name:e})=>e===n.name)));const{time:l,count:i=0}=Rt(e,o)||{},s={id:o,name:n.name,title:n.title,icon:n.icon,isDisabled:r,frecency:At(l,i)};if("transform"===t)return s;const a=(0,u.getBlockVariations)(n.name,"inserter");return{...s,initialAttributes:{},description:n.description,category:n.category,keywords:n.keywords,variations:a,example:n.example,utility:1}},Ot=K(((e,t=null)=>{const n=wt(e,"core/block",t)?nn(e).map((t=>{const n=t.wp_pattern_sync_status?q:{src:q,foreground:"var(--wp-block-synced-color)"},o=`core/block/${t.id}`,{time:r,count:l=0}=Rt(e,o)||{},i=At(r,l);return{id:o,name:"core/block",initialAttributes:{ref:t.id},title:t.title?.raw,icon:n,category:"reusable",keywords:["reusable"],isDisabled:!1,utility:1,frecency:i,content:t.content?.raw,syncStatus:t.wp_pattern_sync_status}})):[],o=Lt(e,{buildScope:"inserter"}),r=(0,u.getBlockTypes)().filter((n=>Nt(e,n,t))).map(o).reduce(((t,n)=>{const{variations:o=[]}=n;if(o.some((({isDefault:e})=>e))||t.push(n),o.length){const r=((e,t)=>n=>{const o=`${t.id}/${n.name}`,{time:r,count:l=0}=Rt(e,o)||{};return{...t,id:o,icon:n.icon||t.icon,title:n.title||t.title,description:n.description||t.description,category:n.category||t.category,example:n.hasOwnProperty("example")?n.example:t.example,initialAttributes:{...t.initialAttributes,...n.attributes},innerBlocks:n.innerBlocks,keywords:n.keywords||t.keywords,frecency:At(r,l)}})(e,n);t.push(...o.map(r))}return t}),[]),{core:l,noncore:i}=r.reduce(((e,t)=>{const{core:n,noncore:o}=e;return(t.name.startsWith("core/")?n:o).push(t),e}),{core:[],noncore:[]});return[...[...l,...i],...n]}),((e,t)=>[e.blockListSettings[t],e.blocks.byClientId.get(t),e.blocks.order,e.preferences.insertUsage,e.settings.allowedBlockTypes,e.settings.templateLock,nn(e),(0,u.getBlockTypes)()])),Dt=K(((e,t,n=null)=>{const o=Array.isArray(t)?t:[t],r=Lt(e,{buildScope:"transform"}),l=(0,u.getBlockTypes)().filter((t=>Nt(e,t,n))).map(r),i=Object.fromEntries(Object.entries(l).map((([,e])=>[e.name,e]))),s=(0,u.getPossibleBlockTransformations)(o).reduce(((e,t)=>(i[t?.name]&&e.push(i[t.name]),e)),[]);return te(s,(e=>i[e.name].frecency),"desc")}),((e,t,n)=>[e.blockListSettings[n],e.blocks.byClientId.get(n),e.preferences.insertUsage,e.settings.allowedBlockTypes,e.settings.templateLock,(0,u.getBlockTypes)()])),zt=K(((e,t=null)=>{if((0,u.getBlockTypes)().some((n=>Nt(e,n,t))))return!0;return wt(e,"core/block",t)&&nn(e).length>0}),((e,t)=>[e.blockListSettings[t],e.blocks.byClientId.get(t),e.settings.allowedBlockTypes,e.settings.templateLock,nn(e),(0,u.getBlockTypes)()])),Vt=K(((e,t=null)=>{if(!t)return;const n=(0,u.getBlockTypes)().filter((n=>Nt(e,n,t)));return wt(e,"core/block",t)&&nn(e).length>0&&n.push("core/block"),n}),((e,t)=>[e.blockListSettings[t],e.blocks.byClientId.get(t),e.settings.allowedBlockTypes,e.settings.templateLock,nn(e),(0,u.getBlockTypes)()])),Ft=K(((e,t=null)=>(w()('wp.data.select( "core/block-editor" ).__experimentalGetAllowedBlocks',{alternative:'wp.data.select( "core/block-editor" ).getAllowedBlocks',since:"6.2",version:"6.4"}),Vt(e,t))),((e,t)=>[...Vt.getDependants(e,t)])),Ht=K(((e,t=null)=>{if(!t)return;const n=e.blockListSettings[t]?.defaultBlock,o=e.blockListSettings[t]?.directInsert;return n&&o?"function"==typeof o?o(de(e,t))?n:null:n:void 0}),((e,t)=>[e.blockListSettings[t],e.blocks.tree.get(t)])),Gt=K(((e,t=null)=>(w()('wp.data.select( "core/block-editor" ).__experimentalGetDirectInsertBlock',{alternative:'wp.data.select( "core/block-editor" ).getDirectInsertBlock',since:"6.3",version:"6.4"}),Ht(e,t))),((e,t)=>[e.blockListSettings[t],e.blocks.tree.get(t)])),Ut=(0,p.createRegistrySelector)((e=>K(((t,n)=>{const{getAllPatterns:o}=le(e(ne)),r=o().find((({name:e})=>e===n));return r?{...r,blocks:(0,u.parse)(r.content,{__unstableSkipMigrationLogs:!0})}:null}),J))),$t=(e,t)=>[...J(e),e.settings.allowedBlockTypes,e.settings.templateLock,e.blockListSettings[t],e.blocks.byClientId.get(t)],jt=(0,p.createRegistrySelector)((e=>K(((t,n=null)=>{const{getAllPatterns:o,__experimentalGetParsedPattern:r}=le(e(ne)),l=o(),{allowedBlockTypes:i}=Yt(t),s=l.filter((({inserter:e=!0})=>!!e)).map((({name:e})=>r(e))),a=s.filter((({blocks:e})=>Q(e,i))),c=a.filter((({blocks:e})=>e.every((({name:e})=>St(t,e,n)))));return c}),$t))),Wt=(0,p.createRegistrySelector)((e=>K(((t,n,o=null)=>{if(!n)return ie;const r=e(ne).__experimentalGetAllowedPatterns(o),l=Array.isArray(n)?n:[n],i=r.filter((e=>e?.blockTypes?.some?.((e=>l.includes(e)))));return 0===i.length?ie:i}),((e,t,n)=>$t(e,n))))),Kt=(0,p.createRegistrySelector)((e=>(w()('wp.data.select( "core/block-editor" ).__experimentalGetPatternsByBlockTypes',{alternative:'wp.data.select( "core/block-editor" ).getPatternsByBlockTypes',since:"6.2",version:"6.4"}),e(ne).getPatternsByBlockTypes))),Zt=(0,p.createRegistrySelector)((e=>K(((t,n,o=null)=>{if(!n)return ie;if(n.some((({clientId:e,innerBlocks:n})=>n.length||cn(t,e))))return ie;const r=Array.from(new Set(n.map((({name:e})=>e))));return e(ne).getPatternsByBlockTypes(r,o)}),((e,t,n)=>$t(e,n)))));function qt(e,t){return e.blockListSettings[t]}function Yt(e){return e.settings}function Xt(e){return e.blocks.isPersistentChange}const Qt=K(((e,t=[])=>t.reduce(((t,n)=>e.blockListSettings[n]?{...t,[n]:e.blockListSettings[n]}:t),{})),(e=>[e.blockListSettings])),Jt=K(((e,t)=>{const n=nn(e).find((e=>e.id===t));return n?n.title?.raw:null}),(e=>[nn(e)]));function en(e){return e.blocks.isIgnoredChange}function tn(e){return e.lastBlockAttributesChange}function nn(e){var t;return null!==(t=e.settings.__experimentalReusableBlocks)&&void 0!==t?t:ie}function on(e){return"navigation"===e.editorMode}function rn(e){return e.editorMode}function ln(e){return e.hasBlockMovingClientId}function sn(e){return!!e.automaticChangeStatus}function an(e,t){return e.highlightedBlock===t}function cn(e,t){return!!e.blocks.controlledInnerBlocks[t]}const un=K(((e,t)=>{if(!t.length)return null;const n=Me(e);if(t.includes(ae(e,n)))return n;const o=Ge(e),r=Ae(e,n||o[0],t);return r?r[r.length-1]:null}),((e,t)=>[e.selection.selectionStart.clientId,e.selection.selectionEnd.clientId,t]));function dn(e,t,n){const{lastBlockInserted:o}=e;return o.clientIds?.includes(t)&&o.source===n}function pn(e,t){var n;return null===(n=e.blockVisibility?.[t])||void 0===n||n}const mn=K((e=>{const t=new Set(Object.keys(e.blockVisibility).filter((t=>e.blockVisibility[t])));return 0===t.size?se:t}),(e=>[e.blockVisibility])),fn=K(((e,t)=>{let n,o=t;for(;e.blocks.parents.has(o);)o=e.blocks.parents.get(o),(o&&"core/block"===ae(e,o)||o&&"contentOnly"===Et(e,o))&&(n=o);return n}),(e=>[e.blocks.parents,e.blockListSettings]));function hn(e){return e.temporarilyEditingAsBlocks}function gn(e){return e.temporarilyEditingFocusModeRevert}function bn(e,t){if("default"!==kn(e,t))return!1;if(!Mt(e,t))return!0;const n=rn(e);if("zoom-out"===n&&t&&!Re(e,t))return!0;const o=(0,u.hasBlockSupport)(ae(e,t),"__experimentalDisableBlockOverlay",!1);return("navigation"===n||!o&&cn(e,t))&&!rt(e,t)&&!lt(e,t,!0)}function vn(e,t){let n=e.blocks.parents.get(t);for(;n;){if(bn(e,n))return!0;n=e.blocks.parents.get(n)}return!1}const kn=(0,p.createRegistrySelector)((e=>(t,n="")=>{if(t.blockEditingModes.has(n))return t.blockEditingModes.get(n);if(!n)return"default";const o=Re(t,n);if("contentOnly"===Et(t,o)){const o=ae(t,n);return e(u.store).__experimentalHasContentRoleAttribute(o)?"contentOnly":"disabled"}const r=kn(t,o);return"contentOnly"===r?"default":r})),_n=(0,p.createRegistrySelector)((e=>(t,n="")=>{const o=n||Me(t);if(!o)return!1;const{getGroupingBlockName:r}=e(u.store),l=de(t,o),i=r();return l&&(l.name===i||(0,u.getBlockType)(l.name)?.transforms?.ungroup)&&!!l.innerBlocks.length&&xt(t,o)})),yn=(0,p.createRegistrySelector)((e=>(t,n=ie)=>{const{getGroupingBlockName:o}=e(u.store),r=o(),l=n?.length?n:He(t),i=l?.length?Re(t,l[0]):void 0;return St(t,r,i)&&l.length&&Bt(t,l,i)})),En=new WeakSet,wn=["inserterMediaCategories","blockInspectorAnimation"];function Sn(e,{stripExperimentalSettings:t=!1,reset:n=!1}={}){let o=e;if(t&&"web"===d.Platform.OS){o={};for(const t in e)wn.includes(t)||(o[t]=e[t])}return{type:"UPDATE_SETTINGS",settings:o,reset:n}}function Cn(){return{type:"HIDE_BLOCK_INTERFACE"}}function xn(){return{type:"SHOW_BLOCK_INTERFACE"}}const Bn=(e,t=!0,n=!1)=>({select:o,dispatch:r,registry:l})=>{if(!e||!e.length)return;var i;i=e,e=Array.isArray(i)?i:[i];const s=o.getBlockRootClientId(e[0]);if(!o.canRemoveBlocks(e,s))return;const a=!n&&o.getBlockRemovalRules();if(a){const n=new Set,l=[...e];for(;l.length;){const e=l.shift(),t=o.getBlockName(e);a[t]&&n.add(t);const r=o.getBlockOrder(e);l.push(...r)}if(n.size)return void r(function(e,t,n){return{type:"DISPLAY_BLOCK_REMOVAL_PROMPT",clientIds:e,selectPrevious:t,blockNamesForPrompt:n}}(e,t,Array.from(n)))}t&&r.selectPreviousBlock(e[0],t),l.batch((()=>{r({type:"REMOVE_BLOCKS",clientIds:e}),r(In())}))},In=()=>({select:e,dispatch:t})=>{if(e.getBlockCount()>0)return;const{__unstableHasCustomAppender:n}=e.getSettings();n||t.insertDefaultBlock()};function Tn(){return{type:"CLEAR_BLOCK_REMOVAL_PROMPT"}}function Mn(e=!1){return{type:"SET_BLOCK_REMOVAL_RULES",rules:e}}function Pn(e){return{type:"SET_OPENED_BLOCK_SETTINGS_MENU",clientId:e}}function Rn(e,t){return{type:"SET_STYLE_OVERRIDE",id:e,style:t}}function Nn(e){return{type:"DELETE_STYLE_OVERRIDE",id:e}}function An(e){return({dispatch:t,select:n,registry:o})=>{o.batch((()=>{t({type:"SET_EXPLICIT_PERSISTENT",isPersistentChange:!1}),e(),t({type:"SET_EXPLICIT_PERSISTENT",isPersistentChange:void 0});const o=n.getBlocks();En.add(o)}))}}function Ln(e=null){return{type:"LAST_FOCUS",lastFocus:e}}function On(e){return({select:t,dispatch:n})=>{const o=t.__unstableGetTemporarilyEditingFocusModeToRevert();n.__unstableMarkNextChangeAsNotPersistent(),n.updateBlockAttributes(e,{templateLock:"contentOnly"}),n.updateBlockListSettings(e,{...t.getBlockListSettings(e),templateLock:"contentOnly"}),n.updateSettings({focusMode:o}),n.__unstableSetTemporarilyEditingAsBlocks()}}function Dn(e){return{type:"REGISTER_BLOCK_BINDINGS_SOURCE",sourceName:e.name,sourceLabel:e.label,useSource:e.useSource,lockAttributesEditing:e.lockAttributesEditing}}const zn={user:"user",theme:"theme",directory:"directory"},Vn={full:"fully",unsynced:"unsynced"},Fn={name:"allPatterns",label:(0,x.__)("All")},Hn={name:"myPatterns",label:(0,x.__)("My patterns")};function Gn(e,t,n){const o=e.name.startsWith("core/block"),r="core"===e.source||e.source?.startsWith("pattern-directory");return!(t!==zn.theme||!o&&!r)||(!(t!==zn.directory||!o&&r)||(t===zn.user&&e.type!==zn.user||(n===Vn.full&&""!==e.syncStatus||!(n!==Vn.unsynced||"unsynced"===e.syncStatus||!o))))}function Un(e){return e.isBlockInterfaceHidden}function $n(e){return e?.lastBlockInserted?.clientIds}const jn=K(((e,t)=>{const n=t=>"disabled"===kn(e,t)&&nt(e,t).every(n);return"disabled"===kn(e,t)&&nt(e,t).every(n)}),(e=>[e.blocks.parents,e.blocks.order,e.blockEditingModes,e.blockListSettings])),Wn=K(((e,t="")=>nt(e,t).flatMap((t=>"disabled"!==kn(e,t)?[{clientId:t,innerBlocks:Wn(e,t)}]:Wn(e,t)))),(e=>[e.blocks.order,e.blockEditingModes,e.settings.templateLock,e.blockListSettings])),Kn=K(((e,t,n=!1)=>Ne(e,t,n).filter((t=>"disabled"!==kn(e,t)))),(e=>[e.blocks.parents,e.blockEditingModes,e.settings.templateLock,e.blockListSettings]));function Zn(e){return e.removalPromptData}function qn(e){return e.blockRemovalRules}function Yn(e){return e.openedBlockSettingsMenu}function Xn(e){return e.styleOverrides}function Qn(e){return e.registeredInserterMediaCategories}const Jn=K((e=>{const{settings:{inserterMediaCategories:t,allowedMimeTypes:n,enableOpenverseMediaCategory:o},registeredInserterMediaCategories:r}=e;if(!t&&!r.length||!n)return;const l=t?.map((({name:e})=>e))||[];return[...t||[],...(r||[]).filter((({name:e})=>!l.includes(e)))].filter((e=>!(!o&&"openverse"===e.name)&&Object.values(n).some((t=>t.startsWith(`${e.mediaType}/`)))))}),(e=>[e.settings.inserterMediaCategories,e.settings.allowedMimeTypes,e.settings.enableOpenverseMediaCategory,e.registeredInserterMediaCategories]));function eo(e){return e.blockPatterns}const to=(0,p.createRegistrySelector)((e=>K(((t,n=null)=>{const{getAllPatterns:o,__experimentalGetParsedPattern:r}=le(e(wr)),l=o(),{allowedBlockTypes:i}=Yt(t);return l.some((({name:e,inserter:o=!0})=>{if(!o)return!1;const{blocks:l}=r(e);return Q(l,i)&&l.every((({name:e})=>St(t,e,n)))}))}),((e,t)=>[J(e),e.settings.allowedBlockTypes,e.settings.templateLock,e.blockListSettings[t],e.blocks.byClientId.get(t)])))),no=(0,p.createRegistrySelector)((e=>K((t=>{const{__experimentalBlockPatterns:n=[],__experimentalUserPatternCategories:o=[],__experimentalReusableBlocks:r=[]}=t.settings,l=(null!=r?r:[]).map((e=>({name:`core/block/${e.id}`,id:e.id,type:zn.user,title:e.title.raw,categories:e.wp_pattern_category.map((e=>{const t=(null!=o?o:[]).find((({id:t})=>t===e));return t?t.slug:e})),content:e.content.raw,syncStatus:e.wp_pattern_sync_status})));return[...l,...n,...le(e(wr)).getFetchedPatterns()].filter(((e,t,n)=>t===n.findIndex((t=>e.name===t.name))))}),J)));function oo(e){return e.lastFocus}function ro(e){return e.blockBindingsSources}function lo(e,t){return e.blockBindingsSources[t]}const io=()=>async({dispatch:e,select:t})=>{const{__experimentalFetchBlockPatterns:n}=t.getSettings();if(!n)return[];e({type:"RECEIVE_BLOCK_PATTERNS",patterns:await n()})};io.shouldInvalidate=e=>"UPDATE_SETTINGS"===e.type&&!!e.settings.__experimentalFetchBlockPatterns;var so=window.wp.a11y;const ao="†";function co(e){if(e)return Object.keys(e).find((t=>{const n=e[t];return("string"==typeof n||n instanceof Y.RichTextData)&&-1!==n.toString().indexOf(ao)}))}const uo=e=>Array.isArray(e)?e:[e],po=e=>({dispatch:t})=>{t({type:"RESET_BLOCKS",blocks:e}),t(mo(e))},mo=e=>({select:t,dispatch:n})=>{const o=t.getTemplate(),r=t.getTemplateLock(),l=!o||"all"!==r||(0,u.doBlocksMatchTemplate)(e,o);if(l!==t.isValidTemplate())return n.setTemplateValidity(l),l};function fo(e,t,n){return{type:"RESET_SELECTION",selectionStart:e,selectionEnd:t,initialPosition:n}}function ho(e){return w()('wp.data.dispatch( "core/block-editor" ).receiveBlocks',{since:"5.9",alternative:"resetBlocks or insertBlocks"}),{type:"RECEIVE_BLOCKS",blocks:e}}function go(e,t,n=!1){return{type:"UPDATE_BLOCK_ATTRIBUTES",clientIds:uo(e),attributes:t,uniqueByBlock:n}}function bo(e,t){return{type:"UPDATE_BLOCK",clientId:e,updates:t}}function vo(e,t=0){return{type:"SELECT_BLOCK",initialPosition:t,clientId:e}}const ko=(e,t=!1)=>({select:n,dispatch:o})=>{const r=n.getPreviousBlockClientId(e);if(r)o.selectBlock(r,-1);else if(t){const t=n.getBlockRootClientId(e);t&&o.selectBlock(t,-1)}},_o=e=>({select:t,dispatch:n})=>{const o=t.getNextBlockClientId(e);o&&n.selectBlock(o)};function yo(){return{type:"START_MULTI_SELECT"}}function Eo(){return{type:"STOP_MULTI_SELECT"}}const wo=(e,t,n=0)=>({select:o,dispatch:r})=>{if(o.getBlockRootClientId(e)!==o.getBlockRootClientId(t))return;r({type:"MULTI_SELECT",start:e,end:t,initialPosition:n});const l=o.getSelectedBlockCount();(0,so.speak)((0,x.sprintf)((0,x._n)("%s block selected.","%s blocks selected.",l),l),"assertive")};function So(){return{type:"CLEAR_SELECTED_BLOCK"}}function Co(e=!0){return{type:"TOGGLE_SELECTION",isSelectionEnabled:e}}function xo(e,t){var n;const o=null!==(n=t?.__experimentalPreferredStyleVariations?.value)&&void 0!==n?n:{};return e.map((e=>{const t=e.name;if(!(0,u.hasBlockSupport)(t,"defaultStylePicker",!0))return e;if(!o[t])return e;const n=e.attributes?.className;if(n?.includes("is-style-"))return e;const{attributes:r={}}=e,l=o[t];return{...e,attributes:{...r,className:`${n||""} is-style-${l}`.trim()}}}))}const Bo=(e,t,n,o=0,r)=>({select:l,dispatch:i,registry:s})=>{e=uo(e),t=xo(uo(t),l.getSettings());const a=l.getBlockRootClientId(e[0]);for(let e=0;e{i({type:"REPLACE_BLOCKS",clientIds:e,blocks:t,time:Date.now(),indexToSelect:n,initialPosition:o,meta:r}),i.ensureDefaultBlock()}))};function Io(e,t){return Bo(e,t)}const To=e=>(t,n)=>({select:o,dispatch:r})=>{o.canMoveBlocks(t,n)&&r({type:e,clientIds:uo(t),rootClientId:n})},Mo=To("MOVE_BLOCKS_DOWN"),Po=To("MOVE_BLOCKS_UP"),Ro=(e,t="",n="",o)=>({select:r,dispatch:l})=>{if(r.canMoveBlocks(e,t)){if(t!==n){if(!r.canRemoveBlocks(e,t))return;if(!r.canInsertBlocks(e,n))return}l({type:"MOVE_BLOCKS_TO_POSITION",fromRootClientId:t,toRootClientId:n,clientIds:e,index:o})}};function No(e,t="",n="",o){return Ro([e],t,n,o)}function Ao(e,t,n,o,r){return Lo([e],t,n,o,0,r)}const Lo=(e,t,n,o=!0,r=0,l)=>({select:i,dispatch:s})=>{null!==r&&"object"==typeof r&&(l=r,r=0,w()("meta argument in wp.data.dispatch('core/block-editor')",{since:"5.8",hint:"The meta argument is now the 6th argument of the function"})),e=xo(uo(e),i.getSettings());const a=[];for(const t of e){i.canInsertBlockType(t.name,n)&&a.push(t)}a.length&&s({type:"INSERT_BLOCKS",blocks:a,index:t,rootClientId:n,time:Date.now(),updateSelection:o,initialPosition:o?r:null,meta:l})};function Oo(e,t,n={}){const{__unstableWithInserter:o,operation:r,nearestSide:l}=n;return{type:"SHOW_INSERTION_POINT",rootClientId:e,index:t,__unstableWithInserter:o,operation:r,nearestSide:l}}const Do=()=>({select:e,dispatch:t})=>{e.isBlockInsertionPointVisible()&&t({type:"HIDE_INSERTION_POINT"})};function zo(e){return{type:"SET_TEMPLATE_VALIDITY",isValid:e}}const Vo=()=>({select:e,dispatch:t})=>{t({type:"SYNCHRONIZE_TEMPLATE"});const n=e.getBlocks(),o=e.getTemplate(),r=(0,u.synchronizeBlocksWithTemplate)(n,o);t.resetBlocks(r)},Fo=e=>({registry:t,select:n,dispatch:o})=>{const r=n.getSelectionStart(),l=n.getSelectionEnd();if(r.clientId===l.clientId)return;if(!r.attributeKey||!l.attributeKey||void 0===r.offset||void 0===l.offset)return!1;const i=n.getBlockRootClientId(r.clientId);if(i!==n.getBlockRootClientId(l.clientId))return;const s=n.getBlockOrder(i);let a,c;s.indexOf(r.clientId)>s.indexOf(l.clientId)?(a=l,c=r):(a=r,c=l);const d=e?c:a,p=n.getBlock(d.clientId),m=(0,u.getBlockType)(p.name);if(!m.merge)return;const f=a,h=c,g=n.getBlock(f.clientId),b=n.getBlock(h.clientId),v=g.attributes[f.attributeKey],k=b.attributes[h.attributeKey];let _=(0,Y.create)({html:v}),y=(0,Y.create)({html:k});_=(0,Y.remove)(_,f.offset,_.text.length),y=(0,Y.insert)(y,ao,0,h.offset);const E=(0,u.cloneBlock)(g,{[f.attributeKey]:(0,Y.toHTMLString)({value:_})}),w=(0,u.cloneBlock)(b,{[h.attributeKey]:(0,Y.toHTMLString)({value:y})}),S=e?E:w,C=g.name===b.name?[S]:(0,u.switchToBlockType)(S,m.name);if(!C||!C.length)return;let x;if(e){const e=C.pop();x=m.merge(e.attributes,w.attributes)}else{const e=C.shift();x=m.merge(E.attributes,e.attributes)}const B=co(x),I=x[B],T=(0,Y.create)({html:I}),M=T.text.indexOf(ao),P=(0,Y.remove)(T,M,M+1),R=(0,Y.toHTMLString)({value:P});x[B]=R;const N=n.getSelectedBlockClientIds(),A=[...e?C:[],{...p,attributes:{...p.attributes,...x}},...e?[]:C];t.batch((()=>{o.selectionChange(p.clientId,B,M,M),o.replaceBlocks(N,A,0,n.getSelectedBlocksInitialCaretPosition())}))},Ho=()=>({select:e,dispatch:t})=>{const n=e.getSelectionStart(),o=e.getSelectionEnd();if(n.clientId===o.clientId)return;if(!n.attributeKey||!o.attributeKey||void 0===n.offset||void 0===o.offset)return;const r=e.getBlockRootClientId(n.clientId);if(r!==e.getBlockRootClientId(o.clientId))return;const l=e.getBlockOrder(r);let i,s;l.indexOf(n.clientId)>l.indexOf(o.clientId)?(i=o,s=n):(i=n,s=o);const a=i,c=s,u=e.getBlock(a.clientId),d=e.getBlock(c.clientId),p=u.attributes[a.attributeKey],m=d.attributes[c.attributeKey];let f=(0,Y.create)({html:p}),h=(0,Y.create)({html:m});f=(0,Y.remove)(f,a.offset,f.text.length),h=(0,Y.remove)(h,0,c.offset),t.replaceBlocks(e.getSelectedBlockClientIds(),[{...u,attributes:{...u.attributes,[a.attributeKey]:(0,Y.toHTMLString)({value:f})}},{...d,attributes:{...d.attributes,[c.attributeKey]:(0,Y.toHTMLString)({value:h})}}])},Go=()=>({select:e,dispatch:t})=>{const n=e.getSelectionStart(),o=e.getSelectionEnd();t.selectionChange({start:{clientId:n.clientId},end:{clientId:o.clientId}})},Uo=(e,t)=>({registry:n,select:o,dispatch:r})=>{const l=[e,t];r({type:"MERGE_BLOCKS",blocks:l});const[i,s]=l,a=o.getBlock(i),c=(0,u.getBlockType)(a.name);if(!c)return;const d=o.getBlock(s);if(!c.merge&&(0,u.getBlockSupport)(a.name,"__experimentalOnMerge")){const e=(0,u.switchToBlockType)(d,c.name);if(1!==e?.length)return void r.selectBlock(a.clientId);const[t]=e;return t.innerBlocks.length<1?void r.selectBlock(a.clientId):void n.batch((()=>{r.insertBlocks(t.innerBlocks,void 0,i),r.removeBlock(s),r.selectBlock(t.innerBlocks[0].clientId);const e=o.getNextBlockClientId(i);if(e&&o.getBlockName(i)===o.getBlockName(e)){const t=o.getBlockAttributes(i),n=o.getBlockAttributes(e);Object.keys(t).every((e=>t[e]===n[e]))&&(r.moveBlocksToPosition(o.getBlockOrder(e),e,i),r.removeBlock(e,!1))}}))}if((0,u.isUnmodifiedDefaultBlock)(a))return void r.removeBlock(i,o.isBlockSelected(i));if((0,u.isUnmodifiedDefaultBlock)(d))return void r.removeBlock(s,o.isBlockSelected(s));if(!c.merge)return void r.selectBlock(a.clientId);const p=(0,u.getBlockType)(d.name),{clientId:m,attributeKey:f,offset:h}=o.getSelectionStart(),g=(m===i?c:p).attributes[f],b=(m===i||m===s)&&void 0!==f&&void 0!==h&&!!g;g||("number"==typeof f?window.console.error("RichText needs an identifier prop that is the block attribute key of the attribute it controls. Its type is expected to be a string, but was "+typeof f):window.console.error("The RichText identifier prop does not match any attributes defined by the block."));const v=(0,u.cloneBlock)(a),k=(0,u.cloneBlock)(d);if(b){const e=m===i?v:k,t=e.attributes[f],n=(0,Y.insert)((0,Y.create)({html:t}),ao,h,h);e.attributes[f]=(0,Y.toHTMLString)({value:n})}const _=a.name===d.name?[k]:(0,u.switchToBlockType)(k,a.name);if(!_||!_.length)return;const y=c.merge(v.attributes,_[0].attributes);if(b){const e=co(y),t=y[e],n=(0,Y.create)({html:t}),o=n.text.indexOf(ao),l=(0,Y.remove)(n,o,o+1),i=(0,Y.toHTMLString)({value:l});y[e]=i,r.selectionChange(a.clientId,e,o,o)}r.replaceBlocks([a.clientId,d.clientId],[{...a,attributes:{...a.attributes,...y}},..._.slice(1)],0)},$o=(e,t=!0)=>Bn(e,t);function jo(e,t){return $o([e],t)}function Wo(e,t,n=!1,o=0){return{type:"REPLACE_INNER_BLOCKS",rootClientId:e,blocks:t,updateSelection:n,initialPosition:n?o:null,time:Date.now()}}function Ko(e){return{type:"TOGGLE_BLOCK_MODE",clientId:e}}function Zo(){return{type:"START_TYPING"}}function qo(){return{type:"STOP_TYPING"}}function Yo(e=[]){return{type:"START_DRAGGING_BLOCKS",clientIds:e}}function Xo(){return{type:"STOP_DRAGGING_BLOCKS"}}function Qo(){return w()('wp.data.dispatch( "core/block-editor" ).enterFormattedText',{since:"6.1",version:"6.3"}),{type:"DO_NOTHING"}}function Jo(){return w()('wp.data.dispatch( "core/block-editor" ).exitFormattedText',{since:"6.1",version:"6.3"}),{type:"DO_NOTHING"}}function er(e,t,n,o){return"string"==typeof e?{type:"SELECTION_CHANGE",clientId:e,attributeKey:t,startOffset:n,endOffset:o}:{type:"SELECTION_CHANGE",...e}}const tr=(e,t,n)=>({dispatch:o})=>{const r=(0,u.getDefaultBlockName)();if(!r)return;const l=(0,u.createBlock)(r,e);return o.insertBlock(l,n,t)};function nr(e,t){return{type:"UPDATE_BLOCK_LIST_SETTINGS",clientId:e,settings:t}}function or(e){return Sn(e,{stripExperimentalSettings:!0})}function rr(e,t){return{type:"SAVE_REUSABLE_BLOCK_SUCCESS",id:e,updatedId:t}}function lr(){return{type:"MARK_LAST_CHANGE_AS_PERSISTENT"}}function ir(){return{type:"MARK_NEXT_CHANGE_AS_NOT_PERSISTENT"}}const sr=()=>({dispatch:e})=>{e({type:"MARK_AUTOMATIC_CHANGE"});const{requestIdleCallback:t=(e=>setTimeout(e,100))}=window;t((()=>{e({type:"MARK_AUTOMATIC_CHANGE_FINAL"})}))},ar=(e=!0)=>({dispatch:t})=>{t.__unstableSetEditorMode(e?"navigation":"edit")},cr=e=>({dispatch:t,select:n})=>{if("zoom-out"===e){const e=n.getBlockSelectionStart();e&&t.selectBlock(n.getBlockHierarchyRootClientId(e))}t({type:"SET_EDITOR_MODE",mode:e}),"navigation"===e?(0,so.speak)((0,x.__)("You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.")):"edit"===e?(0,so.speak)((0,x.__)("You are currently in edit mode. To return to the navigation mode, press Escape.")):"zoom-out"===e&&(0,so.speak)((0,x.__)("You are currently in zoom-out mode."))},ur=(e=null)=>({dispatch:t})=>{t({type:"SET_BLOCK_MOVING_MODE",hasBlockMovingClientId:e}),e&&(0,so.speak)((0,x.__)("Use the Tab key and Arrow keys to choose new block location. Use Left and Right Arrow keys to move between nesting levels. Once location is selected press Enter or Space to move the block."))},dr=(e,t=!0)=>({select:n,dispatch:o})=>{if(!e||!e.length)return;const r=n.getBlocksByClientId(e);if(r.some((e=>!e)))return;const l=r.map((e=>e.name));if(l.some((e=>!(0,u.hasBlockSupport)(e,"multiple",!0))))return;const i=n.getBlockRootClientId(e[0]),s=uo(e),a=n.getBlockIndex(s[s.length-1]),c=r.map((e=>(0,u.__experimentalCloneSanitizedBlock)(e)));return o.insertBlocks(c,a+1,i,t),c.length>1&&t&&o.multiSelect(c[0].clientId,c[c.length-1].clientId),c.map((e=>e.clientId))},pr=e=>({select:t,dispatch:n})=>{if(!e)return;const o=t.getBlockRootClientId(e);if(t.getTemplateLock(o))return;const r=t.getBlockIndex(e);return n.insertDefaultBlock({},o,r)},mr=e=>({select:t,dispatch:n})=>{if(!e)return;const o=t.getBlockRootClientId(e);if(t.getTemplateLock(o))return;const r=t.getBlockIndex(e);return n.insertDefaultBlock({},o,r+1)};function fr(e,t){return{type:"TOGGLE_BLOCK_HIGHLIGHT",clientId:e,isHighlighted:t}}const hr=e=>async({dispatch:t})=>{t(fr(e,!0)),await new Promise((e=>setTimeout(e,150))),t(fr(e,!1))};function gr(e,t){return{type:"SET_HAS_CONTROLLED_INNER_BLOCKS",hasControlledInnerBlocks:t,clientId:e}}function br(e){return{type:"SET_BLOCK_VISIBILITY",updates:e}}function vr(e,t){return{type:"SET_TEMPORARILY_EDITING_AS_BLOCKS",temporarilyEditingAsBlocks:e,focusModeToRevert:t}}const kr=e=>({select:t,dispatch:n})=>{if(!e||"object"!=typeof e)return void console.error("Category should be an `InserterMediaCategory` object.");if(!e.name)return void console.error("Category should have a `name` that should be unique among all media categories.");if(!e.labels?.name)return void console.error("Category should have a `labels.name`.");if(!["image","audio","video"].includes(e.mediaType))return void console.error("Category should have `mediaType` property that is one of `image|audio|video`.");if(!e.fetch||"function"!=typeof e.fetch)return void console.error("Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise`.");const o=t.getRegisteredInserterMediaCategories();o.some((({name:t})=>t===e.name))?console.error(`A category is already registered with the same name: "${e.name}".`):o.some((({labels:{name:t}={}})=>t===e.labels?.name))?console.error(`A category is already registered with the same labels.name: "${e.labels.name}".`):n({type:"REGISTER_INSERTER_MEDIA_CATEGORY",category:{...e,isExternalResource:!0}})};function _r(e="",t){return{type:"SET_BLOCK_EDITING_MODE",clientId:e,mode:t}}function yr(e=""){return{type:"UNSET_BLOCK_EDITING_MODE",clientId:e}}const Er={reducer:U,selectors:e,resolvers:l,actions:i},wr=(0,p.createReduxStore)(ne,{...Er,persist:["preferences"]}),Sr=(0,p.registerStore)(ne,{...Er,persist:["preferences"]});function Cr(e,t,n){t=Array.isArray(t)?[...t]:[t],e=Array.isArray(e)?[...e]:{...e};const o=t.pop();let r=e;for(const e of t){const t=r[e];r=r[e]=Array.isArray(t)?[...t]:{...t}}return r[o]=n,e}le(Sr).registerPrivateActions(t),le(Sr).registerPrivateSelectors(r),le(wr).registerPrivateActions(t),le(wr).registerPrivateSelectors(r);const xr=(e,t,n)=>{var o;const r=Array.isArray(t)?t:t.split(".");let l=e;return r.forEach((e=>{l=l?.[e]})),null!==(o=l)&&void 0!==o?o:n};const Br=["color","border","dimensions","typography","spacing"],Ir={"color.palette":e=>e.colors,"color.gradients":e=>e.gradients,"color.custom":e=>void 0===e.disableCustomColors?void 0:!e.disableCustomColors,"color.customGradient":e=>void 0===e.disableCustomGradients?void 0:!e.disableCustomGradients,"typography.fontSizes":e=>e.fontSizes,"typography.customFontSize":e=>void 0===e.disableCustomFontSizes?void 0:!e.disableCustomFontSizes,"typography.lineHeight":e=>e.enableCustomLineHeight,"spacing.units":e=>{if(void 0!==e.enableCustomUnits)return!0===e.enableCustomUnits?["px","em","rem","vh","vw","%"]:e.enableCustomUnits},"spacing.padding":e=>e.enableCustomSpacing},Tr={"border.customColor":"border.color","border.customStyle":"border.style","border.customWidth":"border.width","typography.customFontStyle":"typography.fontStyle","typography.customFontWeight":"typography.fontWeight","typography.customLetterSpacing":"typography.letterSpacing","typography.customTextDecorations":"typography.textDecoration","typography.customTextTransforms":"typography.textTransform","border.customRadius":"border.radius","spacing.customMargin":"spacing.margin","spacing.customPadding":"spacing.padding","typography.customLineHeight":"typography.lineHeight"},Mr=e=>Tr[e]||e;function Pr(e){let t=Rr.get(e);return t||(t=["default","theme","custom"].flatMap((t=>{var n;return null!==(n=e[t])&&void 0!==n?n:[]})),Rr.set(e,t)),t}const Rr=new WeakMap;function Nr(...e){const{name:t,clientId:n=null}=y();return e=(0,d.useMemo)((()=>e),e),(0,p.useSelect)((o=>{const r=n?[n,...o(wr).getBlockParents(n,!0)].filter((e=>{const t=o(wr).getBlockName(e);return(0,u.hasBlockSupport)(t,"__experimentalSettings",!1)})):[];return e.map((e=>{if(Br.includes(e))return void console.warn("Top level useSetting paths are disabled. Please use a subpath to query the information needed.");let l=(0,f.applyFilters)("blockEditor.useSetting.before",void 0,e,n,t);if(void 0!==l)return l;const i=Mr(e);for(const e of r){var s;const n=o(wr).getBlockAttributes(e);if(l=null!==(s=xr(n.settings?.blocks?.[t],i))&&void 0!==s?s:xr(n.settings,i),void 0!==l)break}const a=o(wr).getSettings();if(void 0===l&&t&&(l=xr(a.__experimentalFeatures?.blocks?.[t],i)),void 0===l&&(l=xr(a.__experimentalFeatures,i)),void 0!==l)return u.__EXPERIMENTAL_PATHS_WITH_MERGE[i]?Pr(l):l;const c=Ir[i]?.(a);return void 0!==c?c:"typography.dropCap"===i||void 0}))}),[t,n,e])}function Ar(e){w()("wp.blockEditor.useSetting",{since:"6.5",alternative:"wp.blockEditor.useSettings",note:"The new useSettings function can retrieve multiple settings at once, with better performance."});const[t]=Nr(e);return t}const Lr="1600px",Or="320px",Dr=1,zr=.25,Vr=.75,Fr="14px";function Hr({minimumFontSize:e,maximumFontSize:t,fontSize:n,minimumViewportWidth:o=Or,maximumViewportWidth:r=Lr,scaleFactor:l=Dr,minimumFontSizeLimit:i}){if(i=Gr(i)?i:Fr,n){const o=Gr(n);if(!o?.unit)return null;const r=Gr(i,{coerceTo:o.unit});if(r?.value&&!e&&!t&&o?.value<=r?.value)return null;if(t||(t=`${o.value}${o.unit}`),!e){const t="px"===o.unit?o.value:16*o.value,n=Math.min(Math.max(1-.075*Math.log2(t),zr),Vr),l=Ur(o.value*n,3);e=r?.value&&l0}function Wr(e){const t=e?.typography,n=e?.layout,o=Gr(n?.wideSize)?n?.wideSize:null;return jr(t)&&o?{fluid:{maxViewportWidth:o,...t.fluid}}:{fluid:t?.fluid}}const Kr="body",Zr=[{path:["color","palette"],valueKey:"color",cssVarInfix:"color",classes:[{classSuffix:"color",propertyName:"color"},{classSuffix:"background-color",propertyName:"background-color"},{classSuffix:"border-color",propertyName:"border-color"}]},{path:["color","gradients"],valueKey:"gradient",cssVarInfix:"gradient",classes:[{classSuffix:"gradient-background",propertyName:"background"}]},{path:["color","duotone"],valueKey:"colors",cssVarInfix:"duotone",valueFunc:({slug:e})=>`url( '#wp-duotone-${e}' )`,classes:[]},{path:["shadow","presets"],valueKey:"shadow",cssVarInfix:"shadow",classes:[]},{path:["typography","fontSizes"],valueFunc:(e,t)=>$r(e,Wr(t)),valueKey:"size",cssVarInfix:"font-size",classes:[{classSuffix:"font-size",propertyName:"font-size"}]},{path:["typography","fontFamilies"],valueKey:"fontFamily",cssVarInfix:"font-family",classes:[{classSuffix:"font-family",propertyName:"font-family"}]},{path:["spacing","spacingSizes"],valueKey:"size",cssVarInfix:"spacing",valueFunc:({size:e})=>e,classes:[]}],qr={"color.background":"color","color.text":"color","filter.duotone":"duotone","elements.link.color.text":"color","elements.link.:hover.color.text":"color","elements.link.typography.fontFamily":"font-family","elements.link.typography.fontSize":"font-size","elements.button.color.text":"color","elements.button.color.background":"color","elements.caption.color.text":"color","elements.button.typography.fontFamily":"font-family","elements.button.typography.fontSize":"font-size","elements.heading.color":"color","elements.heading.color.background":"color","elements.heading.typography.fontFamily":"font-family","elements.heading.gradient":"gradient","elements.heading.color.gradient":"gradient","elements.h1.color":"color","elements.h1.color.background":"color","elements.h1.typography.fontFamily":"font-family","elements.h1.color.gradient":"gradient","elements.h2.color":"color","elements.h2.color.background":"color","elements.h2.typography.fontFamily":"font-family","elements.h2.color.gradient":"gradient","elements.h3.color":"color","elements.h3.color.background":"color","elements.h3.typography.fontFamily":"font-family","elements.h3.color.gradient":"gradient","elements.h4.color":"color","elements.h4.color.background":"color","elements.h4.typography.fontFamily":"font-family","elements.h4.color.gradient":"gradient","elements.h5.color":"color","elements.h5.color.background":"color","elements.h5.typography.fontFamily":"font-family","elements.h5.color.gradient":"gradient","elements.h6.color":"color","elements.h6.color.background":"color","elements.h6.typography.fontFamily":"font-family","elements.h6.color.gradient":"gradient","color.gradient":"gradient",shadow:"shadow","typography.fontSize":"font-size","typography.fontFamily":"font-family"},Yr={popoverProps:{placement:"left-start",offset:259}};function Xr(e,t,n,o,r){const l=[xr(e,["blocks",t,...n]),xr(e,n)];for(const i of l)if(i){const l=["custom","theme","default"];for(const s of l){const l=i[s];if(l){const i=l.find((e=>e[o]===r));if(i){if("slug"===o)return i;return Xr(e,t,n,"slug",i.slug)[o]===i[o]?i:void 0}}}}}function Qr(e,t,n){if(!n||"string"!=typeof n){if(!n?.ref||"string"!=typeof n?.ref)return n;{const t=n.ref.split(".");if(!(n=xr(e,t))||n?.ref)return n}}const o="var:",r="var(--wp--";let l;if(n.startsWith(o))l=n.slice(4).split("|");else{if(!n.startsWith(r)||!n.endsWith(")"))return n;l=n.slice(10,-1).split("--")}const[i,...s]=l;return"preset"===i?function(e,t,n,[o,r]){const l=Zr.find((e=>e.cssVarInfix===o));if(!l)return n;const i=Xr(e.settings,t,l.path,"slug",r);if(i){const{valueKey:n}=l;return Qr(e,t,i[n])}return n}(e,t,n,s):"custom"===i?function(e,t,n,o){var r;const l=null!==(r=xr(e.settings,["blocks",t,"custom",...o]))&&void 0!==r?r:xr(e.settings,["custom",...o]);return l?Qr(e,t,l):n}(e,t,n,s):n}function Jr(e,t){const n=e.split(","),o=t.split(","),r=[];return n.forEach((e=>{o.forEach((t=>{r.push(`${e.trim()} ${t.trim()}`)}))})),r.join(", ")}function el(e,t){return"object"!=typeof e||"object"!=typeof t?e===t:C()(e?.styles,t?.styles)&&C()(e?.settings,t?.settings)}const tl=(0,d.createContext)({user:{},base:{},merged:{},setUserConfig:()=>{}}),nl={settings:{},styles:{}},ol=["appearanceTools","useRootPaddingAwareAlignments","background.backgroundImage","background.backgroundRepeat","background.backgroundSize","border.color","border.radius","border.style","border.width","shadow.presets","shadow.defaultPresets","color.background","color.button","color.caption","color.custom","color.customDuotone","color.customGradient","color.defaultDuotone","color.defaultGradients","color.defaultPalette","color.duotone","color.gradients","color.heading","color.link","color.palette","color.text","custom","dimensions.aspectRatio","dimensions.minHeight","layout.contentSize","layout.definitions","layout.wideSize","lightbox.enabled","lightbox.allowEditing","position.fixed","position.sticky","spacing.customSpacingSize","spacing.spacingSizes","spacing.spacingScale","spacing.blockGap","spacing.margin","spacing.padding","spacing.units","typography.fluid","typography.customFontSize","typography.defaultFontSizes","typography.dropCap","typography.fontFamilies","typography.fontSizes","typography.fontStyle","typography.fontWeight","typography.letterSpacing","typography.lineHeight","typography.textColumns","typography.textDecoration","typography.textTransform","typography.writingMode"],rl=()=>{const{user:e,setUserConfig:t}=(0,d.useContext)(tl);return[!!e&&!C()(e,nl),(0,d.useCallback)((()=>t((()=>nl))),[t])]};function ll(e,t,n="all"){const{setUserConfig:o,...r}=(0,d.useContext)(tl),l=t?".blocks."+t:"",i=e?"."+e:"",s=`settings${l}${i}`,a=`settings${i}`,c="all"===n?"merged":n;return[(0,d.useMemo)((()=>{const t=r[c];if(!t)throw"Unsupported source";var n;if(e)return null!==(n=xr(t,s))&&void 0!==n?n:xr(t,a);let o={};return ol.forEach((e=>{var n;const r=null!==(n=xr(t,`settings${l}.${e}`))&&void 0!==n?n:xr(t,`settings.${e}`);void 0!==r&&(o=Cr(o,e.split("."),r))})),o}),[r,c,e,s,a,l]),e=>{o((t=>Cr(t,s.split("."),e)))}]}function il(e,t,n="all",{shouldDecodeEncode:o=!0}={}){const{merged:r,base:l,user:i,setUserConfig:s}=(0,d.useContext)(tl),a=e?"."+e:"",c=t?`styles.blocks.${t}${a}`:`styles${a}`;let u,p;switch(n){case"all":u=xr(r,c),p=o?Qr(r,t,u):u;break;case"user":u=xr(i,c),p=o?Qr(r,t,u):u;break;case"base":u=xr(l,c),p=o?Qr(l,t,u):u;break;default:throw"Unsupported source"}return[p,n=>{s((l=>Cr(l,c.split("."),o?function(e,t,n,o){if(!o)return o;const r=qr[n],l=Zr.find((e=>e.cssVarInfix===r));if(!l)return o;const{valueKey:i,path:s}=l,a=Xr(e,t,s,i,o);return a?`var:preset|${r}|${a.slug}`:o}(r.settings,t,e,n):n)))}]}function sl(e,t,n){const{supportedStyles:o,supports:r}=(0,p.useSelect)((e=>({supportedStyles:le(e(u.store)).getSupportedStyles(t,n),supports:e(u.store).getBlockType(t)?.supports})),[t,n]);return(0,d.useMemo)((()=>{const t={...e};return o.includes("fontSize")||(t.typography={...t.typography,fontSizes:{},customFontSize:!1,defaultFontSizes:!1}),o.includes("fontFamily")||(t.typography={...t.typography,fontFamilies:{}}),t.color={...t.color,text:t.color?.text&&o.includes("color"),background:t.color?.background&&(o.includes("background")||o.includes("backgroundColor")),button:t.color?.button&&o.includes("buttonColor"),heading:t.color?.heading&&o.includes("headingColor"),link:t.color?.link&&o.includes("linkColor"),caption:t.color?.caption&&o.includes("captionColor")},o.includes("background")||(t.color.gradients=[],t.color.customGradient=!1),o.includes("filter")||(t.color.defaultDuotone=!1,t.color.customDuotone=!1),["lineHeight","fontStyle","fontWeight","letterSpacing","textTransform","textDecoration","writingMode"].forEach((e=>{o.includes(e)||(t.typography={...t.typography,[e]:!1})})),o.includes("columnCount")||(t.typography={...t.typography,textColumns:!1}),["contentSize","wideSize"].forEach((e=>{o.includes(e)||(t.layout={...t.layout,[e]:!1})})),["padding","margin","blockGap"].forEach((e=>{o.includes(e)||(t.spacing={...t.spacing,[e]:!1});const n=Array.isArray(r?.spacing?.[e])?r?.spacing?.[e]:r?.spacing?.[e]?.sides;n?.length&&t.spacing?.[e]&&(t.spacing={...t.spacing,[e]:{...t.spacing?.[e],sides:n}})})),["aspectRatio","minHeight"].forEach((e=>{o.includes(e)||(t.dimensions={...t.dimensions,[e]:!1})})),["radius","color","style","width"].forEach((e=>{o.includes("border"+e.charAt(0).toUpperCase()+e.slice(1))||(t.border={...t.border,[e]:!1})})),t.shadow=!!o.includes("shadow")&&t.shadow,t}),[e,o,r])}function al(e){const t=e?.color?.palette?.custom,n=e?.color?.palette?.theme,o=e?.color?.palette?.default,r=e?.color?.defaultPalette;return(0,d.useMemo)((()=>{const e=[];return n&&n.length&&e.push({name:(0,x._x)("Theme","Indicates this palette comes from the theme."),colors:n}),r&&o&&o.length&&e.push({name:(0,x._x)("Default","Indicates this palette comes from WordPress."),colors:o}),t&&t.length&&e.push({name:(0,x._x)("Custom","Indicates this palette is created by the user."),colors:t}),e}),[t,n,o,r])}function cl(e){const t=e?.color?.gradients?.custom,n=e?.color?.gradients?.theme,o=e?.color?.gradients?.default,r=e?.color?.defaultGradients;return(0,d.useMemo)((()=>{const e=[];return n&&n.length&&e.push({name:(0,x._x)("Theme","Indicates this palette comes from the theme."),gradients:n}),r&&o&&o.length&&e.push({name:(0,x._x)("Default","Indicates this palette comes from WordPress."),gradients:o}),t&&t.length&&e.push({name:(0,x._x)("Custom","Indicates this palette is created by the user."),gradients:t}),e}),[t,n,o,r])}var ul=n(4403),dl=n.n(ul);const pl=e=>{if(null===e||"object"!=typeof e||Array.isArray(e))return e;const t=Object.entries(e).map((([e,t])=>[e,pl(t)])).filter((([,e])=>void 0!==e));return t.length?Object.fromEntries(t):void 0};function ml(e,t,n,o,r,l){if(Object.values(null!=e?e:{}).every((e=>!e)))return n;if(1===l.length&&n.innerBlocks.length===o.length)return n;let i=o[0]?.attributes;if(l.length>1&&o.length>1){if(!o[r])return n;i=o[r]?.attributes}let s=n;return Object.entries(e).forEach((([e,n])=>{n&&t[e].forEach((e=>{const t=xr(i,e);t&&(s={...s,attributes:Cr(s.attributes,e,t)})}))})),s}function fl(e,t,n){const o=(0,u.getBlockSupport)(e,t),r=o?.__experimentalSkipSerialization;return Array.isArray(r)?r.includes(n):r}function hl({id:e,css:t,assets:n,__unstableType:o}={}){const{setStyleOverride:r,deleteStyleOverride:l}=le((0,p.useDispatch)(wr)),i=(0,d.useId)();(0,d.useEffect)((()=>{if(!t&&!n)return;const s=e||i;return r(s,{id:e,css:t,assets:n,__unstableType:o}),()=>{l(s)}}),[e,t,n,o,i,r,l])}function gl(e,t){const[n,o,r,l,i,s,a,c,u,p,m,f,h,g,b,v,k,_,y,E,w,S,C,x,B,I,T,M,P,R,N,A,L,O,D,z,V,F,H,G,U,$,j,W,K,Z,q,Y,X]=Nr("background.backgroundImage","background.backgroundSize","typography.fontFamilies","typography.fontSizes.custom","typography.fontSizes.theme","typography.fontSizes.default","typography.defaultFontSizes","typography.customFontSize","typography.fontStyle","typography.fontWeight","typography.lineHeight","typography.textColumns","typography.textDecoration","typography.writingMode","typography.textTransform","typography.letterSpacing","spacing.padding","spacing.margin","spacing.blockGap","spacing.spacingSizes","spacing.units","dimensions.aspectRatio","dimensions.minHeight","layout","border.color","border.radius","border.style","border.width","color.custom","color.palette.custom","color.customDuotone","color.palette.theme","color.palette.default","color.defaultPalette","color.defaultDuotone","color.duotone.custom","color.duotone.theme","color.duotone.default","color.gradients.custom","color.gradients.theme","color.gradients.default","color.defaultGradients","color.customGradient","color.background","color.link","color.text","color.heading","color.button","shadow");return sl((0,d.useMemo)((()=>({background:{backgroundImage:n,backgroundSize:o},color:{palette:{custom:R,theme:A,default:L},gradients:{custom:H,theme:G,default:U},duotone:{custom:z,theme:V,default:F},defaultGradients:$,defaultPalette:O,defaultDuotone:D,custom:P,customGradient:j,customDuotone:N,background:W,link:K,heading:q,button:Y,text:Z},typography:{fontFamilies:{custom:r},fontSizes:{custom:l,theme:i,default:s},customFontSize:c,defaultFontSizes:a,fontStyle:u,fontWeight:p,lineHeight:m,textColumns:f,textDecoration:h,textTransform:b,letterSpacing:v,writingMode:g},spacing:{spacingSizes:{custom:E},padding:k,margin:_,blockGap:y,units:w},border:{color:B,radius:I,style:T,width:M},dimensions:{aspectRatio:S,minHeight:C},layout:x,parentLayout:t,shadow:X})),[n,o,r,l,i,s,a,c,u,p,m,f,h,b,v,g,k,_,y,E,w,S,C,x,t,B,I,T,M,P,R,N,A,L,O,D,z,V,F,H,G,U,$,j,W,K,Z,q,Y,X]),e)}const bl=(0,d.memo)((function({index:e,useBlockProps:t,setAllWrapperProps:n,...o}){const r=t(o),l=t=>n((n=>{const o=[...n];return o[e]=t,o}));return(0,d.useEffect)((()=>(l(r),()=>{l(void 0)}))),null}));(0,f.addFilter)("blocks.registerBlockType","core/compat/migrateLightBlockWrapper",(function(e){const{apiVersion:t=1}=e;return t<2&&(0,u.hasBlockSupport)(e,"lightBlockWrapper",!1)&&(e.apiVersion=2),e}));var vl=window.wp.components;var kl={default:(0,vl.createSlotFill)("BlockControls"),block:(0,vl.createSlotFill)("BlockControlsBlock"),inline:(0,vl.createSlotFill)("BlockFormatControls"),other:(0,vl.createSlotFill)("BlockControlsOther"),parent:(0,vl.createSlotFill)("BlockControlsParent")};function _l({group:e="default",controls:t,children:n,__experimentalShareWithChildBlocks:o=!1}){const r=function(e,t){const n=y();return n[h]?kl[e]?.Fill:n[g]&&t?kl.parent.Fill:null}(e,o);if(!r)return null;const l=(0,a.createElement)(a.Fragment,null,"default"===e&&(0,a.createElement)(vl.ToolbarGroup,{controls:t}),n);return(0,a.createElement)(vl.__experimentalStyleProvider,{document:document},(0,a.createElement)(r,null,(e=>{const{forwardedContext:t=[]}=e;return t.reduce(((e,[t,n])=>(0,a.createElement)(t,{...n},e)),l)})))}window.wp.warning;const{ComponentsContext:yl}=le(vl.privateApis);function El({group:e="default",...t}){const n=(0,d.useContext)(vl.__experimentalToolbarContext),o=(0,d.useContext)(yl),r=(0,d.useMemo)((()=>({forwardedContext:[[vl.__experimentalToolbarContext.Provider,{value:n}],[yl.Provider,{value:o}]]})),[n,o]),l=kl[e]?.Slot,i=(0,vl.__experimentalUseSlotFills)(l?.__unstableName);if(!l)return null;if(!i?.length)return null;const s=(0,a.createElement)(l,{...t,bubblesVirtually:!0,fillProps:r});return"default"===e?s:(0,a.createElement)(vl.ToolbarGroup,null,s)}const wl=_l;wl.Slot=El;const Sl=e=>(0,a.createElement)(_l,{group:"inline",...e});Sl.Slot=e=>(0,a.createElement)(El,{group:"inline",...e});var Cl=wl;var xl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M9 9v6h11V9H9zM4 20h1.5V4H4v16z"}));var Bl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M12.5 15v5H11v-5H4V9h7V4h1.5v5h7v6h-7Z"}));var Il=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M4 15h11V9H4v6zM18.5 4v16H20V4h-1.5z"}));var Tl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M9 15h6V9H9v6zm-5 5h1.5V4H4v16zM18.5 4v16H20V4h-1.5z"}));var Ml=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M4 4H5.5V20H4V4ZM7 10L17 10V14L7 14V10ZM20 4H18.5V20H20V4Z"}));var Pl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z"}));var Rl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z"}));const Nl={default:{name:"default",slug:"flow",className:"is-layout-flow",baseStyles:[{selector:" > .alignleft",rules:{float:"left","margin-inline-start":"0","margin-inline-end":"2em"}},{selector:" > .alignright",rules:{float:"right","margin-inline-start":"2em","margin-inline-end":"0"}},{selector:" > .aligncenter",rules:{"margin-left":"auto !important","margin-right":"auto !important"}}],spacingStyles:[{selector:" > :first-child:first-child",rules:{"margin-block-start":"0"}},{selector:" > :last-child:last-child",rules:{"margin-block-end":"0"}},{selector:" > *",rules:{"margin-block-start":null,"margin-block-end":"0"}}]},constrained:{name:"constrained",slug:"constrained",className:"is-layout-constrained",baseStyles:[{selector:" > .alignleft",rules:{float:"left","margin-inline-start":"0","margin-inline-end":"2em"}},{selector:" > .alignright",rules:{float:"right","margin-inline-start":"2em","margin-inline-end":"0"}},{selector:" > .aligncenter",rules:{"margin-left":"auto !important","margin-right":"auto !important"}},{selector:" > :where(:not(.alignleft):not(.alignright):not(.alignfull))",rules:{"max-width":"var(--wp--style--global--content-size)","margin-left":"auto !important","margin-right":"auto !important"}},{selector:" > .alignwide",rules:{"max-width":"var(--wp--style--global--wide-size)"}}],spacingStyles:[{selector:" > :first-child:first-child",rules:{"margin-block-start":"0"}},{selector:" > :last-child:last-child",rules:{"margin-block-end":"0"}},{selector:" > *",rules:{"margin-block-start":null,"margin-block-end":"0"}}]},flex:{name:"flex",slug:"flex",className:"is-layout-flex",displayMode:"flex",baseStyles:[{selector:"",rules:{"flex-wrap":"wrap","align-items":"center"}},{selector:" > *",rules:{margin:"0"}}],spacingStyles:[{selector:"",rules:{gap:null}}]},grid:{name:"grid",slug:"grid",className:"is-layout-grid",displayMode:"grid",baseStyles:[{selector:" > *",rules:{margin:"0"}}],spacingStyles:[{selector:"",rules:{gap:null}}]}};function Al(e,t=""){return e.split(",").map((e=>`.editor-styles-wrapper ${e}${t?` ${t}`:""}`)).join(",")}function Ll(e,t=Nl,n,o){let r="";return t?.[n]?.spacingStyles?.length&&o&&t[n].spacingStyles.forEach((t=>{r+=`${Al(e,t.selector.trim())} { `,r+=Object.entries(t.rules).map((([e,t])=>`${e}: ${t||o}`)).join("; "),r+="; }"})),r}function Ol(e){const{contentSize:t,wideSize:n,type:o="default"}=e,r={},l=/^(?!0)\d+(px|em|rem|vw|vh|%|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)?$/i;return l.test(t)&&"constrained"===o&&(r.none=(0,x.sprintf)((0,x.__)("Max %s wide"),t)),l.test(n)&&(r.wide=(0,x.sprintf)((0,x.__)("Max %s wide"),n)),r}var Dl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z"}));var zl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m4.5 7.5v9h1.5v-9z"}),(0,a.createElement)(Z.Path,{d:"m18 7.5v9h1.5v-9z"}));var Vl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9z"}),(0,a.createElement)(Z.Path,{d:"m7.5 19.5h9v-1.5h-9z"}));var Fl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m16.5 6h-9v-1.5h9z"}));var Hl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m18 16.5v-9h1.5v9z"}));var Gl=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m16.5 19.5h-9v-1.5h9z",style:{fill:"#1e1e1e"}}));const Ul=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.5 6h9v-1.5h-9zm0 13.5h9v-1.5h-9zm-3-3h1.5v-9h-1.5zm13.5-9v9h1.5v-9z",style:{opacity:.25}}),(0,a.createElement)(Z.Path,{d:"m4.5 16.5v-9h1.5v9z"}));const $l=["top","right","bottom","left"],jl={top:void 0,right:void 0,bottom:void 0,left:void 0},Wl={custom:Dl,axial:Dl,horizontal:zl,vertical:Vl,top:Fl,right:Hl,bottom:Gl,left:Ul},Kl={default:(0,x.__)("Spacing control"),top:(0,x.__)("Top"),bottom:(0,x.__)("Bottom"),left:(0,x.__)("Left"),right:(0,x.__)("Right"),mixed:(0,x.__)("Mixed"),vertical:(0,x.__)("Vertical"),horizontal:(0,x.__)("Horizontal"),axial:(0,x.__)("Horizontal & vertical"),custom:(0,x.__)("Custom")},Zl={axial:"axial",top:"top",right:"right",bottom:"bottom",left:"left",custom:"custom"};function ql(e){return!!e?.includes&&("0"===e||e.includes("var:preset|spacing|"))}function Yl(e,t){if(!ql(e))return e;const n=Jl(e),o=t.find((e=>String(e.slug)===n));return o?.size}function Xl(e,t){if(!e||ql(e)||"0"===e)return e;const n=t.find((t=>String(t.size)===String(e)));return n?.slug?`var:preset|spacing|${n.slug}`:e}function Ql(e){if(!e)return;const t=e.match(/var:preset\|spacing\|(.+)/);return t?`var(--wp--preset--spacing--${t[1]})`:e}function Jl(e){if(!e)return;if("0"===e||"default"===e)return e;const t=e.match(/var:preset\|spacing\|(.+)/);return t?t[1]:void 0}function ei(e,t){if(!e||!e.length)return!1;const n=e.includes("horizontal")||e.includes("left")&&e.includes("right"),o=e.includes("vertical")||e.includes("top")&&e.includes("bottom");return"horizontal"===t?n:"vertical"===t?o:n||o}function ti(e,t="0"){const n=function(e){if(!e)return null;const t="string"==typeof e;return{top:t?e:e?.top,left:t?e:e?.left}}(e);if(!n)return null;const o=Ql(n?.top)||t,r=Ql(n?.left)||t;return o===r?o:`${o} ${r}`}const ni=(0,a.createElement)(vl.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(vl.Path,{d:"M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z"})),oi=(0,a.createElement)(vl.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(vl.Path,{d:"M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z"})),ri=(0,a.createElement)(vl.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(vl.Path,{d:"M9 20h6V9H9v11zM4 4v1.5h16V4H4z"})),li=(0,a.createElement)(vl.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(vl.Path,{d:"M4 4L20 4L20 5.5L4 5.5L4 4ZM10 7L14 7L14 17L10 17L10 7ZM20 18.5L4 18.5L4 20L20 20L20 18.5Z"})),ii=(0,a.createElement)(vl.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(vl.Path,{d:"M7 4H17V8L7 8V4ZM7 16L17 16V20L7 20V16ZM20 11.25H4V12.75H20V11.25Z"})),si={top:{icon:ri,title:(0,x._x)("Align top","Block vertical alignment setting")},center:{icon:oi,title:(0,x._x)("Align middle","Block vertical alignment setting")},bottom:{icon:ni,title:(0,x._x)("Align bottom","Block vertical alignment setting")},stretch:{icon:li,title:(0,x._x)("Stretch to fill","Block vertical alignment setting")},"space-between":{icon:ii,title:(0,x._x)("Space between","Block vertical alignment setting")}},ai=["top","center","bottom"];var ci=function({value:e,onChange:t,controls:n=ai,isCollapsed:o=!0,isToolbar:r}){function l(n){return()=>t(e===n?void 0:n)}const i=si[e],s=si.top,c=r?vl.ToolbarGroup:vl.ToolbarDropdownMenu,u=r?{isCollapsed:o}:{};return(0,a.createElement)(c,{icon:i?i.icon:s.icon,label:(0,x._x)("Change vertical alignment","Block vertical alignment setting label"),controls:n.map((t=>({...si[t],isActive:e===t,role:o?"menuitemradio":void 0,onClick:l(t)}))),...u})};const ui=e=>(0,a.createElement)(ci,{...e,isToolbar:!1}),di=e=>(0,a.createElement)(ci,{...e,isToolbar:!0}),pi={left:xl,center:Bl,right:Il,"space-between":Tl,stretch:Ml};var mi=function({allowedControls:e=["left","center","right","space-between"],isCollapsed:t=!0,onChange:n,value:o,popoverProps:r,isToolbar:l}){const i=e=>{n(e===o?void 0:e)},s=o?pi[o]:pi.left,c=[{name:"left",icon:xl,title:(0,x.__)("Justify items left"),isActive:"left"===o,onClick:()=>i("left")},{name:"center",icon:Bl,title:(0,x.__)("Justify items center"),isActive:"center"===o,onClick:()=>i("center")},{name:"right",icon:Il,title:(0,x.__)("Justify items right"),isActive:"right"===o,onClick:()=>i("right")},{name:"space-between",icon:Tl,title:(0,x.__)("Space between items"),isActive:"space-between"===o,onClick:()=>i("space-between")},{name:"stretch",icon:Ml,title:(0,x.__)("Stretch items"),isActive:"stretch"===o,onClick:()=>i("stretch")}],u=l?vl.ToolbarGroup:vl.ToolbarDropdownMenu,d=l?{isCollapsed:t}:{};return(0,a.createElement)(u,{icon:s,popoverProps:r,label:(0,x.__)("Change items justification"),controls:c.filter((t=>e.includes(t.name))),...d})};const fi=e=>(0,a.createElement)(mi,{...e,isToolbar:!1}),hi=e=>(0,a.createElement)(mi,{...e,isToolbar:!0}),gi={left:"flex-start",right:"flex-end",center:"center","space-between":"space-between"},bi={left:"flex-start",right:"flex-end",center:"center",stretch:"stretch"},vi={top:"flex-start",center:"center",bottom:"flex-end",stretch:"stretch","space-between":"space-between"},ki=["wrap","nowrap"];var _i={name:"flex",label:(0,x.__)("Flex"),inspectorControls:function({layout:e={},onChange:t,layoutBlockSupport:n={}}){const{allowOrientation:o=!0}=n;return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.Flex,null,(0,a.createElement)(vl.FlexItem,null,(0,a.createElement)(wi,{layout:e,onChange:t})),(0,a.createElement)(vl.FlexItem,null,o&&(0,a.createElement)(Ci,{layout:e,onChange:t}))),(0,a.createElement)(Si,{layout:e,onChange:t}))},toolBarControls:function({layout:e={},onChange:t,layoutBlockSupport:n}){if(n?.allowSwitching)return null;const{allowVerticalAlignment:o=!0}=n;return(0,a.createElement)(Cl,{group:"block",__experimentalShareWithChildBlocks:!0},(0,a.createElement)(wi,{layout:e,onChange:t,isToolbar:!0}),o&&(0,a.createElement)(yi,{layout:e,onChange:t,isToolbar:!0}))},getLayoutStyle:function({selector:e,layout:t,style:n,blockName:o,hasBlockGapSupport:r,layoutDefinitions:l=Nl}){const{orientation:i="horizontal"}=t,s=n?.spacing?.blockGap&&!fl(o,"spacing","blockGap")?ti(n?.spacing?.blockGap,"0.5em"):void 0,a=gi[t.justifyContent],c=ki.includes(t.flexWrap)?t.flexWrap:"wrap",u=vi[t.verticalAlignment],d=bi[t.justifyContent]||bi.left;let p="";const m=[];return c&&"wrap"!==c&&m.push(`flex-wrap: ${c}`),"horizontal"===i?(u&&m.push(`align-items: ${u}`),a&&m.push(`justify-content: ${a}`)):(u&&m.push(`justify-content: ${u}`),m.push("flex-direction: column"),m.push(`align-items: ${d}`)),m.length&&(p=`${Al(e)} {\n\t\t\t\t${m.join("; ")};\n\t\t\t}`),r&&s&&(p+=Ll(e,l,"flex",s)),p},getOrientation(e){const{orientation:t="horizontal"}=e;return t},getAlignments(){return[]}};function yi({layout:e,onChange:t,isToolbar:n=!1}){const{orientation:o="horizontal"}=e,r="horizontal"===o?vi.center:vi.top,{verticalAlignment:l=r}=e,i=n=>{t({...e,verticalAlignment:n})};if(n)return(0,a.createElement)(ui,{onChange:i,value:l,controls:"horizontal"===o?["top","center","bottom","stretch"]:["top","center","bottom","space-between"]});const s=[{value:"flex-start",label:(0,x.__)("Align items top")},{value:"center",label:(0,x.__)("Align items center")},{value:"flex-end",label:(0,x.__)("Align items bottom")}];return(0,a.createElement)("fieldset",{className:"block-editor-hooks__flex-layout-vertical-alignment-control"},(0,a.createElement)("legend",null,(0,x.__)("Vertical alignment")),(0,a.createElement)("div",null,s.map(((e,t,n)=>(0,a.createElement)(vl.Button,{key:e,label:n,icon:t,isPressed:l===e,onClick:()=>i(e)})))))}const Ei={placement:"bottom-start"};function wi({layout:e,onChange:t,isToolbar:n=!1}){const{justifyContent:o="left",orientation:r="horizontal"}=e,l=n=>{t({...e,justifyContent:n})},i=["left","center","right"];if("horizontal"===r?i.push("space-between"):i.push("stretch"),n)return(0,a.createElement)(fi,{allowedControls:i,value:o,onChange:l,popoverProps:Ei});const s=[{value:"left",icon:xl,label:(0,x.__)("Justify items left")},{value:"center",icon:Bl,label:(0,x.__)("Justify items center")},{value:"right",icon:Il,label:(0,x.__)("Justify items right")}];return"horizontal"===r?s.push({value:"space-between",icon:Tl,label:(0,x.__)("Space between items")}):s.push({value:"stretch",icon:Ml,label:(0,x.__)("Stretch items")}),(0,a.createElement)(vl.__experimentalToggleGroupControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Justification"),value:o,onChange:l,className:"block-editor-hooks__flex-layout-justification-controls"},s.map((({value:e,icon:t,label:n})=>(0,a.createElement)(vl.__experimentalToggleGroupControlOptionIcon,{key:e,value:e,icon:t,label:n}))))}function Si({layout:e,onChange:t}){const{flexWrap:n="wrap"}=e;return(0,a.createElement)(vl.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Allow to wrap to multiple lines"),onChange:n=>{t({...e,flexWrap:n?"wrap":"nowrap"})},checked:"wrap"===n})}function Ci({layout:e,onChange:t}){const{orientation:n="horizontal",verticalAlignment:o,justifyContent:r}=e;return(0,a.createElement)(vl.__experimentalToggleGroupControl,{__nextHasNoMarginBottom:!0,className:"block-editor-hooks__flex-layout-orientation-controls",label:(0,x.__)("Orientation"),value:n,onChange:n=>{let l=o,i=r;return"horizontal"===n?("space-between"===o&&(l="center"),"stretch"===r&&(i="left")):("stretch"===o&&(l="top"),"space-between"===r&&(i="left")),t({...e,orientation:n,verticalAlignment:l,justifyContent:i})}},(0,a.createElement)(vl.__experimentalToggleGroupControlOptionIcon,{icon:Pl,value:"horizontal",label:(0,x.__)("Horizontal")}),(0,a.createElement)(vl.__experimentalToggleGroupControlOptionIcon,{icon:Rl,value:"vertical",label:(0,x.__)("Vertical")}))}var xi={name:"default",label:(0,x.__)("Flow"),inspectorControls:function(){return null},toolBarControls:function(){return null},getLayoutStyle:function({selector:e,style:t,blockName:n,hasBlockGapSupport:o,layoutDefinitions:r=Nl}){const l=ti(t?.spacing?.blockGap);let i="";fl(n,"spacing","blockGap")||(l?.top?i=ti(l?.top):"string"==typeof l&&(i=ti(l)));let s="";return o&&i&&(s+=Ll(e,r,"default",i)),s},getOrientation(){return"vertical"},getAlignments(e,t){const n=Ol(e);if(void 0!==e.alignments)return e.alignments.includes("none")||e.alignments.unshift("none"),e.alignments.map((e=>({name:e,info:n[e]})));const o=[{name:"left"},{name:"center"},{name:"right"}];if(!t){const{contentSize:t,wideSize:r}=e;t&&o.unshift({name:"full"}),r&&o.unshift({name:"wide",info:n.wide})}return o.unshift({name:"none",info:n.none}),o}};var Bi=(0,d.forwardRef)((function({icon:e,size:t=24,...n},o){return(0,d.cloneElement)(e,{width:t,height:t,...n,ref:o})}));var Ii=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z"}));var Ti=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M16 5.5H8V4h8v1.5ZM16 20H8v-1.5h8V20ZM5 9h14v6H5V9Z"})),Mi=window.wp.styleEngine,Pi={name:"constrained",label:(0,x.__)("Constrained"),inspectorControls:function({layout:e,onChange:t,layoutBlockSupport:n={}}){const{wideSize:o,contentSize:r,justifyContent:l="center"}=e,{allowJustification:i=!0,allowCustomContentAndWideSize:s=!0}=n,c=[{value:"left",icon:xl,label:(0,x.__)("Justify items left")},{value:"center",icon:Bl,label:(0,x.__)("Justify items center")},{value:"right",icon:Il,label:(0,x.__)("Justify items right")}],[u]=Nr("spacing.units"),d=(0,vl.__experimentalUseCustomUnits)({availableUnits:u||["%","px","em","rem","vw"]});return(0,a.createElement)(a.Fragment,null,s&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"block-editor-hooks__layout-controls"},(0,a.createElement)("div",{className:"block-editor-hooks__layout-controls-unit"},(0,a.createElement)(vl.__experimentalUnitControl,{className:"block-editor-hooks__layout-controls-unit-input",label:(0,x.__)("Content"),labelPosition:"top",__unstableInputWidth:"80px",value:r||o||"",onChange:n=>{n=0>parseFloat(n)?"0":n,t({...e,contentSize:n})},units:d}),(0,a.createElement)(Bi,{icon:Ii})),(0,a.createElement)("div",{className:"block-editor-hooks__layout-controls-unit"},(0,a.createElement)(vl.__experimentalUnitControl,{className:"block-editor-hooks__layout-controls-unit-input",label:(0,x.__)("Wide"),labelPosition:"top",__unstableInputWidth:"80px",value:o||r||"",onChange:n=>{n=0>parseFloat(n)?"0":n,t({...e,wideSize:n})},units:d}),(0,a.createElement)(Bi,{icon:Ti}))),(0,a.createElement)("p",{className:"block-editor-hooks__layout-controls-helptext"},(0,x.__)("Customize the width for all elements that are assigned to the center or wide columns."))),i&&(0,a.createElement)(vl.__experimentalToggleGroupControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Justification"),value:l,onChange:n=>{t({...e,justifyContent:n})}},c.map((({value:e,icon:t,label:n})=>(0,a.createElement)(vl.__experimentalToggleGroupControlOptionIcon,{key:e,value:e,icon:t,label:n})))))},toolBarControls:function(){return null},getLayoutStyle:function({selector:e,layout:t={},style:n,blockName:o,hasBlockGapSupport:r,layoutDefinitions:l=Nl}){const{contentSize:i,wideSize:s,justifyContent:a}=t,c=ti(n?.spacing?.blockGap);let u="";fl(o,"spacing","blockGap")||(c?.top?u=ti(c?.top):"string"==typeof c&&(u=ti(c)));const d="left"===a?"0 !important":"auto !important",p="right"===a?"0 !important":"auto !important";let m=i||s?`\n\t\t\t\t\t${Al(e,"> :where(:not(.alignleft):not(.alignright):not(.alignfull))")} {\n\t\t\t\t\t\tmax-width: ${null!=i?i:s};\n\t\t\t\t\t\tmargin-left: ${d};\n\t\t\t\t\t\tmargin-right: ${p};\n\t\t\t\t\t}\n\t\t\t\t\t${Al(e,"> .alignwide")} {\n\t\t\t\t\t\tmax-width: ${null!=s?s:i};\n\t\t\t\t\t}\n\t\t\t\t\t${Al(e,"> .alignfull")} {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t`:"";if("left"===a?m+=`${Al(e,"> :where(:not(.alignleft):not(.alignright):not(.alignfull))")}\n\t\t\t{ margin-left: ${d}; }`:"right"===a&&(m+=`${Al(e,"> :where(:not(.alignleft):not(.alignright):not(.alignfull))")}\n\t\t\t{ margin-right: ${p}; }`),n?.spacing?.padding){(0,Mi.getCSSRules)(n).forEach((t=>{"paddingRight"===t.key?m+=`\n\t\t\t\t\t${Al(e,"> .alignfull")} {\n\t\t\t\t\t\tmargin-right: calc(${t.value} * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`:"paddingLeft"===t.key&&(m+=`\n\t\t\t\t\t${Al(e,"> .alignfull")} {\n\t\t\t\t\t\tmargin-left: calc(${t.value} * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`)}))}return r&&u&&(m+=Ll(e,l,"constrained",u)),m},getOrientation(){return"vertical"},getAlignments(e){const t=Ol(e);if(void 0!==e.alignments)return e.alignments.includes("none")||e.alignments.unshift("none"),e.alignments.map((e=>({name:e,info:t[e]})));const{contentSize:n,wideSize:o}=e,r=[{name:"left"},{name:"center"},{name:"right"}];return n&&r.unshift({name:"full"}),o&&r.unshift({name:"wide",info:t.wide}),r.unshift({name:"none",info:t.none}),r}};const Ri={px:600,"%":100,vw:100,vh:100,em:38,rem:38,svw:100,lvw:100,dvw:100,svh:100,lvh:100,dvh:100,vi:100,svi:100,lvi:100,dvi:100,vb:100,svb:100,lvb:100,dvb:100,vmin:100,svmin:100,lvmin:100,dvmin:100,vmax:100,svmax:100,lvmax:100,dvmax:100};var Ni={name:"grid",label:(0,x.__)("Grid"),inspectorControls:function({layout:e={},onChange:t}){return e?.columnCount?(0,a.createElement)(Li,{layout:e,onChange:t}):(0,a.createElement)(Ai,{layout:e,onChange:t})},toolBarControls:function(){return null},getLayoutStyle:function({selector:e,layout:t,style:n,blockName:o,hasBlockGapSupport:r,layoutDefinitions:l=Nl}){const{minimumColumnWidth:i="12rem",columnCount:s=null}=t,a=n?.spacing?.blockGap&&!fl(o,"spacing","blockGap")?ti(n?.spacing?.blockGap,"0.5em"):void 0;let c="";const u=[];return s?u.push(`grid-template-columns: repeat(${s}, minmax(0, 1fr))`):i&&u.push(`grid-template-columns: repeat(auto-fill, minmax(min(${i}, 100%), 1fr))`),u.length&&(c=`${Al(e)} { ${u.join("; ")}; }`),r&&a&&(c+=Ll(e,l,"grid",a)),c},getOrientation(){return"horizontal"},getAlignments(){return[]}};function Ai({layout:e,onChange:t}){const{minimumColumnWidth:n="12rem"}=e,[o,r]=(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(n);return(0,a.createElement)("fieldset",null,(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},(0,x.__)("Minimum column width")),(0,a.createElement)(vl.Flex,{gap:4},(0,a.createElement)(vl.FlexItem,{isBlock:!0},(0,a.createElement)(vl.__experimentalUnitControl,{size:"__unstable-large",onChange:n=>{t({...e,minimumColumnWidth:n})},onUnitChange:n=>{let l;["em","rem"].includes(n)&&"px"===r?l=(o/16).toFixed(2)+n:["em","rem"].includes(r)&&"px"===n?l=Math.round(16*o)+n:["vh","vw","%","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax"].includes(n)&&o>100&&(l=100+n),t({...e,minimumColumnWidth:l})},value:n,min:0})),(0,a.createElement)(vl.FlexItem,{isBlock:!0},(0,a.createElement)(vl.RangeControl,{onChange:n=>{t({...e,minimumColumnWidth:[n,r].join("")})},value:o,min:0,max:Ri[r]||600,withInputField:!1}))))}function Li({layout:e,onChange:t}){const{columnCount:n=3}=e;return(0,a.createElement)(vl.RangeControl,{label:(0,x.__)("Columns"),value:n,onChange:n=>t({...e,columnCount:n}),min:1,max:6})}const Oi=[xi,_i,Pi,Ni];function Di(e="default"){return Oi.find((t=>t.name===e))}const zi={type:"default"},Vi=(0,d.createContext)(zi),Fi=Vi.Provider;function Hi(){return(0,d.useContext)(Vi)}const Gi=[],Ui=["none","left","center","right","wide","full"],$i=["wide","full"];function ji(e=Ui){e.includes("none")||(e=["none",...e]);const t=1===e.length&&"none"===e[0],[n,o,r]=(0,p.useSelect)((e=>{var n;if(t)return[!1,!1,!1];const o=e(wr).getSettings();return[null!==(n=o.alignWide)&&void 0!==n&&n,o.supportsLayout,o.__unstableIsBlockBasedTheme]}),[t]),l=Hi();if(t)return Gi;const i=Di(l?.type);if(o){const t=i.getAlignments(l,r).filter((t=>e.includes(t.name)));return 1===t.length&&"none"===t[0].name?Gi:t}if("default"!==i.name&&"constrained"!==i.name)return Gi;const s=e.filter((e=>l.alignments?l.alignments.includes(e):!(!n&&$i.includes(e))&&Ui.includes(e))).map((e=>({name:e})));return 1===s.length&&"none"===s[0].name?Gi:s}var Wi=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z"}));var Ki=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z"}));var Zi=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z"}));var qi=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M5 4h14v11H5V4Zm11 16H8v-1.5h8V20Z"}));const Yi={none:{icon:Wi,title:(0,x._x)("None","Alignment option")},left:{icon:Ki,title:(0,x.__)("Align left")},center:{icon:Ii,title:(0,x.__)("Align center")},right:{icon:Zi,title:(0,x.__)("Align right")},wide:{icon:Ti,title:(0,x.__)("Wide width")},full:{icon:qi,title:(0,x.__)("Full width")}};var Xi=function({value:e,onChange:t,controls:n,isToolbar:o,isCollapsed:r=!0}){const l=ji(n);if(!!!l.length)return null;function i(n){t([e,"none"].includes(n)?void 0:n)}const s=Yi[e],c=Yi.none,u=o?vl.ToolbarGroup:vl.ToolbarDropdownMenu,d={icon:s?s.icon:c.icon,label:(0,x.__)("Align")},p=o?{isCollapsed:r,controls:l.map((({name:t})=>({...Yi[t],isActive:e===t||!e&&"none"===t,role:r?"menuitemradio":void 0,onClick:()=>i(t)})))}:{toggleProps:{describedBy:(0,x.__)("Change alignment")},children:({onClose:t})=>(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.MenuGroup,{className:"block-editor-block-alignment-control__menu-group"},l.map((({name:n,info:o})=>{const{icon:r,title:l}=Yi[n],s=n===e||!e&&"none"===n;return(0,a.createElement)(vl.MenuItem,{key:n,icon:r,iconPosition:"left",className:dl()("components-dropdown-menu__menu-item",{"is-active":s}),isSelected:s,onClick:()=>{i(n),t()},role:"menuitemradio",info:o},l)}))))};return(0,a.createElement)(u,{...d,...p})};const Qi=e=>(0,a.createElement)(Xi,{...e,isToolbar:!1}),Ji=e=>(0,a.createElement)(Xi,{...e,isToolbar:!0});function es(e){const t=y(),{clientId:n=""}=t,{setBlockEditingMode:o,unsetBlockEditingMode:r}=(0,p.useDispatch)(wr),l=(0,p.useSelect)((e=>n?null:e(wr).getBlockEditingMode()),[n]);return(0,d.useEffect)((()=>(e&&o(n,e),()=>{e&&r(n)})),[n,e,o,r]),n?t[b]:l}const ts=["left","center","right","wide","full"],ns=["wide","full"];function os(e,t=!0,n=!0){let o;return o=Array.isArray(e)?ts.filter((t=>e.includes(t))):!0===e?[...ts]:[],!n||!0===e&&!t?o.filter((e=>!ns.includes(e))):o}var rs={shareWithChildBlocks:!0,edit:function({name:e,align:t,setAttributes:n}){const o=ji(os((0,u.getBlockSupport)(e,"align"),(0,u.hasBlockSupport)(e,"alignWide",!0))).map((({name:e})=>e)),r=es();return o.length&&"default"===r?(0,a.createElement)(Cl,{group:"block",__experimentalShareWithChildBlocks:!0},(0,a.createElement)(Qi,{value:t,onChange:t=>{if(!t){const n=(0,u.getBlockType)(e),o=n?.attributes?.align?.default;o&&(t="")}n({align:t})},controls:o})):null},useBlockProps:function({name:e,align:t}){const n=os((0,u.getBlockSupport)(e,"align"),(0,u.hasBlockSupport)(e,"alignWide",!0));if(ji(n).some((e=>e.name===t)))return{"data-align":t};return{}},addSaveProps:function(e,t,n){const{align:o}=n,r=(0,u.getBlockSupport)(t,"align"),l=(0,u.hasBlockSupport)(t,"alignWide",!0),i=os(r,l).includes(o);i&&(e.className=dl()(`align${o}`,e.className));return e},attributeKeys:["align"],hasSupport(e){return(0,u.hasBlockSupport)(e,"align",!1)}};(0,f.addFilter)("blocks.registerBlockType","core/editor/align/addAttribute",(function(e){var t;return"type"in(null!==(t=e.attributes?.align)&&void 0!==t?t:{})||(0,u.hasBlockSupport)(e,"align")&&(e.attributes={...e.attributes,align:{type:"string",enum:[...ts,""]}}),e})),(0,f.addFilter)("blocks.registerBlockType","core/lock/addAttribute",(function(e){var t;return"type"in(null!==(t=e.attributes?.lock)&&void 0!==t?t:{})||(e.attributes={...e.attributes,lock:{type:"object"}}),e}));const ls=(0,vl.createSlotFill)("InspectorControls"),is=(0,vl.createSlotFill)("InspectorAdvancedControls"),ss=(0,vl.createSlotFill)("InspectorControlsBackground"),as=(0,vl.createSlotFill)("InspectorControlsBorder"),cs=(0,vl.createSlotFill)("InspectorControlsColor"),us=(0,vl.createSlotFill)("InspectorControlsFilter"),ds=(0,vl.createSlotFill)("InspectorControlsDimensions"),ps=(0,vl.createSlotFill)("InspectorControlsPosition"),ms=(0,vl.createSlotFill)("InspectorControlsTypography"),fs=(0,vl.createSlotFill)("InspectorControlsListView"),hs=(0,vl.createSlotFill)("InspectorControlsStyles");var gs={default:ls,advanced:is,background:ss,border:as,color:cs,dimensions:ds,effects:(0,vl.createSlotFill)("InspectorControlsEffects"),filter:us,list:fs,position:ps,settings:ls,styles:hs,typography:ms};function bs({children:e,group:t="default",__experimentalGroup:n,resetAllFilter:o}){n&&(w()("`__experimentalGroup` property in `InspectorControlsFill`",{since:"6.2",version:"6.4",alternative:"`group`"}),t=n);const r=y(),l=gs[t]?.Fill;return l&&r[h]?(0,a.createElement)(vl.__experimentalStyleProvider,{document:document},(0,a.createElement)(l,null,(t=>(0,a.createElement)(ks,{fillProps:t,children:e,resetAllFilter:o})))):null}function vs({resetAllFilter:e,children:t}){const{registerResetAllFilter:n,deregisterResetAllFilter:o}=(0,d.useContext)(vl.__experimentalToolsPanelContext);return(0,d.useEffect)((()=>{if(e&&n&&o)return n(e),()=>{o(e)}}),[e,n,o]),t}function ks({children:e,resetAllFilter:t,fillProps:n}){const{forwardedContext:o=[]}=n,r=(0,a.createElement)(vs,{resetAllFilter:t},e);return o.reduce(((e,[t,n])=>(0,a.createElement)(t,{...n},e)),r)}function _s({children:e,group:t,label:n}){const{updateBlockAttributes:o}=(0,p.useDispatch)(wr),{getBlockAttributes:r,getMultiSelectedBlockClientIds:l,getSelectedBlockClientId:i,hasMultiSelection:s}=(0,p.useSelect)(wr),c=i(),u=(0,d.useCallback)(((e=[])=>{const t={},n=s()?l():[c];n.forEach((n=>{const{style:o}=r(n);let l={style:o};e.forEach((e=>{l={...l,...e(l)}})),l={...l,style:pl(l.style)},t[n]=l})),o(n,t,!0)}),[r,l,s,c,o]);return(0,a.createElement)(vl.__experimentalToolsPanel,{className:`${t}-block-support-panel`,label:n,resetAll:u,key:c,panelId:c,hasInnerWrapper:!0,shouldRenderPlaceholderItems:!0,__experimentalFirstVisibleItemClass:"first",__experimentalLastVisibleItemClass:"last",dropdownMenuProps:Yr},e)}function ys({Slot:e,fillProps:t,...n}){const o=(0,d.useContext)(vl.__experimentalToolsPanelContext),r=(0,d.useMemo)((()=>{var e;return{...null!=t?t:{},forwardedContext:[...null!==(e=t?.forwardedContext)&&void 0!==e?e:[],[vl.__experimentalToolsPanelContext.Provider,{value:o}]]}}),[o,t]);return(0,a.createElement)(e,{...n,fillProps:r,bubblesVirtually:!0})}function Es({__experimentalGroup:e,group:t="default",label:n,fillProps:o,...r}){e&&(w()("`__experimentalGroup` property in `InspectorControlsSlot`",{since:"6.2",version:"6.4",alternative:"`group`"}),t=e);const l=gs[t]?.Slot,i=(0,vl.__experimentalUseSlotFills)(l?.__unstableName),s=(0,d.useContext)(vl.__unstableMotionContext),c=(0,d.useMemo)((()=>{var e;return{...null!=o?o:{},forwardedContext:[...null!==(e=o?.forwardedContext)&&void 0!==e?e:[],[vl.__unstableMotionContext.Provider,{value:s}]]}}),[s,o]);return l&&i?.length?n?(0,a.createElement)(_s,{group:t,label:n},(0,a.createElement)(ys,{...r,fillProps:c,Slot:l})):(0,a.createElement)(l,{...r,fillProps:c,bubblesVirtually:!0}):null}const ws=bs;ws.Slot=Es;const Ss=e=>(0,a.createElement)(bs,{...e,group:"advanced"});Ss.Slot=e=>(0,a.createElement)(Es,{...e,group:"advanced"}),Ss.slotName="InspectorAdvancedControls";var Cs=ws;const xs=/[\s#]/g,Bs={type:"string",source:"attribute",attribute:"id",selector:"*"};var Is={addSaveProps:function(e,t,n){(0,u.hasBlockSupport)(t,"anchor")&&(e.id=""===n.anchor?null:n.anchor);return e},edit:function({name:e,anchor:t,setAttributes:n}){const o=es(),r="web"===d.Platform.OS,l=(0,a.createElement)(vl.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,className:"html-anchor-control",label:(0,x.__)("HTML anchor"),help:(0,a.createElement)(a.Fragment,null,(0,x.__)("Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page."),r&&(0,a.createElement)(vl.ExternalLink,{href:(0,x.__)("https://wordpress.org/documentation/article/page-jumps/")},(0,x.__)("Learn more about anchors"))),value:t||"",placeholder:r?null:(0,x.__)("Add an anchor"),onChange:e=>{e=e.replace(xs,"-"),n({anchor:e})},autoCapitalize:"none",autoComplete:"off"});return(0,a.createElement)(a.Fragment,null,r&&"default"===o&&(0,a.createElement)(Cs,{group:"advanced"},l),!r&&"core/heading"===e&&(0,a.createElement)(Cs,null,(0,a.createElement)(vl.PanelBody,{title:(0,x.__)("Heading settings")},l)))},attributeKeys:["anchor"],hasSupport(e){return(0,u.hasBlockSupport)(e,"anchor")}};(0,f.addFilter)("blocks.registerBlockType","core/anchor/attribute",(function(e){var t;return"type"in(null!==(t=e.attributes?.anchor)&&void 0!==t?t:{})||(0,u.hasBlockSupport)(e,"anchor")&&(e.attributes={...e.attributes,anchor:Bs}),e}));const Ts={type:"string",source:"attribute",attribute:"aria-label",selector:"*"};var Ms={addSaveProps:function(e,t,n){return(0,u.hasBlockSupport)(t,"ariaLabel")&&(e["aria-label"]=""===n.ariaLabel?null:n.ariaLabel),e},attributeKeys:["ariaLabel"],hasSupport(e){return(0,u.hasBlockSupport)(e,"ariaLabel")}};(0,f.addFilter)("blocks.registerBlockType","core/ariaLabel/attribute",(function(e){return e?.attributes?.ariaLabel?.type||(0,u.hasBlockSupport)(e,"ariaLabel")&&(e.attributes={...e.attributes,ariaLabel:Ts}),e}));var Ps={edit:function({className:e,setAttributes:t}){return"default"!==es()?null:(0,a.createElement)(Cs,{group:"advanced"},(0,a.createElement)(vl.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,autoComplete:"off",label:(0,x.__)("Additional CSS class(es)"),value:e||"",onChange:e=>{t({className:""!==e?e:void 0})},help:(0,x.__)("Separate multiple classes with spaces.")}))},addSaveProps:function(e,t,n){(0,u.hasBlockSupport)(t,"customClassName",!0)&&n.className&&(e.className=dl()(e.className,n.className));return e},attributeKeys:["className"],hasSupport(e){return(0,u.hasBlockSupport)(e,"customClassName",!0)}};(0,f.addFilter)("blocks.registerBlockType","core/editor/custom-class-name/attribute",(function(e){return(0,u.hasBlockSupport)(e,"customClassName",!0)&&(e.attributes={...e.attributes,className:{type:"string"}}),e})),(0,f.addFilter)("blocks.switchToBlockType.transformedBlock","core/color/addTransforms",(function(e,t,n,o){if(!(0,u.hasBlockSupport)(e.name,"customClassName",!0))return e;if(1===o.length&&e.innerBlocks.length===t.length)return e;if(1===o.length&&t.length>1||o.length>1&&1===t.length)return e;if(t[n]){const o=t[n]?.attributes.className;if(o)return{...e,attributes:{...e.attributes,className:o}}}return e})),(0,f.addFilter)("blocks.getSaveContent.extraProps","core/generated-class-name/save-props",(function(e,t){return(0,u.hasBlockSupport)(t,"className",!0)&&("string"==typeof e.className?e.className=[...new Set([(0,u.getBlockDefaultClassName)(t.name),...e.className.split(" ")])].join(" ").trim():e.className=(0,u.getBlockDefaultClassName)(t.name)),e}));var Rs=window.wp.blob,Ns=window.wp.dom,As=window.wp.notices,Ls=window.wp.url,Os=window.wp.keycodes;var Ds=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7 6.5 4 2.5-4 2.5z"}),(0,a.createElement)(Z.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z"}));var zs=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"}));var Vs=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z"}));var Fs=(0,vl.withFilters)("editor.MediaUpload")((()=>null));var Hs=function({fallback:e=null,children:t}){const n=(0,p.useSelect)((e=>{const{getSettings:t}=e(wr);return!!t().mediaUpload}),[]);return n?t:e},Gs=window.wp.isShallowEqual,Us=n.n(Gs),$s=window.wp.preferences;var js=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},(0,a.createElement)(Z.Path,{d:"M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z"}));var Ws=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"}));var Ks=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"}));var Zs=function e({children:t,settingsOpen:n,setSettingsOpen:o}){const r=(0,m.useReducedMotion)(),l=r?d.Fragment:vl.__unstableAnimatePresence,i=r?"div":vl.__unstableMotion.div,s=`link-control-settings-drawer-${(0,m.useInstanceId)(e)}`;return(0,a.createElement)(d.Fragment,null,(0,a.createElement)(vl.Button,{className:"block-editor-link-control__drawer-toggle","aria-expanded":n,onClick:()=>o(!n),icon:(0,x.isRTL)()?Ws:Ks,"aria-controls":s},(0,x._x)("Advanced","Additional link settings")),(0,a.createElement)(l,null,n&&(0,a.createElement)(i,{className:"block-editor-link-control__drawer",hidden:!n,id:s,initial:"collapsed",animate:"open",exit:"collapsed",variants:{open:{opacity:1,height:"auto"},collapsed:{opacity:0,height:0}},transition:{duration:.1}},(0,a.createElement)("div",{className:"block-editor-link-control__drawer-inner"},t))))},qs=n(5425),Ys=n.n(qs);function Xs(e){return"function"==typeof e}class Qs extends d.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this),this.onFocus=this.onFocus.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.selectLink=this.selectLink.bind(this),this.handleOnClick=this.handleOnClick.bind(this),this.bindSuggestionNode=this.bindSuggestionNode.bind(this),this.autocompleteRef=e.autocompleteRef||(0,d.createRef)(),this.inputRef=(0,d.createRef)(),this.updateSuggestions=(0,m.debounce)(this.updateSuggestions.bind(this),200),this.suggestionNodes=[],this.suggestionsRequest=null,this.state={suggestions:[],showSuggestions:!1,suggestionsValue:null,selectedSuggestion:null,suggestionsListboxId:"",suggestionOptionIdPrefix:""}}componentDidUpdate(e){const{showSuggestions:t,selectedSuggestion:n}=this.state,{value:o,__experimentalShowInitialSuggestions:r=!1}=this.props;t&&null!==n&&this.suggestionNodes[n]&&!this.scrollingIntoView&&(this.scrollingIntoView=!0,Ys()(this.suggestionNodes[n],this.autocompleteRef.current,{onlyScrollIfNeeded:!0}),this.props.setTimeout((()=>{this.scrollingIntoView=!1}),100)),e.value===o||this.props.disableSuggestions||(o?.length?this.updateSuggestions(o):r&&this.updateSuggestions())}componentDidMount(){this.shouldShowInitialSuggestions()&&this.updateSuggestions()}componentWillUnmount(){this.suggestionsRequest?.cancel?.(),this.suggestionsRequest=null}bindSuggestionNode(e){return t=>{this.suggestionNodes[e]=t}}shouldShowInitialSuggestions(){const{__experimentalShowInitialSuggestions:e=!1,value:t}=this.props;return e&&!(t&&t.length)}updateSuggestions(e=""){const{__experimentalFetchLinkSuggestions:t,__experimentalHandleURLSuggestions:n}=this.props;if(!t)return;const o=!e?.length;if(e=e.trim(),!o&&(e.length<2||!n&&(0,Ls.isURL)(e)))return this.suggestionsRequest?.cancel?.(),this.suggestionsRequest=null,void this.setState({suggestions:[],showSuggestions:!1,suggestionsValue:e,selectedSuggestion:null,loading:!1});this.setState({selectedSuggestion:null,loading:!0});const r=t(e,{isInitialSuggestions:o});r.then((t=>{this.suggestionsRequest===r&&(this.setState({suggestions:t,suggestionsValue:e,loading:!1,showSuggestions:!!t.length}),t.length?this.props.debouncedSpeak((0,x.sprintf)((0,x._n)("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",t.length),t.length),"assertive"):this.props.debouncedSpeak((0,x.__)("No results."),"assertive"))})).catch((()=>{this.suggestionsRequest===r&&this.setState({loading:!1})})).finally((()=>{this.suggestionsRequest===r&&(this.suggestionsRequest=null)})),this.suggestionsRequest=r}onChange(e){this.props.onChange(e.target.value)}onFocus(){const{suggestions:e}=this.state,{disableSuggestions:t,value:n}=this.props;!n||t||e&&e.length||null!==this.suggestionsRequest||this.updateSuggestions(n)}onKeyDown(e){this.props.onKeyDown?.(e);const{showSuggestions:t,selectedSuggestion:n,suggestions:o,loading:r}=this.state;if(!t||!o.length||r){switch(e.keyCode){case Os.UP:0!==e.target.selectionStart&&(e.preventDefault(),e.target.setSelectionRange(0,0));break;case Os.DOWN:this.props.value.length!==e.target.selectionStart&&(e.preventDefault(),e.target.setSelectionRange(this.props.value.length,this.props.value.length));break;case Os.ENTER:this.props.onSubmit&&(e.preventDefault(),this.props.onSubmit(null,e))}return}const l=this.state.suggestions[this.state.selectedSuggestion];switch(e.keyCode){case Os.UP:{e.preventDefault();const t=n?n-1:o.length-1;this.setState({selectedSuggestion:t});break}case Os.DOWN:{e.preventDefault();const t=null===n||n===o.length-1?0:n+1;this.setState({selectedSuggestion:t});break}case Os.TAB:null!==this.state.selectedSuggestion&&(this.selectLink(l),this.props.speak((0,x.__)("Link selected.")));break;case Os.ENTER:e.preventDefault(),null!==this.state.selectedSuggestion?(this.selectLink(l),this.props.onSubmit&&this.props.onSubmit(l,e)):this.props.onSubmit&&this.props.onSubmit(null,e)}}selectLink(e){this.props.onChange(e.url,e),this.setState({selectedSuggestion:null,showSuggestions:!1})}handleOnClick(e){this.selectLink(e),this.inputRef.current.focus()}static getDerivedStateFromProps({value:e,instanceId:t,disableSuggestions:n,__experimentalShowInitialSuggestions:o=!1},{showSuggestions:r}){let l=r;const i=e&&e.length;return o||i||(l=!1),!0===n&&(l=!1),{showSuggestions:l,suggestionsListboxId:`block-editor-url-input-suggestions-${t}`,suggestionOptionIdPrefix:`block-editor-url-input-suggestion-${t}`}}render(){return(0,a.createElement)(a.Fragment,null,this.renderControl(),this.renderSuggestions())}renderControl(){const{__nextHasNoMarginBottom:e=!1,label:t=null,className:n,isFullWidth:o,instanceId:r,placeholder:l=(0,x.__)("Paste URL or type to search"),__experimentalRenderControl:i,value:s="",hideLabelFromVision:c=!1}=this.props,{loading:u,showSuggestions:d,selectedSuggestion:p,suggestionsListboxId:m,suggestionOptionIdPrefix:f}=this.state,h=`url-input-control-${r}`,g={id:h,label:t,className:dl()("block-editor-url-input",n,{"is-full-width":o}),hideLabelFromVision:c},b={id:h,value:s,required:!0,className:"block-editor-url-input__input",type:"text",onChange:this.onChange,onFocus:this.onFocus,placeholder:l,onKeyDown:this.onKeyDown,role:"combobox","aria-label":t?void 0:(0,x.__)("URL"),"aria-expanded":d,"aria-autocomplete":"list","aria-owns":m,"aria-activedescendant":null!==p?`${f}-${p}`:void 0,ref:this.inputRef};return i?i(g,b,u):(e||w()("Bottom margin styles for wp.blockEditor.URLInput",{since:"6.2",version:"6.5",hint:"Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version"}),(0,a.createElement)(vl.BaseControl,{__nextHasNoMarginBottom:e,...g},(0,a.createElement)("input",{...b}),u&&(0,a.createElement)(vl.Spinner,null)))}renderSuggestions(){const{className:e,__experimentalRenderSuggestions:t}=this.props,{showSuggestions:n,suggestions:o,suggestionsValue:r,selectedSuggestion:l,suggestionsListboxId:i,suggestionOptionIdPrefix:s,loading:c}=this.state;if(!n||0===o.length)return null;const u={id:i,ref:this.autocompleteRef,role:"listbox"},d=(e,t)=>({role:"option",tabIndex:"-1",id:`${s}-${t}`,ref:this.bindSuggestionNode(t),"aria-selected":t===l||void 0});return Xs(t)?t({suggestions:o,selectedSuggestion:l,suggestionsListProps:u,buildSuggestionItemProps:d,isLoading:c,handleSuggestionClick:this.handleOnClick,isInitialSuggestions:!r?.length,currentInputValue:r}):(0,a.createElement)(vl.Popover,{placement:"bottom",focusOnMount:!1},(0,a.createElement)("div",{...u,className:dl()("block-editor-url-input__suggestions",`${e}__suggestions`)},o.map(((e,t)=>(0,a.createElement)(vl.Button,{...d(0,t),key:e.id,className:dl()("block-editor-url-input__suggestion",{"is-selected":t===l}),onClick:()=>this.handleOnClick(e)},e.title)))))}}var Js=(0,m.compose)(m.withSafeTimeout,vl.withSpokenMessages,m.withInstanceId,(0,p.withSelect)(((e,t)=>{if(Xs(t.__experimentalFetchLinkSuggestions))return;const{getSettings:n}=e(wr);return{__experimentalFetchLinkSuggestions:n().__experimentalFetchLinkSuggestions}})))(Qs);var ea=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"}));var ta=({searchTerm:e,onClick:t,itemProps:n,buttonText:o})=>{if(!e)return null;let r;return r=o?"function"==typeof o?o(e):o:(0,d.createInterpolateElement)((0,x.sprintf)((0,x.__)("Create: %s"),e),{mark:(0,a.createElement)("mark",null)}),(0,a.createElement)(vl.MenuItem,{...n,iconPosition:"left",icon:ea,className:"block-editor-link-control__search-item",onClick:t},r)};var na=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M18 5.5H6a.5.5 0 0 0-.5.5v12a.5.5 0 0 0 .5.5h12a.5.5 0 0 0 .5-.5V6a.5.5 0 0 0-.5-.5ZM6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Zm1 5h1.5v1.5H7V9Zm1.5 4.5H7V15h1.5v-1.5ZM10 9h7v1.5h-7V9Zm7 4.5h-7V15h7v-1.5Z"}));var oa=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"}),(0,a.createElement)(Z.Path,{d:"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"}));var ra=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M4.75 4a.75.75 0 0 0-.75.75v7.826c0 .2.08.39.22.53l6.72 6.716a2.313 2.313 0 0 0 3.276-.001l5.61-5.611-.531-.53.532.528a2.315 2.315 0 0 0 0-3.264L13.104 4.22a.75.75 0 0 0-.53-.22H4.75ZM19 12.576a.815.815 0 0 1-.236.574l-5.61 5.611a.814.814 0 0 1-1.153 0L5.5 12.264V5.5h6.763l6.5 6.502a.816.816 0 0 1 .237.574ZM8.75 9.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"}));var la=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z",fillRule:"evenodd",clipRule:"evenodd"}));var ia=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z"}));var sa=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M12 3.3c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8s-4-8.8-8.8-8.8zm6.5 5.5h-2.6C15.4 7.3 14.8 6 14 5c2 .6 3.6 2 4.5 3.8zm.7 3.2c0 .6-.1 1.2-.2 1.8h-2.9c.1-.6.1-1.2.1-1.8s-.1-1.2-.1-1.8H19c.2.6.2 1.2.2 1.8zM12 18.7c-1-.7-1.8-1.9-2.3-3.5h4.6c-.5 1.6-1.3 2.9-2.3 3.5zm-2.6-4.9c-.1-.6-.1-1.1-.1-1.8 0-.6.1-1.2.1-1.8h5.2c.1.6.1 1.1.1 1.8s-.1 1.2-.1 1.8H9.4zM4.8 12c0-.6.1-1.2.2-1.8h2.9c-.1.6-.1 1.2-.1 1.8 0 .6.1 1.2.1 1.8H5c-.2-.6-.2-1.2-.2-1.8zM12 5.3c1 .7 1.8 1.9 2.3 3.5H9.7c.5-1.6 1.3-2.9 2.3-3.5zM10 5c-.8 1-1.4 2.3-1.8 3.8H5.5C6.4 7 8 5.6 10 5zM5.5 15.3h2.6c.4 1.5 1 2.8 1.8 3.7-1.8-.6-3.5-2-4.4-3.7zM14 19c.8-1 1.4-2.2 1.8-3.7h2.6C17.6 17 16 18.4 14 19z"}));var aa=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"}));var ca=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z"}));const ua={post:na,page:oa,post_tag:ra,category:la,attachment:ia};function da({isURL:e,suggestion:t}){let n=null;return e?n=sa:t.type in ua&&(n=ua[t.type],"page"===t.type&&(t.isFrontPage&&(n=aa),t.isBlogHome&&(n=ca))),n?(0,a.createElement)(Bi,{className:"block-editor-link-control__search-item-icon",icon:n}):null}function pa(e){const t=e?.trim();return t?.length?e?.replace(/^\/?/,"/"):e}function ma(e){const t=e?.trim();return t?.length?e?.replace(/\/$/,""):e}function fa(e){return e.isFrontPage?"front page":e.isBlogHome?"blog home":"post_tag"===e.type?"tag":e.type}var ha=({itemProps:e,suggestion:t,searchTerm:n,onClick:o,isURL:r=!1,shouldShowType:l=!1})=>{const i=r?(0,x.__)("Press ENTER to add this link"):(s=t.url)?(0,m.pipe)(Ls.safeDecodeURI,Ls.getPath,(e=>t=>null==t||t!=t?e:t)(""),((e,...t)=>(...n)=>e(...n,...t))(Ls.filterURLForDisplay,24),ma,pa)(s):s;var s;return(0,a.createElement)(vl.MenuItem,{...e,info:i,iconPosition:"left",icon:(0,a.createElement)(da,{suggestion:t,isURL:r}),onClick:o,shortcut:l&&fa(t),className:"block-editor-link-control__search-item"},(0,a.createElement)(vl.TextHighlight,{text:(0,Ns.__unstableStripHTML)(t.title),highlight:n}))};const ga="__CREATE__",ba="link",va="mailto",ka="internal",_a=[ba,va,"tel",ka],ya=[{id:"opensInNewTab",title:(0,x.__)("Open in new tab")}];function Ea({instanceId:e,withCreateSuggestion:t,currentInputValue:n,handleSuggestionClick:o,suggestionsListProps:r,buildSuggestionItemProps:l,suggestions:i,selectedSuggestion:s,isLoading:c,isInitialSuggestions:u,createSuggestionButtonText:d,suggestionsQuery:p}){const m=dl()("block-editor-link-control__search-results",{"is-loading":c}),f=1===i.length&&_a.includes(i[0].type),h=t&&!f&&!u,g=!p?.type,b=`block-editor-link-control-search-results-label-${e}`,v=u?(0,x.__)("Suggestions"):(0,x.sprintf)((0,x.__)('Search results for "%s"'),n),k=(0,a.createElement)(vl.VisuallyHidden,{id:b},v);return(0,a.createElement)("div",{className:"block-editor-link-control__search-results-wrapper"},k,(0,a.createElement)("div",{...r,className:m,"aria-labelledby":b},(0,a.createElement)(vl.MenuGroup,null,i.map(((e,t)=>h&&ga===e.type?(0,a.createElement)(ta,{searchTerm:n,buttonText:d,onClick:()=>o(e),key:e.type,itemProps:l(e,t),isSelected:t===s}):ga===e.type?null:(0,a.createElement)(ha,{key:`${e.id}-${e.type}`,itemProps:l(e,t),suggestion:e,index:t,onClick:()=>{o(e)},isSelected:t===s,isURL:_a.includes(e.type),searchTerm:n,shouldShowType:g,isFrontPage:e?.isFrontPage,isBlogHome:e?.isBlogHome}))))))}function wa(e){if(e.includes(" "))return!1;const t=(0,Ls.getProtocol)(e),n=(0,Ls.isValidProtocol)(t),o=function(e,t=6){const n=e.split(/[?#]/)[0];return new RegExp(`(?<=\\S)\\.(?:[a-zA-Z_]{2,${t}})(?:\\/|$)`).test(n)}(e),r=e?.startsWith("www."),l=e?.startsWith("#")&&(0,Ls.isValidFragment)(e);return n||r||l||o}const Sa=()=>Promise.resolve([]),Ca=e=>{let t=ba;const n=(0,Ls.getProtocol)(e)||"";return n.includes("mailto")&&(t=va),n.includes("tel")&&(t="tel"),e?.startsWith("#")&&(t=ka),Promise.resolve([{id:e,title:e,url:"URL"===t?(0,Ls.prependHTTP)(e):e,type:t}])};function xa(e,t,n){const{fetchSearchSuggestions:o,pageOnFront:r,pageForPosts:l}=(0,p.useSelect)((e=>{const{getSettings:t}=e(wr);return{pageOnFront:t().pageOnFront,pageForPosts:t().pageForPosts,fetchSearchSuggestions:t().__experimentalFetchLinkSuggestions}}),[]),i=t?Ca:Sa;return(0,d.useCallback)(((t,{isInitialSuggestions:s})=>wa(t)?i(t,{isInitialSuggestions:s}):(async(e,t,n,o,r,l)=>{const{isInitialSuggestions:i}=t,s=await n(e,t);return s.map((e=>Number(e.id)===r?(e.isFrontPage=!0,e):Number(e.id)===l?(e.isBlogHome=!0,e):e)),i||wa(e)||!o?s:s.concat({title:e,url:e,type:ga})})(t,{...e,isInitialSuggestions:s},o,n,r,l)),[i,o,r,l,e,n])}const Ba=()=>Promise.resolve([]),Ia=()=>{},Ta=(0,d.forwardRef)((({value:e,children:t,currentLink:n={},className:o=null,placeholder:r=null,withCreateSuggestion:l=!1,onCreateSuggestion:i=Ia,onChange:s=Ia,onSelect:c=Ia,showSuggestions:u=!0,renderSuggestions:p=(e=>(0,a.createElement)(Ea,{...e})),fetchSuggestions:f=null,allowDirectEntry:h=!0,showInitialSuggestions:g=!1,suggestionsQuery:b={},withURLSuggestion:v=!0,createSuggestionButtonText:k,hideLabelFromVision:_=!1},y)=>{const E=xa(b,h,l),w=u?f||E:Ba,S=(0,m.useInstanceId)(Ta),[C,B]=(0,d.useState)(),I=async e=>{let t=e;if(ga!==e.type){if(h||t&&Object.keys(t).length>=1){const{id:e,url:o,...r}=null!=n?n:{};c({...r,...t},t)}}else try{t=await i(e.title),t?.url&&c(t)}catch(e){}};return(0,a.createElement)("div",{className:"block-editor-link-control__search-input-container"},(0,a.createElement)(Js,{disableSuggestions:n?.url===e,__nextHasNoMarginBottom:!0,label:(0,x.__)("Link"),hideLabelFromVision:_,className:o,value:e,onChange:(e,t)=>{s(e),B(t)},placeholder:null!=r?r:(0,x.__)("Search or type url"),__experimentalRenderSuggestions:u?e=>p({...e,instanceId:S,withCreateSuggestion:l,createSuggestionButtonText:k,suggestionsQuery:b,handleSuggestionClick:t=>{e.handleSuggestionClick&&e.handleSuggestionClick(t),I(t)}}):null,__experimentalFetchLinkSuggestions:w,__experimentalHandleURLSuggestions:!0,__experimentalShowInitialSuggestions:g,onSubmit:(t,n)=>{const o=t||C;o||e?.trim()?.length?I(o||{url:e}):n.preventDefault()},ref:y}),t)}));var Ma=Ta;var Pa=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z"}));var Ra=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"}));var Na=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z"}));var Aa=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M5 4.5h11a.5.5 0 0 1 .5.5v11a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5ZM3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm17 3v10.75c0 .69-.56 1.25-1.25 1.25H6v1.5h12.75a2.75 2.75 0 0 0 2.75-2.75V8H20Z"}));const{Slot:La,Fill:Oa}=(0,vl.createSlotFill)("BlockEditorLinkControlViewer");function Da(e,t){switch(t.type){case"RESOLVED":return{...e,isFetching:!1,richData:t.richData};case"ERROR":return{...e,isFetching:!1,richData:null};case"LOADING":return{...e,isFetching:!0};default:throw new Error(`Unexpected action type ${t.type}`)}}var za=function(e){const[t,n]=(0,d.useReducer)(Da,{richData:null,isFetching:!1}),{fetchRichUrlData:o}=(0,p.useSelect)((e=>{const{getSettings:t}=e(wr);return{fetchRichUrlData:t().__experimentalFetchRichUrlData}}),[]);return(0,d.useEffect)((()=>{if(e?.length&&o&&"undefined"!=typeof AbortController){n({type:"LOADING"});const t=new window.AbortController,r=t.signal;return o(e,{signal:r}).then((e=>{n({type:"RESOLVED",richData:e})})).catch((()=>{r.aborted||n({type:"ERROR"})})),()=>{t.abort()}}}),[e]),t};function Va({value:e,onEditClick:t,hasRichPreviews:n=!1,hasUnlinkControl:o=!1,onRemove:r,additionalControls:l}){const i=n?e?.url:null,{richData:s,isFetching:c}=za(i),u=s&&Object.keys(s).length,d=e&&(0,Ls.filterURLForDisplay)((0,Ls.safeDecodeURI)(e.url),24)||"",f=!e?.url?.length,h=!f&&(0,Ns.__unstableStripHTML)(s?.title||e?.title||d);let g;g=s?.icon?(0,a.createElement)("img",{src:s?.icon,alt:""}):f?(0,a.createElement)(Bi,{icon:Pa,size:32}):(0,a.createElement)(Bi,{icon:sa});const{createNotice:b}=(0,p.useDispatch)(As.store),v=(0,m.useCopyToClipboard)(e.url,(()=>{b("info",(0,x.__)("Copied URL to clipboard."),{isDismissible:!0,type:"snackbar"})}));return(0,a.createElement)("div",{"aria-label":(0,x.__)("Currently selected"),className:dl()("block-editor-link-control__search-item",{"is-current":!0,"is-rich":u,"is-fetching":!!c,"is-preview":!0,"is-error":f,"is-url-title":h===d})},(0,a.createElement)("div",{className:"block-editor-link-control__search-item-top"},(0,a.createElement)("span",{className:"block-editor-link-control__search-item-header"},(0,a.createElement)("span",{className:dl()("block-editor-link-control__search-item-icon",{"is-image":s?.icon})},g),(0,a.createElement)("span",{className:"block-editor-link-control__search-item-details"},f?(0,a.createElement)("span",{className:"block-editor-link-control__search-item-error-notice"},(0,x.__)("Link is empty")):(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.Tooltip,{text:e.url},(0,a.createElement)(vl.ExternalLink,{className:"block-editor-link-control__search-item-title",href:e.url},(0,a.createElement)(vl.__experimentalTruncate,{numberOfLines:1},h))),e?.url&&h!==d&&(0,a.createElement)("span",{className:"block-editor-link-control__search-item-info"},(0,a.createElement)(vl.__experimentalTruncate,{numberOfLines:1},d))))),(0,a.createElement)(vl.Button,{icon:Ra,label:(0,x.__)("Edit"),className:"block-editor-link-control__search-item-action",onClick:t,size:"compact"}),o&&(0,a.createElement)(vl.Button,{icon:Na,label:(0,x.__)("Unlink"),className:"block-editor-link-control__search-item-action block-editor-link-control__unlink",onClick:r,size:"compact"}),(0,a.createElement)(vl.Button,{icon:Aa,label:(0,x.__)("Copy URL"),className:"block-editor-link-control__search-item-action block-editor-link-control__copy",ref:v,disabled:f,size:"compact"}),(0,a.createElement)(La,{fillProps:e})),l&&l())}const Fa=()=>{};var Ha=({value:e,onChange:t=Fa,settings:n})=>{if(!n||!n.length)return null;const o=n=>o=>{t({...e,[n.id]:o})},r=n.map((t=>(0,a.createElement)(vl.CheckboxControl,{__nextHasNoMarginBottom:!0,className:"block-editor-link-control__setting",key:t.id,label:t.title,onChange:o(t),checked:!!e&&!!e[t.id],help:t?.help})));return(0,a.createElement)("fieldset",{className:"block-editor-link-control__settings"},(0,a.createElement)(vl.VisuallyHidden,{as:"legend"},(0,x.__)("Currently selected link settings")),r)};const Ga=e=>{let t=!1;return{promise:new Promise(((n,o)=>{e.then((e=>t?o({isCanceled:!0}):n(e)),(e=>o(t?{isCanceled:!0}:e)))})),cancel(){t=!0}}};var Ua=n(2303),$a=n.n(Ua);const ja=()=>{},Wa="core/block-editor",Ka="linkControlSettingsDrawer";function Za({searchInputPlaceholder:e,value:t,settings:n=ya,onChange:o=ja,onRemove:r,onCancel:l,noDirectEntry:i=!1,showSuggestions:s=!0,showInitialSuggestions:c,forceIsEditingLink:u,createSuggestion:m,withCreateSuggestion:f,inputValue:h="",suggestionsQuery:g={},noURLSuggestion:b=!1,createSuggestionButtonText:v,hasRichPreviews:k=!1,hasTextControl:_=!1,renderControlBottom:y=null}){void 0===f&&m&&(f=!0);const[E,w]=(0,d.useState)(!1),{advancedSettingsPreference:S}=(0,p.useSelect)((e=>{var t;return{advancedSettingsPreference:null!==(t=e($s.store).get(Wa,Ka))&&void 0!==t&&t}}),[]),{set:C}=(0,p.useDispatch)($s.store),B=S||E,I=(0,d.useRef)(!0),T=(0,d.useRef)(),M=(0,d.useRef)(),P=(0,d.useRef)(!1),R=n.map((({id:e})=>e)),[N,A,L,O,D]=function(e){const[t,n]=(0,d.useState)(e||{}),[o,r]=(0,d.useState)(e);return $a()(e,o)||(r(e),n(e)),[t,n,e=>{n({...t,url:e})},e=>{n({...t,title:e})},e=>o=>{const r=Object.keys(o).reduce(((t,n)=>(e.includes(n)&&(t[n]=o[n]),t)),{});n({...t,...r})}]}(t),z=t&&!(0,Gs.isShallowEqualObjects)(N,t),[V,F]=(0,d.useState)(void 0!==u?u:!t||!t.url),{createPage:H,isCreatingPage:G,errorMessage:U}=function(e){const t=(0,d.useRef)(),[n,o]=(0,d.useState)(!1),[r,l]=(0,d.useState)(null);return(0,d.useEffect)((()=>()=>{t.current&&t.current.cancel()}),[]),{createPage:async function(n){o(!0),l(null);try{return t.current=Ga(Promise.resolve(e(n))),await t.current.promise}catch(e){if(e&&e.isCanceled)return;throw l(e.message||(0,x.__)("An unknown error occurred during creation. Please try again.")),e}finally{o(!1)}},isCreatingPage:n,errorMessage:r}}(m);(0,d.useEffect)((()=>{void 0!==u&&F(u)}),[u]),(0,d.useEffect)((()=>{if(I.current)return void(I.current=!1);(Ns.focus.focusable.find(T.current)[0]||T.current).focus(),P.current=!1}),[V,G]);const $=t?.url?.trim()?.length>0,j=()=>{P.current=!!T.current?.contains(T.current.ownerDocument.activeElement),F(!1)},W=()=>{z&&o({...t,...N,url:K}),j()},K=h||N?.url||"",Z=!K?.trim()?.length,q=r&&t&&!V&&!G,Y=V&&$,X=$&&_,Q=(V||!t)&&!G,J=!z||Z,ee=!!n?.length&&V&&$;return(0,a.createElement)("div",{tabIndex:-1,ref:T,className:"block-editor-link-control"},G&&(0,a.createElement)("div",{className:"block-editor-link-control__loading"},(0,a.createElement)(vl.Spinner,null)," ",(0,x.__)("Creating"),"…"),Q&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:dl()({"block-editor-link-control__search-input-wrapper":!0,"has-text-control":X,"has-actions":Y})},X&&(0,a.createElement)(vl.TextControl,{__nextHasNoMarginBottom:!0,ref:M,className:"block-editor-link-control__field block-editor-link-control__text-content",label:(0,x.__)("Text"),value:N?.title,onChange:O,onKeyDown:e=>{const{keyCode:t}=e;t!==Os.ENTER||Z||(e.preventDefault(),W())},size:"__unstable-large"}),(0,a.createElement)(Ma,{currentLink:t,className:"block-editor-link-control__field block-editor-link-control__search-input",placeholder:e,value:K,withCreateSuggestion:f,onCreateSuggestion:H,onChange:L,onSelect:e=>{const t=Object.keys(e).reduce(((t,n)=>(R.includes(n)||(t[n]=e[n]),t)),{});o({...N,...t,title:N?.title||e?.title}),j()},showInitialSuggestions:c,allowDirectEntry:!i,showSuggestions:s,suggestionsQuery:g,withURLSuggestion:!b,createSuggestionButtonText:v,hideLabelFromVision:!X}),!Y&&(0,a.createElement)("div",{className:"block-editor-link-control__search-enter"},(0,a.createElement)(vl.Button,{onClick:J?ja:W,label:(0,x.__)("Submit"),icon:js,className:"block-editor-link-control__search-submit","aria-disabled":J}))),U&&(0,a.createElement)(vl.Notice,{className:"block-editor-link-control__search-error",status:"error",isDismissible:!1},U)),t&&!V&&!G&&(0,a.createElement)(Va,{key:t?.url,value:t,onEditClick:()=>F(!0),hasRichPreviews:k,hasUnlinkControl:q,additionalControls:()=>{if(n?.find((e=>"opensInNewTab"===e.id)))return(0,a.createElement)(Ha,{value:N,settings:n?.filter((({id:e})=>"opensInNewTab"===e)),onChange:o})},onRemove:()=>{r(),F(!0)}}),ee&&(0,a.createElement)("div",{className:"block-editor-link-control__tools"},!Z&&(0,a.createElement)(Zs,{settingsOpen:B,setSettingsOpen:e=>{C&&C(Wa,Ka,e),w(e)}},(0,a.createElement)(Ha,{value:N,settings:n,onChange:D(R)}))),Y&&(0,a.createElement)(vl.__experimentalHStack,{justify:"right",className:"block-editor-link-control__search-actions"},(0,a.createElement)(vl.Button,{variant:"tertiary",onClick:e=>{e.preventDefault(),e.stopPropagation(),A(t),$?j():r?.(),l?.()}},(0,x.__)("Cancel")),(0,a.createElement)(vl.Button,{variant:"primary",onClick:J?ja:W,className:"block-editor-link-control__search-submit","aria-disabled":J},(0,x.__)("Save"))),y&&y())}Za.ViewerFill=Oa,Za.DEFAULT_LINK_SETTINGS=ya;var qa=Za;const Ya=()=>{};let Xa=0;var Qa=(0,m.compose)([(0,p.withDispatch)((e=>{const{createNotice:t,removeNotice:n}=e(As.store);return{createNotice:t,removeNotice:n}})),(0,vl.withFilters)("editor.MediaReplaceFlow")])((({mediaURL:e,mediaId:t,mediaIds:n,allowedTypes:o,accept:r,onError:l,onSelect:i,onSelectURL:s,onToggleFeaturedImage:c,useFeaturedImage:u,onFilesUpload:m=Ya,name:f=(0,x.__)("Replace"),createNotice:h,removeNotice:g,children:b,multiple:v=!1,addToGallery:k,handleUpload:_=!0,popoverProps:y})=>{const E=(0,p.useSelect)((e=>e(wr).getSettings().mediaUpload),[]),w=!!E,S=(0,d.useRef)(),C="block-editor/media-replace-flow/error-notice/"+ ++Xa,B=e=>{const t=(0,Ns.__unstableStripHTML)(e);l?l(t):setTimeout((()=>{h("error",t,{speak:!0,id:C,isDismissible:!0})}),1e3)},I=(e,t)=>{u&&c&&c(),t(),i(e),(0,so.speak)((0,x.__)("The media file has been replaced")),g(C)},T=e=>{e.keyCode===Os.DOWN&&(e.preventDefault(),e.target.click())},M=v&&!(!o||0===o.length)&&o.every((e=>"image"===e||e.startsWith("image/")));return(0,a.createElement)(vl.Dropdown,{popoverProps:y,contentClassName:"block-editor-media-replace-flow__options",renderToggle:({isOpen:e,onToggle:t})=>(0,a.createElement)(vl.ToolbarButton,{ref:S,"aria-expanded":e,"aria-haspopup":"true",onClick:t,onKeyDown:T},f),renderContent:({onClose:l})=>(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.NavigableMenu,{className:"block-editor-media-replace-flow__media-upload-menu"},(0,a.createElement)(Hs,null,(0,a.createElement)(Fs,{gallery:M,addToGallery:k,multiple:v,value:v?n:t,onSelect:e=>I(e,l),allowedTypes:o,render:({open:e})=>(0,a.createElement)(vl.MenuItem,{icon:Ds,onClick:e},(0,x.__)("Open Media Library"))}),(0,a.createElement)(vl.FormFileUpload,{onChange:e=>{((e,t)=>{const n=e.target.files;if(!_)return t(),i(n);m(n),E({allowedTypes:o,filesList:n,onFileChange:([e])=>{I(e,t)},onError:B})})(e,l)},accept:r,multiple:!!v,render:({openFileDialog:e})=>(0,a.createElement)(vl.MenuItem,{icon:zs,onClick:()=>{e()}},(0,x.__)("Upload"))})),c&&(0,a.createElement)(vl.MenuItem,{icon:Vs,onClick:c,isPressed:u},(0,x.__)("Use featured image")),b),s&&(0,a.createElement)("form",{className:dl()("block-editor-media-flow__url-input",{"has-siblings":w||c})},(0,a.createElement)("span",{className:"block-editor-media-replace-flow__image-url-label"},(0,x.__)("Current media URL:")),(0,a.createElement)(qa,{value:{url:e},settings:[],showSuggestions:!1,onChange:({url:e})=>{s(e),S.current.focus()}})))})}));const Ja="background",ec="image";function tc(e){return!!e?.background?.backgroundImage?.id||!!e?.background?.backgroundImage?.url}function nc(e,t="any"){if("web"!==d.Platform.OS)return!1;const n=(0,u.getBlockSupport)(e,Ja);return!0===n||("any"===t?!!n?.backgroundImage||!!n?.backgroundSize||!!n?.backgroundRepeat:!!n?.[t])}function oc(e={},t){t({style:pl({...e,background:{...e?.background,backgroundImage:void 0}})})}function rc(e){return tc(e)?"has-background":""}function lc({label:e,filename:t,url:n}){const o=e||(0,Ls.getFilename)(n);return(0,a.createElement)(vl.__experimentalItemGroup,{as:"span"},(0,a.createElement)(vl.__experimentalHStack,{justify:"flex-start",as:"span"},(0,a.createElement)("span",{className:dl()("block-editor-hooks__background__inspector-image-indicator-wrapper",{"has-image":n}),"aria-hidden":!0},n&&(0,a.createElement)("span",{className:"block-editor-hooks__background__inspector-image-indicator",style:{backgroundImage:`url(${n})`}})),(0,a.createElement)(vl.FlexItem,{as:"span"},(0,a.createElement)(vl.__experimentalTruncate,{numberOfLines:1,className:"block-editor-hooks__background__inspector-media-replace-title"},o),(0,a.createElement)(vl.VisuallyHidden,{as:"span"},t?(0,x.sprintf)((0,x.__)("Selected image: %s"),t):(0,x.__)("No image selected")))))}function ic({clientId:e,isShownByDefault:t,setAttributes:n}){const{style:o,mediaUpload:r}=(0,p.useSelect)((t=>{const{getBlockAttributes:n,getSettings:o}=t(wr);return{style:n(e)?.style,mediaUpload:o().mediaUpload}}),[e]),{id:l,title:i,url:s}=o?.background?.backgroundImage||{},c=(0,d.useRef)(),{createErrorNotice:u}=(0,p.useDispatch)(As.store),m=e=>{u(e,{type:"snackbar"})},f=e=>{if(!e||!e.url){const e={...o,background:{...o?.background,backgroundImage:void 0}},t={style:pl(e)};return void n(t)}if((0,Rs.isBlobURL)(e.url))return;if(e.media_type&&e.media_type!==ec||!e.media_type&&e.type&&e.type!==ec)return void m((0,x.__)("Only images can be used as a background image."));const t={...o,background:{...o?.background,backgroundImage:{url:e.url,id:e.id,source:"file",title:e.title||void 0}}},r={style:pl(t)};n(r)},h=(0,d.useCallback)((e=>({...e,style:{...e.style,background:void 0}})),[]),g=tc(o);return(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",hasValue:()=>g,label:(0,x.__)("Background image"),onDeselect:()=>oc(o,n),isShownByDefault:t,resetAllFilter:h,panelId:e},(0,a.createElement)("div",{className:"block-editor-hooks__background__inspector-media-replace-container",ref:c},(0,a.createElement)(Qa,{mediaId:l,mediaURL:s,allowedTypes:[ec],accept:"image/*",onSelect:f,name:(0,a.createElement)(lc,{label:(0,x.__)("Background image"),filename:i,url:s}),variant:"secondary"},g&&(0,a.createElement)(vl.MenuItem,{onClick:()=>{const[e]=Ns.focus.tabbable.find(c.current);e?.focus(),e?.click(),oc(o,n)}},(0,x.__)("Reset "))),(0,a.createElement)(vl.DropZone,{onFilesDrop:e=>{r({allowedTypes:["image"],filesList:e,onFileChange([e]){(0,Rs.isBlobURL)(e?.url)||f(e)},onError:m})},label:(0,x.__)("Drop to upload")})))}function sc({clientId:e,isShownByDefault:t,setAttributes:n}){const o=(0,p.useSelect)((t=>t(wr).getBlockAttributes(e)?.style),[e]),r=o?.background?.backgroundSize,l=o?.background?.backgroundRepeat,i=void 0!==r&&"cover"!==r&&"contain"!==r||""===r?"auto":r||"cover",s="no-repeat"!==l&&("cover"!==i||void 0!==l),c=function(e){return void 0!==e?.background?.backgroundSize}(o),u=(0,d.useCallback)((e=>({...e,style:{...e.style,background:{...e.style?.background,backgroundRepeat:void 0,backgroundSize:void 0}}})),[]),m=e=>{let t=l;"contain"===e&&(t="no-repeat"),"cover"!==i&&"contain"!==i||"auto"!==e||(t=void 0),n({style:pl({...o,background:{...o?.background,backgroundRepeat:t,backgroundSize:e}})})};return(0,a.createElement)(vl.__experimentalVStack,{as:vl.__experimentalToolsPanelItem,spacing:2,className:"single-column",hasValue:()=>c,label:(0,x.__)("Size"),onDeselect:()=>function(e={},t){t({style:pl({...e,background:{...e?.background,backgroundRepeat:void 0,backgroundSize:void 0}})})}(o,n),isShownByDefault:t,resetAllFilter:u,panelId:e},(0,a.createElement)(vl.__experimentalToggleGroupControl,{__nextHasNoMarginBottom:!0,size:"__unstable-large",label:(0,x.__)("Size"),value:i,onChange:m,isBlock:!0,help:(f=r,"cover"===f||void 0===f?(0,x.__)("Stretch image to cover the block."):"contain"===f?(0,x.__)("Resize image to fit without cropping."):(0,x.__)("Set a fixed width."))},(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"cover",value:"cover",label:(0,x.__)("Cover")}),(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"contain",value:"contain",label:(0,x.__)("Contain")}),(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"fixed",value:"auto",label:(0,x.__)("Fixed")})),void 0!==r&&"cover"!==r&&"contain"!==r?(0,a.createElement)(vl.__experimentalUnitControl,{size:"__unstable-large",onChange:m,value:r}):null,"cover"!==i&&(0,a.createElement)(vl.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Repeat image"),checked:s,onChange:()=>{n({style:pl({...o,background:{...o?.background,backgroundRepeat:!0===s?"no-repeat":void 0}})})}}));var f}function ac(e){const[t,n]=Nr("background.backgroundImage","background.backgroundSize");if(!t||!nc(e.name,"backgroundImage"))return null;const o=!(!n||!nc(e.name,"backgroundSize")),r=(0,u.getBlockSupport)(e.name,[Ja,"__experimentalDefaultControls"]);return(0,a.createElement)(Cs,{group:"background"},(0,a.createElement)(ic,{isShownByDefault:r?.backgroundImage,...e}),o&&(0,a.createElement)(sc,{isShownByDefault:r?.backgroundSize,...e}))}var cc={grad:.9,turn:360,rad:360/(2*Math.PI)},uc=function(e){return"string"==typeof e?e.length>0:"number"==typeof e},dc=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*e)/n+0},pc=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e>n?n:e>t?e:t},mc=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},fc=function(e){return{r:pc(e.r,0,255),g:pc(e.g,0,255),b:pc(e.b,0,255),a:pc(e.a)}},hc=function(e){return{r:dc(e.r),g:dc(e.g),b:dc(e.b),a:dc(e.a,3)}},gc=/^#([0-9a-f]{3,8})$/i,bc=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},vc=function(e){var t=e.r,n=e.g,o=e.b,r=e.a,l=Math.max(t,n,o),i=l-Math.min(t,n,o),s=i?l===t?(n-o)/i:l===n?2+(o-t)/i:4+(t-n)/i:0;return{h:60*(s<0?s+6:s),s:l?i/l*100:0,v:l/255*100,a:r}},kc=function(e){var t=e.h,n=e.s,o=e.v,r=e.a;t=t/360*6,n/=100,o/=100;var l=Math.floor(t),i=o*(1-n),s=o*(1-(t-l)*n),a=o*(1-(1-t+l)*n),c=l%6;return{r:255*[o,s,i,i,a,o][c],g:255*[a,o,o,s,i,i][c],b:255*[i,i,a,o,o,s][c],a:r}},_c=function(e){return{h:mc(e.h),s:pc(e.s,0,100),l:pc(e.l,0,100),a:pc(e.a)}},yc=function(e){return{h:dc(e.h),s:dc(e.s),l:dc(e.l),a:dc(e.a,3)}},Ec=function(e){return kc((n=(t=e).s,{h:t.h,s:(n*=((o=t.l)<50?o:100-o)/100)>0?2*n/(o+n)*100:0,v:o+n,a:t.a}));var t,n,o},wc=function(e){return{h:(t=vc(e)).h,s:(r=(200-(n=t.s))*(o=t.v)/100)>0&&r<200?n*o/100/(r<=100?r:200-r)*100:0,l:r/2,a:t.a};var t,n,o,r},Sc=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Cc=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,xc=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Bc=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ic={string:[[function(e){var t=gc.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?dc(parseInt(e[3]+e[3],16)/255,2):1}:6===e.length||8===e.length?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:8===e.length?dc(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=xc.exec(e)||Bc.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:fc({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=Sc.exec(e)||Cc.exec(e);if(!t)return null;var n,o,r=_c({h:(n=t[1],o=t[2],void 0===o&&(o="deg"),Number(n)*(cc[o]||1)),s:Number(t[3]),l:Number(t[4]),a:void 0===t[5]?1:Number(t[5])/(t[6]?100:1)});return Ec(r)},"hsl"]],object:[[function(e){var t=e.r,n=e.g,o=e.b,r=e.a,l=void 0===r?1:r;return uc(t)&&uc(n)&&uc(o)?fc({r:Number(t),g:Number(n),b:Number(o),a:Number(l)}):null},"rgb"],[function(e){var t=e.h,n=e.s,o=e.l,r=e.a,l=void 0===r?1:r;if(!uc(t)||!uc(n)||!uc(o))return null;var i=_c({h:Number(t),s:Number(n),l:Number(o),a:Number(l)});return Ec(i)},"hsl"],[function(e){var t=e.h,n=e.s,o=e.v,r=e.a,l=void 0===r?1:r;if(!uc(t)||!uc(n)||!uc(o))return null;var i=function(e){return{h:mc(e.h),s:pc(e.s,0,100),v:pc(e.v,0,100),a:pc(e.a)}}({h:Number(t),s:Number(n),v:Number(o),a:Number(l)});return kc(i)},"hsv"]]},Tc=function(e,t){for(var n=0;n=.5},e.prototype.toHex=function(){return t=(e=hc(this.rgba)).r,n=e.g,o=e.b,l=(r=e.a)<1?bc(dc(255*r)):"","#"+bc(t)+bc(n)+bc(o)+l;var e,t,n,o,r,l},e.prototype.toRgb=function(){return hc(this.rgba)},e.prototype.toRgbString=function(){return t=(e=hc(this.rgba)).r,n=e.g,o=e.b,(r=e.a)<1?"rgba("+t+", "+n+", "+o+", "+r+")":"rgb("+t+", "+n+", "+o+")";var e,t,n,o,r},e.prototype.toHsl=function(){return yc(wc(this.rgba))},e.prototype.toHslString=function(){return t=(e=yc(wc(this.rgba))).h,n=e.s,o=e.l,(r=e.a)<1?"hsla("+t+", "+n+"%, "+o+"%, "+r+")":"hsl("+t+", "+n+"%, "+o+"%)";var e,t,n,o,r},e.prototype.toHsv=function(){return e=vc(this.rgba),{h:dc(e.h),s:dc(e.s),v:dc(e.v),a:dc(e.a,3)};var e},e.prototype.invert=function(){return Lc({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return void 0===e&&(e=.1),Lc(Pc(this.rgba,e))},e.prototype.desaturate=function(e){return void 0===e&&(e=.1),Lc(Pc(this.rgba,-e))},e.prototype.grayscale=function(){return Lc(Pc(this.rgba,-1))},e.prototype.lighten=function(e){return void 0===e&&(e=.1),Lc(Nc(this.rgba,e))},e.prototype.darken=function(e){return void 0===e&&(e=.1),Lc(Nc(this.rgba,-e))},e.prototype.rotate=function(e){return void 0===e&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return"number"==typeof e?Lc({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):dc(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=wc(this.rgba);return"number"==typeof e?Lc({h:e,s:t.s,l:t.l,a:t.a}):dc(t.h)},e.prototype.isEqual=function(e){return this.toHex()===Lc(e).toHex()},e}(),Lc=function(e){return e instanceof Ac?e:new Ac(e)},Oc=[],Dc=function(e){e.forEach((function(e){Oc.indexOf(e)<0&&(e(Ac,Ic),Oc.push(e))}))};function zc(e,t){var n={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},o={};for(var r in n)o[n[r]]=r;var l={};e.prototype.toName=function(t){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var r,i,s=o[this.toHex()];if(s)return s;if(null==t?void 0:t.closest){var a=this.toRgb(),c=1/0,u="black";if(!l.length)for(var d in n)l[d]=new e(n[d]).toRgb();for(var p in n){var m=(r=a,i=l[p],Math.pow(r.r-i.r,2)+Math.pow(r.g-i.g,2)+Math.pow(r.b-i.b,2));m(a=Fc(i))?(s+.05)/(a+.05):(a+.05)/(s+.05),void 0===(o=2)&&(o=0),void 0===r&&(r=Math.pow(10,o)),Math.floor(r*n)/r+0},e.prototype.isReadable=function(e,t){return void 0===e&&(e="#FFF"),void 0===t&&(t={}),this.contrast(e)>=(i=void 0===(l=(n=t).size)?"normal":l,"AAA"===(r=void 0===(o=n.level)?"AA":o)&&"normal"===i?7:"AA"===r&&"large"===i?3:4.5);var n,o,r,l,i}}Dc([zc,Hc]);const Gc=(e,t,n)=>{if(t){const n=e?.find((e=>e.slug===t));if(n)return n}return{color:n}},Uc=(e,t)=>e?.find((e=>e.color===t));function $c(e,t){if(!e||!t)return;const{kebabCase:n}=le(vl.privateApis);return`has-${n(t)}-${e}`}function jc(){const[e,t,n,o,r,l,i,s,a,c]=Nr("color.custom","color.palette.custom","color.palette.theme","color.palette.default","color.defaultPalette","color.customGradient","color.gradients.custom","color.gradients.theme","color.gradients.default","color.defaultGradients"),u={disableCustomColors:!e,disableCustomGradients:!l};return u.colors=(0,d.useMemo)((()=>{const e=[];return n&&n.length&&e.push({name:(0,x._x)("Theme","Indicates this palette comes from the theme."),colors:n}),r&&o&&o.length&&e.push({name:(0,x._x)("Default","Indicates this palette comes from WordPress."),colors:o}),t&&t.length&&e.push({name:(0,x._x)("Custom","Indicates this palette comes from the theme."),colors:t}),e}),[t,n,o,r]),u.gradients=(0,d.useMemo)((()=>{const e=[];return s&&s.length&&e.push({name:(0,x._x)("Theme","Indicates this palette comes from the theme."),gradients:s}),c&&a&&a.length&&e.push({name:(0,x._x)("Default","Indicates this palette comes from WordPress."),gradients:a}),i&&i.length&&e.push({name:(0,x._x)("Custom","Indicates this palette is created by the user."),gradients:i}),e}),[i,s,a,c]),u.hasColorsOrGradients=!!u.colors.length||!!u.gradients.length,u}function Wc(e){return[...e].sort(((t,n)=>e.filter((e=>e===n)).length-e.filter((e=>e===t)).length)).shift()}function Kc(e={}){const{flat:t,...n}=e;return t||Wc(Object.values(n).filter(Boolean))||"px"}function Zc(e={}){if("string"==typeof e)return e;const t=Object.values(e).map((e=>(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(e))),n=t.map((e=>{var t;return null!==(t=e[0])&&void 0!==t?t:""})),o=t.map((e=>e[1])),r=n.every((e=>e===n[0]))?n[0]:"",l=Wc(o);return 0===r||r?`${r}${l}`:void 0}function qc(e={}){const t=Zc(e);return"string"!=typeof e&&isNaN(parseFloat(t))}function Yc(e){if(!e)return!1;if("string"==typeof e)return!0;return!!Object.values(e).filter((e=>!!e||0===e)).length}function Xc({onChange:e,selectedUnits:t,setSelectedUnits:n,values:o,...r}){let l=Zc(o);void 0===l&&(l=Kc(t));const i=Yc(o)&&qc(o),s=i?(0,x.__)("Mixed"):null;return(0,a.createElement)(vl.__experimentalUnitControl,{...r,"aria-label":(0,x.__)("Border radius"),disableUnits:i,isOnly:!0,value:l,onChange:t=>{const n=!isNaN(parseFloat(t));e(n?t:void 0)},onUnitChange:e=>{n({topLeft:e,topRight:e,bottomLeft:e,bottomRight:e})},placeholder:s,size:"__unstable-large"})}const Qc={topLeft:(0,x.__)("Top left"),topRight:(0,x.__)("Top right"),bottomLeft:(0,x.__)("Bottom left"),bottomRight:(0,x.__)("Bottom right")};function Jc({onChange:e,selectedUnits:t,setSelectedUnits:n,values:o,...r}){const l=t=>n=>{if(!e)return;const o=!isNaN(parseFloat(n))?n:void 0;e({...i,[t]:o})},i="string"!=typeof o?o:{topLeft:o,topRight:o,bottomLeft:o,bottomRight:o};return(0,a.createElement)("div",{className:"components-border-radius-control__input-controls-wrapper"},Object.entries(Qc).map((([e,o])=>{const[s,c]=(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(i[e]),u=i[e]?c:t[e]||t.flat;return(0,a.createElement)(vl.Tooltip,{text:o,placement:"top",key:e},(0,a.createElement)("div",{className:"components-border-radius-control__tooltip-wrapper"},(0,a.createElement)(vl.__experimentalUnitControl,{...r,"aria-label":o,value:[s,u].join(""),onChange:l(e),onUnitChange:(d=e,e=>{const o={...t};o[d]=e,n(o)}),size:"__unstable-large"})));var d})))}var eu=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"}));function tu({isLinked:e,...t}){const n=e?(0,x.__)("Unlink radii"):(0,x.__)("Link radii");return(0,a.createElement)(vl.Tooltip,{text:n},(0,a.createElement)(vl.Button,{...t,className:"component-border-radius-control__linked-button",size:"small",icon:e?eu:Na,iconSize:24,"aria-label":n}))}const nu={topLeft:void 0,topRight:void 0,bottomLeft:void 0,bottomRight:void 0},ou=0,ru={px:100,em:20,rem:20};function lu({onChange:e,values:t}){const[n,o]=(0,d.useState)(!Yc(t)||!qc(t)),[r,l]=(0,d.useState)({flat:"string"==typeof t?(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(t)[1]:void 0,topLeft:(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(t?.topLeft)[1],topRight:(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(t?.topRight)[1],bottomLeft:(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(t?.bottomLeft)[1],bottomRight:(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(t?.bottomRight)[1]}),[i]=Nr("spacing.units"),s=(0,vl.__experimentalUseCustomUnits)({availableUnits:i||["px","em","rem"]}),c=Kc(r),u=s&&s.find((e=>e.value===c)),p=u?.step||1,[m]=(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(Zc(t));return(0,a.createElement)("fieldset",{className:"components-border-radius-control"},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},(0,x.__)("Radius")),(0,a.createElement)("div",{className:"components-border-radius-control__wrapper"},n?(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Xc,{className:"components-border-radius-control__unit-control",values:t,min:ou,onChange:e,selectedUnits:r,setSelectedUnits:l,units:s}),(0,a.createElement)(vl.RangeControl,{label:(0,x.__)("Border radius"),hideLabelFromVision:!0,className:"components-border-radius-control__range-control",value:null!=m?m:"",min:ou,max:ru[c],initialPosition:0,withInputField:!1,onChange:t=>{e(void 0!==t?`${t}${c}`:void 0)},step:p,__nextHasNoMarginBottom:!0})):(0,a.createElement)(Jc,{min:ou,onChange:e,selectedUnits:r,setSelectedUnits:l,values:t||nu,units:s}),(0,a.createElement)(tu,{onClick:()=>o(!n),isLinked:n})))}function iu(e){return[su(e),au(e),cu(e),uu(e)].some(Boolean)}function su(e){return e?.border?.color}function au(e){return e?.border?.radius}function cu(e){return e?.border?.style}function uu(e){return e?.border?.width}function du({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x.__)("Border"),resetAll:()=>{const o=e(n);t(o)},panelId:o,dropdownMenuProps:Yr},r)}const pu={radius:!0,color:!0,width:!0};function mu({as:e=du,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=pu}){const s=al(r),c=(0,d.useCallback)((e=>Qr({settings:r},"",e)),[r]),u=e=>{const t=s.flatMap((({colors:e})=>e)).find((({color:t})=>t===e));return t?"var:preset|color|"+t.slug:e},p=(0,d.useMemo)((()=>{if((0,vl.__experimentalHasSplitBorders)(o?.border)){const e={...o?.border};return["top","right","bottom","left"].forEach((t=>{e[t]={...e[t],color:c(e[t]?.color)}})),e}return{...o?.border,color:o?.border?.color?c(o?.border?.color):void 0}}),[o?.border,c]),m=e=>n({...t,border:e}),f=su(r),h=cu(r),g=uu(r),b=au(r),v=c(p?.radius),k=e=>m({...p,radius:e}),_=()=>{const e=t?.border?.radius;return"object"==typeof e?Object.entries(e).some(Boolean):!!e},y=(0,d.useCallback)((e=>({...e,border:void 0})),[]),E=i?.color||i?.width;return(0,a.createElement)(e,{resetAllFilter:y,value:t,onChange:n,panelId:l},(g||f)&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:()=>(0,vl.__experimentalIsDefinedBorder)(t?.border),label:(0,x.__)("Border"),onDeselect:()=>(()=>{if(_())return m({radius:t?.border?.radius});m(void 0)})(),isShownByDefault:E,panelId:l},(0,a.createElement)(vl.__experimentalBorderBoxControl,{colors:s,enableAlpha:!0,enableStyle:h,onChange:e=>{const t={...e};(0,vl.__experimentalHasSplitBorders)(t)?["top","right","bottom","left"].forEach((e=>{t[e]&&(t[e]={...t[e],color:u(t[e]?.color)})})):t&&(t.color=u(t.color)),m({radius:p?.radius,...t})},popoverOffset:40,popoverPlacement:"left-start",value:p,__experimentalIsRenderedInSidebar:!0,size:"__unstable-large"})),b&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:_,label:(0,x.__)("Radius"),onDeselect:()=>k(void 0),isShownByDefault:i.radius,panelId:l},(0,a.createElement)(lu,{values:v,onChange:e=>{k(e||void 0)}})))}const fu="__experimentalBorder",hu=(e,t,n)=>{let o;return e.some((e=>e.colors.some((e=>e[t]===n&&(o=e,!0))))),o},gu=({colors:e,namedColor:t,customColor:n})=>{if(t){const n=hu(e,"slug",t);if(n)return n}if(!n)return{color:void 0};const o=hu(e,"color",n);return o||{color:n}};function bu(e){const t=/var:preset\|color\|(.+)/.exec(e);return t&&t[1]?t[1]:null}function vu(e){if((0,vl.__experimentalHasSplitBorders)(e?.border))return{style:e,borderColor:void 0};const t=e?.border?.color,n=t?.startsWith("var:preset|color|")?t.substring(17):void 0,o={...e};return o.border={...o.border,color:n?void 0:t},{style:pl(o),borderColor:n}}function ku(e){return(0,vl.__experimentalHasSplitBorders)(e.style?.border)?e.style:{...e.style,border:{...e.style?.border,color:e.borderColor?"var:preset|color|"+e.borderColor:e.style?.border?.color}}}function _u({children:e,resetAllFilter:t}){const n=(0,d.useCallback)((e=>{const n=ku(e),o=t(n);return{...e,...vu(o)}}),[t]);return(0,a.createElement)(Cs,{group:"border",resetAllFilter:n},e)}function yu({clientId:e,name:t,setAttributes:n,settings:o}){const r=iu(o);const{style:l,borderColor:i}=(0,p.useSelect)((function(t){const{style:n,borderColor:o}=t(wr).getBlockAttributes(e)||{};return{style:n,borderColor:o}}),[e]),s=(0,d.useMemo)((()=>ku({style:l,borderColor:i})),[l,i]);if(!r)return null;const c=(0,u.getBlockSupport)(t,[fu,"__experimentalDefaultControls"]);return(0,a.createElement)(mu,{as:_u,panelId:e,settings:o,value:s,onChange:e=>{n(vu(e))},defaultControls:c})}function Eu(e,t="any"){if("web"!==d.Platform.OS)return!1;const n=(0,u.getBlockSupport)(e,fu);return!0===n||("any"===t?!!(n?.color||n?.radius||n?.width||n?.style):!!n?.[t])}function wu(e,t,n){if(!Eu(t,"color")||fl(t,fu,"color"))return e;const o=Su(n),r=dl()(e.className,o);return e.className=r||void 0,e}function Su(e){const{borderColor:t,style:n}=e,o=$c("border-color",t);return dl()({"has-border-color":t||n?.border?.color,[o]:!!o})}var Cu={useBlockProps:function({name:e,borderColor:t,style:n}){const{colors:o}=jc();if(!Eu(e,"color")||fl(e,fu,"color"))return{};const{color:r}=gu({colors:o,namedColor:t}),{color:l}=gu({colors:o,namedColor:bu(n?.border?.top?.color)}),{color:i}=gu({colors:o,namedColor:bu(n?.border?.right?.color)}),{color:s}=gu({colors:o,namedColor:bu(n?.border?.bottom?.color)}),{color:a}=gu({colors:o,namedColor:bu(n?.border?.left?.color)});return wu({style:pl({borderTopColor:l||r,borderRightColor:i||r,borderBottomColor:s||r,borderLeftColor:a||r})||{}},e,{borderColor:t,style:n})},addSaveProps:wu,attributeKeys:["borderColor","style"],hasSupport(e){return Eu(e,"color")}};function xu(e){if(e)return`has-${e}-gradient-background`}function Bu(e,t){const n=e?.find((e=>e.slug===t));return n&&n.gradient}function Iu(e,t){const n=e?.find((e=>e.gradient===t));return n}function Tu(e,t){const n=Iu(e,t);return n&&n.slug}function Mu({gradientAttribute:e="gradient",customGradientAttribute:t="customGradient"}={}){const{clientId:n}=y(),[o,r,l]=Nr("color.gradients.custom","color.gradients.theme","color.gradients.default"),i=(0,d.useMemo)((()=>[...o||[],...r||[],...l||[]]),[o,r,l]),{gradient:s,customGradient:a}=(0,p.useSelect)((o=>{const{getBlockAttributes:r}=o(wr),l=r(n)||{};return{customGradient:l[t],gradient:l[e]}}),[n,e,t]),{updateBlockAttributes:c}=(0,p.useDispatch)(wr),u=(0,d.useCallback)((o=>{const r=Tu(i,o);c(n,r?{[e]:r,[t]:void 0}:{[e]:void 0,[t]:o})}),[i,n,c]),m=xu(s);let f;return f=s?Bu(i,s):a,{gradientClass:m,gradientValue:f,setGradient:u}}(0,f.addFilter)("blocks.registerBlockType","core/border/addAttributes",(function(e){return Eu(e,"color")?e.attributes.borderColor?e:{...e,attributes:{...e.attributes,borderColor:{type:"string"}}}:e}));const Pu=["colors","disableCustomColors","gradients","disableCustomGradients"],Ru={color:"color",gradient:"gradient"};function Nu({colors:e,gradients:t,disableCustomColors:n,disableCustomGradients:o,__experimentalIsRenderedInSidebar:r,className:l,label:i,onColorChange:s,onGradientChange:c,colorValue:u,gradientValue:d,clearable:p,showTitle:m=!0,enableAlpha:f,headingLevel:h}){const g=s&&(e&&e.length>0||!n),b=c&&(t&&t.length>0||!o);if(!g&&!b)return null;const v={[Ru.color]:(0,a.createElement)(vl.ColorPalette,{value:u,onChange:b?e=>{s(e),c()}:s,colors:e,disableCustomColors:n,__experimentalIsRenderedInSidebar:r,clearable:p,enableAlpha:f,headingLevel:h}),[Ru.gradient]:(0,a.createElement)(vl.GradientPicker,{__nextHasNoMargin:!0,value:d,onChange:g?e=>{c(e),s()}:c,gradients:t,disableCustomGradients:o,__experimentalIsRenderedInSidebar:r,clearable:p,headingLevel:h})},k=e=>(0,a.createElement)("div",{className:"block-editor-color-gradient-control__panel"},v[e]),{Tabs:_}=le(vl.privateApis);return(0,a.createElement)(vl.BaseControl,{__nextHasNoMarginBottom:!0,className:dl()("block-editor-color-gradient-control",l)},(0,a.createElement)("fieldset",{className:"block-editor-color-gradient-control__fieldset"},(0,a.createElement)(vl.__experimentalVStack,{spacing:1},m&&(0,a.createElement)("legend",null,(0,a.createElement)("div",{className:"block-editor-color-gradient-control__color-indicator"},(0,a.createElement)(vl.BaseControl.VisualLabel,null,i))),g&&b&&(0,a.createElement)("div",null,(0,a.createElement)(_,{initialTabId:d?Ru.gradient:!!g&&Ru.color},(0,a.createElement)(_.TabList,null,(0,a.createElement)(_.Tab,{tabId:Ru.color},(0,x.__)("Solid")),(0,a.createElement)(_.Tab,{tabId:Ru.gradient},(0,x.__)("Gradient"))),(0,a.createElement)(_.TabPanel,{tabId:Ru.color,className:"block-editor-color-gradient-control__panel",focusable:!1},v.color),(0,a.createElement)(_.TabPanel,{tabId:Ru.gradient,className:"block-editor-color-gradient-control__panel",focusable:!1},v.gradient))),!b&&k(Ru.color),!g&&k(Ru.gradient))))}function Au(e){const[t,n,o,r]=Nr("color.palette","color.gradients","color.custom","color.customGradient");return(0,a.createElement)(Nu,{colors:t,gradients:n,disableCustomColors:!o,disableCustomGradients:!r,...e})}var Lu=function(e){return Pu.every((t=>e.hasOwnProperty(t)))?(0,a.createElement)(Nu,{...e}):(0,a.createElement)(Au,{...e})};function Ou(e){const t=Du(e),n=Gu(e),o=zu(e),r=Fu(e),l=Hu(e),i=Vu(e);return t||n||o||r||l||i}function Du(e){const t=al(e);return e?.color?.text&&(t?.length>0||e?.color?.custom)}function zu(e){const t=al(e);return e?.color?.link&&(t?.length>0||e?.color?.custom)}function Vu(e){const t=al(e);return e?.color?.caption&&(t?.length>0||e?.color?.custom)}function Fu(e){const t=al(e),n=cl(e);return e?.color?.heading&&(t?.length>0||e?.color?.custom||n?.length>0||e?.color?.customGradient)}function Hu(e){const t=al(e),n=cl(e);return e?.color?.button&&(t?.length>0||e?.color?.custom||n?.length>0||e?.color?.customGradient)}function Gu(e){const t=al(e),n=cl(e);return e?.color?.background&&(t?.length>0||e?.color?.custom||n?.length>0||e?.color?.customGradient)}function Uu({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x.__)("Color"),resetAll:()=>{const o=e(n);t(o)},panelId:o,hasInnerWrapper:!0,className:"color-block-support-panel",__experimentalFirstVisibleItemClass:"first",__experimentalLastVisibleItemClass:"last",dropdownMenuProps:Yr},(0,a.createElement)("div",{className:"color-block-support-panel__inner-wrapper"},r))}const $u={text:!0,background:!0,link:!0,heading:!0,button:!0,caption:!0},ju={placement:"left-start",offset:36,shift:!0},Wu=({indicators:e,label:t})=>(0,a.createElement)(vl.__experimentalHStack,{justify:"flex-start"},(0,a.createElement)(vl.__experimentalZStack,{isLayered:!1,offset:-8},e.map(((e,t)=>(0,a.createElement)(vl.Flex,{key:t,expanded:!1},(0,a.createElement)(vl.ColorIndicator,{colorValue:e}))))),(0,a.createElement)(vl.FlexItem,{className:"block-editor-panel-color-gradient-settings__color-name",title:t},t));function Ku({isGradient:e,inheritedValue:t,userValue:n,setValue:o,colorGradientControlSettings:r}){return(0,a.createElement)(Lu,{...r,showTitle:!1,enableAlpha:!0,__experimentalIsRenderedInSidebar:!0,colorValue:e?void 0:t,gradientValue:e?t:void 0,onColorChange:e?void 0:o,onGradientChange:e?o:void 0,clearable:t===n,headingLevel:3})}function Zu({label:e,hasValue:t,resetValue:n,isShownByDefault:o,indicators:r,tabs:l,colorGradientControlSettings:i,panelId:s}){const c=l.find((e=>void 0!==e.userValue)),{Tabs:u}=le(vl.privateApis);return(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"block-editor-tools-panel-color-gradient-settings__item",hasValue:t,label:e,onDeselect:n,isShownByDefault:o,panelId:s},(0,a.createElement)(vl.Dropdown,{popoverProps:ju,className:"block-editor-tools-panel-color-gradient-settings__dropdown",renderToggle:({onToggle:t,isOpen:n})=>{const o={onClick:t,className:dl()("block-editor-panel-color-gradient-settings__dropdown",{"is-open":n}),"aria-expanded":n,"aria-label":(0,x.sprintf)((0,x.__)("Color %s styles"),e)};return(0,a.createElement)(vl.Button,{...o},(0,a.createElement)(Wu,{indicators:r,label:e}))},renderContent:()=>(0,a.createElement)(vl.__experimentalDropdownContentWrapper,{paddingSize:"none"},(0,a.createElement)("div",{className:"block-editor-panel-color-gradient-settings__dropdown-content"},1===l.length&&(0,a.createElement)(Ku,{...l[0],colorGradientControlSettings:i}),l.length>1&&(0,a.createElement)(u,{initialTabId:c?.key},(0,a.createElement)(u.TabList,null,l.map((e=>(0,a.createElement)(u.Tab,{key:e.key,tabId:e.key},e.label)))),l.map((e=>(0,a.createElement)(u.TabPanel,{key:e.key,tabId:e.key,focusable:!1},(0,a.createElement)(Ku,{...e,colorGradientControlSettings:i})))))))}))}function qu({as:e=Uu,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=$u,children:s}){const c=al(r),u=cl(r),p=r?.color?.custom,m=r?.color?.customGradient,f=c.length>0||p,h=u.length>0||m,g=e=>Qr({settings:r},"",e),b=e=>{const t=c.flatMap((({colors:e})=>e)).find((({color:t})=>t===e));return t?"var:preset|color|"+t.slug:e},v=e=>{const t=u.flatMap((({gradients:e})=>e)).find((({gradient:t})=>t===e));return t?"var:preset|gradient|"+t.slug:e},k=Gu(r),_=g(o?.color?.background),y=g(t?.color?.background),E=g(o?.color?.gradient),w=g(t?.color?.gradient),S=zu(r),C=g(o?.elements?.link?.color?.text),B=g(t?.elements?.link?.color?.text),I=g(o?.elements?.link?.[":hover"]?.color?.text),T=g(t?.elements?.link?.[":hover"]?.color?.text),M=Du(r),P=g(o?.color?.text),R=g(t?.color?.text),N=e=>{let o=Cr(t,["color","text"],b(e));P===C&&(o=Cr(o,["elements","link","color","text"],b(e))),n(o)},A=[{name:"caption",label:(0,x.__)("Captions"),showPanel:Vu(r)},{name:"button",label:(0,x.__)("Button"),showPanel:Hu(r)},{name:"heading",label:(0,x.__)("Heading"),showPanel:Fu(r)},{name:"h1",label:(0,x.__)("H1"),showPanel:Fu(r)},{name:"h2",label:(0,x.__)("H2"),showPanel:Fu(r)},{name:"h3",label:(0,x.__)("H3"),showPanel:Fu(r)},{name:"h4",label:(0,x.__)("H4"),showPanel:Fu(r)},{name:"h5",label:(0,x.__)("H5"),showPanel:Fu(r)},{name:"h6",label:(0,x.__)("H6"),showPanel:Fu(r)}],L=(0,d.useCallback)((e=>({...e,color:void 0,elements:{...e?.elements,link:{...e?.elements?.link,color:void 0,":hover":{color:void 0}},...A.reduce(((t,n)=>({...t,[n.name]:{...e?.elements?.[n.name],color:void 0}})),{})}})),[]),O=[M&&{key:"text",label:(0,x.__)("Text"),hasValue:()=>!!R,resetValue:()=>N(void 0),isShownByDefault:i.text,indicators:[P],tabs:[{key:"text",label:(0,x.__)("Text"),inheritedValue:P,setValue:N,userValue:R}]},k&&{key:"background",label:(0,x.__)("Background"),hasValue:()=>!!y||!!w,resetValue:()=>{const e=Cr(t,["color","background"],void 0);e.color.gradient=void 0,n(e)},isShownByDefault:i.background,indicators:[null!=E?E:_],tabs:[f&&{key:"background",label:(0,x.__)("Solid"),inheritedValue:_,setValue:e=>{const o=Cr(t,["color","background"],b(e));o.color.gradient=void 0,n(o)},userValue:y},h&&{key:"gradient",label:(0,x.__)("Gradient"),inheritedValue:E,setValue:e=>{const o=Cr(t,["color","gradient"],v(e));o.color.background=void 0,n(o)},userValue:w,isGradient:!0}].filter(Boolean)},S&&{key:"link",label:(0,x.__)("Link"),hasValue:()=>!!B||!!T,resetValue:()=>{let e=Cr(t,["elements","link",":hover","color","text"],void 0);e=Cr(e,["elements","link","color","text"],void 0),n(e)},isShownByDefault:i.link,indicators:[C,I],tabs:[{key:"link",label:(0,x.__)("Default"),inheritedValue:C,setValue:e=>{n(Cr(t,["elements","link","color","text"],b(e)))},userValue:B},{key:"hover",label:(0,x.__)("Hover"),inheritedValue:I,setValue:e=>{n(Cr(t,["elements","link",":hover","color","text"],b(e)))},userValue:T}]}].filter(Boolean);return A.forEach((({name:e,label:r,showPanel:l})=>{if(!l)return;const s=g(o?.elements?.[e]?.color?.background),a=g(o?.elements?.[e]?.color?.gradient),c=g(o?.elements?.[e]?.color?.text),u=g(t?.elements?.[e]?.color?.background),d=g(t?.elements?.[e]?.color?.gradient),p=g(t?.elements?.[e]?.color?.text),m="caption"!==e;O.push({key:e,label:r,hasValue:()=>!!(p||u||d),resetValue:()=>{const o=Cr(t,["elements",e,"color","background"],void 0);o.elements[e].color.gradient=void 0,o.elements[e].color.text=void 0,n(o)},isShownByDefault:i[e],indicators:m?[c,null!=a?a:s]:[c],tabs:[f&&{key:"text",label:(0,x.__)("Text"),inheritedValue:c,setValue:o=>{n(Cr(t,["elements",e,"color","text"],b(o)))},userValue:p},f&&m&&{key:"background",label:(0,x.__)("Background"),inheritedValue:s,setValue:o=>{const r=Cr(t,["elements",e,"color","background"],b(o));r.elements[e].color.gradient=void 0,n(r)},userValue:u},h&&m&&{key:"gradient",label:(0,x.__)("Gradient"),inheritedValue:a,setValue:o=>{const r=Cr(t,["elements",e,"color","gradient"],v(o));r.elements[e].color.background=void 0,n(r)},userValue:d,isGradient:!0}].filter(Boolean)})})),(0,a.createElement)(e,{resetAllFilter:L,value:t,onChange:n,panelId:l},O.map((e=>(0,a.createElement)(Zu,{key:e.key,...e,colorGradientControlSettings:{colors:c,disableCustomColors:!p,gradients:u,disableCustomGradients:!m},panelId:l}))),s)}Dc([zc,Hc]);var Yu=function({backgroundColor:e,fallbackBackgroundColor:t,fallbackTextColor:n,fallbackLinkColor:o,fontSize:r,isLargeText:l,textColor:i,linkColor:s,enableAlphaChecker:c=!1}){const u=e||t;if(!u)return null;const d=i||n,p=s||o;if(!d&&!p)return null;const m=[{color:d,description:(0,x.__)("text color")},{color:p,description:(0,x.__)("link color")}],f=Lc(u),h=f.alpha()<1,g=f.brightness(),b={level:"AA",size:l||!1!==l&&r>=24?"large":"small"};let v="",k="";for(const e of m){if(!e.color)continue;const t=Lc(e.color),n=t.isReadable(f,b),o=t.alpha()<1;if(!n){if(h||o)continue;v=g({refs:new Map,callbacks:new Map})),[]);return(0,a.createElement)(Xu.Provider,{value:t},e)}function Ju(e){const{refs:t,callbacks:n}=(0,d.useContext)(Xu),o=(0,d.useRef)();return(0,d.useLayoutEffect)((()=>(t.set(o,e),()=>{t.delete(o)})),[e]),(0,m.useRefEffect)((t=>{o.current=t,n.forEach(((n,o)=>{e===n&&o(t)}))}),[e])}function ed(e){const{refs:t}=(0,d.useContext)(Xu),n=(0,d.useRef)();return n.current=e,(0,d.useMemo)((()=>({get current(){let e=null;for(const[o,r]of t.entries())r===n.current&&o.current&&(e=o.current);return e}})),[])}function td(e){const{callbacks:t}=(0,d.useContext)(Xu),n=ed(e),[o,r]=(0,d.useState)(null);return(0,d.useLayoutEffect)((()=>{if(e)return t.set(r,e),()=>{t.delete(r)}}),[e]),n.current||o}function nd(e){return e.ownerDocument.defaultView.getComputedStyle(e)}function od({clientId:e}){const[t,n]=(0,d.useState)(),[o,r]=(0,d.useState)(),[l,i]=(0,d.useState)(),s=ed(e);return(0,d.useEffect)((()=>{if(!s.current)return;r(nd(s.current).color);const e=s.current?.querySelector("a");e&&e.innerText&&i(nd(e).color);let t=s.current,o=nd(t).backgroundColor;for(;"rgba(0, 0, 0, 0)"===o&&t.parentNode&&t.parentNode.nodeType===t.parentNode.ELEMENT_NODE;)t=t.parentNode,o=nd(t).backgroundColor;n(o)})),(0,a.createElement)(Yu,{backgroundColor:t,textColor:o,enableAlphaChecker:!0,linkColor:l})}const rd="color",ld=e=>{const t=(0,u.getBlockSupport)(e,rd);return t&&(!0===t.link||!0===t.gradient||!1!==t.background||!1!==t.text)},id=e=>{if("web"!==d.Platform.OS)return!1;const t=(0,u.getBlockSupport)(e,rd);return null!==t&&"object"==typeof t&&!!t.link},sd=e=>{const t=(0,u.getBlockSupport)(e,rd);return null!==t&&"object"==typeof t&&!!t.gradients},ad=e=>{const t=(0,u.getBlockSupport)(e,rd);return t&&!1!==t.background},cd=e=>{const t=(0,u.getBlockSupport)(e,rd);return t&&!1!==t.text};function ud(e,t,n){if(!ld(t)||fl(t,rd))return e;const o=sd(t),{backgroundColor:r,textColor:l,gradient:i,style:s}=n,a=e=>!fl(t,rd,e),c=a("text")?$c("color",l):void 0,u=a("gradients")?xu(i):void 0,d=a("background")?$c("background-color",r):void 0,p=a("background")||a("gradients"),m=r||s?.color?.background||o&&(i||s?.color?.gradient),f=dl()(e.className,c,u,{[d]:!(o&&s?.color?.gradient||!d),"has-text-color":a("text")&&(l||s?.color?.text),"has-background":p&&m,"has-link-color":a("link")&&s?.elements?.link?.color});return e.className=f||void 0,e}function dd(e){const t=e?.color?.text,n=t?.startsWith("var:preset|color|")?t.substring(17):void 0,o=e?.color?.background,r=o?.startsWith("var:preset|color|")?o.substring(17):void 0,l=e?.color?.gradient,i=l?.startsWith("var:preset|gradient|")?l.substring(20):void 0,s={...e};return s.color={...s.color,text:n?void 0:t,background:r?void 0:o,gradient:i?void 0:l},{style:pl(s),textColor:n,backgroundColor:r,gradient:i}}function pd(e){return{...e.style,color:{...e.style?.color,text:e.textColor?"var:preset|color|"+e.textColor:e.style?.color?.text,background:e.backgroundColor?"var:preset|color|"+e.backgroundColor:e.style?.color?.background,gradient:e.gradient?"var:preset|gradient|"+e.gradient:e.style?.color?.gradient}}}function md({children:e,resetAllFilter:t}){const n=(0,d.useCallback)((e=>{const n=pd(e),o=t(n);return{...e,...dd(o)}}),[t]);return(0,a.createElement)(Cs,{group:"color",resetAllFilter:n},e)}function fd({clientId:e,name:t,setAttributes:n,settings:o}){const r=Ou(o);const{style:l,textColor:i,backgroundColor:s,gradient:c}=(0,p.useSelect)((function(t){const{style:n,textColor:o,backgroundColor:r,gradient:l}=t(wr).getBlockAttributes(e)||{};return{style:n,textColor:o,backgroundColor:r,gradient:l}}),[e]),m=(0,d.useMemo)((()=>pd({style:l,textColor:i,backgroundColor:s,gradient:c})),[l,i,s,c]);if(!r)return null;const f=(0,u.getBlockSupport)(t,[rd,"__experimentalDefaultControls"]),h="web"===d.Platform.OS&&!m?.color?.gradient&&(o?.color?.text||o?.color?.link)&&!1!==(0,u.getBlockSupport)(t,[rd,"enableContrastChecker"]);return(0,a.createElement)(qu,{as:md,panelId:e,settings:o,value:m,onChange:e=>{n(dd(e))},defaultControls:f,enableContrastChecker:!1!==(0,u.getBlockSupport)(t,[rd,"enableContrastChecker"])},h&&(0,a.createElement)(od,{clientId:e}))}var hd={useBlockProps:function({name:e,backgroundColor:t,textColor:n,gradient:o,style:r}){const[l,i,s]=Nr("color.palette.custom","color.palette.theme","color.palette.default"),a=(0,d.useMemo)((()=>[...l||[],...i||[],...s||[]]),[l,i,s]);if(!ld(e)||fl(e,rd))return{};const c={};n&&!fl(e,rd,"text")&&(c.color=Gc(a,n)?.color),t&&!fl(e,rd,"background")&&(c.backgroundColor=Gc(a,t)?.color);const u=ud({style:c},e,{textColor:n,backgroundColor:t,gradient:o,style:r}),p=t||r?.color?.background||o||r?.color?.gradient;return{...u,className:dl()(u.className,!p&&rc(r))}},addSaveProps:ud,attributeKeys:["backgroundColor","textColor","gradient","style"],hasSupport:ld};const gd={linkColor:[["style","elements","link","color","text"]],textColor:[["textColor"],["style","color","text"]],backgroundColor:[["backgroundColor"],["style","color","background"]],gradient:[["gradient"],["style","color","gradient"]]};function bd({value:e="",onChange:t,fontFamilies:n,...o}){const[r]=Nr("typography.fontFamilies");if(n||(n=r),!n||0===n.length)return null;const l=[{value:"",label:(0,x.__)("Default")},...n.map((({fontFamily:e,name:t})=>({value:e,label:t||e})))];return(0,a.createElement)(vl.SelectControl,{label:(0,x.__)("Font"),options:l,value:e,onChange:t,labelPosition:"top",...o})}(0,f.addFilter)("blocks.registerBlockType","core/color/addAttribute",(function(e){return ld(e)?(e.attributes.backgroundColor||Object.assign(e.attributes,{backgroundColor:{type:"string"}}),e.attributes.textColor||Object.assign(e.attributes,{textColor:{type:"string"}}),sd(e)&&!e.attributes.gradient&&Object.assign(e.attributes,{gradient:{type:"string"}}),e):e})),(0,f.addFilter)("blocks.switchToBlockType.transformedBlock","core/color/addTransforms",(function(e,t,n,o){const r=e.name;return ml({linkColor:id(r),textColor:cd(r),backgroundColor:ad(r),gradient:sd(r)},gd,e,t,n,o)}));const vd=[{name:(0,x._x)("Regular","font style"),value:"normal"},{name:(0,x._x)("Italic","font style"),value:"italic"}],kd=[{name:(0,x._x)("Thin","font weight"),value:"100"},{name:(0,x._x)("Extra Light","font weight"),value:"200"},{name:(0,x._x)("Light","font weight"),value:"300"},{name:(0,x._x)("Regular","font weight"),value:"400"},{name:(0,x._x)("Medium","font weight"),value:"500"},{name:(0,x._x)("Semi Bold","font weight"),value:"600"},{name:(0,x._x)("Bold","font weight"),value:"700"},{name:(0,x._x)("Extra Bold","font weight"),value:"800"},{name:(0,x._x)("Black","font weight"),value:"900"}],_d=(e,t)=>e?t?(0,x.__)("Appearance"):(0,x.__)("Font style"):(0,x.__)("Font weight");function yd(e){const{onChange:t,hasFontStyles:n=!0,hasFontWeights:o=!0,value:{fontStyle:r,fontWeight:l},...i}=e,s=n||o,c=_d(n,o),u={key:"default",name:(0,x.__)("Default"),style:{fontStyle:void 0,fontWeight:void 0}},p=(0,d.useMemo)((()=>n&&o?(()=>{const e=[u];return vd.forEach((({name:t,value:n})=>{kd.forEach((({name:o,value:r})=>{const l="normal"===n?o:(0,x.sprintf)((0,x.__)("%1$s %2$s"),o,t);e.push({key:`${n}-${r}`,name:l,style:{fontStyle:n,fontWeight:r}})}))})),e})():n?(()=>{const e=[u];return vd.forEach((({name:t,value:n})=>{e.push({key:n,name:t,style:{fontStyle:n,fontWeight:void 0}})})),e})():(()=>{const e=[u];return kd.forEach((({name:t,value:n})=>{e.push({key:n,name:t,style:{fontStyle:void 0,fontWeight:n}})})),e})()),[e.options]),m=p.find((e=>e.style.fontStyle===r&&e.style.fontWeight===l))||p[0];return s&&(0,a.createElement)(vl.CustomSelectControl,{...i,className:"components-font-appearance-control",label:c,describedBy:m?n?o?(0,x.sprintf)((0,x.__)("Currently selected font appearance: %s"),m.name):(0,x.sprintf)((0,x.__)("Currently selected font style: %s"),m.name):(0,x.sprintf)((0,x.__)("Currently selected font weight: %s"),m.name):(0,x.__)("No selected font appearance"),options:p,value:m,onChange:({selectedItem:e})=>t(e.style),__nextUnconstrainedWidth:!0})}const Ed=1.5;var wd=({value:e,onChange:t,__nextHasNoMarginBottom:n=!1,__unstableInputWidth:o="60px",...r})=>{const l=function(e){return void 0!==e&&""!==e}(e),i=(e,t)=>{if(l)return e;switch(`${e}`){case"0.1":return 1.6;case"0":return t?e:1.4;case"":return Ed;default:return e}},s=l?e:"";n||w()("Bottom margin styles for wp.blockEditor.LineHeightControl",{since:"6.0",version:"6.4",hint:"Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version"});const c=n?void 0:{marginBottom:24};return(0,a.createElement)("div",{className:"block-editor-line-height-control",style:c},(0,a.createElement)(vl.__experimentalNumberControl,{...r,__unstableInputWidth:o,__unstableStateReducer:(e,t)=>{const n=["insertText","insertFromPaste"].includes(t.payload.event.nativeEvent?.inputType),o=i(e.value,n);return{...e,value:o}},onChange:(e,{event:n})=>{""!==e?"click"!==n.type?t(`${e}`):t(i(`${e}`,!1)):t()},label:(0,x.__)("Line height"),placeholder:Ed,step:.01,spinFactor:10,value:s,min:0,spinControls:"custom"}))};function Sd({value:e,onChange:t,__unstableInputWidth:n="60px",...o}){const[r]=Nr("spacing.units"),l=(0,vl.__experimentalUseCustomUnits)({availableUnits:r||["px","em","rem"],defaultValues:{px:2,em:.2,rem:.2}});return(0,a.createElement)(vl.__experimentalUnitControl,{...o,label:(0,x.__)("Letter spacing"),value:e,__unstableInputWidth:n,units:l,onChange:t})}var Cd=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M7 11.5h10V13H7z"}));var xd=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M6.1 6.8L2.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H6.1zm-.8 6.8L7 8.9l1.7 4.7H5.3zm15.1-.7c-.4-.5-.9-.8-1.6-1 .4-.2.7-.5.8-.9.2-.4.3-.9.3-1.4 0-.9-.3-1.6-.8-2-.6-.5-1.3-.7-2.4-.7h-3.5V18h4.2c1.1 0 2-.3 2.6-.8.6-.6 1-1.4 1-2.4-.1-.8-.3-1.4-.6-1.9zm-5.7-4.7h1.8c.6 0 1.1.1 1.4.4.3.2.5.7.5 1.3 0 .6-.2 1.1-.5 1.3-.3.2-.8.4-1.4.4h-1.8V8.2zm4 8c-.4.3-.9.5-1.5.5h-2.6v-3.8h2.6c1.4 0 2 .6 2 1.9.1.6-.1 1-.5 1.4z"}));var Bd=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M11 16.8c-.1-.1-.2-.3-.3-.5v-2.6c0-.9-.1-1.7-.3-2.2-.2-.5-.5-.9-.9-1.2-.4-.2-.9-.3-1.6-.3-.5 0-1 .1-1.5.2s-.9.3-1.2.6l.2 1.2c.4-.3.7-.4 1.1-.5.3-.1.7-.2 1-.2.6 0 1 .1 1.3.4.3.2.4.7.4 1.4-1.2 0-2.3.2-3.3.7s-1.4 1.1-1.4 2.1c0 .7.2 1.2.7 1.6.4.4 1 .6 1.8.6.9 0 1.7-.4 2.4-1.2.1.3.2.5.4.7.1.2.3.3.6.4.3.1.6.1 1.1.1h.1l.2-1.2h-.1c-.4.1-.6 0-.7-.1zM9.2 16c-.2.3-.5.6-.9.8-.3.1-.7.2-1.1.2-.4 0-.7-.1-.9-.3-.2-.2-.3-.5-.3-.9 0-.6.2-1 .7-1.3.5-.3 1.3-.4 2.5-.5v2zm10.6-3.9c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2s-.2 1.4-.6 2z"}));var Id=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M7.1 6.8L3.1 18h1.6l1.1-3h4.3l1.1 3h1.6l-4-11.2H7.1zm-.8 6.8L8 8.9l1.7 4.7H6.3zm14.5-1.5c-.3-.6-.7-1.1-1.2-1.5-.6-.4-1.2-.6-1.9-.6-.5 0-.9.1-1.4.3-.4.2-.8.5-1.1.8V6h-1.4v12h1.3l.2-1c.2.4.6.6 1 .8.4.2.9.3 1.4.3.7 0 1.2-.2 1.8-.5.5-.4 1-.9 1.3-1.5.3-.6.5-1.3.5-2.1-.1-.6-.2-1.3-.5-1.9zm-1.7 4c-.4.5-.9.8-1.6.8s-1.2-.2-1.7-.7c-.4-.5-.7-1.2-.7-2.1 0-.9.2-1.6.7-2.1.4-.5 1-.7 1.7-.7s1.2.3 1.6.8c.4.5.6 1.2.6 2 .1.8-.2 1.4-.6 2z"}));const Td=[{name:(0,x.__)("None"),value:"none",icon:Cd},{name:(0,x.__)("Uppercase"),value:"uppercase",icon:xd},{name:(0,x.__)("Lowercase"),value:"lowercase",icon:Bd},{name:(0,x.__)("Capitalize"),value:"capitalize",icon:Id}];function Md({className:e,value:t,onChange:n}){return(0,a.createElement)("fieldset",{className:dl()("block-editor-text-transform-control",e)},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},(0,x.__)("Letter case")),(0,a.createElement)("div",{className:"block-editor-text-transform-control__buttons"},Td.map((e=>(0,a.createElement)(vl.Button,{key:e.value,icon:e.icon,label:e.name,isPressed:e.value===t,onClick:()=>{n(e.value===t?void 0:e.value)}})))))}var Pd=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M7 18v1h10v-1H7zm5-2c1.5 0 2.6-.4 3.4-1.2.8-.8 1.1-2 1.1-3.5V5H15v5.8c0 1.2-.2 2.1-.6 2.8-.4.7-1.2 1-2.4 1s-2-.3-2.4-1c-.4-.7-.6-1.6-.6-2.8V5H7.5v6.2c0 1.5.4 2.7 1.1 3.5.8.9 1.9 1.3 3.4 1.3z"}));var Rd=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z"}));const Nd=[{name:(0,x.__)("None"),value:"none",icon:Cd},{name:(0,x.__)("Underline"),value:"underline",icon:Pd},{name:(0,x.__)("Strikethrough"),value:"line-through",icon:Rd}];function Ad({value:e,onChange:t,className:n}){return(0,a.createElement)("fieldset",{className:dl()("block-editor-text-decoration-control",n)},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},(0,x.__)("Decoration")),(0,a.createElement)("div",{className:"block-editor-text-decoration-control__buttons"},Nd.map((n=>(0,a.createElement)(vl.Button,{key:n.value,icon:n.icon,label:n.name,isPressed:n.value===e,onClick:()=>{t(n.value===e?void 0:n.value)}})))))}var Ld=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M8.2 14.4h3.9L13 17h1.7L11 6.5H9.3L5.6 17h1.7l.9-2.6zm2-5.5 1.4 4H8.8l1.4-4zm7.4 7.5-1.3.8.8 1.4H5.5V20h14.3l-2.2-3.6z"}));var Od=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M7 5.6v1.7l2.6.9v3.9L7 13v1.7L17.5 11V9.3L7 5.6zm4.2 6V8.8l4 1.4-4 1.4zm-5.7 5.6V5.5H4v14.3l3.6-2.2-.8-1.3-1.3.9z"}));const Dd=[{name:(0,x.__)("Horizontal"),value:"horizontal-tb",icon:Ld},{name:(0,x.__)("Vertical"),value:(0,x.isRTL)()?"vertical-lr":"vertical-rl",icon:Od}];function zd({className:e,value:t,onChange:n}){return(0,a.createElement)("fieldset",{className:dl()("block-editor-writing-mode-control",e)},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},(0,x.__)("Orientation")),(0,a.createElement)("div",{className:"block-editor-writing-mode-control__buttons"},Dd.map((e=>(0,a.createElement)(vl.Button,{key:e.value,icon:e.icon,label:e.name,isPressed:e.value===t,onClick:()=>{n(e.value===t?void 0:e.value)}})))))}const Vd=1,Fd=6;function Hd(e){const t=Ud(e),n=$d(e),o=jd(e),r=Wd(e),l=Kd(e),i=Zd(e),s=qd(e),a=Yd(e),c=Gd(e);return t||n||o||r||l||c||i||s||a}function Gd(e){return!1!==e?.typography?.defaultFontSizes&&e?.typography?.fontSizes?.default?.length||e?.typography?.fontSizes?.theme?.length||e?.typography?.fontSizes?.custom?.length||e?.typography?.customFontSize}function Ud(e){return t=e?.typography?.fontFamilies,["default","theme","custom"].some((e=>t?.[e]?.length));var t}function $d(e){return e?.typography?.lineHeight}function jd(e){return e?.typography?.fontStyle||e?.typography?.fontWeight}function Wd(e){return e?.typography?.letterSpacing}function Kd(e){return e?.typography?.textTransform}function Zd(e){return e?.typography?.textDecoration}function qd(e){return e?.typography?.writingMode}function Yd(e){return e?.typography?.textColumns}function Xd(e){const t=function(e,t){const n=new Set;return e.filter((e=>{const o=e[t];return!n.has(o)&&n.add(o)}))}([e?.typography?.fontSizes?.custom,e?.typography?.fontSizes?.theme,e?.typography?.fontSizes?.default].flatMap((e=>{var t;return null!==(t=e?.toReversed())&&void 0!==t?t:[]})),"slug").reverse();return!1===e?.typography?.defaultFontSizes?t.filter((({slug:e})=>!["small","medium","large","x-large"].includes(e))):t}function Qd({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x.__)("Typography"),resetAll:()=>{const o=e(n);t(o)},panelId:o,dropdownMenuProps:Yr},r)}const Jd={fontFamily:!0,fontSize:!0,fontAppearance:!0,lineHeight:!0,letterSpacing:!0,textTransform:!0,textDecoration:!0,writingMode:!0,textColumns:!0};function ep({as:e=Qd,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=Jd}){const s=e=>Qr({settings:r},"",e),c=Ud(r),u=r?.typography?.fontFamilies,p=u?Pr(u):[],m=s(o?.typography?.fontFamily),f=e=>{const o=p?.find((({fontFamily:t})=>t===e))?.slug;n(Cr(t,["typography","fontFamily"],o?`var:preset|font-family|${o}`:e||void 0))},h=Gd(r),g=!r?.typography?.customFontSize,b=Xd(r),v=s(o?.typography?.fontSize),k=(e,o)=>{n(Cr(t,["typography","fontSize"],(o?.slug?`var:preset|font-size|${o?.slug}`:e)||void 0))},_=jd(r),y=function(e){return e?.typography?.fontStyle?e?.typography?.fontWeight?(0,x.__)("Appearance"):(0,x.__)("Font style"):(0,x.__)("Font weight")}(r),E=r?.typography?.fontStyle,w=r?.typography?.fontWeight,S=s(o?.typography?.fontStyle),C=s(o?.typography?.fontWeight),B=({fontStyle:e,fontWeight:o})=>{n({...t,typography:{...t?.typography,fontStyle:e||void 0,fontWeight:o||void 0}})},I=$d(r),T=s(o?.typography?.lineHeight),M=e=>{n(Cr(t,["typography","lineHeight"],e||void 0))},P=Wd(r),R=s(o?.typography?.letterSpacing),N=e=>{n(Cr(t,["typography","letterSpacing"],e||void 0))},A=Yd(r),L=s(o?.typography?.textColumns),O=e=>{n(Cr(t,["typography","textColumns"],e||void 0))},D=Kd(r),z=s(o?.typography?.textTransform),V=e=>{n(Cr(t,["typography","textTransform"],e||void 0))},F=Zd(r),H=s(o?.typography?.textDecoration),G=e=>{n(Cr(t,["typography","textDecoration"],e||void 0))},U=qd(r),$=s(o?.typography?.writingMode),j=e=>{n(Cr(t,["typography","writingMode"],e||void 0))},W=(0,d.useCallback)((e=>({...e,typography:{}})),[]);return(0,a.createElement)(e,{resetAllFilter:W,value:t,onChange:n,panelId:l},c&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{label:(0,x.__)("Font family"),hasValue:()=>!!t?.typography?.fontFamily,onDeselect:()=>f(void 0),isShownByDefault:i.fontFamily,panelId:l},(0,a.createElement)(bd,{fontFamilies:p,value:m,onChange:f,size:"__unstable-large",__nextHasNoMarginBottom:!0})),h&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{label:(0,x.__)("Font size"),hasValue:()=>!!t?.typography?.fontSize,onDeselect:()=>k(void 0),isShownByDefault:i.fontSize,panelId:l},(0,a.createElement)(vl.FontSizePicker,{value:v,onChange:k,fontSizes:b,disableCustomFontSizes:g,withReset:!1,withSlider:!0,size:"__unstable-large",__nextHasNoMarginBottom:!0})),_&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:y,hasValue:()=>!!t?.typography?.fontStyle||!!t?.typography?.fontWeight,onDeselect:()=>{B({})},isShownByDefault:i.fontAppearance,panelId:l},(0,a.createElement)(yd,{value:{fontStyle:S,fontWeight:C},onChange:B,hasFontStyles:E,hasFontWeights:w,size:"__unstable-large",__nextHasNoMarginBottom:!0})),I&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Line height"),hasValue:()=>void 0!==t?.typography?.lineHeight,onDeselect:()=>M(void 0),isShownByDefault:i.lineHeight,panelId:l},(0,a.createElement)(wd,{__nextHasNoMarginBottom:!0,__unstableInputWidth:"auto",value:T,onChange:M,size:"__unstable-large"})),P&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Letter spacing"),hasValue:()=>!!t?.typography?.letterSpacing,onDeselect:()=>N(void 0),isShownByDefault:i.letterSpacing,panelId:l},(0,a.createElement)(Sd,{value:R,onChange:N,size:"__unstable-large",__unstableInputWidth:"auto"})),A&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Text columns"),hasValue:()=>!!t?.typography?.textColumns,onDeselect:()=>O(void 0),isShownByDefault:i.textColumns,panelId:l},(0,a.createElement)(vl.__experimentalNumberControl,{label:(0,x.__)("Text columns"),max:Fd,min:Vd,onChange:O,size:"__unstable-large",spinControls:"custom",value:L,initialPosition:1})),F&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Text decoration"),hasValue:()=>!!t?.typography?.textDecoration,onDeselect:()=>G(void 0),isShownByDefault:i.textDecoration,panelId:l},(0,a.createElement)(Ad,{value:H,onChange:G,size:"__unstable-large",__unstableInputWidth:"auto"})),U&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Text orientation"),hasValue:()=>!!t?.typography?.writingMode,onDeselect:()=>j(void 0),isShownByDefault:i.writingMode,panelId:l},(0,a.createElement)(zd,{value:$,onChange:j,size:"__unstable-large",__nextHasNoMarginBottom:!0})),D&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{label:(0,x.__)("Letter case"),hasValue:()=>!!t?.typography?.textTransform,onDeselect:()=>V(void 0),isShownByDefault:i.textTransform,panelId:l},(0,a.createElement)(Md,{value:z,onChange:V,showNone:!0,isBlock:!0,size:"__unstable-large",__nextHasNoMarginBottom:!0})))}const tp="typography.lineHeight";var np=window.wp.tokenList,op=n.n(np);const rp="typography.__experimentalFontFamily";function lp(e,t,n){if(!(0,u.hasBlockSupport)(t,rp))return e;if(fl(t,hp,"fontFamily"))return e;if(!n?.fontFamily)return e;const o=new(op())(e.className),{kebabCase:r}=le(vl.privateApis);o.add(`has-${r(n?.fontFamily)}-font-family`);const l=o.value;return e.className=l||void 0,e}var ip={useBlockProps:function({name:e,fontFamily:t}){return lp({},e,{fontFamily:t})},addSaveProps:lp,attributeKeys:["fontFamily"],hasSupport(e){return(0,u.hasBlockSupport)(e,rp)}};(0,f.addFilter)("blocks.registerBlockType","core/fontFamily/addAttribute",(function(e){return(0,u.hasBlockSupport)(e,rp)?(e.attributes.fontFamily||Object.assign(e.attributes,{fontFamily:{type:"string"}}),e):e}));const sp=(e,t,n)=>{if(t){const n=e?.find((({slug:e})=>e===t));if(n)return n}return{size:n}};function ap(e,t){const n=e?.find((({size:e})=>e===t));return n||{size:t}}function cp(e){if(!e)return;const{kebabCase:t}=le(vl.privateApis);return`has-${t(e)}-font-size`}const up="typography.fontSize";function dp(e,t,n){if(!(0,u.hasBlockSupport)(t,up))return e;if(fl(t,hp,"fontSize"))return e;const o=new(op())(e.className);o.add(cp(n.fontSize));const r=o.value;return e.className=r||void 0,e}var pp={useBlockProps:function({name:e,fontSize:t,style:n}){const[o]=Nr("typography.fontSizes");if(!(0,u.hasBlockSupport)(e,up)||fl(e,hp,"fontSize")||!t)return;let r={};n?.typography?.fontSize||(r={style:{fontSize:sp(o,t,n?.typography?.fontSize).size}});const l=Wr((0,p.select)(wr).getSettings().__experimentalFeatures);return t&&(r={style:{fontSize:$r({size:t},l)}}),dp(r,e,{fontSize:t})},addSaveProps:dp,attributeKeys:["fontSize","style"],hasSupport(e){return(0,u.hasBlockSupport)(e,up)}};const mp={fontSize:[["fontSize"],["style","typography","fontSize"]]};function fp(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>!t.includes(e))))}(0,f.addFilter)("blocks.registerBlockType","core/font/addAttribute",(function(e){return(0,u.hasBlockSupport)(e,up)?(e.attributes.fontSize||Object.assign(e.attributes,{fontSize:{type:"string"}}),e):e})),(0,f.addFilter)("blocks.switchToBlockType.transformedBlock","core/font-size/addTransforms",(function(e,t,n,o){const r=e.name;return ml({fontSize:(0,u.hasBlockSupport)(r,up)},mp,e,t,n,o)}));const hp="typography",gp=[tp,up,"typography.__experimentalFontStyle","typography.__experimentalFontWeight",rp,"typography.textColumns","typography.__experimentalTextDecoration","typography.__experimentalWritingMode","typography.__experimentalTextTransform","typography.__experimentalLetterSpacing"];function bp(e){const t={...fp(e,["fontFamily"])},n=e?.typography?.fontSize,o=e?.typography?.fontFamily,r=n?.startsWith("var:preset|font-size|")?n.substring(21):void 0,l=o?.startsWith("var:preset|font-family|")?o.substring(23):void 0;return t.typography={...fp(t.typography,["fontFamily"]),fontSize:r?void 0:n},{style:pl(t),fontFamily:l,fontSize:r}}function vp(e){return{...e.style,typography:{...e.style?.typography,fontFamily:e.fontFamily?"var:preset|font-family|"+e.fontFamily:void 0,fontSize:e.fontSize?"var:preset|font-size|"+e.fontSize:e.style?.typography?.fontSize}}}function kp({children:e,resetAllFilter:t}){const n=(0,d.useCallback)((e=>{const n=vp(e),o=t(n);return{...e,...bp(o)}}),[t]);return(0,a.createElement)(Cs,{group:"typography",resetAllFilter:n},e)}function _p({clientId:e,name:t,setAttributes:n,settings:o}){const{style:r,fontFamily:l,fontSize:i}=(0,p.useSelect)((function(t){const{style:n,fontFamily:o,fontSize:r}=t(wr).getBlockAttributes(e)||{};return{style:n,fontFamily:o,fontSize:r}}),[e]),s=Hd(o),c=(0,d.useMemo)((()=>vp({style:r,fontFamily:l,fontSize:i})),[r,i,l]);if(!s)return null;const m=(0,u.getBlockSupport)(t,[hp,"__experimentalDefaultControls"]);return(0,a.createElement)(ep,{as:kp,panelId:e,settings:o,value:c,onChange:e=>{n(bp(e))},defaultControls:m})}var yp=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m19 7.5h-7.628c-.3089-.87389-1.1423-1.5-2.122-1.5-.97966 0-1.81309.62611-2.12197 1.5h-2.12803v1.5h2.12803c.30888.87389 1.14231 1.5 2.12197 1.5.9797 0 1.8131-.62611 2.122-1.5h7.628z"}),(0,a.createElement)(Z.Path,{d:"m19 15h-2.128c-.3089-.8739-1.1423-1.5-2.122-1.5s-1.8131.6261-2.122 1.5h-7.628v1.5h7.628c.3089.8739 1.1423 1.5 2.122 1.5s1.8131-.6261 2.122-1.5h2.128z"}));const Ep={px:{max:300,steps:1},"%":{max:100,steps:1},vw:{max:100,steps:1},vh:{max:100,steps:1},em:{max:10,steps:.1},rm:{max:10,steps:.1},svw:{max:100,steps:1},lvw:{max:100,steps:1},dvw:{max:100,steps:1},svh:{max:100,steps:1},lvh:{max:100,steps:1},dvh:{max:100,steps:1},vi:{max:100,steps:1},svi:{max:100,steps:1},lvi:{max:100,steps:1},dvi:{max:100,steps:1},vb:{max:100,steps:1},svb:{max:100,steps:1},lvb:{max:100,steps:1},dvb:{max:100,steps:1},vmin:{max:100,steps:1},svmin:{max:100,steps:1},lvmin:{max:100,steps:1},dvmin:{max:100,steps:1},vmax:{max:100,steps:1},svmax:{max:100,steps:1},lvmax:{max:100,steps:1},dvmax:{max:100,steps:1}};function wp({icon:e,isMixed:t=!1,minimumCustomValue:n,onChange:o,onMouseOut:r,onMouseOver:l,showSideInLabel:i=!0,side:s,spacingSizes:c,type:u,value:f}){var h,g;f=Xl(f,c);let b=c;const v=c.length<=8,k=(0,p.useSelect)((e=>{const t=e(wr).getSettings();return t?.disableCustomSpacingSizes})),[_,y]=(0,d.useState)(!k&&void 0!==f&&!ql(f)),E=(0,m.usePrevious)(f);f&&E!==f&&!ql(f)&&!0!==_&&y(!0);const[w]=Nr("spacing.units"),S=(0,vl.__experimentalUseCustomUnits)({availableUnits:w||["px","em","rem"]});let C=null;!v&&!_&&void 0!==f&&(!ql(f)||ql(f)&&t)?(b=[...c,{name:t?(0,x.__)("Mixed"):(0,x.sprintf)((0,x.__)("Custom (%s)"),f),slug:"custom",size:f}],C=b.length-1):t||(C=_?Yl(f,c):function(e,t){if(void 0===e)return 0;const n=0===parseFloat(e,10)?"0":Jl(e),o=t.findIndex((e=>String(e.slug)===n));return-1!==o?o:NaN}(f,c));const B=(0,d.useMemo)((()=>(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(C)),[C])[1]||S[0]?.value,I=parseFloat(C,10),T=(e,t)=>{const n=parseInt(e,10);if("selectList"===t){if(0===n)return;if(1===n)return"0"}else if(0===n)return"0";return`var:preset|spacing|${c[e]?.slug}`},M=t?(0,x.__)("Mixed"):null,P=b.map(((e,t)=>({key:t,name:e.name}))),R=c.map(((e,t)=>({value:t,label:void 0}))),N=$l.includes(s)&&i?Kl[s]:"",A=i?u?.toLowerCase():u,L=(0,x.sprintf)((0,x.__)("%1$s %2$s"),N,A).trim();return(0,a.createElement)(vl.__experimentalHStack,{className:"spacing-sizes-control__wrapper"},e&&(0,a.createElement)(vl.Icon,{className:"spacing-sizes-control__icon",icon:e,size:24}),_&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.__experimentalUnitControl,{onMouseOver:l,onMouseOut:r,onFocus:l,onBlur:r,onChange:e=>o((e=>isNaN(parseFloat(e))?void 0:e)(e)),value:C,units:S,min:n,placeholder:M,disableUnits:t,label:L,hideLabelFromVision:!0,className:"spacing-sizes-control__custom-value-input",size:"__unstable-large"}),(0,a.createElement)(vl.RangeControl,{onMouseOver:l,onMouseOut:r,onFocus:l,onBlur:r,value:I,min:0,max:null!==(h=Ep[B]?.max)&&void 0!==h?h:10,step:null!==(g=Ep[B]?.steps)&&void 0!==g?g:.1,withInputField:!1,onChange:e=>{o([e,B].join(""))},className:"spacing-sizes-control__custom-value-range",__nextHasNoMarginBottom:!0})),v&&!_&&(0,a.createElement)(vl.RangeControl,{onMouseOver:l,onMouseOut:r,className:"spacing-sizes-control__range-control",value:C,onChange:e=>o(T(e)),onMouseDown:e=>{e?.nativeEvent?.offsetX<35&&void 0===f&&o("0")},withInputField:!1,"aria-valuenow":C,"aria-valuetext":c[C]?.name,renderTooltipContent:e=>void 0===f?void 0:c[e]?.name,min:0,max:c.length-1,marks:R,label:L,hideLabelFromVision:!0,__nextHasNoMarginBottom:!0,onFocus:l,onBlur:r}),!v&&!_&&(0,a.createElement)(vl.CustomSelectControl,{className:"spacing-sizes-control__custom-select-control",value:P.find((e=>e.key===C))||"",onChange:e=>{o(T(e.selectedItem.key,"selectList"))},options:P,label:L,hideLabelFromVision:!0,__nextUnconstrainedWidth:!0,size:"__unstable-large",onMouseOver:l,onMouseOut:r,onFocus:l,onBlur:r}),!k&&(0,a.createElement)(vl.Button,{label:_?(0,x.__)("Use size preset"):(0,x.__)("Set custom size"),icon:yp,onClick:()=>{y(!_)},isPressed:_,size:"small",className:"spacing-sizes-control__custom-toggle",iconSize:24}))}const Sp=["vertical","horizontal"];function Cp({minimumCustomValue:e,onChange:t,onMouseOut:n,onMouseOver:o,sides:r,spacingSizes:l,type:i,values:s}){const c=e=>n=>{if(!t)return;const o={...Object.keys(s).reduce(((e,t)=>(e[t]=Xl(s[t],l),e)),{})};"vertical"===e&&(o.top=n,o.bottom=n),"horizontal"===e&&(o.left=n,o.right=n),t(o)},u=r?.length?Sp.filter((e=>ei(r,e))):Sp;return(0,a.createElement)(a.Fragment,null,u.map((t=>{const r="vertical"===t?s.top:s.left;return(0,a.createElement)(wp,{key:`spacing-sizes-control-${t}`,icon:Wl[t],label:Kl[t],minimumCustomValue:e,onChange:c(t),onMouseOut:n,onMouseOver:o,side:t,spacingSizes:l,type:i,value:r,withInputField:!1})})))}function xp({minimumCustomValue:e,onChange:t,onMouseOut:n,onMouseOver:o,sides:r,spacingSizes:l,type:i,values:s}){const c=r?.length?$l.filter((e=>r.includes(e))):$l,u=e=>n=>{const o={...Object.keys(s).reduce(((e,t)=>(e[t]=Xl(s[t],l),e)),{})};o[e]=n,t(o)};return(0,a.createElement)(a.Fragment,null,c.map((t=>(0,a.createElement)(wp,{key:`spacing-sizes-control-${t}`,icon:Wl[t],label:Kl[t],minimumCustomValue:e,onChange:u(t),onMouseOut:n,onMouseOver:o,side:t,spacingSizes:l,type:i,value:s[t],withInputField:!1}))))}function Bp({minimumCustomValue:e,onChange:t,onMouseOut:n,onMouseOver:o,showSideInLabel:r,side:l,spacingSizes:i,type:s,values:c}){return(0,a.createElement)(wp,{label:Kl[l],minimumCustomValue:e,onChange:(u=l,e=>{const n={...Object.keys(c).reduce(((e,t)=>(e[t]=Xl(c[t],i),e)),{})};n[u]=e,t(n)}),onMouseOut:n,onMouseOver:o,showSideInLabel:r,side:l,spacingSizes:i,type:s,value:c[l],withInputField:!1});var u}var Ip=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"}));const Tp=(0,a.createElement)(vl.Icon,{icon:Ip,size:24});function Mp({label:e,onChange:t,sides:n,value:o}){if(!n||!n.length)return;const r=function(e){if(!e||!e.length)return{};const t={},n=ei(e,"horizontal"),o=ei(e,"vertical");n&&o?t.axial={label:Kl.axial,icon:Wl.axial}:n?t.axial={label:Kl.horizontal,icon:Wl.horizontal}:o&&(t.axial={label:Kl.vertical,icon:Wl.vertical});let r=0;return $l.forEach((n=>{e.includes(n)&&(r+=1,t[n]={label:Kl[n],icon:Wl[n]})})),r>1&&(t.custom={label:Kl.custom,icon:Wl.custom}),t}(n),l=r[o].icon,{custom:i,...s}=r;return(0,a.createElement)(vl.DropdownMenu,{icon:l,label:e,className:"spacing-sizes-control__dropdown",toggleProps:{isSmall:!0}},(({onClose:e})=>(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.MenuGroup,null,Object.entries(s).map((([n,{label:r,icon:l}])=>{const i=o===n;return(0,a.createElement)(vl.MenuItem,{key:n,icon:l,iconPosition:"left",isSelected:i,role:"menuitemradio",onClick:()=>{t(n),e()},suffix:i?Tp:void 0},r)}))),!!i&&(0,a.createElement)(vl.MenuGroup,null,(0,a.createElement)(vl.MenuItem,{icon:i.icon,iconPosition:"left",isSelected:o===Zl.custom,role:"menuitemradio",onClick:()=>{t(Zl.custom),e()},suffix:o===Zl.custom?Tp:void 0},i.label)))))}function Pp({inputProps:e,label:t,minimumCustomValue:n=0,onChange:o,onMouseOut:r,onMouseOver:l,showSideInLabel:i=!0,sides:s=$l,useSelect:c,values:u}){const p=function(){const e=[{name:0,slug:"0",size:0}],[t]=Nr("spacing.spacingSizes");return t&&e.push(...t),e.length>8&&e.unshift({name:(0,x.__)("Default"),slug:"default",size:void 0}),e}(),m=u||jl,f=1===s?.length,h=s?.includes("horizontal")&&s?.includes("vertical")&&2===s?.length,[g,b]=(0,d.useState)(function(e={},t){const{top:n,right:o,bottom:r,left:l}=e,i=[n,o,r,l].filter(Boolean),s=!(n!==r||l!==o||!n&&!l),a=!i.length&&function(e=[]){const t={top:0,right:0,bottom:0,left:0};return e.forEach((e=>t[e]+=1)),(t.top+t.bottom)%2==0&&(t.left+t.right)%2==0}(t);if(ei(t)&&(s||a))return Zl.axial;if(1===i.length){let t;return Object.entries(e).some((([e,n])=>(t=e,void 0!==n))),t}return 1!==t?.length||i.length?Zl.custom:t[0]}(m,s)),v={...e,minimumCustomValue:n,onChange:e=>{const t={...u,...e};o(t)},onMouseOut:r,onMouseOver:l,sides:s,spacingSizes:p,type:t,useSelect:c,values:m},k=$l.includes(g)&&i?Kl[g]:"",_=(0,x.sprintf)((0,x.__)("%1$s %2$s"),t,k).trim(),y=(0,x.sprintf)((0,x._x)("%s options","Button label to reveal side configuration options"),t);return(0,a.createElement)("fieldset",{className:"spacing-sizes-control"},(0,a.createElement)(vl.__experimentalHStack,{className:"spacing-sizes-control__header"},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend",className:"spacing-sizes-control__label"},_),!f&&!h&&(0,a.createElement)(Mp,{label:y,onChange:b,sides:s,value:g})),g===Zl.axial?(0,a.createElement)(Cp,{...v}):g===Zl.custom?(0,a.createElement)(xp,{...v}):(0,a.createElement)(Bp,{side:g,...v,showSideInLabel:i}))}const Rp={px:{max:1e3,step:1},"%":{max:100,step:1},vw:{max:100,step:1},vh:{max:100,step:1},em:{max:50,step:.1},rem:{max:50,step:.1},svw:{max:100,step:1},lvw:{max:100,step:1},dvw:{max:100,step:1},svh:{max:100,step:1},lvh:{max:100,step:1},dvh:{max:100,step:1},vi:{max:100,step:1},svi:{max:100,step:1},lvi:{max:100,step:1},dvi:{max:100,step:1},vb:{max:100,step:1},svb:{max:100,step:1},lvb:{max:100,step:1},dvb:{max:100,step:1},vmin:{max:100,step:1},svmin:{max:100,step:1},lvmin:{max:100,step:1},dvmin:{max:100,step:1},vmax:{max:100,step:1},svmax:{max:100,step:1},lvmax:{max:100,step:1},dvmax:{max:100,step:1}};function Np({label:e=(0,x.__)("Height"),onChange:t,value:n}){var o,r;const l=parseFloat(n),[i]=Nr("spacing.units"),s=(0,vl.__experimentalUseCustomUnits)({availableUnits:i||["%","px","em","rem","vh","vw"]}),c=(0,d.useMemo)((()=>(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(n)),[n])[1]||s[0]?.value||"px";return(0,a.createElement)("fieldset",{className:"block-editor-height-control"},(0,a.createElement)(vl.BaseControl.VisualLabel,{as:"legend"},e),(0,a.createElement)(vl.Flex,null,(0,a.createElement)(vl.FlexItem,{isBlock:!0},(0,a.createElement)(vl.__experimentalUnitControl,{value:n,units:s,onChange:t,onUnitChange:e=>{const[o,r]=(0,vl.__experimentalParseQuantityAndUnitFromRawValue)(n);["em","rem"].includes(e)&&"px"===r?t((o/16).toFixed(2)+e):["em","rem"].includes(r)&&"px"===e?t(Math.round(16*o)+e):["%","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax"].includes(e)&&o>100&&t(100+e)},min:0,size:"__unstable-large",label:e,hideLabelFromVision:!0})),(0,a.createElement)(vl.FlexItem,{isBlock:!0},(0,a.createElement)(vl.__experimentalSpacer,{marginX:2,marginBottom:0},(0,a.createElement)(vl.RangeControl,{value:l,min:0,max:null!==(o=Rp[c]?.max)&&void 0!==o?o:100,step:null!==(r=Rp[c]?.step)&&void 0!==r?r:.1,withInputField:!1,onChange:e=>{t([e,c].join(""))},__nextHasNoMarginBottom:!0,label:e,hideLabelFromVision:!0})))))}function Ap(e,t){const{orientation:n="horizontal"}=t;return"fill"===e?(0,x.__)("Stretch to fill available space."):"fixed"===e&&"horizontal"===n?(0,x.__)("Specify a fixed width."):"fixed"===e?(0,x.__)("Specify a fixed height."):(0,x.__)("Fit contents.")}function Lp({value:e={},onChange:t,parentLayout:n}){const{selfStretch:o,flexSize:r}=e;return(0,d.useEffect)((()=>{"fixed"!==o||r||t({...e,selfStretch:"fit"})}),[]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.__experimentalToggleGroupControl,{__nextHasNoMarginBottom:!0,size:"__unstable-large",label:Op(n),value:o||"fit",help:Ap(o,n),onChange:n=>{const o="fixed"!==n?null:r;t({...e,selfStretch:n,flexSize:o})},isBlock:!0},(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"fit",value:"fit",label:(0,x.__)("Fit")}),(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"fill",value:"fill",label:(0,x.__)("Fill")}),(0,a.createElement)(vl.__experimentalToggleGroupControlOption,{key:"fixed",value:"fixed",label:(0,x.__)("Fixed")})),"fixed"===o&&(0,a.createElement)(vl.__experimentalUnitControl,{size:"__unstable-large",onChange:n=>{t({...e,flexSize:n})},value:r}))}function Op(e){const{orientation:t="horizontal"}=e;return"horizontal"===t?(0,x.__)("Width"):(0,x.__)("Height")}const Dp=[{label:(0,x._x)("Original","Aspect ratio option for dimensions control"),value:"auto"},{label:(0,x._x)("Square - 1:1","Aspect ratio option for dimensions control"),value:"1"},{label:(0,x._x)("Standard - 4:3","Aspect ratio option for dimensions control"),value:"4/3"},{label:(0,x._x)("Portrait - 3:4","Aspect ratio option for dimensions control"),value:"3/4"},{label:(0,x._x)("Classic - 3:2","Aspect ratio option for dimensions control"),value:"3/2"},{label:(0,x._x)("Classic Portrait - 2:3","Aspect ratio option for dimensions control"),value:"2/3"},{label:(0,x._x)("Wide - 16:9","Aspect ratio option for dimensions control"),value:"16/9"},{label:(0,x._x)("Tall - 9:16","Aspect ratio option for dimensions control"),value:"9/16"},{label:(0,x._x)("Custom","Aspect ratio option for dimensions control"),value:"custom",disabled:!0,hidden:!0}];function zp({panelId:e,value:t,onChange:n=(()=>{}),options:o=Dp,defaultValue:r=Dp[0].value,hasValue:l,isShownByDefault:i=!0}){const s=null!=t?t:"auto";return(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:l||(()=>s!==r),label:(0,x.__)("Aspect ratio"),onDeselect:()=>n(void 0),isShownByDefault:i,panelId:e},(0,a.createElement)(vl.SelectControl,{label:(0,x.__)("Aspect ratio"),value:s,options:o,onChange:n,size:"__unstable-large",__nextHasNoMarginBottom:!0}))}const Vp=["horizontal","vertical"];function Fp(e){const t=Hp(e),n=Gp(e),o=Up(e),r=$p(e),l=jp(e),i=Wp(e),s=Kp(e),a=Zp(e);return"web"===d.Platform.OS&&(t||n||o||r||l||i||s||a)}function Hp(e){return e?.layout?.contentSize}function Gp(e){return e?.layout?.wideSize}function Up(e){return e?.spacing?.padding}function $p(e){return e?.spacing?.margin}function jp(e){return e?.spacing?.blockGap}function Wp(e){return e?.dimensions?.minHeight}function Kp(e){return e?.dimensions?.aspectRatio}function Zp(e){var t;const{type:n="default",default:{type:o="default"}={},allowSizingOnChildren:r=!1}=null!==(t=e?.parentLayout)&&void 0!==t?t:{},l=("flex"===o||"flex"===n)&&r;return!!e?.layout&&l}function qp(e,t){if(!t||!e)return e;const n={};return t.forEach((t=>{"vertical"===t&&(n.top=e.top,n.bottom=e.bottom),"horizontal"===t&&(n.left=e.left,n.right=e.right),n[t]=e?.[t]})),n}function Yp(e){return e&&"string"==typeof e?{top:e,right:e,bottom:e,left:e}:e}function Xp({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x.__)("Dimensions"),resetAll:()=>{const o=e(n);t(o)},panelId:o,dropdownMenuProps:Yr},r)}const Qp={contentSize:!0,wideSize:!0,padding:!0,margin:!0,blockGap:!0,minHeight:!0,aspectRatio:!0,childLayout:!0};function Jp({as:e=Xp,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=Qp,onVisualize:s=(()=>{}),includeLayoutControls:c=!1}){var u,p,m,f,h,g,b,v,k;const{dimensions:_,spacing:y}=r,E=e=>e&&"object"==typeof e?Object.keys(e).reduce(((t,n)=>(t[n]=Qr({settings:{dimensions:_,spacing:y}},"",e[n]),t)),{}):Qr({settings:{dimensions:_,spacing:y}},"",e),w=function(e){var t,n;const{custom:o,theme:r,default:l}=e?.spacing?.spacingSizes||{};return(null!==(t=null!==(n=null!=o?o:r)&&void 0!==n?n:l)&&void 0!==t?t:[]).length>0}(r),S=(0,vl.__experimentalUseCustomUnits)({availableUnits:r?.spacing?.units||["%","px","em","rem","vw"]}),C=Hp(r)&&c,B=E(o?.layout?.contentSize),I=e=>{n(Cr(t,["layout","contentSize"],e||void 0))},T=Gp(r)&&c,M=E(o?.layout?.wideSize),P=e=>{n(Cr(t,["layout","wideSize"],e||void 0))},R=Up(r),N=Yp(E(o?.spacing?.padding)),A=Array.isArray(r?.spacing?.padding)?r?.spacing?.padding:r?.spacing?.padding?.sides,L=A&&A.some((e=>Vp.includes(e))),O=e=>{const o=qp(e,A);n(Cr(t,["spacing","padding"],o))},D=()=>s("padding"),z=$p(r),V=Yp(E(o?.spacing?.margin)),F=Array.isArray(r?.spacing?.margin)?r?.spacing?.margin:r?.spacing?.margin?.sides,H=F&&F.some((e=>Vp.includes(e))),G=e=>{const o=qp(e,F);n(Cr(t,["spacing","margin"],o))},U=()=>s("margin"),$=jp(r),j=E(o?.spacing?.blockGap),W=function(e){return e&&"string"==typeof e?{top:e}:e?{...e,right:e?.left,bottom:e?.top}:e}(j),K=Array.isArray(r?.spacing?.blockGap)?r?.spacing?.blockGap:r?.spacing?.blockGap?.sides,Z=K&&K.some((e=>Vp.includes(e))),q=e=>{n(Cr(t,["spacing","blockGap"],e))},Y=e=>{e||q(null),!Z&&e?.hasOwnProperty("top")?q(e.top):q({top:e?.top,left:e?.left})},X=Wp(r),Q=E(o?.dimensions?.minHeight),J=e=>{const o=Cr(t,["dimensions","minHeight"],e);n(Cr(o,["dimensions","aspectRatio"],void 0))},ee=Kp(r),te=E(o?.dimensions?.aspectRatio),ne=Zp(r),oe=o?.layout,{orientation:re="horizontal"}=null!==(u=r?.parentLayout)&&void 0!==u?u:{},le="horizontal"===re?(0,x.__)("Width"):(0,x.__)("Height"),ie=e=>{n({...t,layout:{...t?.layout,...e}})},se=(0,d.useCallback)((e=>({...e,layout:pl({...e?.layout,contentSize:void 0,wideSize:void 0,selfStretch:void 0,flexSize:void 0}),spacing:{...e?.spacing,padding:void 0,margin:void 0,blockGap:void 0},dimensions:{...e?.dimensions,minHeight:void 0,aspectRatio:void 0}})),[]),ae=()=>s(!1);return(0,a.createElement)(e,{resetAllFilter:se,value:t,onChange:n,panelId:l},(C||T)&&(0,a.createElement)("span",{className:"span-columns"},(0,x.__)("Set the width of the main content area.")),C&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Content size"),hasValue:()=>!!t?.layout?.contentSize,onDeselect:()=>I(void 0),isShownByDefault:null!==(p=i.contentSize)&&void 0!==p?p:Qp.contentSize,panelId:l},(0,a.createElement)(vl.__experimentalHStack,{alignment:"flex-end",justify:"flex-start"},(0,a.createElement)(vl.__experimentalUnitControl,{label:(0,x.__)("Content"),labelPosition:"top",__unstableInputWidth:"80px",value:B||"",onChange:e=>{I(e)},units:S}),(0,a.createElement)(vl.__experimentalView,null,(0,a.createElement)(Bi,{icon:Ii})))),T&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{className:"single-column",label:(0,x.__)("Wide size"),hasValue:()=>!!t?.layout?.wideSize,onDeselect:()=>P(void 0),isShownByDefault:null!==(m=i.wideSize)&&void 0!==m?m:Qp.wideSize,panelId:l},(0,a.createElement)(vl.__experimentalHStack,{alignment:"flex-end",justify:"flex-start"},(0,a.createElement)(vl.__experimentalUnitControl,{label:(0,x.__)("Wide"),labelPosition:"top",__unstableInputWidth:"80px",value:M||"",onChange:e=>{P(e)},units:S}),(0,a.createElement)(vl.__experimentalView,null,(0,a.createElement)(Bi,{icon:Ti})))),R&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:()=>!!t?.spacing?.padding&&Object.keys(t?.spacing?.padding).length,label:(0,x.__)("Padding"),onDeselect:()=>O(void 0),isShownByDefault:null!==(f=i.padding)&&void 0!==f?f:Qp.padding,className:dl()({"tools-panel-item-spacing":w}),panelId:l},!w&&(0,a.createElement)(vl.__experimentalBoxControl,{values:N,onChange:O,label:(0,x.__)("Padding"),sides:A,units:S,allowReset:!1,splitOnAxis:L,onMouseOver:D,onMouseOut:ae}),w&&(0,a.createElement)(Pp,{values:N,onChange:O,label:(0,x.__)("Padding"),sides:A,units:S,allowReset:!1,onMouseOver:D,onMouseOut:ae})),z&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:()=>!!t?.spacing?.margin&&Object.keys(t?.spacing?.margin).length,label:(0,x.__)("Margin"),onDeselect:()=>G(void 0),isShownByDefault:null!==(h=i.margin)&&void 0!==h?h:Qp.margin,className:dl()({"tools-panel-item-spacing":w}),panelId:l},!w&&(0,a.createElement)(vl.__experimentalBoxControl,{values:V,onChange:G,label:(0,x.__)("Margin"),sides:F,units:S,allowReset:!1,splitOnAxis:H,onMouseOver:U,onMouseOut:ae}),w&&(0,a.createElement)(Pp,{values:V,onChange:G,label:(0,x.__)("Margin"),sides:F,units:S,allowReset:!1,onMouseOver:U,onMouseOut:ae})),$&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:()=>!!t?.spacing?.blockGap,label:(0,x.__)("Block spacing"),onDeselect:()=>q(void 0),isShownByDefault:null!==(g=i.blockGap)&&void 0!==g?g:Qp.blockGap,className:dl()({"tools-panel-item-spacing":w}),panelId:l},!w&&(Z?(0,a.createElement)(vl.__experimentalBoxControl,{label:(0,x.__)("Block spacing"),min:0,onChange:Y,units:S,sides:K,values:W,allowReset:!1,splitOnAxis:Z}):(0,a.createElement)(vl.__experimentalUnitControl,{label:(0,x.__)("Block spacing"),__unstableInputWidth:"80px",min:0,onChange:q,units:S,value:j})),w&&(0,a.createElement)(Pp,{label:(0,x.__)("Block spacing"),min:0,onChange:Y,showSideInLabel:!1,sides:Z?K:["top"],values:W,allowReset:!1})),X&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{hasValue:()=>!!t?.dimensions?.minHeight,label:(0,x.__)("Minimum height"),onDeselect:()=>{J(void 0)},isShownByDefault:null!==(b=i.minHeight)&&void 0!==b?b:Qp.minHeight,panelId:l},(0,a.createElement)(Np,{label:(0,x.__)("Minimum height"),value:Q,onChange:J})),ee&&(0,a.createElement)(zp,{hasValue:()=>!!t?.dimensions?.aspectRatio,value:te,onChange:e=>{const o=Cr(t,["dimensions","aspectRatio"],e);n(Cr(o,["dimensions","minHeight"],void 0))},panelId:l,isShownByDefault:null!==(v=i.aspectRatio)&&void 0!==v?v:Qp.aspectRatio}),ne&&(0,a.createElement)(vl.__experimentalVStack,{as:vl.__experimentalToolsPanelItem,spacing:2,hasValue:()=>!!t?.layout,label:le,onDeselect:()=>{ie({selfStretch:void 0,flexSize:void 0})},isShownByDefault:null!==(k=i.childLayout)&&void 0!==k?k:Qp.childLayout,panelId:l},(0,a.createElement)(Lp,{value:oe,onChange:ie,parentLayout:r?.parentLayout})))}var em=function(e){return(0,m.useRefEffect)((t=>{if(!e)return;function n(t){const{deltaX:n,deltaY:o}=t;e.current.scrollBy(n,o)}const o={passive:!0};return t.addEventListener("wheel",n,o),()=>{t.removeEventListener("wheel",n,o)}}),[e])};const tm=Number.MAX_SAFE_INTEGER;var nm=(0,d.forwardRef)((function({clientId:e,bottomClientId:t,children:n,__unstableRefreshSize:o,__unstableCoverTarget:r=!1,__unstablePopoverSlot:l,__unstableContentRef:i,shift:s=!0,...c},u){const p=td(e),f=td(null!=t?t:e),h=(0,m.useMergeRefs)([u,em(i)]),[g,b]=(0,d.useReducer)((e=>(e+1)%tm),0);(0,d.useLayoutEffect)((()=>{if(!p)return;const e=new window.MutationObserver(b);return e.observe(p,{attributes:!0}),()=>{e.disconnect()}}),[p]);const v=(0,d.useMemo)((()=>g<0||!p||f!==p?{}:{position:"absolute",width:p.offsetWidth,height:p.offsetHeight}),[p,f,o,g]),k=(0,d.useMemo)((()=>{if(!(g<0||!p||t&&!f))return{getBoundingClientRect(){var e,t,n,o;const r=p.getBoundingClientRect(),l=f?.getBoundingClientRect(),i=Math.min(r.left,null!==(e=l?.left)&&void 0!==e?e:1/0),s=Math.min(r.top,null!==(t=l?.top)&&void 0!==t?t:1/0),a=Math.max(r.right,null!==(n=l.right)&&void 0!==n?n:-1/0)-i,c=Math.max(r.bottom,null!==(o=l.bottom)&&void 0!==o?o:-1/0)-s;return new window.DOMRect(i,s,a,c)},contextElement:p}}),[t,f,p,g]);return!p||t&&!f?null:(0,a.createElement)(vl.Popover,{ref:h,animate:!1,focusOnMount:!1,anchor:k,__unstableSlotName:l,inline:!l,placement:"top-start",resize:!1,flip:!1,shift:s,...c,className:dl()("block-editor-block-popover",c.className),variant:"unstyled"},r&&(0,a.createElement)("div",{style:v},n),!r&&n)}));function om(e,t){return e.ownerDocument.defaultView.getComputedStyle(e).getPropertyValue(t)}function rm({clientId:e,attributes:t,forceShow:n}){const o=td(e),[r,l]=(0,d.useState)(),i=t?.style?.spacing?.margin;(0,d.useEffect)((()=>{if(!o||null===o.ownerDocument.defaultView)return;const e=om(o,"margin-top"),t=om(o,"margin-right"),n=om(o,"margin-bottom"),r=om(o,"margin-left");l({borderTopWidth:e,borderRightWidth:t,borderBottomWidth:n,borderLeftWidth:r,top:e?`-${e}`:0,right:t?`-${t}`:0,bottom:n?`-${n}`:0,left:r?`-${r}`:0})}),[o,i]);const[s,c]=(0,d.useState)(!1),u=(0,d.useRef)(i),p=(0,d.useRef)();return(0,d.useEffect)((()=>(Us()(i,u.current)||n||(c(!0),u.current=i,p.current=setTimeout((()=>{c(!1)}),400)),()=>{c(!1),p.current&&window.clearTimeout(p.current)})),[i,n]),s||n?(0,a.createElement)(nm,{clientId:e,__unstableCoverTarget:!0,__unstableRefreshSize:i,__unstablePopoverSlot:"block-toolbar",shift:!1},(0,a.createElement)("div",{className:"block-editor__padding-visualizer",style:r})):null}function lm(e,t){return e.ownerDocument.defaultView.getComputedStyle(e).getPropertyValue(t)}function im({clientId:e,value:t,forceShow:n}){const o=td(e),[r,l]=(0,d.useState)(),i=t?.spacing?.padding;(0,d.useEffect)((()=>{o&&null!==o.ownerDocument.defaultView&&l({borderTopWidth:lm(o,"padding-top"),borderRightWidth:lm(o,"padding-right"),borderBottomWidth:lm(o,"padding-bottom"),borderLeftWidth:lm(o,"padding-left")})}),[o,i]);const[s,c]=(0,d.useState)(!1),u=(0,d.useRef)(i),p=(0,d.useRef)();return(0,d.useEffect)((()=>(Us()(i,u.current)||n||(c(!0),u.current=i,p.current=setTimeout((()=>{c(!1)}),400)),()=>{c(!1),p.current&&window.clearTimeout(p.current)})),[i,n]),s||n?(0,a.createElement)(nm,{clientId:e,__unstableCoverTarget:!0,__unstableRefreshSize:i,__unstablePopoverSlot:"block-toolbar",shift:!1},(0,a.createElement)("div",{className:"block-editor__padding-visualizer",style:r})):null}const sm="dimensions",am="spacing";function cm({children:e,resetAllFilter:t}){const n=(0,d.useCallback)((e=>{const n=e.style,o=t(n);return{...e,style:o}}),[t]);return(0,a.createElement)(Cs,{group:"dimensions",resetAllFilter:n},e)}function um({clientId:e,name:t,setAttributes:n,settings:o}){const r=Fp(o),l=(0,p.useSelect)((t=>t(wr).getBlockAttributes(e)?.style),[e]),[i,s]=function(){const[e,t]=(0,d.useState)(!1),{hideBlockInterface:n,showBlockInterface:o}=le((0,p.useDispatch)(wr));return(0,d.useEffect)((()=>{e?n():o()}),[e,o,n]),[e,t]}();if(!r)return null;const c={...(0,u.getBlockSupport)(t,[sm,"__experimentalDefaultControls"]),...(0,u.getBlockSupport)(t,[am,"__experimentalDefaultControls"])};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Jp,{as:cm,panelId:e,settings:o,value:l,onChange:e=>{n({style:pl(e)})},defaultControls:c,onVisualize:s}),!!o?.spacing?.padding&&(0,a.createElement)(im,{forceShow:"padding"===i,clientId:e,value:l}),!!o?.spacing?.margin&&(0,a.createElement)(rm,{forceShow:"margin"===i,clientId:e,value:l}))}function dm(e,t="any"){if("web"!==d.Platform.OS)return!1;const n=(0,u.getBlockSupport)(e,sm);return!0===n||("any"===t?!(!n?.aspectRatio&&!n?.minHeight):!!n?.[t])}var pm={useBlockProps:function({name:e,minHeight:t,style:n}){if(!dm(e,"aspectRatio")||fl(e,sm,"aspectRatio"))return{};const o=dl()({"has-aspect-ratio":!!n?.dimensions?.aspectRatio}),r={};n?.dimensions?.aspectRatio?r.minHeight="unset":(t||n?.dimensions?.minHeight)&&(r.aspectRatio="unset");return{className:o,style:r}},attributeKeys:["minHeight","style"],hasSupport(e){return dm(e,"aspectRatio")}};function mm(){w()("wp.blockEditor.__experimentalUseCustomSides",{since:"6.3",version:"6.4"})}var fm=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M12 8c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 6.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12.8 3h-1.5v3h1.5V3zm-1.6 18h1.5v-3h-1.5v3zm6.8-9.8v1.5h3v-1.5h-3zm-12 0H3v1.5h3v-1.5zm9.7 5.6 2.1 2.1 1.1-1.1-2.1-2.1-1.1 1.1zM8.3 7.2 6.2 5.1 5.1 6.2l2.1 2.1 1.1-1.1zM5.1 17.8l1.1 1.1 2.1-2.1-1.1-1.1-2.1 2.1zM18.9 6.2l-1.1-1.1-2.1 2.1 1.1 1.1 2.1-2.1z"}));function hm(e){return gm(e)}function gm(e){return!!e?.shadow}function bm({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x.__)("Effects"),resetAll:()=>{const o=e(n);t(o)},panelId:o,dropdownMenuProps:Yr},r)}const vm={shadow:!0};function km({as:e=bm,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=vm}){const s=gm(r),c=(u=o?.shadow,Qr({settings:r},"",u));var u;const p=r?.shadow?.presets,m=p?Pr(p):[],f=e=>{const o=m?.find((({shadow:t})=>t===e))?.slug;n(Cr(t,["shadow"],o?`var:preset|shadow|${o}`:e||void 0))},h=(0,d.useCallback)((e=>({...e,shadow:void 0})),[]);return(0,a.createElement)(e,{resetAllFilter:h,value:t,onChange:n,panelId:l},s&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{label:(0,x.__)("Shadow"),hasValue:()=>!!t?.shadow,onDeselect:()=>f(void 0),isShownByDefault:i.shadow,panelId:l},(0,a.createElement)(vl.__experimentalItemGroup,{isBordered:!0,isSeparated:!0},(0,a.createElement)(_m,{shadow:c,onShadowChange:f,settings:r}))))}const _m=({shadow:e,onShadowChange:t,settings:n})=>(0,a.createElement)(vl.Dropdown,{popoverProps:{placement:"left-start",offset:36,shift:!0},className:"block-editor-global-styles-effects-panel__shadow-dropdown",renderToggle:({onToggle:e,isOpen:t})=>{const n={onClick:e,className:dl()({"is-open":t}),"aria-expanded":t};return(0,a.createElement)(vl.Button,{...n},(0,a.createElement)(vl.__experimentalHStack,{justify:"flex-start"},(0,a.createElement)(Bi,{className:"block-editor-global-styles-effects-panel__toggle-icon",icon:fm,size:24}),(0,a.createElement)(vl.FlexItem,null,(0,x.__)("Shadow"))))},renderContent:()=>(0,a.createElement)(vl.__experimentalDropdownContentWrapper,{paddingSize:"medium"},(0,a.createElement)(ym,{shadow:e,onShadowChange:t,settings:n}))});function ym({shadow:e,onShadowChange:t,settings:n}){const o=n?.shadow?.presets?.default,r=n?.shadow?.presets?.theme,l=n?.shadow?.defaultPresets,i=[...l?o:[],...r||[]];return(0,a.createElement)("div",{className:"block-editor-global-styles-effects-panel__shadow-popover-container"},(0,a.createElement)(vl.__experimentalVStack,{spacing:4},(0,a.createElement)(vl.__experimentalHeading,{level:5},(0,x.__)("Shadow")),(0,a.createElement)(Em,{presets:i,activeShadow:e,onSelect:t})))}function Em({presets:e,activeShadow:t,onSelect:n}){return e?(0,a.createElement)(vl.__experimentalGrid,{columns:6,gap:0,align:"center",justify:"center"},e.map((({name:e,slug:o,shadow:r})=>(0,a.createElement)(wm,{key:o,label:e,isActive:r===t,onSelect:()=>n(r===t?void 0:r),shadow:r})))):null}function wm({label:e,isActive:t,onSelect:n,shadow:o}){return(0,a.createElement)("div",{className:"block-editor-global-styles-effects-panel__shadow-indicator-wrapper"},(0,a.createElement)(vl.Button,{className:"block-editor-global-styles-effects-panel__shadow-indicator",onClick:n,label:e,style:{boxShadow:o},showTooltip:!0},t&&(0,a.createElement)(Bi,{icon:Ip})))}const Sm="shadow",Cm=[Sm];function xm({children:e,resetAllFilter:t}){return(0,a.createElement)(Cs,{group:"effects",resetAllFilter:t},e)}function Bm({clientId:e,setAttributes:t,settings:n}){const o=hm(n),r=(0,p.useSelect)((t=>t(wr).getBlockAttributes(e)?.style),[e]);return o?(0,a.createElement)(km,{as:xm,panelId:e,settings:n,value:r,onChange:e=>{t({style:pl(e)})}}):null}const Im=[...gp,...Cm,fu,rd,sm,Ja,am],Tm=e=>Im.some((t=>(0,u.hasBlockSupport)(e,t)));function Mm(e={}){const t={};return(0,Mi.getCSSRules)(e).forEach((e=>{t[e.key]=e.value})),t}const Pm={[`${fu}.__experimentalSkipSerialization`]:["border"],[`${rd}.__experimentalSkipSerialization`]:[rd],[`${hp}.__experimentalSkipSerialization`]:[hp],[`${sm}.__experimentalSkipSerialization`]:[sm],[`${am}.__experimentalSkipSerialization`]:[am],[`${Sm}`]:[Sm]},Rm={...Pm,[`${sm}.aspectRatio`]:[`${sm}.aspectRatio`],[`${Ja}`]:[Ja]},Nm={[`${sm}.aspectRatio`]:!0,[`${Ja}`]:!0},Am={gradients:"gradient"};function Lm(e,t,n=!1){if(!e)return e;let o=e;return n||(o=JSON.parse(JSON.stringify(e))),Array.isArray(t)||(t=[t]),t.forEach((e=>{if(Array.isArray(e)||(e=e.split(".")),e.length>1){const[t,...n]=e;Lm(o[t],[n],!0)}else 1===e.length&&delete o[e[0]]})),o}function Om(e,t,n,o=Rm){if(!Tm(t))return e;let{style:r}=n;return Object.entries(o).forEach((([e,n])=>{const o=Nm[e]||(0,u.getBlockSupport)(t,e);!0===o&&(r=Lm(r,n)),Array.isArray(o)&&o.forEach((e=>{const t=Am[e]||e;r=Lm(r,[[...n,t]])}))})),e.style={...Mm(r),...e.style},e}var Dm={edit:function({clientId:e,name:t,setAttributes:n,__unstableParentLayout:o}){const r={clientId:e,name:t,setAttributes:n,settings:gl(t,o)};return"default"!==es()?null:(0,a.createElement)(a.Fragment,null,(0,a.createElement)(fd,{...r}),(0,a.createElement)(ac,{...r}),(0,a.createElement)(_p,{...r}),(0,a.createElement)(yu,{...r}),(0,a.createElement)(um,{...r}),(0,a.createElement)(Bm,{...r}))},hasSupport:Tm,addSaveProps:Om,attributeKeys:["style"],useBlockProps:function e({name:t,style:n}){const o=`wp-elements-${(0,m.useInstanceId)(e)}`,r=`.editor-styles-wrapper .${o}`,l=n?.elements,i=(0,d.useMemo)((()=>{if(!l)return;const e=[];return zm.forEach((({elementType:n,pseudo:o,elements:i})=>{if(fl(t,rd,n))return;const s=l?.[n];if(s){const t=Jr(r,u.__EXPERIMENTAL_ELEMENTS[n]);e.push((0,Mi.compileCSS)(s,{selector:t})),o&&o.forEach((t=>{s[t]&&e.push((0,Mi.compileCSS)(s[t],{selector:Jr(r,`${u.__EXPERIMENTAL_ELEMENTS[n]}${t}`)}))}))}i&&i.forEach((t=>{l[t]&&e.push((0,Mi.compileCSS)(l[t],{selector:Jr(r,u.__EXPERIMENTAL_ELEMENTS[t])}))}))})),e.length>0?e.join(""):void 0}),[r,l,t]);return hl({css:i}),Om({className:o},t,{style:n},Pm)}};const zm=[{elementType:"button"},{elementType:"link",pseudo:[":hover"]},{elementType:"heading",elements:["h1","h2","h3","h4","h5","h6"]}];(0,f.addFilter)("blocks.registerBlockType","core/style/addAttribute",(function(e){return Tm(e)?(e.attributes.style||Object.assign(e.attributes,{style:{type:"object"}}),e):e}));(0,f.addFilter)("blocks.registerBlockType","core/settings/addAttribute",(function(e){return t=e,(0,u.hasBlockSupport)(t,"__experimentalSettings",!1)?(e?.attributes?.settings||(e.attributes={...e.attributes,settings:{type:"object"}}),e):e;var t}));var Vm=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M12 4 4 19h16L12 4zm0 3.2 5.5 10.3H12V7.2z"}));var Fm=function e({id:t,colorPalette:n,duotonePalette:o,disableCustomColors:r,disableCustomDuotone:l,value:i,onChange:s}){let c;c="unset"===i?(0,a.createElement)(vl.ColorIndicator,{className:"block-editor-duotone-control__unset-indicator"}):i?(0,a.createElement)(vl.DuotoneSwatch,{values:i}):(0,a.createElement)(Bi,{icon:Vm});const u=(0,x.__)("Apply duotone filter"),d=`${(0,m.useInstanceId)(e,"duotone-control",t)}__description`;return(0,a.createElement)(vl.Dropdown,{popoverProps:{className:"block-editor-duotone-control__popover",headerTitle:(0,x.__)("Duotone")},renderToggle:({isOpen:e,onToggle:t})=>(0,a.createElement)(vl.ToolbarButton,{showTooltip:!0,onClick:t,"aria-haspopup":"true","aria-expanded":e,onKeyDown:n=>{e||n.keyCode!==Os.DOWN||(n.preventDefault(),t())},label:u,icon:c}),renderContent:()=>(0,a.createElement)(vl.MenuGroup,{label:(0,x.__)("Duotone")},(0,a.createElement)("p",null,(0,x.__)("Create a two-tone color effect without losing your original image.")),(0,a.createElement)(vl.DuotonePicker,{"aria-label":u,"aria-describedby":d,colorPalette:n,duotonePalette:o,disableCustomColors:r,disableCustomDuotone:l,value:i,onChange:s}))})};function Hm(e){return`${e}{filter:none}`}function Gm(e,t){return`${e}{filter:url(#${t})}`}function Um(e,t){const n=function(e=[]){const t={r:[],g:[],b:[],a:[]};return e.forEach((e=>{const n=Lc(e).toRgb();t.r.push(n.r/255),t.g.push(n.g/255),t.b.push(n.b/255),t.a.push(n.a)})),t}(t);return`\n\n\t\n\t\t\n\t\t\t\x3c!--\n\t\t\t\tUse sRGB instead of linearRGB so transparency looks correct.\n\t\t\t\tUse perceptual brightness to convert to grayscale.\n\t\t\t--\x3e\n\t\t\t\n\t\t\t\x3c!-- Use sRGB instead of linearRGB to be consistent with how CSS gradients work. --\x3e\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\x3c!-- Re-mask the image with the original transparency since the feColorMatrix above loses that information. --\x3e\n\t\t\t\n\t\t\n\t\n`}function $m(e,t="root",n={}){if(!t)return null;const{fallback:o=!1}=n,{name:r,selectors:l,supports:i}=e,s=l&&Object.keys(l).length>0,a=Array.isArray(t)?t.join("."):t;let c=null;if(c=s&&l.root?l?.root:i?.__experimentalSelector?i.__experimentalSelector:".wp-block-"+r.replace("core/","").replace("/","-"),"root"===a)return c;const u=Array.isArray(t)?t:t.split(".");if(1===u.length){const e=o?c:null;if(s){return xr(l,`${a}.root`,null)||xr(l,a,null)||e}const t=xr(i,`${a}.__experimentalSelector`,null);return t?Jr(c,t):e}let d;return s&&(d=xr(l,a,null)),d||(o?$m(e,u[0],n):null)}const jm=[];function Wm(e,{presetSetting:t,defaultSetting:n}){const o=!e?.color?.[n],r=e?.color?.[t]?.custom||jm,l=e?.color?.[t]?.theme||jm,i=e?.color?.[t]?.default||jm;return(0,d.useMemo)((()=>[...r,...l,...o?jm:i]),[o,r,l,i])}function Km(e){return Zm(e)}function Zm(e){return e.color.customDuotone||e.color.defaultDuotone||e.color.duotone.length>0}function qm({resetAllFilter:e,onChange:t,value:n,panelId:o,children:r}){return(0,a.createElement)(vl.__experimentalToolsPanel,{label:(0,x._x)("Filters","Name for applying graphical effects"),resetAll:()=>{const o=e(n);t(o)},panelId:o,dropdownMenuProps:Yr},r)}const Ym={duotone:!0},Xm={placement:"left-start",offset:36,shift:!0,className:"block-editor-duotone-control__popover",headerTitle:(0,x.__)("Duotone")},Qm=({indicator:e,label:t})=>(0,a.createElement)(vl.__experimentalHStack,{justify:"flex-start"},(0,a.createElement)(vl.__experimentalZStack,{isLayered:!1,offset:-8},(0,a.createElement)(vl.Flex,{expanded:!1},"unset"!==e&&e?(0,a.createElement)(vl.DuotoneSwatch,{values:e}):(0,a.createElement)(vl.ColorIndicator,{className:"block-editor-duotone-control__unset-indicator"}))),(0,a.createElement)(vl.FlexItem,{title:t},t));function Jm({as:e=qm,value:t,onChange:n,inheritedValue:o=t,settings:r,panelId:l,defaultControls:i=Ym}){const s=Zm(r),c=Wm(r,{presetSetting:"duotone",defaultSetting:"defaultDuotone"}),u=Wm(r,{presetSetting:"palette",defaultSetting:"defaultPalette"}),p=(m=o?.filter?.duotone,Qr({settings:r},"",m));var m;const f=e=>{const o=c.find((({colors:t})=>t===e)),r=o?`var:preset|duotone|${o.slug}`:e;n(Cr(t,["filter","duotone"],r))},h=(0,d.useCallback)((e=>({...e,filter:{...e.filter,duotone:void 0}})),[]);return(0,a.createElement)(e,{resetAllFilter:h,value:t,onChange:n,panelId:l},s&&(0,a.createElement)(vl.__experimentalToolsPanelItem,{label:(0,x.__)("Duotone"),hasValue:()=>!!t?.filter?.duotone,onDeselect:()=>f(void 0),isShownByDefault:i.duotone,panelId:l},(0,a.createElement)(vl.Dropdown,{popoverProps:Xm,className:"block-editor-global-styles-filters-panel__dropdown",renderToggle:({onToggle:e,isOpen:t})=>{const n={onClick:e,className:dl()({"is-open":t}),"aria-expanded":t};return(0,a.createElement)(vl.__experimentalItemGroup,{isBordered:!0,isSeparated:!0},(0,a.createElement)(vl.Button,{...n},(0,a.createElement)(Qm,{indicator:p,label:(0,x.__)("Duotone")})))},renderContent:()=>(0,a.createElement)(vl.__experimentalDropdownContentWrapper,{paddingSize:"small"},(0,a.createElement)(vl.MenuGroup,{label:(0,x.__)("Duotone")},(0,a.createElement)("p",null,(0,x.__)("Create a two-tone color effect without losing your original image.")),(0,a.createElement)(vl.DuotonePicker,{colorPalette:u,duotonePalette:c,disableCustomColors:!0,disableCustomDuotone:!0,value:p,onChange:f})))})))}const ef=[],tf=window?.navigator.userAgent&&window.navigator.userAgent.includes("Safari")&&!window.navigator.userAgent.includes("Chrome")&&!window.navigator.userAgent.includes("Chromium");function nf({presetSetting:e,defaultSetting:t}){const[n,o,r,l]=Nr(t,`${e}.custom`,`${e}.theme`,`${e}.default`);return(0,d.useMemo)((()=>[...o||ef,...r||ef,...n&&l||ef]),[n,o,r,l])}function of(e,t){if(!e)return;const n=t?.find((({slug:t})=>e===`var:preset|duotone|${t}`));return n?n.colors:void 0}Dc([zc]);var rf={shareWithChildBlocks:!0,edit:function({style:e,setAttributes:t,name:n}){const o=e?.color?.duotone,r=gl(n),l=es(),i=nf({presetSetting:"color.duotone",defaultSetting:"color.defaultDuotone"}),s=nf({presetSetting:"color.palette",defaultSetting:"color.defaultPalette"}),[c,u]=Nr("color.custom","color.customDuotone"),d=!c,p=!u||0===s?.length&&d;if(0===i?.length&&p)return null;if("default"!==l)return null;const m=Array.isArray(o)?o:of(o,i);return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Cs,{group:"filter"},(0,a.createElement)(Jm,{value:{filter:{duotone:m}},onChange:n=>{const o={...e,color:{...n?.filter}};t({style:o})},settings:r})),(0,a.createElement)(Cl,{group:"block",__experimentalShareWithChildBlocks:!0},(0,a.createElement)(Fm,{duotonePalette:i,colorPalette:s,disableCustomDuotone:p,disableCustomColors:d,value:m,onChange:n=>{const o=function(e,t){if(!e||!Array.isArray(e))return;const n=t?.find((t=>t?.colors?.every(((t,n)=>t===e[n]))));return n?`var:preset|duotone|${n.slug}`:void 0}(n,i),r={...e,color:{...e?.color,duotone:null!=o?o:n}};t({style:r})},settings:r})))},useBlockProps:function e({name:t,style:n}){const o=(0,m.useInstanceId)(e),r=(0,d.useMemo)((()=>{const e=(0,u.getBlockType)(t);if(e){if(!(0,u.getBlockSupport)(e,"filter.duotone",!1))return null;const t=(0,u.getBlockSupport)(e,"color.__experimentalDuotone",!1);if(t){const n=$m(e);return"string"==typeof t?Jr(n,t):n}return $m(e,"filter.duotone",{fallback:!0})}}),[t]),l=n?.color?.duotone,i=`wp-duotone-${o}`,s=r&&l;return lf({clientId:o,id:i,selector:r,attribute:l}),{className:s?i:""}},attributeKeys:["style"],hasSupport(e){return(0,u.hasBlockSupport)(e,"filter.duotone")}};function lf({clientId:e,id:t,selector:n,attribute:o}){const r=nf({presetSetting:"color.duotone",defaultSetting:"color.defaultDuotone"}),l=Array.isArray(o),i=l?void 0:of(o,r),s="string"==typeof o&&i;let a=null;s?a=i:("string"==typeof o&&!s||l)&&(a=o);const c=n.split(",").map((e=>`.${t}${e.trim()}`)).join(", "),u=Array.isArray(a)||"unset"===a;hl(u?{css:"unset"!==a?Gm(c,t):Hm(c),__unstableType:"presets"}:void 0),hl(u?{assets:"unset"!==a?Um(t,a):"",__unstableType:"svgs"}:void 0);const p=td(e);(0,d.useEffect)((()=>{if(u&&p&&tf){const e=p.style.display;p.style.display="inline-block",p.offsetHeight,p.style.display=e}}),[u,p])}function sf(e){return(0,p.useSelect)((t=>{if(!e)return null;const{getBlockName:n,getBlockAttributes:o,__experimentalGetReusableBlockTitle:r}=t(wr),{getBlockType:l,getActiveBlockVariation:i}=t(u.store),s=n(e),a=l(s);if(!a)return null;const c=o(e),d=i(s,c),p=(0,u.isReusableBlock)(a),m=(p?r(c.ref):void 0)||a.title,f=p||(0,u.isTemplatePart)(a),h=function(e){const t=e?.style?.position?.type;return"sticky"===t?(0,x.__)("Sticky"):"fixed"===t?(0,x.__)("Fixed"):null}(c),g={isSynced:f,title:m,icon:a.icon,description:a.description,anchor:c?.anchor,positionLabel:h,positionType:c?.style?.position?.type,name:c?.metadata?.name};return d?{isSynced:f,title:d.title||a.title,icon:d.icon||a.icon,description:d.description||a.description,anchor:c?.anchor,positionLabel:h,positionType:c?.style?.position?.type,name:c?.metadata?.name}:g}),[e])}(0,f.addFilter)("blocks.registerBlockType","core/editor/duotone/add-attributes",(function(e){return(0,u.hasBlockSupport)(e,"filter.duotone")?(e.attributes.style||Object.assign(e.attributes,{style:{type:"object"}}),e):e}));const{CustomSelectControl:af}=le(vl.privateApis),cf="position",uf="block-editor-hooks__position-selection__select-control__option",df={key:"default",value:"",name:(0,x.__)("Default"),className:uf},pf={key:"sticky",value:"sticky",name:(0,x._x)("Sticky","Name for the value of the CSS position property"),className:uf,__experimentalHint:(0,x.__)("The block will stick to the top of the window instead of scrolling.")},mf={key:"fixed",value:"fixed",name:(0,x._x)("Fixed","Name for the value of the CSS position property"),className:uf,__experimentalHint:(0,x.__)("The block will not move when the page is scrolled.")},ff=["top","right","bottom","left"],hf=["sticky","fixed"];function gf(e){const t=e.style?.position?.type;return"sticky"===t||"fixed"===t}function bf({name:e}={}){const[t,n]=Nr("position.fixed","position.sticky"),o=!t&&!n;return r=e,!(0,u.getBlockSupport)(r,cf)||o;var r}function vf({style:e={},clientId:t,name:n,setAttributes:o}){const r=function(e){const t=(0,u.getBlockSupport)(e,cf);return!(!0!==t&&!t?.fixed)}(n),l=function(e){const t=(0,u.getBlockSupport)(e,cf);return!(!0!==t&&!t?.sticky)}(n),i=e?.position?.type,{firstParentClientId:s}=(0,p.useSelect)((e=>{const{getBlockParents:n}=e(wr),o=n(t);return{firstParentClientId:o[o.length-1]}}),[t]),c=sf(s),m=l&&i===pf.value&&c?(0,x.sprintf)((0,x.__)("The block will stick to the scrollable area of the parent %s block."),c.title):null,f=(0,d.useMemo)((()=>{const e=[df];return(l||i===pf.value)&&e.push(pf),(r||i===mf.value)&&e.push(mf),e}),[r,l,i]),h=i&&f.find((e=>e.value===i))||df;return d.Platform.select({web:f.length>1?(0,a.createElement)(Cs,{group:"position"},(0,a.createElement)(vl.BaseControl,{className:"block-editor-hooks__position-selection",__nextHasNoMarginBottom:!0,help:m},(0,a.createElement)(af,{__nextUnconstrainedWidth:!0,__next40pxDefaultSize:!0,className:"block-editor-hooks__position-selection__select-control",label:(0,x.__)("Position"),hideLabelFromVision:!0,describedBy:(0,x.sprintf)((0,x.__)("Currently selected position: %s"),h.name),options:f,value:h,__experimentalShowSelectedHint:!0,onChange:({selectedItem:t})=>{(t=>{const n={...e,position:{...e?.position,type:t,top:"sticky"===t||"fixed"===t?"0px":void 0}};o({style:pl(n)})})(t.value)},size:"__unstable-large"}))):null,native:null})}var kf={edit:function(e){return bf(e)?null:(0,a.createElement)(vf,{...e})},useBlockProps:function e({name:t,style:n}){const o=(0,u.hasBlockSupport)(t,cf),r=bf({name:t}),l=o&&!r,i=(0,m.useInstanceId)(e),s=`.wp-container-${i}.wp-container-${i}`;let a;l&&(a=function({selector:e,style:t}){let n="";const{type:o}=t?.position||{};return hf.includes(o)?(n+=`${e} {`,n+=`position: ${o};`,ff.forEach((e=>{void 0!==t?.position?.[e]&&(n+=`${e}: ${t.position[e]};`)})),"sticky"!==o&&"fixed"!==o||(n+="z-index: 10"),n+="}",n):n}({selector:s,style:n})||"");const c=dl()({[`wp-container-${i}`]:l&&!!a,[`is-position-${n?.position?.type}`]:l&&!!a&&!!n?.position?.type});return hl({css:a}),{className:c}},attributeKeys:["style"],hasSupport(e){return(0,u.hasBlockSupport)(e,cf)}};const _f="layout";function yf(e){return(0,u.hasBlockSupport)(e,"layout")||(0,u.hasBlockSupport)(e,"__experimentalLayout")}function Ef(e={},t=""){const{kebabCase:n}=le(vl.privateApis),o=(0,p.useSelect)((e=>{const{getSettings:t}=e(wr);return t().__experimentalFeatures?.useRootPaddingAwareAlignments}),[]),{layout:r}=e,{default:l}=(0,u.getBlockSupport)(t,_f)||{},i=r?.inherit||r?.contentSize||r?.wideSize?{...r,type:"constrained"}:r||l||{},s=[];if(Nl[i?.type||"default"]?.className){const e=Nl[i?.type||"default"]?.className,n=t.split("/"),o=`wp-block-${"core"===n[0]?n.pop():n.join("-")}-${e}`;s.push(e,o)}return(i?.inherit||i?.contentSize||"constrained"===i?.type)&&o&&s.push("has-global-padding"),i?.orientation&&s.push(`is-${n(i.orientation)}`),i?.justifyContent&&s.push(`is-content-justification-${n(i.justifyContent)}`),i?.flexWrap&&"nowrap"===i.flexWrap&&s.push("is-nowrap"),s}var wf={shareWithChildBlocks:!0,edit:function({layout:e,setAttributes:t,name:n}){const o=gl(n),{layout:r}=o,[l]=Nr("layout"),{themeSupportsLayout:i}=(0,p.useSelect)((e=>{const{getSettings:t}=e(wr);return{themeSupportsLayout:t().supportsLayout}}),[]);if("default"!==es())return null;const s=(0,u.getBlockSupport)(n,_f,{}),c={...r,...s},{allowSwitching:d,allowEditing:m=!0,allowInheriting:f=!0,default:h}=c;if(!m)return null;const g=!(!f||!l||e?.type&&"default"!==e?.type&&"constrained"!==e?.type&&!e?.inherit),b=e||h||{},{inherit:v=!1,type:k="default",contentSize:_=null}=b;if(("default"===k||"constrained"===k)&&!i)return null;const y=Di(k),E=Di("constrained"),w=!b.type&&(_||v),S=!!v||!!_,C=e=>t({layout:e});return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Cs,null,(0,a.createElement)(vl.PanelBody,{title:(0,x.__)("Layout")},g&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.ToggleControl,{__nextHasNoMarginBottom:!0,className:"block-editor-hooks__toggle-control",label:(0,x.__)("Inner blocks use content width"),checked:"constrained"===y?.name||S,onChange:()=>t({layout:{type:"constrained"===y?.name||S?"default":"constrained"}}),help:"constrained"===y?.name||S?(0,x.__)("Nested blocks use content width with options for full and wide widths."):(0,x.__)("Nested blocks will fill the width of this container. Toggle to constrain.")})),!v&&d&&(0,a.createElement)(Sf,{type:k,onChange:e=>t({layout:{type:e}})}),y&&"default"!==y.name&&(0,a.createElement)(y.inspectorControls,{layout:b,onChange:C,layoutBlockSupport:c}),E&&w&&(0,a.createElement)(E.inspectorControls,{layout:b,onChange:C,layoutBlockSupport:c}))),!v&&y&&(0,a.createElement)(y.toolBarControls,{layout:b,onChange:C,layoutBlockSupport:s}))},attributeKeys:["layout"],hasSupport(e){return yf(e)}};function Sf({type:e,onChange:t}){return(0,a.createElement)(vl.ButtonGroup,null,Oi.map((({name:n,label:o})=>(0,a.createElement)(vl.Button,{key:n,isPressed:e===n,onClick:()=>t(n)},o))))}function Cf({block:e,props:t}){const{name:n,attributes:o}=t,r=(0,m.useInstanceId)(e),{layout:l}=o,{default:i}=(0,u.getBlockSupport)(n,_f)||{},s=l?.inherit||l?.contentSize||l?.wideSize?{...l,type:"constrained"}:l||i||{},c=Ef(o,n),{kebabCase:d}=le(vl.privateApis),p=`wp-container-${d(n)}-is-layout-`,f=`.${p}${r}.${p}${r}`,[h]=Nr("spacing.blockGap"),g=null!==h,b=Di(s?.type||"default"),v=b?.getLayoutStyle?.({blockName:n,selector:f,layout:s,style:o?.style,hasBlockGapSupport:g}),k=dl()({[`${p}${r}`]:!!v},c);return hl({css:v}),(0,a.createElement)(e,{...t,__unstableLayoutClassNames:k})}const xf=(0,m.createHigherOrderComponent)((e=>t=>{const n=yf(t.name);return(0,p.useSelect)((e=>!!n&&!e(wr).getSettings().disableLayoutStyles),[n])?(0,a.createElement)(Cf,{block:e,props:t}):(0,a.createElement)(e,{...t})}),"withLayoutStyles");(0,f.addFilter)("blocks.registerBlockType","core/layout/addAttribute",(function(e){var t;return"type"in(null!==(t=e.attributes?.layout)&&void 0!==t?t:{})||yf(e)&&(e.attributes={...e.attributes,layout:{type:"object"}}),e})),(0,f.addFilter)("editor.BlockListBlock","core/editor/layout/with-layout-styles",xf);var Bf={useBlockProps:function e({style:t}){var n;const o=(0,p.useSelect)((e=>!e(wr).getSettings().disableLayoutStyles)),r=null!==(n=t?.layout)&&void 0!==n?n:{},{selfStretch:l,flexSize:i}=r,s=(0,m.useInstanceId)(e),a=`.wp-container-content-${s}`;let c="";if(o&&("fixed"===l&&i?c=`${a} {\n\t\t\t\tflex-basis: ${i};\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`:"fill"===l&&(c=`${a} {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`)),hl({css:c}),c)return{className:`wp-container-content-${s}`}},attributeKeys:["style"],hasSupport(){return!0}};function If(e){return(0,p.useSelect)((t=>{const{getBlocksByClientId:n,getSelectedBlockClientIds:o,isUngroupable:r,isGroupable:l}=t(wr),{getGroupingBlockName:i,getBlockType:s}=t(u.store),a=e?.length?e:o(),c=n(a),[d]=c,p=1===a.length&&r(a[0]);return{clientIds:a,isGroupable:l(a),isUngroupable:p,blocksSelection:c,groupingBlockName:i(),onUngroup:p&&s(d.name)?.transforms?.ungroup}}),[e])}function Tf({clientIds:e,isGroupable:t,isUngroupable:n,onUngroup:o,blocksSelection:r,groupingBlockName:l,onClose:i=(()=>{})}){const{replaceBlocks:s}=(0,p.useDispatch)(wr);return t||n?(0,a.createElement)(a.Fragment,null,t&&(0,a.createElement)(vl.MenuItem,{onClick:()=>{(()=>{const t=(0,u.switchToBlockType)(r,l);t&&s(e,t)})(),i()}},(0,x._x)("Group","verb")),n&&(0,a.createElement)(vl.MenuItem,{onClick:()=>{(()=>{let t=r[0].innerBlocks;t.length&&(o&&(t=o(r[0].attributes,r[0].innerBlocks)),s(e,t))})(),i()}},(0,x._x)("Ungroup","Ungrouping blocks from within a grouping block back into individual blocks within the Editor "))):null}function Mf(e){return(0,p.useSelect)((t=>{const{canEditBlock:n,canMoveBlock:o,canRemoveBlock:r,canLockBlockType:l,getBlockName:i,getBlockRootClientId:s,getTemplateLock:a}=t(wr),c=s(e),u=n(e),d=o(e,c),p=r(e,c);return{canEdit:u,canMove:d,canRemove:p,canLock:l(i(e)),isContentLocked:"contentOnly"===a(e),isLocked:!u||!d||!p}}),[e])}var Pf=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8h1.5c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1z"}));var Rf=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zM9.8 7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2v3H9.8V7zm6.7 11.5h-9v-7h9v7z"}));var Nf=(0,a.createElement)(Z.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)(Z.Path,{d:"M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zm-2.8 0H9.8V7c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v3z"}));const Af=["core/block","core/navigation"];function Lf(e){return e.remove&&e.move?"all":!(!e.remove||e.move)&&"insert"}function Of({clientId:e,onClose:t}){const[n,o]=(0,d.useState)({move:!1,remove:!1}),{canEdit:r,canMove:l,canRemove:i}=Mf(e),{allowsEditLocking:s,templateLock:c,hasTemplateLock:f}=(0,p.useSelect)((t=>{const{getBlockName:n,getBlockAttributes:o}=t(wr),r=n(e),l=(0,u.getBlockType)(r);return{allowsEditLocking:Af.includes(r),templateLock:o(e)?.templateLock,hasTemplateLock:!!l?.attributes?.templateLock}}),[e]),[h,g]=(0,d.useState)(!!c),{updateBlockAttributes:b}=(0,p.useDispatch)(wr),v=sf(e),k=(0,m.useInstanceId)(Of,"block-editor-block-lock-modal__options-title");(0,d.useEffect)((()=>{o({move:!l,remove:!i,...s?{edit:!r}:{}})}),[r,l,i,s]);const _=Object.values(n).every(Boolean),y=Object.values(n).some(Boolean)&&!_;return(0,a.createElement)(vl.Modal,{title:(0,x.sprintf)((0,x.__)("Lock %s"),v.title),overlayClassName:"block-editor-block-lock-modal",onRequestClose:t},(0,a.createElement)("p",null,(0,x.__)("Choose specific attributes to restrict or lock all available options.")),(0,a.createElement)("form",{onSubmit:o=>{o.preventDefault(),b([e],{lock:n,templateLock:h?Lf(n):void 0}),t()}},(0,a.createElement)("div",{role:"group","aria-labelledby":k,className:"block-editor-block-lock-modal__options"},(0,a.createElement)(vl.CheckboxControl,{__nextHasNoMarginBottom:!0,className:"block-editor-block-lock-modal__options-title",label:(0,a.createElement)("span",{id:k},(0,x.__)("Lock all")),checked:_,indeterminate:y,onChange:e=>o({move:e,remove:e,...s?{edit:e}:{}})}),(0,a.createElement)("ul",{className:"block-editor-block-lock-modal__checklist"},s&&(0,a.createElement)("li",{className:"block-editor-block-lock-modal__checklist-item"},(0,a.createElement)(vl.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Restrict editing"),checked:!!n.edit,onChange:e=>o((t=>({...t,edit:e})))}),(0,a.createElement)(vl.Icon,{className:"block-editor-block-lock-modal__lock-icon",icon:n.edit?Nf:Pf})),(0,a.createElement)("li",{className:"block-editor-block-lock-modal__checklist-item"},(0,a.createElement)(vl.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Disable movement"),checked:n.move,onChange:e=>o((t=>({...t,move:e})))}),(0,a.createElement)(vl.Icon,{className:"block-editor-block-lock-modal__lock-icon",icon:n.move?Nf:Pf})),(0,a.createElement)("li",{className:"block-editor-block-lock-modal__checklist-item"},(0,a.createElement)(vl.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,x.__)("Prevent removal"),checked:n.remove,onChange:e=>o((t=>({...t,remove:e})))}),(0,a.createElement)(vl.Icon,{className:"block-editor-block-lock-modal__lock-icon",icon:n.remove?Nf:Pf}))),f&&(0,a.createElement)(vl.ToggleControl,{__nextHasNoMarginBottom:!0,className:"block-editor-block-lock-modal__template-lock",label:(0,x.__)("Apply to all blocks inside"),checked:h,disabled:n.move&&!n.remove,onChange:()=>g(!h)})),(0,a.createElement)(vl.Flex,{className:"block-editor-block-lock-modal__actions",justify:"flex-end",expanded:!1},(0,a.createElement)(vl.FlexItem,null,(0,a.createElement)(vl.Button,{variant:"tertiary",onClick:t},(0,x.__)("Cancel"))),(0,a.createElement)(vl.FlexItem,null,(0,a.createElement)(vl.Button,{variant:"primary",type:"submit"},(0,x.__)("Apply"))))))}function Df({clientId:e}){const{canLock:t,isLocked:n}=Mf(e),[o,r]=(0,d.useReducer)((e=>!e),!1);if(!t)return null;const l=n?(0,x.__)("Unlock"):(0,x.__)("Lock");return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.MenuItem,{icon:n?Pf:Rf,onClick:r,"aria-expanded":o,"aria-haspopup":"dialog"},l),o&&(0,a.createElement)(Of,{clientId:e,onClose:r}))}const zf=()=>{};var Vf=(0,m.compose)([(0,p.withSelect)(((e,{clientId:t})=>{const{getBlock:n,getBlockMode:o,getSettings:r}=e(wr),l=n(t),i=r().codeEditingEnabled;return{mode:o(t),blockType:l?(0,u.getBlockType)(l.name):null,isCodeEditingEnabled:i}})),(0,p.withDispatch)(((e,{onToggle:t=zf,clientId:n})=>({onToggleMode(){e(wr).toggleBlockMode(n),t()}})))])((function({blockType:e,mode:t,onToggleMode:n,small:o=!1,isCodeEditingEnabled:r=!0}){if(!e||!(0,u.hasBlockSupport)(e,"html",!0)||!r)return null;const l="visual"===t?(0,x.__)("Edit as HTML"):(0,x.__)("Edit visually");return(0,a.createElement)(vl.MenuItem,{onClick:n},!o&&l)}));function Ff(e){return 0===e?.trim()?.length}function Hf({blockName:e,originalBlockName:t,onClose:n,onSave:o}){const[r,l]=(0,d.useState)(e),i=r!==e,s=r===t,c=Ff(r),u=i||s,p=(0,m.useInstanceId)(Hf,"block-editor-rename-modal__description");return(0,a.createElement)(vl.Modal,{title:(0,x.__)("Rename"),onRequestClose:n,overlayClassName:"block-editor-block-rename-modal",aria:{describedby:p},focusOnMount:"firstContentElement"},(0,a.createElement)("p",{id:p},(0,x.__)("Enter a custom name for this block.")),(0,a.createElement)("form",{onSubmit:e=>{e.preventDefault(),u&&(()=>{const e=s||c?(0,x.sprintf)((0,x.__)('Block name reset to: "%s".'),r):(0,x.sprintf)((0,x.__)('Block name changed to: "%s".'),r);(0,so.speak)(e,"assertive"),o(r),n()})()}},(0,a.createElement)(vl.__experimentalVStack,{spacing:"3"},(0,a.createElement)(vl.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,value:r,label:(0,x.__)("Block name"),hideLabelFromVision:!0,placeholder:t,onChange:l,onFocus:e=>e.target.select()}),(0,a.createElement)(vl.__experimentalHStack,{justify:"right"},(0,a.createElement)(vl.Button,{__next40pxDefaultSize:!0,variant:"tertiary",onClick:n},(0,x.__)("Cancel")),(0,a.createElement)(vl.Button,{__next40pxDefaultSize:!0,"aria-disabled":!u,variant:"primary",type:"submit"},(0,x.__)("Save"))))))}function Gf({clientId:e}){const[t,n]=(0,d.useState)(!1),{metadata:o}=(0,p.useSelect)((t=>{const{getBlockAttributes:n}=t(wr),o=n(e)?.metadata;return{metadata:o}}),[e]),{updateBlockAttributes:r}=(0,p.useDispatch)(wr),l=o?.name;const i=sf(e);return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(vl.MenuItem,{onClick:()=>{n(!0)},"aria-expanded":t,"aria-haspopup":"dialog"},(0,x.__)("Rename")),t&&(0,a.createElement)(Hf,{blockName:l||"",originalBlockName:i?.title,onClose:()=>n(!1),onSave:t=>{(t===i?.title||Ff(t))&&(t=void 0),function(t){r([e],{metadata:{...o&&o,name:t}})}(t)}}))}const{Fill:Uf,Slot:$f}=(0,vl.createSlotFill)("BlockSettingsMenuControls");function jf({...e}){return(0,a.createElement)(vl.__experimentalStyleProvider,{document:document},(0,a.createElement)(Uf,{...e}))}jf.Slot=({fillProps:e,clientIds:t=null,__unstableDisplayLocation:n})=>{const{selectedBlocks:o,selectedClientIds:r}=(0,p.useSelect)((e=>{const{getBlockNamesByClientId:n,getSelectedBlockClientIds:o}=e(wr),r=null!==t?t:o();return{selectedBlocks:n(r),selectedClientIds:r}}),[t]),{canLock:l}=Mf(r[0]),{canRename:i}=(s=o[0],{canRename:(0,u.getBlockSupport)(s,"renaming",!0)});var s;const c=1===r.length&&l,d=1===r.length&&i,f=If(r),{isGroupable:h,isUngroupable:g}=f,b=h||g;return(0,a.createElement)($f,{fillProps:{...e,__unstableDisplayLocation:n,selectedBlocks:o,selectedClientIds:r}},(t=>!t?.length>0&&!b&&!c?null:(0,a.createElement)(vl.MenuGroup,null,b&&(0,a.createElement)(Tf,{...f,onClose:e?.onClose}),c&&(0,a.createElement)(Df,{clientId:r[0]}),d&&(0,a.createElement)(Gf,{clientId:r[0]}),t,e?.canMove&&!e?.onlyBlock&&(0,a.createElement)(vl.MenuItem,{onClick:(0,m.pipe)(e?.onClose,e?.onMoveTo)},(0,x.__)("Move to")),1===e?.count&&(0,a.createElement)(Vf,{clientId:e?.firstBlockClientId,onToggle:e?.onClose}))))};var Wf=jf;var Kf={edit:function({clientId:e,isSelected:t}){const{getBlockListSettings:n,getSettings:o}=(0,p.useSelect)(wr),{templateLock:r,isLockedByParent:l,isEditingAsBlocks:i}=(0,p.useSelect)((t=>{const{__unstableGetContentLockingParent:n,getTemplateLock:o,__unstableGetTemporarilyEditingAsBlocks:r}=t(wr);return{templateLock:o(e),isLockedByParent:!!n(e),isEditingAsBlocks:r()===e}}),[e]),{updateSettings:s,updateBlockListSettings:c,__unstableSetTemporarilyEditingAsBlocks:u}=(0,p.useDispatch)(wr),{stopEditingAsBlocks:m}=le((0,p.useDispatch)(wr)),f=!l&&"contentOnly"===r,{__unstableMarkNextChangeAsNotPersistent:h,updateBlockAttributes:g}=(0,p.useDispatch)(wr),b=(0,d.useCallback)((()=>{m(e)}),[e,m]);if(!f&&!i)return null;const v=i&&!f,k=!i&&f&&t;return(0,a.createElement)(a.Fragment,null,v&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Cl,{group:"other"},(0,a.createElement)(vl.ToolbarButton,{onClick:b},(0,x.__)("Done")))),k&&(0,a.createElement)(Wf,null,(({onClose:t})=>(0,a.createElement)(vl.MenuItem,{onClick:()=>{h(),g(e,{templateLock:void 0}),c(e,{...n(e),templateLock:!1});const r=o().focusMode;s({focusMode:!0}),u(e,r),t()}},(0,x.__)("Modify")))))},hasSupport(){return!0}};const Zf="metadata";(0,f.addFilter)("blocks.registerBlockType","core/metadata/addMetaAttribute",(function(e){return e?.attributes?.[Zf]?.type||(e.attributes={...e.attributes,[Zf]:{type:"object"}}),e}));var qf=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"}));var Yf=(0,d.memo)((function({icon:e,showColors:t=!1,className:n,context:o}){"block-default"===e?.src&&(e={src:qf});const r=(0,a.createElement)(vl.Icon,{icon:e&&e.src?e.src:e,context:o}),l=t?{backgroundColor:e&&e.background,color:e&&e.foreground}:{};return(0,a.createElement)("span",{style:l,className:dl()("block-editor-block-icon",n,{"has-colors":t})},r)}));const Xf={};var Qf={edit:function({name:e,clientId:t}){const n=(0,p.useSelect)((e=>e(u.store).getBlockTypes()),[]),o=(0,d.useMemo)((()=>n?.filter((({blockHooks:t})=>t&&e in t))),[n,e]),{blockIndex:r,rootClientId:l,innerBlocksLength:i}=(0,p.useSelect)((e=>{const{getBlock:n,getBlockIndex:o,getBlockRootClientId:r}=e(wr);return{blockIndex:o(t),innerBlocksLength:n(t)?.innerBlocks?.length,rootClientId:r(t)}}),[t]),s=(0,p.useSelect)((n=>{const{getBlock:r,getGlobalBlockCount:i}=n(wr),s=o.reduce(((n,o)=>{if(0===i(o.name))return n;const s=o?.blockHooks?.[e];let a;switch(s){case"before":case"after":a=r(l)?.innerBlocks;break;case"first_child":case"last_child":a=r(t).innerBlocks}const c=a?.find((e=>e.name===o.name));return c?{...n,[o.name]:c.clientId}:n}),{});return Object.values(s).length>0?s:Xf}),[o,e,t,l]),{insertBlock:c,removeBlock:m}=(0,p.useDispatch)(wr);if(!o.length)return null;const f=o.reduce(((e,t)=>{const[n]=t.name.split("/");return e[n]||(e[n]=[]),e[n].push(t),e}),{});return(0,a.createElement)(Cs,null,(0,a.createElement)(vl.PanelBody,{className:"block-editor-hooks__block-hooks",title:(0,x.__)("Plugins"),initialOpen:!0},Object.keys(f).map((n=>(0,a.createElement)(d.Fragment,{key:n},(0,a.createElement)("h3",null,n),f[n].map((n=>{const o=n.name in s;return(0,a.createElement)(vl.ToggleControl,{checked:o,key:n.title,label:(0,a.createElement)(vl.__experimentalHStack,{justify:"flex-start"},(0,a.createElement)(Yf,{icon:n.icon}),(0,a.createElement)("span",null,n.title)),onChange:()=>{if(o)m(s[n.name],!1);else{const o=n.blockHooks[e];((e,n)=>{switch(n){case"before":case"after":c(e,"after"===n?r+1:r,l,!1);break;case"first_child":case"last_child":c(e,"first_child"===n?0:i,t,!1)}})((0,u.createBlock)(n.name),o)}}})})))))))},hasSupport(){return!0}};var Jf={edit:function({metadata:e,setAttributes:t}){return(0,a.createElement)(Cs,{group:"advanced"},(0,a.createElement)(vl.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,x.__)("Block name"),value:e?.name||"",onChange:n=>{t({metadata:{...e,name:n}})}}))},attributeKeys:["metadata"],hasSupport(e){return(0,u.hasBlockSupport)(e,"renaming",!0)}};(0,f.addFilter)("blocks.registerBlockType","core/metadata/addLabelCallback",(function(e){return e.__experimentalLabel||(0,u.hasBlockSupport)(e,"renaming",!0)&&(e.__experimentalLabel=(e,{context:t})=>{const{metadata:n}=e;if("list-view"===t&&n?.name)return n.name}),e}));const eh={"core/paragraph":["content"],"core/heading":["content"],"core/image":["url","title","alt"],"core/button":["url","text","linkTarget"]};function th(e){const t=e.style?.border||{};return{className:Su(e)||void 0,style:Mm({border:t})}}function nh(e){const{colors:t}=jc(),n=th(e),{borderColor:o}=e;if(o){const e=gu({colors:t,namedColor:o});n.style.borderColor=e.color}return n}function oh(e){return{className:void 0,style:Mm({shadow:e.style?.shadow||""})}}function rh(e){return oh(e)}function lh(e){const{backgroundColor:t,textColor:n,gradient:o,style:r}=e,l=$c("background-color",t),i=$c("color",n),s=xu(o),a=s||r?.color?.gradient;return{className:dl()(i,s,{[l]:!a&&!!l,"has-text-color":n||r?.color?.text,"has-background":t||r?.color?.background||o||r?.color?.gradient,"has-link-color":r?.elements?.link?.color})||void 0,style:Mm({color:r?.color||{}})}}function ih(e){const{backgroundColor:t,textColor:n,gradient:o}=e,[r,l,i,s,a,c]=Nr("color.palette.custom","color.palette.theme","color.palette.default","color.gradients.custom","color.gradients.theme","color.gradients.default"),u=(0,d.useMemo)((()=>[...r||[],...l||[],...i||[]]),[r,l,i]),p=(0,d.useMemo)((()=>[...s||[],...a||[],...c||[]]),[s,a,c]),m=lh(e);if(t){const e=Gc(u,t);m.style.backgroundColor=e.color}if(o&&(m.style.background=Bu(p,o)),n){const e=Gc(u,n);m.style.color=e.color}return m}function sh(e){const{style:t}=e;return{style:Mm({spacing:t?.spacing||{}})}}function ah(e,t){const{kebabCase:n}=le(vl.privateApis);let o=e?.style?.typography||{};const r=Wr(t);o={...o,fontSize:$r({size:e?.style?.typography?.fontSize},r)};const l=Mm({typography:o}),i=e?.fontFamily?`has-${n(e.fontFamily)}-font-family`:"";return{className:dl()(i,cp(e?.fontSize)),style:l}}function ch(e){const[t,n]=(0,d.useState)(e);return(0,d.useEffect)((()=>{e&&n(e)}),[e]),t}var uh;(0,f.addFilter)("blocks.registerBlockType","core/editor/custom-sources-backwards-compatibility/shim-attribute-source",(function(e){return e.name in eh?(e.edit=(0,m.createHigherOrderComponent)((e=>t=>{const{clientId:n,name:o}=y(),{getBlockBindingsSource:r}=le((0,p.useSelect)(wr)),{getBlockAttributes:l,updateBlockAttributes:i}=(0,p.useSelect)(wr),s=l(n);s?.metadata?.bindings&&Object.entries(s.metadata.bindings).forEach((([e,n])=>{const l=r(n.source.name);if(l){const{placeholder:r,useValue:[i=null]=[]}=l.useSource(t,n.source.attributes);if(r&&!i){const t=(0,u.getBlockType)(o).attributes[e].attribute;s[e]="src"===t||"href"===t?null:r}i&&(s[e]=i)}}));const c=(0,p.useRegistry)();return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(e,{key:"edit",attributes:s,setAttributes:(e,t)=>c.batch((()=>i(t,e))),...t}))}),"useBoundAttributes")(e.edit),e):e})),(0,f.addFilter)("blocks.registerBlockType","core/block-bindings-ui",((e,t)=>{if(!(t in eh))return e;const n=e.usesContext,o=new Set(n);return["postId","postType","queryId"].forEach((e=>{o.has(e)||n.push(e)})),e.usesContext=n,e})),function(e){e=e.map((e=>({...e,Edit:(0,d.memo)(e.edit)})));const t=(0,m.createHigherOrderComponent)((t=>n=>{const o=y();return[...e.map(((e,t)=>{const{Edit:r,hasSupport:l,attributeKeys:i=[],shareWithChildBlocks:s}=e;if(!(o[h]||o[g]&&s)||!l(n.name))return null;const c={};for(const e of i)n.attributes[e]&&(c[e]=n.attributes[e]);return(0,a.createElement)(r,{key:t,name:n.name,isSelected:n.isSelected,clientId:n.clientId,setAttributes:n.setAttributes,__unstableParentLayout:n.__unstableParentLayout,...c})})),(0,a.createElement)(t,{key:"edit",...n})]}),"withBlockEditHooks");(0,f.addFilter)("editor.BlockEdit","core/editor/hooks",t)}([rs,Is,Ps,Dm,rf,kf,wf,Kf,Qf,Jf].filter(Boolean)),function(e){const t=(0,m.createHigherOrderComponent)((t=>n=>{const[o,r]=(0,d.useState)(Array(e.length).fill(void 0));return[...e.map(((e,t)=>{const{hasSupport:o,attributeKeys:l=[],useBlockProps:i}=e,s={};for(const e of l)n.attributes[e]&&(s[e]=n.attributes[e]);return Object.keys(s).length&&o(n.name)?(0,a.createElement)(bl,{key:t,index:t,useBlockProps:i,setAllWrapperProps:r,name:n.name,...s}):null})),(0,a.createElement)(t,{key:"edit",...n,wrapperProps:o.filter(Boolean).reduce(((e,t)=>({...e,...t,className:dl()(e.className,t.className),style:{...e.style,...t.style}})),n.wrapperProps||{})})]}),"withBlockListBlockHooks");(0,f.addFilter)("editor.BlockListBlock","core/editor/hooks",t)}([rs,Dm,hd,pm,rf,ip,pp,Cu,kf,Bf]),uh=[rs,Is,Ms,Ps,Cu,hd,Dm,ip,pp],(0,f.addFilter)("blocks.getSaveContent.extraProps","core/editor/hooks",(function(e,t,n){return uh.reduce(((e,o)=>{const{hasSupport:r,attributeKeys:l=[],addSaveProps:i}=o,s={};for(const e of l)n[e]&&(s[e]=n[e]);return Object.keys(s).length&&r(t)?i(e,t,s):e}),e)}),0),(0,f.addFilter)("blocks.getSaveContent.extraProps","core/editor/hooks",(e=>(e.hasOwnProperty("className")&&!e.className&&delete e.className,e)));const dh=([e,...t])=>e.toUpperCase()+t.join(""),ph=e=>(0,m.createHigherOrderComponent)((t=>n=>(0,a.createElement)(t,{...n,colors:e})),"withCustomColorPalette"),mh=()=>(0,m.createHigherOrderComponent)((e=>t=>{const[n,o,r]=Nr("color.palette.custom","color.palette.theme","color.palette.default"),l=(0,d.useMemo)((()=>[...n||[],...o||[],...r||[]]),[n,o,r]);return(0,a.createElement)(e,{...t,colors:l})}),"withEditorColorPalette");function fh(e,t){const{kebabCase:n}=le(vl.privateApis),o=e.reduce(((e,t)=>({...e,..."string"==typeof t?{[t]:n(t)}:t})),{});return(0,m.compose)([t,e=>class extends d.Component{constructor(e){super(e),this.setters=this.createSetters(),this.colorUtils={getMostReadableColor:this.getMostReadableColor.bind(this)},this.state={}}getMostReadableColor(e){const{colors:t}=this.props;return function(e,t){const n=Lc(t),o=({color:e})=>n.contrast(e),r=Math.max(...e.map(o));return e.find((e=>o(e)===r)).color}(t,e)}createSetters(){return Object.keys(o).reduce(((e,t)=>{const n=dh(t),o=`custom${n}`;return e[`set${n}`]=this.createSetColor(t,o),e}),{})}createSetColor(e,t){return n=>{const o=Uc(this.props.colors,n);this.props.setAttributes({[e]:o&&o.slug?o.slug:void 0,[t]:o&&o.slug?void 0:n})}}static getDerivedStateFromProps({attributes:e,colors:t},n){return Object.entries(o).reduce(((o,[r,l])=>{const i=Gc(t,e[r],e[`custom${dh(r)}`]),s=n[r],a=s?.color;return a===i.color&&s?o[r]=s:o[r]={...i,class:$c(l,i.slug)},o}),{})}render(){return(0,a.createElement)(e,{...this.props,colors:void 0,...this.state,...this.setters,colorUtils:this.colorUtils})}}])}function hh(e){return(...t)=>{const n=ph(e);return(0,m.createHigherOrderComponent)(fh(t,n),"withCustomColors")}}function gh(...e){const t=mh();return(0,m.createHigherOrderComponent)(fh(e,t),"withColors")}var bh=function(e){const[t,n]=Nr("typography.fontSizes","typography.customFontSize");return(0,a.createElement)(vl.FontSizePicker,{...e,fontSizes:t,disableCustomFontSizes:!n})};const vh=[],kh=([e,...t])=>e.toUpperCase()+t.join("");var _h=(...e)=>{const t=e.reduce(((e,t)=>(e[t]=`custom${kh(t)}`,e)),{});return(0,m.createHigherOrderComponent)((0,m.compose)([(0,m.createHigherOrderComponent)((e=>t=>{const[n]=Nr("typography.fontSizes");return(0,a.createElement)(e,{...t,fontSizes:n||vh})}),"withFontSizes"),e=>class extends d.Component{constructor(e){super(e),this.setters=this.createSetters(),this.state={}}createSetters(){return Object.entries(t).reduce(((e,[t,n])=>(e[`set${kh(t)}`]=this.createSetFontSize(t,n),e)),{})}createSetFontSize(e,t){return n=>{const o=this.props.fontSizes?.find((({size:e})=>e===Number(n)));this.props.setAttributes({[e]:o&&o.slug?o.slug:void 0,[t]:o&&o.slug?void 0:n})}}static getDerivedStateFromProps({attributes:e,fontSizes:n},o){const r=(t,n)=>!o[n]||(e[n]?e[n]!==o[n].slug:o[n].size!==e[t]);if(!Object.values(t).some(r))return null;const l=Object.entries(t).filter((([e,t])=>r(t,e))).reduce(((t,[o,r])=>{const l=e[o],i=sp(n,l,e[r]);return t[o]={...i,class:cp(l)},t}),{});return{...o,...l}}render(){return(0,a.createElement)(e,{...this.props,fontSizes:void 0,...this.state,...this.setters})}}]),"withFontSizes")};var yh=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z"}));var Eh=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z"}));var wh=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z"}));const Sh=[{icon:yh,title:(0,x.__)("Align text left"),align:"left"},{icon:Eh,title:(0,x.__)("Align text center"),align:"center"},{icon:wh,title:(0,x.__)("Align text right"),align:"right"}],Ch={placement:"bottom-start"};var xh=function({value:e,onChange:t,alignmentControls:n=Sh,label:o=(0,x.__)("Align text"),describedBy:r=(0,x.__)("Change text alignment"),isCollapsed:l=!0,isToolbar:i}){function s(n){return()=>t(e===n?void 0:n)}const c=n.find((t=>t.align===e)),u=i?vl.ToolbarGroup:vl.ToolbarDropdownMenu,d=i?{isCollapsed:l}:{toggleProps:{describedBy:r},popoverProps:Ch};return(0,a.createElement)(u,{icon:c?c.icon:(0,x.isRTL)()?wh:yh,label:o,controls:n.map((t=>{const{align:n}=t,o=e===n;return{...t,isActive:o,role:l?"menuitemradio":void 0,onClick:s(n)}})),...d})};const Bh=e=>(0,a.createElement)(xh,{...e,isToolbar:!1}),Ih=e=>(0,a.createElement)(xh,{...e,isToolbar:!0});var Th=n(4793),Mh=n.n(Th);function Ph(e){return e.toLowerCase()}var Rh=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],Nh=/[^A-Z0-9]+/gi;function Ah(e,t,n){return t instanceof RegExp?e.replace(t,n):t.reduce((function(e,t){return e.replace(t,n)}),e)}const Lh=e=>e.name||"",Oh=e=>e.title,Dh=e=>e.description||"",zh=e=>e.keywords||[],Vh=e=>e.category,Fh=()=>null;function Hh(e=""){return function(e,t){void 0===t&&(t={});for(var n=t.splitRegexp,o=void 0===n?Rh:n,r=t.stripRegexp,l=void 0===r?Nh:r,i=t.transform,s=void 0===i?Ph:i,a=t.delimiter,c=void 0===a?" ":a,u=Ah(Ah(e,o,"$1\0$2"),l,"\0"),d=0,p=u.length;"\0"===u.charAt(d);)d++;for(;"\0"===u.charAt(p-1);)p--;return u.slice(d,p).split("\0").map(s).join(c)}(e,{splitRegexp:[/([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu,/([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu],stripRegexp:/(\p{C}|\p{P}|\p{S})+/giu}).split(" ").filter(Boolean)}function Gh(e=""){return e=(e=(e=Mh()(e)).replace(/^\//,"")).toLowerCase()}const Uh=(e="")=>Hh(Gh(e)),$h=(e,t,n,o)=>{if(0===Uh(o).length)return e;return jh(e,o,{getCategory:e=>t.find((({slug:t})=>t===e.category))?.title,getCollection:e=>n[e.name.split("/")[0]]?.title})},jh=(e=[],t="",n={})=>{if(0===Uh(t).length)return e;const o=e.map((e=>[e,Wh(e,t,n)])).filter((([,e])=>e>0));return o.sort((([,e],[,t])=>t-e)),o.map((([e])=>e))};function Wh(e,t,n={}){const{getName:o=Lh,getTitle:r=Oh,getDescription:l=Dh,getKeywords:i=zh,getCategory:s=Vh,getCollection:a=Fh}=n,c=o(e),u=r(e),d=l(e),p=i(e),m=s(e),f=a(e),h=Gh(t),g=Gh(u);let b=0;if(h===g)b+=30;else if(g.startsWith(h))b+=20;else{const e=[c,u,d,...p,m,f].join(" ");0===((e,t)=>e.filter((e=>!Uh(t).some((t=>t.includes(e))))))(Hh(h),e).length&&(b+=10)}if(0!==b&&c.startsWith("core/")){b+=c!==e.id?1:2}return b}var Kh=(e,t)=>{const[n]=(0,p.useSelect)((t=>[t(wr).getInserterItems(e)]),[e]),[o,r]=(0,p.useSelect)((e=>{const{getCategories:t,getCollections:n}=e(u.store);return[t(),n()]}),[]);return[n,o,r,(0,d.useCallback)((({name:e,initialAttributes:n,innerBlocks:o,syncStatus:r,content:l},i)=>{const s="unsynced"===r?(0,u.parse)(l,{__unstableSkipMigrationLogs:!0}):(0,u.createBlock)(e,n,(0,u.createBlocksFromInnerBlocksTemplate)(o));t(s,void 0,i)}),[t])]};const Zh=(e,t)=>t?(e.sort((({id:e},{id:n})=>{let o=t.indexOf(e),r=t.indexOf(n);return o<0&&(o=t.length),r<0&&(r=t.length),o-r})),e):e,qh=()=>{};var Yh={name:"blocks",className:"block-editor-autocompleters__block",triggerPrefix:"/",useItems(e){const{rootClientId:t,selectedBlockName:n,prioritizedBlocks:o}=(0,p.useSelect)((e=>{const{getSelectedBlockClientId:t,getBlockName:n,getBlockListSettings:o,getBlockRootClientId:r}=e(wr),l=t(),i=r(l);return{selectedBlockName:l?n(l):null,rootClientId:i,prioritizedBlocks:o(i)?.prioritizedInserterBlocks}}),[]),[r,l,i]=Kh(t,qh),s=(0,d.useMemo)((()=>(e.trim()?$h(r,l,i,e):Zh(te(r,"frecency","desc"),o)).filter((e=>e.name!==n)).slice(0,9)),[e,n,r,l,i,o]),c=(0,d.useMemo)((()=>s.map((e=>{const{title:t,icon:n,isDisabled:o}=e;return{key:`block-${e.id}`,value:e,label:(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Yf,{key:"icon",icon:n,showColors:!0}),t),isDisabled:o}}))),[s]);return[c]},allowContext(e,t){return!(/\S/.test(e)||/\S/.test(t))},getOptionCompletion(e){const{name:t,initialAttributes:n,innerBlocks:o,syncStatus:r,content:l}=e;return{action:"replace",value:"unsynced"===r?(0,u.parse)(l,{__unstableSkipMigrationLogs:!0}):(0,u.createBlock)(t,n,(0,u.createBlocksFromInnerBlocksTemplate)(o))}}},Xh=window.wp.apiFetch,Qh=n.n(Xh);var Jh=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z"}));var eg={name:"links",className:"block-editor-autocompleters__link",triggerPrefix:"[[",options:async e=>{let t=await Qh()({path:(0,Ls.addQueryArgs)("/wp/v2/search",{per_page:10,search:e,type:"post",order_by:"menu_order"})});return t=t.filter((e=>""!==e.title)),t},getOptionKeywords(e){return[...e.title.split(/\s+/)]},getOptionLabel(e){return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Bi,{key:"icon",icon:"page"===e.subtype?oa:Jh}),e.title)},getOptionCompletion(e){return(0,a.createElement)("a",{href:e.url},e.title)}};const tg=[];function ng({completers:e=tg}){const{name:t}=y();return(0,d.useMemo)((()=>{let n=[...e,eg];return(t===(0,u.getDefaultBlockName)()||(0,u.getBlockSupport)(t,"__experimentalSlashInserter",!1))&&(n=[...n,Yh]),(0,f.hasFilter)("editor.Autocomplete.completers")&&(n===e&&(n=n.map((e=>({...e})))),n=(0,f.applyFilters)("editor.Autocomplete.completers",n,t)),n}),[e,t])}var og=function(e){return(0,a.createElement)(vl.Autocomplete,{...e,completers:ng(e)})};var rg=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z"}));var lg=function({isActive:e,label:t=(0,x.__)("Toggle full height"),onToggle:n,isDisabled:o}){return(0,a.createElement)(vl.ToolbarButton,{isActive:e,icon:rg,label:t,onClick:()=>n(!e),disabled:o})};const ig=()=>{};var sg=function(e){const{label:t=(0,x.__)("Change matrix alignment"),onChange:n=ig,value:o="center",isDisabled:r}=e,l=(0,a.createElement)(vl.__experimentalAlignmentMatrixControl.Icon,{value:o});return(0,a.createElement)(vl.Dropdown,{popoverProps:{placement:"bottom-start"},renderToggle:({onToggle:e,isOpen:n})=>(0,a.createElement)(vl.ToolbarButton,{onClick:e,"aria-haspopup":"true","aria-expanded":n,onKeyDown:t=>{n||t.keyCode!==Os.DOWN||(t.preventDefault(),e())},label:t,icon:l,showTooltip:!0,disabled:r}),renderContent:()=>(0,a.createElement)(vl.__experimentalAlignmentMatrixControl,{hasFocusBorder:!1,onChange:n,value:o})})};function ag({clientId:e,maximumLength:t,context:n}){const{attributes:o,name:r,reusableBlockTitle:l}=(0,p.useSelect)((t=>{if(!e)return{};const{getBlockName:n,getBlockAttributes:o,__experimentalGetReusableBlockTitle:r}=t(wr),l=n(e);if(!l)return{};const i=(0,u.isReusableBlock)((0,u.getBlockType)(l));return{attributes:o(e),name:l,reusableBlockTitle:i&&r(o(e).ref)}}),[e]),i=sf(e);if(!r||!i)return null;const s=(0,u.getBlockType)(r),a=s?(0,u.__experimentalGetBlockLabel)(s,o,n):null,c=l||a,d=c&&c!==s.title?c:i.title;if(t&&t>0&&d.length>t){const e="...";return d.slice(0,t-e.length)+e}return d}function cg({clientId:e,maximumLength:t,context:n}){return ag({clientId:e,maximumLength:t,context:n})}var ug=function({rootLabelText:e}){const{selectBlock:t,clearSelectedBlock:n}=(0,p.useDispatch)(wr),{clientId:o,parents:r,hasSelection:l}=(0,p.useSelect)((e=>{const{getSelectionStart:t,getSelectedBlockClientId:n,getEnabledBlockParents:o}=le(e(wr)),r=n();return{parents:o(r),clientId:r,hasSelection:!!t().clientId}}),[]),i=e||(0,x.__)("Document");return(0,a.createElement)("ul",{className:"block-editor-block-breadcrumb",role:"list","aria-label":(0,x.__)("Block breadcrumb")},(0,a.createElement)("li",{className:l?void 0:"block-editor-block-breadcrumb__current","aria-current":l?void 0:"true"},l&&(0,a.createElement)(vl.Button,{className:"block-editor-block-breadcrumb__button",variant:"tertiary",onClick:n},i),!l&&i,!!o&&(0,a.createElement)(Bi,{icon:Ks,className:"block-editor-block-breadcrumb__separator"})),r.map((e=>(0,a.createElement)("li",{key:e},(0,a.createElement)(vl.Button,{className:"block-editor-block-breadcrumb__button",variant:"tertiary",onClick:()=>t(e)},(0,a.createElement)(cg,{clientId:e,maximumLength:35})),(0,a.createElement)(Bi,{icon:Ks,className:"block-editor-block-breadcrumb__separator"})))),!!o&&(0,a.createElement)("li",{className:"block-editor-block-breadcrumb__current","aria-current":"true"},(0,a.createElement)(cg,{clientId:o,maximumLength:35})))};function dg(e){return(0,p.useSelect)((t=>{const{__unstableHasActiveBlockOverlayActive:n}=t(wr);return n(e)}),[e])}const pg=(0,d.createContext)({});function mg({value:e,children:t}){const n=(0,d.useContext)(pg),o=(0,d.useMemo)((()=>({...n,...e})),[n,e]);return(0,a.createElement)(pg.Provider,{value:o,children:t})}var fg=pg;const hg={},gg=(0,vl.withFilters)("editor.BlockEdit")((e=>{const{name:t}=e,n=(0,u.getBlockType)(t);if(!n)return null;const o=n.edit||n.save;return(0,a.createElement)(o,{...e})}));var bg=e=>{const{attributes:t={},name:n}=e,o=(0,u.getBlockType)(n),r=(0,d.useContext)(fg),l=(0,d.useMemo)((()=>o&&o.usesContext?Object.fromEntries(Object.entries(r).filter((([e])=>o.usesContext.includes(e)))):hg),[o,r]);if(!o)return null;if(o.apiVersion>1)return(0,a.createElement)(gg,{...e,context:l});const i=(0,u.hasBlockSupport)(o,"className",!0)?(0,u.getBlockDefaultClassName)(n):null,s=dl()(i,t.className,e.className);return(0,a.createElement)(gg,{...e,context:l,className:s})};function vg({mayDisplayControls:e,mayDisplayParentControls:t,blockEditingMode:n,...o}){const{name:r,isSelected:l,clientId:i,attributes:s={},__unstableLayoutClassNames:c}=o,{layout:p=null}=s,m=(0,u.hasBlockSupport)(r,"layout",!1)||(0,u.hasBlockSupport)(r,"__experimentalLayout",!1);return(0,a.createElement)(_,{value:(0,d.useMemo)((()=>({name:r,isSelected:l,clientId:i,layout:m?p:null,__unstableLayoutClassNames:c,[h]:e,[g]:t,[b]:n})),[r,l,i,m,p,c,e,t,n])},(0,a.createElement)(bg,{...o}))}var kg=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"}));var _g=function({className:e,actions:t,children:n,secondaryActions:o}){return(0,a.createElement)("div",{style:{display:"contents",all:"initial"}},(0,a.createElement)("div",{className:dl()(e,"block-editor-warning")},(0,a.createElement)("div",{className:"block-editor-warning__contents"},(0,a.createElement)("p",{className:"block-editor-warning__message"},n),(d.Children.count(t)>0||o)&&(0,a.createElement)("div",{className:"block-editor-warning__actions"},d.Children.count(t)>0&&d.Children.map(t,((e,t)=>(0,a.createElement)("span",{key:t,className:"block-editor-warning__action"},e))),o&&(0,a.createElement)(vl.DropdownMenu,{className:"block-editor-warning__secondary",icon:kg,label:(0,x.__)("More options"),popoverProps:{position:"bottom left",className:"block-editor-warning__dropdown"},noIcons:!0},(()=>(0,a.createElement)(vl.MenuGroup,null,o.map(((e,t)=>(0,a.createElement)(vl.MenuItem,{onClick:e.onClick,key:t},e.title))))))))))},yg=n(1973);function Eg({title:e,rawContent:t,renderedContent:n,action:o,actionText:r,className:l}){return(0,a.createElement)("div",{className:l},(0,a.createElement)("div",{className:"block-editor-block-compare__content"},(0,a.createElement)("h2",{className:"block-editor-block-compare__heading"},e),(0,a.createElement)("div",{className:"block-editor-block-compare__html"},t),(0,a.createElement)("div",{className:"block-editor-block-compare__preview edit-post-visual-editor"},(0,a.createElement)(d.RawHTML,null,(0,Ns.safeHTML)(n)))),(0,a.createElement)("div",{className:"block-editor-block-compare__action"},(0,a.createElement)(vl.Button,{variant:"secondary",tabIndex:"0",onClick:o},r)))}var wg=function({block:e,onKeep:t,onConvert:n,convertor:o,convertButtonText:r}){const l=(i=o(e),(Array.isArray(i)?i:[i]).map((e=>(0,u.getSaveContent)(e.name,e.attributes,e.innerBlocks))).join(""));var i;const s=(c=e.originalContent,d=l,(0,yg.Kx)(c,d).map(((e,t)=>{const n=dl()({"block-editor-block-compare__added":e.added,"block-editor-block-compare__removed":e.removed});return(0,a.createElement)("span",{key:t,className:n},e.value)})));var c,d;return(0,a.createElement)("div",{className:"block-editor-block-compare__wrapper"},(0,a.createElement)(Eg,{title:(0,x.__)("Current"),className:"block-editor-block-compare__current",action:t,actionText:(0,x.__)("Convert to HTML"),rawContent:e.originalContent,renderedContent:e.originalContent}),(0,a.createElement)(Eg,{title:(0,x.__)("After Conversion"),className:"block-editor-block-compare__converted",action:n,actionText:r,rawContent:s,renderedContent:l}))};const Sg=e=>(0,u.rawHandler)({HTML:e.originalContent});function Cg({clientId:e}){const{block:t,canInsertHTMLBlock:n,canInsertClassicBlock:o}=(0,p.useSelect)((t=>{const{canInsertBlockType:n,getBlock:o,getBlockRootClientId:r}=t(wr),l=r(e);return{block:o(e),canInsertHTMLBlock:n("core/html",l),canInsertClassicBlock:n("core/freeform",l)}}),[e]),{replaceBlock:r}=(0,p.useDispatch)(wr),[l,i]=(0,d.useState)(!1),s=(0,d.useCallback)((()=>i(!1)),[]),c=(0,d.useMemo)((()=>({toClassic(){const e=(0,u.createBlock)("core/freeform",{content:t.originalContent});return r(t.clientId,e)},toHTML(){const e=(0,u.createBlock)("core/html",{content:t.originalContent});return r(t.clientId,e)},toBlocks(){const e=Sg(t);return r(t.clientId,e)},toRecoveredBlock(){const e=(0,u.createBlock)(t.name,t.attributes,t.innerBlocks);return r(t.clientId,e)}})),[t,r]),m=(0,d.useMemo)((()=>[{title:(0,x._x)("Resolve","imperative verb"),onClick:()=>i(!0)},n&&{title:(0,x.__)("Convert to HTML"),onClick:c.toHTML},o&&{title:(0,x.__)("Convert to Classic Block"),onClick:c.toClassic}].filter(Boolean)),[n,o,c]);return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(_g,{actions:[(0,a.createElement)(vl.Button,{key:"recover",onClick:c.toRecoveredBlock,variant:"primary"},(0,x.__)("Attempt Block Recovery"))],secondaryActions:m},(0,x.__)("This block contains unexpected or invalid content.")),l&&(0,a.createElement)(vl.Modal,{title:(0,x.__)("Resolve Block"),onRequestClose:s,className:"block-editor-block-compare"},(0,a.createElement)(wg,{block:t,onKeep:c.toHTML,onConvert:c.toBlocks,convertor:Sg,convertButtonText:(0,x.__)("Convert to Blocks")})))}const xg=(0,a.createElement)(_g,{className:"block-editor-block-list__block-crash-warning"},(0,x.__)("This block has encountered an error and cannot be previewed."));var Bg=()=>xg;class Ig extends d.Component{constructor(){super(...arguments),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?this.props.fallback:this.props.children}}var Tg=Ig,Mg=n(773);var Pg=function({clientId:e}){const[t,n]=(0,d.useState)(""),o=(0,p.useSelect)((t=>t(wr).getBlock(e)),[e]),{updateBlock:r}=(0,p.useDispatch)(wr);return(0,d.useEffect)((()=>{n((0,u.getBlockContent)(o))}),[o]),(0,a.createElement)(Mg.Z,{className:"block-editor-block-list__block-html-textarea",value:t,onBlur:()=>{const l=(0,u.getBlockType)(o.name);if(!l)return;const i=(0,u.getBlockAttributes)(l,t,o.attributes),s=t||(0,u.getSaveContent)(l,i),[a]=t?(0,u.validateBlock)({...o,attributes:i,originalContent:s}):[!0];r(e,{attributes:i,originalContent:s,isValid:a}),t||n(s)},onChange:e=>n(e.target.value)})},Rg=Object.defineProperty,Ng={};((e,t)=>{for(var n in t)Rg(e,n,{get:t[n],enumerable:!0})})(Ng,{assign:()=>pb,colors:()=>cb,createStringInterpolator:()=>lb,skipAnimation:()=>ub,to:()=>ib,willAdvance:()=>db});var Ag=Yg(),Lg=e=>Wg(e,Ag),Og=Yg();Lg.write=e=>Wg(e,Og);var Dg=Yg();Lg.onStart=e=>Wg(e,Dg);var zg=Yg();Lg.onFrame=e=>Wg(e,zg);var Vg=Yg();Lg.onFinish=e=>Wg(e,Vg);var Fg=[];Lg.setTimeout=(e,t)=>{const n=Lg.now()+t,o=()=>{const e=Fg.findIndex((e=>e.cancel==o));~e&&Fg.splice(e,1),$g-=~e?1:0},r={time:n,handler:e,cancel:o};return Fg.splice(Hg(n),0,r),$g+=1,Kg(),r};var Hg=e=>~(~Fg.findIndex((t=>t.time>e))||~Fg.length);Lg.cancel=e=>{Dg.delete(e),zg.delete(e),Vg.delete(e),Ag.delete(e),Og.delete(e)},Lg.sync=e=>{jg=!0,Lg.batchedUpdates(e),jg=!1},Lg.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function o(...e){t=e,Lg.onStart(n)}return o.handler=e,o.cancel=()=>{Dg.delete(n),t=null},o};var Gg="undefined"!=typeof window?window.requestAnimationFrame:()=>{};Lg.use=e=>Gg=e,Lg.now="undefined"!=typeof performance?()=>performance.now():Date.now,Lg.batchedUpdates=e=>e(),Lg.catch=console.error,Lg.frameLoop="always",Lg.advance=()=>{"demand"!==Lg.frameLoop?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):qg()};var Ug=-1,$g=0,jg=!1;function Wg(e,t){jg?(t.delete(e),e(0)):(t.add(e),Kg())}function Kg(){Ug<0&&(Ug=0,"demand"!==Lg.frameLoop&&Gg(Zg))}function Zg(){~Ug&&(Gg(Zg),Lg.batchedUpdates(qg))}function qg(){const e=Ug;Ug=Lg.now();const t=Hg(Ug);t&&(Xg(Fg.splice(0,t),(e=>e.handler())),$g-=t),$g?(Dg.flush(),Ag.flush(e?Math.min(64,Ug-e):16.667),zg.flush(),Og.flush(),Vg.flush()):Ug=-1}function Yg(){let e=new Set,t=e;return{add(n){$g+=t!=e||e.has(n)?0:1,e.add(n)},delete(n){return $g-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,$g-=t.size,Xg(t,(t=>t(n)&&e.add(t))),$g+=e.size,t=e)}}}function Xg(e,t){e.forEach((e=>{try{t(e)}catch(e){Lg.catch(e)}}))}function Qg(){}var Jg={arr:Array.isArray,obj:e=>!!e&&"Object"===e.constructor.name,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e};function eb(e,t){if(Jg.arr(e)){if(!Jg.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function nb(e,t,n){if(Jg.arr(e))for(let o=0;oJg.und(e)?[]:Jg.arr(e)?e:[e];function rb(e,t){if(e.size){const n=Array.from(e);e.clear(),tb(n,t)}}var lb,ib,sb=(e,...t)=>rb(e,(e=>e(...t))),ab=()=>"undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),cb=null,ub=!1,db=Qg,pb=e=>{e.to&&(ib=e.to),e.now&&(Lg.now=e.now),void 0!==e.colors&&(cb=e.colors),null!=e.skipAnimation&&(ub=e.skipAnimation),e.createStringInterpolator&&(lb=e.createStringInterpolator),e.requestAnimationFrame&&Lg.use(e.requestAnimationFrame),e.batchedUpdates&&(Lg.batchedUpdates=e.batchedUpdates),e.willAdvance&&(db=e.willAdvance),e.frameLoop&&(Lg.frameLoop=e.frameLoop)},mb=new Set,fb=[],hb=[],gb=0,bb={get idle(){return!mb.size&&!fb.length},start(e){gb>e.priority?(mb.add(e),Lg.onStart(vb)):(kb(e),Lg(yb))},advance:yb,sort(e){if(gb)Lg.onFrame((()=>bb.sort(e)));else{const t=fb.indexOf(e);~t&&(fb.splice(t,1),_b(e))}},clear(){fb=[],mb.clear()}};function vb(){mb.forEach(kb),mb.clear(),Lg(yb)}function kb(e){fb.includes(e)||_b(e)}function _b(e){fb.splice(function(e,t){const n=e.findIndex(t);return n<0?e.length:n}(fb,(t=>t.priority>e.priority)),0,e)}function yb(e){const t=hb;for(let n=0;n0}var Eb="[-+]?\\d*\\.?\\d+",wb=Eb+"%";function Sb(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var Cb=new RegExp("rgb"+Sb(Eb,Eb,Eb)),xb=new RegExp("rgba"+Sb(Eb,Eb,Eb,Eb)),Bb=new RegExp("hsl"+Sb(Eb,wb,wb)),Ib=new RegExp("hsla"+Sb(Eb,wb,wb,Eb)),Tb=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Mb=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Pb=/^#([0-9a-fA-F]{6})$/,Rb=/^#([0-9a-fA-F]{8})$/;function Nb(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Ab(e,t,n){const o=n<.5?n*(1+t):n+t-n*t,r=2*n-o,l=Nb(r,o,e+1/3),i=Nb(r,o,e),s=Nb(r,o,e-1/3);return Math.round(255*l)<<24|Math.round(255*i)<<16|Math.round(255*s)<<8}function Lb(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Ob(e){return(parseFloat(e)%360+360)%360/360}function Db(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function zb(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Vb(e){let t=function(e){let t;return"number"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=Pb.exec(e))?parseInt(t[1]+"ff",16)>>>0:cb&&void 0!==cb[e]?cb[e]:(t=Cb.exec(e))?(Lb(t[1])<<24|Lb(t[2])<<16|Lb(t[3])<<8|255)>>>0:(t=xb.exec(e))?(Lb(t[1])<<24|Lb(t[2])<<16|Lb(t[3])<<8|Db(t[4]))>>>0:(t=Tb.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=Rb.exec(e))?parseInt(t[1],16)>>>0:(t=Mb.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=Bb.exec(e))?(255|Ab(Ob(t[1]),zb(t[2]),zb(t[3])))>>>0:(t=Ib.exec(e))?(Ab(Ob(t[1]),zb(t[2]),zb(t[3]))|Db(t[4]))>>>0:null}(e);if(null===t)return e;t=t||0;return`rgba(${(4278190080&t)>>>24}, ${(16711680&t)>>>16}, ${(65280&t)>>>8}, ${(255&t)/255})`}var Fb=(e,t,n)=>{if(Jg.fun(e))return e;if(Jg.arr(e))return Fb({range:e,output:t,extrapolate:n});if(Jg.str(e.output[0]))return lb(e);const o=e,r=o.output,l=o.range||[0,1],i=o.extrapolateLeft||o.extrapolate||"extend",s=o.extrapolateRight||o.extrapolate||"extend",a=o.easing||(e=>e);return e=>{const t=function(e,t){for(var n=1;n=e);++n);return n-1}(e,l);return function(e,t,n,o,r,l,i,s,a){let c=a?a(e):e;if(cn){if("identity"===s)return c;"clamp"===s&&(c=n)}if(o===r)return o;if(t===n)return e<=t?o:r;t===-1/0?c=-c:n===1/0?c-=t:c=(c-t)/(n-t);c=l(c),o===-1/0?c=-c:r===1/0?c+=o:c=c*(r-o)+o;return c}(e,l[t],l[t+1],r[t],r[t+1],a,i,s,o.map)}};var Hb=1.70158,Gb=1.525*Hb,Ub=Hb+1,$b=2*Math.PI/3,jb=2*Math.PI/4.5,Wb=e=>{const t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},Kb={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>1-(1-e)*(1-e),easeInOutQuad:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2,easeInCubic:e=>e*e*e,easeOutCubic:e=>1-Math.pow(1-e,3),easeInOutCubic:e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1-Math.pow(1-e,4),easeInOutQuart:e=>e<.5?8*e*e*e*e:1-Math.pow(-2*e+2,4)/2,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1-Math.pow(1-e,5),easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1-Math.pow(-2*e+2,5)/2,easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInExpo:e=>0===e?0:Math.pow(2,10*e-10),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2,easeInCirc:e=>1-Math.sqrt(1-Math.pow(e,2)),easeOutCirc:e=>Math.sqrt(1-Math.pow(e-1,2)),easeInOutCirc:e=>e<.5?(1-Math.sqrt(1-Math.pow(2*e,2)))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2,easeInBack:e=>Ub*e*e*e-Hb*e*e,easeOutBack:e=>1+Ub*Math.pow(e-1,3)+Hb*Math.pow(e-1,2),easeInOutBack:e=>e<.5?Math.pow(2*e,2)*(7.189819*e-Gb)/2:(Math.pow(2*e-2,2)*((Gb+1)*(2*e-2)+Gb)+2)/2,easeInElastic:e=>0===e?0:1===e?1:-Math.pow(2,10*e-10)*Math.sin((10*e-10.75)*$b),easeOutElastic:e=>0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin((10*e-.75)*$b)+1,easeInOutElastic:e=>0===e?0:1===e?1:e<.5?-Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*jb)/2:Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*jb)/2+1,easeInBounce:e=>1-Wb(1-e),easeOutBounce:Wb,easeInOutBounce:e=>e<.5?(1-Wb(1-2*e))/2:(1+Wb(2*e-1))/2,steps:(e,t="end")=>n=>{const o=(n="end"===t?Math.min(n,.999):Math.max(n,.001))*e;return((e,t,n)=>Math.min(Math.max(n,e),t))(0,1,("end"===t?Math.floor(o):Math.ceil(o))/e)}},Zb=Symbol.for("FluidValue.get"),qb=Symbol.for("FluidValue.observers"),Yb=e=>Boolean(e&&e[Zb]),Xb=e=>e&&e[Zb]?e[Zb]():e,Qb=e=>e[qb]||null;function Jb(e,t){const n=e[qb];n&&n.forEach((e=>{!function(e,t){e.eventObserved?e.eventObserved(t):e(t)}(e,t)}))}var ev=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");tv(this,e)}},tv=(e,t)=>lv(e,Zb,t);function nv(e,t){if(e[Zb]){let n=e[qb];n||lv(e,qb,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function ov(e,t){const n=e[qb];if(n&&n.has(t)){const o=n.size-1;o?n.delete(t):e[qb]=null,e.observerRemoved&&e.observerRemoved(o,t)}}var rv,lv=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),iv=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,sv=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,av=new RegExp(`(${iv.source})(%|[a-z]+)`,"i"),cv=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,uv=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,dv=e=>{const[t,n]=pv(e);if(!t||ab())return e;const o=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(o)return o.trim();if(n&&n.startsWith("--")){const t=window.getComputedStyle(document.documentElement).getPropertyValue(n);return t||e}return n&&uv.test(n)?dv(n):n||e},pv=e=>{const t=uv.exec(e);if(!t)return[,];const[,n,o]=t;return[n,o]},mv=(e,t,n,o,r)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(o)}, ${r})`,fv=e=>{rv||(rv=cb?new RegExp(`(${Object.keys(cb).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map((e=>Xb(e).replace(uv,dv).replace(sv,Vb).replace(rv,Vb))),n=t.map((e=>e.match(iv).map(Number))),o=n[0].map(((e,t)=>n.map((e=>{if(!(t in e))throw Error('The arity of each "output" value must be equal');return e[t]})))),r=o.map((t=>Fb({...e,output:t})));return e=>{const n=!av.test(t[0])&&t.find((e=>av.test(e)))?.replace(iv,"");let o=0;return t[0].replace(iv,(()=>`${r[o++](e)}${n||""}`)).replace(cv,mv)}},hv="react-spring: ",gv=e=>{const t=e;let n=!1;if("function"!=typeof t)throw new TypeError(`${hv}once requires a function parameter`);return(...e)=>{n||(t(...e),n=!0)}},bv=gv(console.warn);gv(console.warn);function vv(e){return Jg.str(e)&&("#"==e[0]||/\d/.test(e)||!ab()&&uv.test(e)||e in(cb||{}))}var kv=ab()?a.useEffect:a.useLayoutEffect;function _v(){const e=(0,a.useState)()[1],t=(()=>{const e=(0,a.useRef)(!1);return kv((()=>(e.current=!0,()=>{e.current=!1})),[]),e})();return()=>{t.current&&e(Math.random())}}var yv=[];var Ev=Symbol.for("Animated:node"),wv=e=>e&&e[Ev],Sv=(e,t)=>{return n=e,o=Ev,r=t,Object.defineProperty(n,o,{value:r,writable:!0,configurable:!0});var n,o,r},Cv=e=>e&&e[Ev]&&e[Ev].getPayload(),xv=class{constructor(){Sv(this,this)}getPayload(){return this.payload||[]}},Bv=class extends xv{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,Jg.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Bv(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return Jg.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value!==e&&(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,Jg.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Iv=class extends Bv{constructor(e){super(0),this._string=null,this._toString=Fb({output:[e,e]})}static create(e){return new Iv(e)}getValue(){const e=this._string;return null==e?this._string=this._toString(this._value):e}setValue(e){if(Jg.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else{if(!super.setValue(e))return!1;this._string=null}return!0}reset(e){e&&(this._toString=Fb({output:[this.getValue(),e]})),this._value=0,super.reset()}},Tv={dependencies:null},Mv=class extends xv{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return nb(this.source,((n,o)=>{var r;(r=n)&&r[Ev]===r?t[o]=n.getValue(e):Yb(n)?t[o]=Xb(n):e||(t[o]=n)})),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&tb(this.payload,(e=>e.reset()))}_makePayload(e){if(e){const t=new Set;return nb(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Tv.dependencies&&Yb(e)&&Tv.dependencies.add(e);const t=Cv(e);t&&tb(t,(e=>this.add(e)))}},Pv=class extends Mv{constructor(e){super(e)}static create(e){return new Pv(e)}getValue(){return this.source.map((e=>e.getValue()))}setValue(e){const t=this.getPayload();return e.length==t.length?t.map(((t,n)=>t.setValue(e[n]))).some(Boolean):(super.setValue(e.map(Rv)),!0)}};function Rv(e){return(vv(e)?Iv:Bv).create(e)}function Nv(e){const t=wv(e);return t?t.constructor:Jg.arr(e)?Pv:vv(e)?Iv:Bv}var Av=(e,t)=>{const n=!Jg.fun(e)||e.prototype&&e.prototype.isReactComponent;return(0,a.forwardRef)(((o,r)=>{const l=(0,a.useRef)(null),i=n&&(0,a.useCallback)((e=>{l.current=function(e,t){e&&(Jg.fun(e)?e(t):e.current=t);return t}(r,e)}),[r]),[s,c]=function(e,t){const n=new Set;Tv.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)});return e=new Mv(e),Tv.dependencies=null,[e,n]}(o,t),u=_v(),d=()=>{const e=l.current;if(n&&!e)return;!1===(!!e&&t.applyAnimatedValues(e,s.getValue(!0)))&&u()},p=new Lv(d,c),m=(0,a.useRef)();var f;kv((()=>(m.current=p,tb(c,(e=>nv(e,p))),()=>{m.current&&(tb(m.current.deps,(e=>ov(e,m.current))),Lg.cancel(m.current.update))}))),(0,a.useEffect)(d,[]),f=()=>()=>{const e=m.current;tb(e.deps,(t=>ov(t,e)))},(0,a.useEffect)(f,yv);const h=t.getComponentProps(s.getValue());return a.createElement(e,{...h,ref:i})}))},Lv=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){"change"==e.type&&Lg.write(this.update)}};var Ov=Symbol.for("AnimatedComponent"),Dv=e=>Jg.str(e)?e:e&&Jg.str(e.displayName)?e.displayName:Jg.fun(e)&&e.name||null;function zv(e,...t){return Jg.fun(e)?e(...t):e}var Vv=(e,t)=>!0===e||!!(t&&e&&(Jg.fun(e)?e(t):ob(e).includes(t))),Fv=(e,t)=>Jg.obj(e)?t&&e[t]:e,Hv=(e,t)=>!0===e.default?e[t]:e.default?e.default[t]:void 0,Gv=e=>e,Uv=(e,t=Gv)=>{let n=$v;e.default&&!0!==e.default&&(e=e.default,n=Object.keys(e));const o={};for(const r of n){const n=t(e[r],r);Jg.und(n)||(o[r]=n)}return o},$v=["config","onProps","onStart","onChange","onPause","onResume","onRest"],jv={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function Wv(e){const t=function(e){const t={};let n=0;if(nb(e,((e,o)=>{jv[o]||(t[o]=e,n++)})),n)return t}(e);if(t){const n={to:t};return nb(e,((e,o)=>o in t||(n[o]=e))),n}return{...e}}function Kv(e){return e=Xb(e),Jg.arr(e)?e.map(Kv):vv(e)?Ng.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function Zv(e){return Jg.fun(e)||Jg.arr(e)&&Jg.obj(e[0])}var qv={tension:170,friction:26,mass:1,damping:1,easing:Kb.linear,clamp:!1};function Yv(e,t){if(Jg.und(t.decay)){const n=!Jg.und(t.tension)||!Jg.und(t.friction);!n&&Jg.und(t.frequency)&&Jg.und(t.damping)&&Jg.und(t.mass)||(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}else e.duration=void 0}var Xv=[];function Qv(e,{key:t,props:n,defaultProps:o,state:r,actions:l}){return new Promise(((i,s)=>{let a,c,u=Vv(n.cancel??o?.cancel,t);if(u)m();else{Jg.und(n.pause)||(r.paused=Vv(n.pause,t));let e=o?.pause;!0!==e&&(e=r.paused||Vv(e,t)),a=zv(n.delay||0,t),e?(r.resumeQueue.add(p),l.pause()):(l.resume(),p())}function d(){r.resumeQueue.add(p),r.timeouts.delete(c),c.cancel(),a=c.time-Lg.now()}function p(){a>0&&!Ng.skipAnimation?(r.delayed=!0,c=Lg.setTimeout(m,a),r.pauseQueue.add(d),r.timeouts.add(c)):m()}function m(){r.delayed&&(r.delayed=!1),r.pauseQueue.delete(d),r.timeouts.delete(c),e<=(r.cancelId||0)&&(u=!0);try{l.start({...n,callId:e,cancel:u},i)}catch(e){s(e)}}}))}var Jv=(e,t)=>1==t.length?t[0]:t.some((e=>e.cancelled))?nk(e.get()):t.every((e=>e.noop))?ek(e.get()):tk(e.get(),t.every((e=>e.finished))),ek=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),tk=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),nk=e=>({value:e,cancelled:!0,finished:!1});function ok(e,t,n,o){const{callId:r,parentId:l,onRest:i}=t,{asyncTo:s,promise:a}=n;return l||e!==s||t.reset?n.promise=(async()=>{n.asyncId=r,n.asyncTo=e;const c=Uv(t,((e,t)=>"onRest"===t?void 0:e));let u,d;const p=new Promise(((e,t)=>(u=e,d=t))),m=e=>{const t=r<=(n.cancelId||0)&&nk(o)||r!==n.asyncId&&tk(o,!1);if(t)throw e.result=t,d(e),e},f=(e,t)=>{const l=new lk,i=new ik;return(async()=>{if(Ng.skipAnimation)throw rk(n),i.result=tk(o,!1),d(i),i;m(l);const s=Jg.obj(e)?{...e}:{...t,to:e};s.parentId=r,nb(c,((e,t)=>{Jg.und(s[t])&&(s[t]=e)}));const a=await o.start(s);return m(l),n.paused&&await new Promise((e=>{n.resumeQueue.add(e)})),a})()};let h;if(Ng.skipAnimation)return rk(n),tk(o,!1);try{let t;t=Jg.arr(e)?(async e=>{for(const t of e)await f(t)})(e):Promise.resolve(e(f,o.stop.bind(o))),await Promise.all([t.then(u),p]),h=tk(o.get(),!0,!1)}catch(e){if(e instanceof lk)h=e.result;else{if(!(e instanceof ik))throw e;h=e.result}}finally{r==n.asyncId&&(n.asyncId=l,n.asyncTo=l?s:void 0,n.promise=l?a:void 0)}return Jg.fun(i)&&Lg.batchedUpdates((()=>{i(h,o,o.item)})),h})():a}function rk(e,t){rb(e.timeouts,(e=>e.cancel())),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lk=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},ik=class extends Error{constructor(){super("SkipAnimationSignal")}},sk=e=>e instanceof ck,ak=1,ck=class extends ev{constructor(){super(...arguments),this.id=ak++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=wv(this);return e&&e.getValue()}to(...e){return Ng.to(this,e)}interpolate(...e){return bv(`${hv}The "interpolate" function is deprecated in v9 (use "to" instead)`),Ng.to(this,e)}toJSON(){return this.get()}observerAdded(e){1==e&&this._attach()}observerRemoved(e){0==e&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Jb(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||bb.sort(this),Jb(this,{type:"priority",parent:this,priority:e})}},uk=Symbol.for("SpringPhase"),dk=e=>(1&e[uk])>0,pk=e=>(2&e[uk])>0,mk=e=>(4&e[uk])>0,fk=(e,t)=>t?e[uk]|=3:e[uk]&=-3,hk=(e,t)=>t?e[uk]|=4:e[uk]&=-5,gk=class extends ck{constructor(e,t){if(super(),this.animation=new class{constructor(){this.changed=!1,this.values=Xv,this.toValues=null,this.fromValues=Xv,this.config=new class{constructor(){this.velocity=0,Object.assign(this,qv)}},this.immediate=!1}},this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!Jg.und(e)||!Jg.und(t)){const n=Jg.obj(e)?{...e}:{...t,from:e};Jg.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(pk(this)||this._state.asyncTo)||mk(this)}get goal(){return Xb(this.animation.to)}get velocity(){const e=wv(this);return e instanceof Bv?e.lastVelocity||0:e.getPayload().map((e=>e.lastVelocity||0))}get hasAnimated(){return dk(this)}get isAnimating(){return pk(this)}get isPaused(){return mk(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const o=this.animation;let{toValues:r}=o;const{config:l}=o,i=Cv(o.to);!i&&Yb(o.to)&&(r=ob(Xb(o.to))),o.values.forEach(((s,a)=>{if(s.done)return;const c=s.constructor==Iv?1:i?i[a].lastPosition:r[a];let u=o.immediate,d=c;if(!u){if(d=s.lastPosition,l.tension<=0)return void(s.done=!0);let t=s.elapsedTime+=e;const n=o.fromValues[a],r=null!=s.v0?s.v0:s.v0=Jg.arr(l.velocity)?l.velocity[a]:l.velocity;let i;const p=l.precision||(n==c?.005:Math.min(1,.001*Math.abs(c-n)));if(Jg.und(l.duration))if(l.decay){const e=!0===l.decay?.998:l.decay,o=Math.exp(-(1-e)*t);d=n+r/(1-e)*(1-o),u=Math.abs(s.lastPosition-d)<=p,i=r*o}else{i=null==s.lastVelocity?r:s.lastVelocity;const t=l.restVelocity||p/10,o=l.clamp?0:l.bounce,a=!Jg.und(o),m=n==c?s.v0>0:nt,f||(u=Math.abs(c-d)<=p,!u));++e){a&&(h=d==c||d>c==m,h&&(i=-i*o,d=c));i+=(1e-6*-l.tension*(d-c)+.001*-l.friction*i)/l.mass*g,d+=i*g}}else{let o=1;l.duration>0&&(this._memoizedDuration!==l.duration&&(this._memoizedDuration=l.duration,s.durationProgress>0&&(s.elapsedTime=l.duration*s.durationProgress,t=s.elapsedTime+=e)),o=(l.progress||0)+t/this._memoizedDuration,o=o>1?1:o<0?0:o,s.durationProgress=o),d=n+l.easing(o)*(c-n),i=(d-s.lastPosition)/e,u=1==o}s.lastVelocity=i,Number.isNaN(d)&&(console.warn("Got NaN while animating:",this),u=!0)}i&&!i[a].done&&(u=!1),u?s.done=!0:t=!1,s.setValue(d,l.round)&&(n=!0)}));const s=wv(this),a=s.getValue();if(t){const e=Xb(o.to);a===e&&!n||l.decay?n&&l.decay&&this._onChange(a):(s.setValue(e),this._onChange(e)),this._stop()}else n&&this._onChange(a)}set(e){return Lg.batchedUpdates((()=>{this._stop(),this._focus(e),this._set(e)})),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(pk(this)){const{to:e,config:t}=this.animation;Lg.batchedUpdates((()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()}))}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return Jg.und(e)?(n=this.queue||[],this.queue=[]):n=[Jg.obj(e)?e:{...t,to:e}],Promise.all(n.map((e=>this._update(e)))).then((e=>Jv(this,e)))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),rk(this._state,e&&this._lastCallId),Lg.batchedUpdates((()=>this._stop(t,e))),this}reset(){this._update({reset:!0})}eventObserved(e){"change"==e.type?this._start():"priority"==e.type&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:o}=e;n=Jg.obj(n)?n[t]:n,(null==n||Zv(n))&&(n=void 0),o=Jg.obj(o)?o[t]:o,null==o&&(o=void 0);const r={to:n,from:o};return dk(this)||(e.reverse&&([n,o]=[o,n]),o=Xb(o),Jg.und(o)?wv(this)||this._set(n):this._set(o)),r}_update({...e},t){const{key:n,defaultProps:o}=this;e.default&&Object.assign(o,Uv(e,((e,t)=>/^on/.test(t)?Fv(e,n):e))),Ek(this,e,"onProps"),wk(this,"onProps",e,this);const r=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const l=this._state;return Qv(++this._lastCallId,{key:n,props:e,defaultProps:o,state:l,actions:{pause:()=>{mk(this)||(hk(this,!0),sb(l.pauseQueue),wk(this,"onPause",tk(this,bk(this,this.animation.to)),this))},resume:()=>{mk(this)&&(hk(this,!1),pk(this)&&this._resume(),sb(l.resumeQueue),wk(this,"onResume",tk(this,bk(this,this.animation.to)),this))},start:this._merge.bind(this,r)}}).then((n=>{if(e.loop&&n.finished&&(!t||!n.noop)){const t=vk(e);if(t)return this._update(t,!0)}return n}))}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(nk(this));const o=!Jg.und(e.to),r=!Jg.und(e.from);if(o||r){if(!(t.callId>this._lastToId))return n(nk(this));this._lastToId=t.callId}const{key:l,defaultProps:i,animation:s}=this,{to:a,from:c}=s;let{to:u=a,from:d=c}=e;!r||o||t.default&&!Jg.und(u)||(u=d),t.reverse&&([u,d]=[d,u]);const p=!eb(d,c);p&&(s.from=d),d=Xb(d);const m=!eb(u,a);m&&this._focus(u);const f=Zv(t.to),{config:h}=s,{decay:g,velocity:b}=h;(o||r)&&(h.velocity=0),t.config&&!f&&function(e,t,n){n&&(Yv(n={...n},t),t={...n,...t}),Yv(e,t),Object.assign(e,t);for(const t in qv)null==e[t]&&(e[t]=qv[t]);let{frequency:o,damping:r}=e;const{mass:l}=e;Jg.und(o)||(o<.01&&(o=.01),r<0&&(r=0),e.tension=Math.pow(2*Math.PI/o,2)*l,e.friction=4*Math.PI*r*l/o)}(h,zv(t.config,l),t.config!==i.config?zv(i.config,l):void 0);let v=wv(this);if(!v||Jg.und(u))return n(tk(this,!0));const k=Jg.und(t.reset)?r&&!t.default:!Jg.und(d)&&Vv(t.reset,l),_=k?d:this.get(),y=Kv(u),E=Jg.num(y)||Jg.arr(y)||vv(y),w=!f&&(!E||Vv(i.immediate||t.immediate,l));if(m){const e=Nv(u);if(e!==v.constructor){if(!w)throw Error(`Cannot animate between ${v.constructor.name} and ${e.name}, as the "to" prop suggests`);v=this._set(y)}}const S=v.constructor;let C=Yb(u),x=!1;if(!C){const e=k||!dk(this)&&p;(m||e)&&(x=eb(Kv(_),y),C=!x),(eb(s.immediate,w)||w)&&eb(h.decay,g)&&eb(h.velocity,b)||(C=!0)}if(x&&pk(this)&&(s.changed&&!k?C=!0:C||this._stop(a)),!f&&((C||Yb(a))&&(s.values=v.getPayload(),s.toValues=Yb(u)?null:S==Iv?[1]:ob(y)),s.immediate!=w&&(s.immediate=w,w||k||this._set(a)),C)){const{onRest:e}=s;tb(yk,(e=>Ek(this,t,e)));const o=tk(this,bk(this,a));sb(this._pendingCalls,o),this._pendingCalls.add(n),s.changed&&Lg.batchedUpdates((()=>{s.changed=!k,e?.(o,this),k?zv(i.onRest,o):s.onStart?.(o,this)}))}k&&this._set(_),f?n(ok(t.to,t,this._state,this)):C?this._start():pk(this)&&!m?this._pendingCalls.add(n):n(ek(_))}_focus(e){const t=this.animation;e!==t.to&&(Qb(this)&&this._detach(),t.to=e,Qb(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;Yb(t)&&(nv(t,this),sk(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;Yb(e)&&ov(e,this)}_set(e,t=!0){const n=Xb(e);if(!Jg.und(n)){const e=wv(this);if(!e||!eb(n,e.getValue())){const o=Nv(n);e&&e.constructor==o?e.setValue(n):Sv(this,o.create(n)),e&&Lg.batchedUpdates((()=>{this._onChange(n,t)}))}}return wv(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,wk(this,"onStart",tk(this,bk(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),zv(this.animation.onChange,e,this)),zv(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;wv(this).reset(Xb(e.to)),e.immediate||(e.fromValues=e.values.map((e=>e.lastPosition))),pk(this)||(fk(this,!0),mk(this)||this._resume())}_resume(){Ng.skipAnimation?this.finish():bb.start(this)}_stop(e,t){if(pk(this)){fk(this,!1);const n=this.animation;tb(n.values,(e=>{e.done=!0})),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Jb(this,{type:"idle",parent:this});const o=t?nk(this.get()):tk(this.get(),bk(this,e??n.to));sb(this._pendingCalls,o),n.changed&&(n.changed=!1,wk(this,"onRest",o,this))}}};function bk(e,t){const n=Kv(t);return eb(Kv(e.get()),n)}function vk(e,t=e.loop,n=e.to){const o=zv(t);if(o){const r=!0!==o&&Wv(o),l=(r||e).reverse,i=!r||r.reset;return kk({...e,loop:t,default:!1,pause:void 0,to:!l||Zv(n)?n:void 0,from:i?e.from:void 0,reset:i,...r})}}function kk(e){const{to:t,from:n}=e=Wv(e),o=new Set;return Jg.obj(t)&&_k(t,o),Jg.obj(n)&&_k(n,o),e.keys=o.size?Array.from(o):null,e}function _k(e,t){nb(e,((e,n)=>null!=e&&t.add(n)))}var yk=["onStart","onRest","onChange","onPause","onResume"];function Ek(e,t,n){e.animation[n]=t[n]!==Hv(t,n)?Fv(t[n],e.key):void 0}function wk(e,t,...n){e.animation[t]?.(...n),e.defaultProps[t]?.(...n)}var Sk=["onStart","onChange","onRest"],Ck=1,xk=class{constructor(e,t){this.id=Ck++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every((e=>e.idle&&!e.isDelayed&&!e.isPaused))}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each(((t,n)=>e[n]=t.get())),e}set(e){for(const t in e){const n=e[t];Jg.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(kk(e)),this}start(e){let{queue:t}=this;return e?t=ob(e).map(kk):this.queue=[],this._flush?this._flush(this,t):(Pk(this,t),Bk(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;tb(ob(t),(t=>n[t].stop(!!e)))}else rk(this._state,this._lastAsyncId),this.each((t=>t.stop(!!e)));return this}pause(e){if(Jg.und(e))this.start({pause:!0});else{const t=this.springs;tb(ob(e),(e=>t[e].pause()))}return this}resume(e){if(Jg.und(e))this.start({pause:!1});else{const t=this.springs;tb(ob(e),(e=>t[e].resume()))}return this}each(e){nb(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,o=this._active.size>0,r=this._changed.size>0;(o&&!this._started||r&&!this._started)&&(this._started=!0,rb(e,(([e,t])=>{t.value=this.get(),e(t,this,this._item)})));const l=!o&&this._started,i=r||l&&n.size?this.get():null;r&&t.size&&rb(t,(([e,t])=>{t.value=i,e(t,this,this._item)})),l&&(this._started=!1,rb(n,(([e,t])=>{t.value=i,e(t,this,this._item)})))}eventObserved(e){if("change"==e.type)this._changed.add(e.parent),e.idle||this._active.add(e.parent);else{if("idle"!=e.type)return;this._active.delete(e.parent)}Lg.onFrame(this._onFrame)}};function Bk(e,t){return Promise.all(t.map((t=>Ik(e,t)))).then((t=>Jv(e,t)))}async function Ik(e,t,n){const{keys:o,to:r,from:l,loop:i,onRest:s,onResolve:a}=t,c=Jg.obj(t.default)&&t.default;i&&(t.loop=!1),!1===r&&(t.to=null),!1===l&&(t.from=null);const u=Jg.arr(r)||Jg.fun(r)?r:void 0;u?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):tb(Sk,(n=>{const o=t[n];if(Jg.fun(o)){const r=e._events[n];t[n]=({finished:e,cancelled:t})=>{const n=r.get(o);n?(e||(n.finished=!1),t&&(n.cancelled=!0)):r.set(o,{value:null,finished:e||!1,cancelled:t||!1})},c&&(c[n]=t[n])}}));const d=e._state;t.pause===!d.paused?(d.paused=t.pause,sb(t.pause?d.pauseQueue:d.resumeQueue)):d.paused&&(t.pause=!0);const p=(o||Object.keys(e.springs)).map((n=>e.springs[n].start(t))),m=!0===t.cancel||!0===Hv(t,"cancel");(u||m&&d.asyncId)&&p.push(Qv(++e._lastAsyncId,{props:t,state:d,actions:{pause:Qg,resume:Qg,start(t,n){m?(rk(d,e._lastAsyncId),n(nk(e))):(t.onRest=s,n(ok(u,t,d,e)))}}})),d.paused&&await new Promise((e=>{d.resumeQueue.add(e)}));const f=Jv(e,await Promise.all(p));if(i&&f.finished&&(!n||!f.noop)){const n=vk(t,i,r);if(n)return Pk(e,[n]),Ik(e,n,!0)}return a&&Lg.batchedUpdates((()=>a(f,e,e.item))),f}function Tk(e,t){const n=new gk;return n.key=e,t&&nv(n,t),n}function Mk(e,t,n){t.keys&&tb(t.keys,(o=>{(e[o]||(e[o]=n(o)))._prepareNode(t)}))}function Pk(e,t){tb(t,(t=>{Mk(e.springs,t,(t=>Tk(t,e)))}))}var Rk,Nk,Ak=({children:e,...t})=>{const n=(0,a.useContext)(Lk),o=t.pause||!!n.pause,r=t.immediate||!!n.immediate;t=function(e,t){const[n]=(0,a.useState)((()=>({inputs:t,result:e()}))),o=(0,a.useRef)(),r=o.current;let l=r;if(l){const n=Boolean(t&&l.inputs&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{o.current=l,r==n&&(n.inputs=n.result=void 0)}),[l]),l.result}((()=>({pause:o,immediate:r})),[o,r]);const{Provider:l}=Lk;return a.createElement(l,{value:t},e)},Lk=(Rk=Ak,Nk={},Object.assign(Rk,a.createContext(Nk)),Rk.Provider._context=Rk,Rk.Consumer._context=Rk,Rk);Ak.Provider=Lk.Provider,Ak.Consumer=Lk.Consumer;var Ok=class extends ck{constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Fb(...t);const n=this._get(),o=Nv(n);Sv(this,o.create(n))}advance(e){const t=this._get();eb(t,this.get())||(wv(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&zk(this._active)&&Vk(this)}_get(){const e=Jg.arr(this.source)?this.source.map(Xb):ob(Xb(this.source));return this.calc(...e)}_start(){this.idle&&!zk(this._active)&&(this.idle=!1,tb(Cv(this),(e=>{e.done=!1})),Ng.skipAnimation?(Lg.batchedUpdates((()=>this.advance())),Vk(this)):bb.start(this))}_attach(){let e=1;tb(ob(this.source),(t=>{Yb(t)&&nv(t,this),sk(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))})),this.priority=e,this._start()}_detach(){tb(ob(this.source),(e=>{Yb(e)&&ov(e,this)})),this._active.clear(),Vk(this)}eventObserved(e){"change"==e.type?e.idle?this.advance():(this._active.add(e.parent),this._start()):"idle"==e.type?this._active.delete(e.parent):"priority"==e.type&&(this.priority=ob(this.source).reduce(((e,t)=>Math.max(e,(sk(t)?t.priority:0)+1)),0))}};function Dk(e){return!1!==e.idle}function zk(e){return!e.size||Array.from(e).every(Dk)}function Vk(e){e.idle||(e.idle=!0,tb(Cv(e),(e=>{e.done=!0})),Jb(e,{type:"idle",parent:e}))}Ng.assign({createStringInterpolator:fv,to:(e,t)=>new Ok(e,t)});bb.advance;var Fk=window.ReactDOM,Hk=/^--/;function Gk(e,t){return null==t||"boolean"==typeof t||""===t?"":"number"!=typeof t||0===t||Hk.test(e)||$k.hasOwnProperty(e)&&$k[e]?(""+t).trim():t+"px"}var Uk={};var $k={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},jk=["Webkit","Ms","Moz","O"];$k=Object.keys($k).reduce(((e,t)=>(jk.forEach((n=>e[((e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1))(n,t)]=e[t])),e)),$k);var Wk=/^(matrix|translate|scale|rotate|skew)/,Kk=/^(translate)/,Zk=/^(rotate|skew)/,qk=(e,t)=>Jg.num(e)&&0!==e?e+t:e,Yk=(e,t)=>Jg.arr(e)?e.every((e=>Yk(e,t))):Jg.num(e)?e===t:parseFloat(e)===t,Xk=class extends Mv{constructor({x:e,y:t,z:n,...o}){const r=[],l=[];(e||t||n)&&(r.push([e||0,t||0,n||0]),l.push((e=>[`translate3d(${e.map((e=>qk(e,"px"))).join(",")})`,Yk(e,0)]))),nb(o,((e,t)=>{if("transform"===t)r.push([e||""]),l.push((e=>[e,""===e]));else if(Wk.test(t)){if(delete o[t],Jg.und(e))return;const n=Kk.test(t)?"px":Zk.test(t)?"deg":"";r.push(ob(e)),l.push("rotate3d"===t?([e,t,o,r])=>[`rotate3d(${e},${t},${o},${qk(r,n)})`,Yk(r,0)]:e=>[`${t}(${e.map((e=>qk(e,n))).join(",")})`,Yk(e,t.startsWith("scale")?1:0)])}})),r.length&&(o.transform=new Qk(r,l)),super(o)}},Qk=class extends ev{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return tb(this.inputs,((n,o)=>{const r=Xb(n[0]),[l,i]=this.transforms[o](Jg.arr(r)?r:n.map(Xb));e+=" "+l,t=t&&i})),t?"none":e}observerAdded(e){1==e&&tb(this.inputs,(e=>tb(e,(e=>Yb(e)&&nv(e,this)))))}observerRemoved(e){0==e&&tb(this.inputs,(e=>tb(e,(e=>Yb(e)&&ov(e,this)))))}eventObserved(e){"change"==e.type&&(this._value=null),Jb(this,e)}};Ng.assign({batchedUpdates:Fk.unstable_batchedUpdates,createStringInterpolator:fv,colors:{transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199}});var Jk=((e,{applyAnimatedValues:t=(()=>!1),createAnimatedStyle:n=(e=>new Mv(e)),getComponentProps:o=(e=>e)}={})=>{const r={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:o},l=e=>{const t=Dv(e)||"Anonymous";return(e=Jg.str(e)?l[e]||(l[e]=Av(e,r)):e[Ov]||(e[Ov]=Av(e,r))).displayName=`Animated(${t})`,e};return nb(e,((t,n)=>{Jg.arr(e)&&(n=Dv(t)),l[n]=l(t)})),{animated:l}})(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],{applyAnimatedValues:function(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n="filter"===e.nodeName||e.parentNode&&"filter"===e.parentNode.nodeName,{style:o,children:r,scrollTop:l,scrollLeft:i,viewBox:s,...a}=t,c=Object.values(a),u=Object.keys(a).map((t=>n||e.hasAttribute(t)?t:Uk[t]||(Uk[t]=t.replace(/([A-Z])/g,(e=>"-"+e.toLowerCase())))));void 0!==r&&(e.textContent=r);for(const t in o)if(o.hasOwnProperty(t)){const n=Gk(t,o[t]);Hk.test(t)?e.style.setProperty(t,n):e.style[t]=n}u.forEach(((t,n)=>{e.setAttribute(t,c[n])})),void 0!==l&&(e.scrollTop=l),void 0!==i&&(e.scrollLeft=i),void 0!==s&&e.setAttribute("viewBox",s)},createAnimatedStyle:e=>new Xk(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),e_=Jk.animated;function t_(e){return{top:e.offsetTop,left:e.offsetLeft}}var n_=function({triggerAnimationOnChange:e,clientId:t}){const n=(0,d.useRef)(),{isTyping:o,getGlobalBlockCount:r,isBlockSelected:l,isFirstMultiSelectedBlock:i,isBlockMultiSelected:s,isAncestorMultiSelected:a}=(0,p.useSelect)(wr),{previous:c,prevRect:u}=(0,d.useMemo)((()=>({previous:n.current&&t_(n.current),prevRect:n.current&&n.current.getBoundingClientRect()})),[e]);return(0,d.useLayoutEffect)((()=>{if(!c||!n.current)return;const e=(0,Ns.getScrollContainer)(n.current),d=l(t),p=d||i(t);function m(){if(p&&u){const t=n.current.getBoundingClientRect().top-u.top;t&&(e.scrollTop+=t)}}if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||o()||r()>200)return void m();const f=d||s(t)||a(t)?"1":"",h=new xk({x:0,y:0,config:{mass:5,tension:2e3,friction:200},onChange({value:e}){if(!n.current)return;let{x:t,y:o}=e;t=Math.round(t),o=Math.round(o);const r=0===t&&0===o;n.current.style.transformOrigin="center center",n.current.style.transform=r?null:`translate3d(${t}px,${o}px,0)`,n.current.style.zIndex=f,m()}});n.current.style.transform=void 0;const g=t_(n.current),b=Math.round(c.left-g.left),v=Math.round(c.top-g.top);return h.start({x:0,y:0,from:{x:b,y:v}}),()=>{h.stop()}}),[c,u,t,o,r,l,i,s,a]),n};const o_=(0,d.createContext)({}),r_=".block-editor-block-list__block",l_=".block-list-appender",i_=".block-editor-button-block-appender";function s_(e,t){return e.closest(r_)===t.closest(r_)}function a_(e,t){return t.closest([r_,l_,i_].join(","))===e}function c_(e){for(;e&&e.nodeType!==e.ELEMENT_NODE;)e=e.parentNode;if(!e)return;const t=e.closest(r_);return t?t.id.slice(6):void 0}function u_({clientId:e,initialPosition:t}){const n=(0,d.useRef)(),{isBlockSelected:o,isMultiSelecting:r}=(0,p.useSelect)(wr);return(0,d.useEffect)((()=>{if(!o(e)||r())return;if(null==t)return;if(!n.current)return;const{ownerDocument:l}=n.current;if(a_(n.current,l.activeElement))return;const i=Ns.focus.tabbable.find(n.current).filter((e=>(0,Ns.isTextField)(e))),s=-1===t,a=i[s?i.length-1:0]||n.current;if(a_(n.current,a)){if(!n.current.getAttribute("contenteditable")){const e=Ns.focus.tabbable.findNext(n.current);if(e&&a_(n.current,e)&&(0,Ns.isFormElement)(e))return void e.focus()}(0,Ns.placeCaretAtHorizontalEdge)(a,s)}else n.current.focus()}),[t,e]),n}function d_(e){if(e.defaultPrevented)return;const t="mouseover"===e.type?"add":"remove";e.preventDefault(),e.currentTarget.classList[t]("is-hovered")}function p_({isEnabled:e}){return(0,m.useRefEffect)((t=>{if(e)return t.addEventListener("mouseout",d_),t.addEventListener("mouseover",d_),()=>{t.removeEventListener("mouseout",d_),t.removeEventListener("mouseover",d_),t.classList.remove("is-hovered")}}),[e])}function m_(e){const{isBlockSelected:t}=(0,p.useSelect)(wr),{selectBlock:n,selectionChange:o}=(0,p.useDispatch)(wr);return(0,m.useRefEffect)((r=>{function l(l){r.parentElement.closest('[contenteditable="true"]')||(t(e)?l.target.isContentEditable||o(e):a_(r,l.target)&&n(e))}return r.addEventListener("focusin",l),()=>{r.removeEventListener("focusin",l)}}),[t,n])}function f_({clientId:e,isSelected:t}){const{getBlockRootClientId:n,getBlockIndex:o}=(0,p.useSelect)(wr),{insertDefaultBlock:r,removeBlock:l}=(0,p.useDispatch)(wr);return(0,m.useRefEffect)((i=>{if(t)return i.addEventListener("keydown",s),i.addEventListener("dragstart",a),()=>{i.removeEventListener("keydown",s),i.removeEventListener("dragstart",a)};function s(t){const{keyCode:s,target:a}=t;s!==Os.ENTER&&s!==Os.BACKSPACE&&s!==Os.DELETE||a!==i||(0,Ns.isTextField)(a)||(t.preventDefault(),s===Os.ENTER?r({},n(e),o(e)+1):l(e))}function a(e){e.preventDefault()}}),[e,t,n,o,r,l])}function h_(e){const{isNavigationMode:t,isBlockSelected:n}=(0,p.useSelect)(wr),{setNavigationMode:o,selectBlock:r}=(0,p.useDispatch)(wr);return(0,m.useRefEffect)((l=>{function i(l){t()&&!l.defaultPrevented&&(l.preventDefault(),n(e)?o(!1):r(e))}return l.addEventListener("mousedown",i),()=>{l.removeEventListener("mousedown",i)}}),[e,t,n,o])}function g_(){const e=(0,d.useContext)(zw);return(0,m.useRefEffect)((t=>{if(e)return e.observe(t),()=>{e.unobserve(t)}}),[e])}function b_(e={},{__unstableIsHtml:t}={}){const{clientId:n,className:o,wrapperProps:r={},isAligned:l,index:i,mode:s,name:a,blockApiVersion:c,blockTitle:u,isSelected:p,isSubtreeDisabled:f,isOutlineEnabled:h,hasOverlay:g,initialPosition:b,blockEditingMode:v,isHighlighted:k,isMultiSelected:_,isPartiallySelected:E,isReusable:w,isDragging:S,hasChildSelected:C,removeOutline:B,isBlockMovingMode:I,canInsertMovingBlock:T,isEditingDisabled:M,isTemporarilyEditingAsBlocks:P,defaultClassName:R}=(0,d.useContext)(o_),N=(0,x.sprintf)((0,x.__)("Block: %s"),u),A="html"!==s||t?"":"-visual",L=(0,m.useMergeRefs)([e.ref,u_({clientId:n,initialPosition:b}),Ju(n),m_(n),f_({clientId:n,isSelected:p}),h_(n),p_({isEnabled:h}),g_(),n_({triggerAnimationOnChange:i,clientId:n}),(0,m.useDisabled)({isDisabled:!g})]),O=y();return c<2&&O.clientId,{tabIndex:"disabled"===v?-1:0,...r,...e,ref:L,id:`block-${n}${A}`,role:"document","aria-label":N,"data-block":n,"data-type":a,"data-title":u,inert:f?"true":void 0,className:dl()("block-editor-block-list__block",{"wp-block":!l,"has-block-overlay":g,"is-selected":p,"is-highlighted":k,"is-multi-selected":_,"is-partially-selected":E,"is-reusable":w,"is-dragging":S,"has-child-selected":C,"remove-outline":B,"is-block-moving-mode":I,"can-insert-moving-block":T,"is-editing-disabled":M,"is-content-locked-temporarily-editing-as-blocks":P},o,e.className,r.className,R),style:{...r.style,...e.style}}}function v_({children:e,isHtml:t,...n}){return(0,a.createElement)("div",{...b_(n,{__unstableIsHtml:t})},e)}function k_({block:{__unstableBlockSource:e},mode:t,isLocked:n,canRemove:o,clientId:r,isSelected:l,isSelectionEnabled:i,className:s,__unstableLayoutClassNames:c,name:m,isValid:f,attributes:h,wrapperProps:g,setAttributes:b,onReplace:v,onInsertBlocksAfter:k,onMerge:_,toggleSelection:y}){var E;const{mayDisplayControls:w,mayDisplayParentControls:S,themeSupportsLayout:C,...x}=(0,d.useContext)(o_),{removeBlock:B}=(0,p.useDispatch)(wr),I=(0,d.useCallback)((()=>B(r)),[r]),T=Hi()||{};let M=(0,a.createElement)(vg,{name:m,isSelected:l,attributes:h,setAttributes:b,insertBlocksAfter:n?void 0:k,onReplace:o?v:void 0,onRemove:o?I:void 0,mergeBlocks:o?_:void 0,clientId:r,isSelectionEnabled:i,toggleSelection:y,__unstableLayoutClassNames:c,__unstableParentLayout:Object.keys(T).length?T:void 0,mayDisplayControls:w,mayDisplayParentControls:S,blockEditingMode:x.blockEditingMode});const P=(0,u.getBlockType)(m);P?.getEditWrapperProps&&(g=function(e,t){const n={...e,...t};return e?.hasOwnProperty("className")&&t?.hasOwnProperty("className")&&(n.className=dl()(e.className,t.className)),e?.hasOwnProperty("style")&&t?.hasOwnProperty("style")&&(n.style={...e.style,...t.style}),n}(g,P.getEditWrapperProps(h)));const R=g&&!!g["data-align"]&&!C,N=s?.includes("is-position-sticky");let A;if(R&&(M=(0,a.createElement)("div",{className:dl()("wp-block",N&&s),"data-align":g["data-align"]},M)),f)A="html"===t?(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{style:{display:"none"}},M),(0,a.createElement)(v_,{isHtml:!0},(0,a.createElement)(Pg,{clientId:r}))):P?.apiVersion>1?M:(0,a.createElement)(v_,null,M);else{const t=e?(0,u.serializeRawBlock)(e):(0,u.getSaveContent)(P,h);A=(0,a.createElement)(v_,{className:"has-warning"},(0,a.createElement)(Cg,{clientId:r}),(0,a.createElement)(d.RawHTML,null,(0,Ns.safeHTML)(t)))}const{"data-align":L,...O}=null!==(E=g)&&void 0!==E?E:{};return O.className=dl()(O.className,L&&C&&`align${L}`,!(L&&N)&&s),(0,a.createElement)(o_.Provider,{value:{wrapperProps:O,isAligned:R,...x}},(0,a.createElement)(Tg,{fallback:(0,a.createElement)(v_,{className:"has-warning"},(0,a.createElement)(Bg,null))},A))}b_.save=u.__unstableGetBlockProps;const __=(0,p.withDispatch)(((e,t,n)=>{const{updateBlockAttributes:o,insertBlocks:r,mergeBlocks:l,replaceBlocks:i,toggleSelection:s,__unstableMarkLastChangeAsPersistent:a,moveBlocksToPosition:c,removeBlock:d}=e(wr);return{setAttributes(e){const{getMultiSelectedBlockClientIds:r}=n.select(wr),l=r(),{clientId:i}=t,s=l.length?l:[i];o(s,e)},onInsertBlocks(e,n){const{rootClientId:o}=t;r(e,n,o)},onInsertBlocksAfter(e){const{clientId:o,rootClientId:l}=t,{getBlockIndex:i}=n.select(wr),s=i(o);r(e,s+1,l)},onMerge(e){const{clientId:o,rootClientId:i}=t,{getPreviousBlockClientId:s,getNextBlockClientId:a,getBlock:p,getBlockAttributes:m,getBlockName:f,getBlockOrder:h,getBlockIndex:g,getBlockRootClientId:b,canInsertBlockType:v}=n.select(wr);function k(e,t=!0){const o=b(e),l=h(e),[i]=l;1===l.length&&(0,u.isUnmodifiedBlock)(p(i))?d(e):n.batch((()=>{if(v(f(i),o))c([i],e,o,g(e));else{const n=(0,u.switchToBlockType)(p(i),(0,u.getDefaultBlockName)());n&&n.length&&(r(n,g(e),o,t),d(i,!1))}!h(e).length&&(0,u.isUnmodifiedBlock)(p(e))&&d(e,!1)}))}if(e){if(i){const e=a(i);if(e){if(f(i)!==f(e))return void l(i,e);{const t=m(i),o=m(e);if(Object.keys(t).every((e=>t[e]===o[e])))return void n.batch((()=>{c(h(e),e,i),d(e,!1)}))}}}const e=a(o);if(!e)return;h(e).length?k(e,!1):l(o,e)}else{const e=s(o);if(e)l(e,o);else if(i){const e=s(i);if(e&&f(i)===f(e)){const t=m(i),o=m(e);if(Object.keys(t).every((e=>t[e]===o[e])))return void n.batch((()=>{c(h(i),i,e),d(i,!1)}))}k(i)}else d(o)}},onReplace(e,n,o){e.length&&!(0,u.isUnmodifiedDefaultBlock)(e[e.length-1])&&a();const r=1===e?.length&&Array.isArray(e[0])?e[0]:e;i([t.clientId],r,n,o)},toggleSelection(e){s(e)}}}));k_=(0,m.compose)(__,(0,vl.withFilters)("editor.BlockListBlock"))(k_);var y_=(0,d.memo)((function(e){const{clientId:t,rootClientId:n}=e,o=(0,p.useSelect)((e=>{const{isBlockSelected:o,getBlockMode:r,isSelectionEnabled:l,getTemplateLock:i,__unstableGetBlockWithoutInnerBlocks:s,canRemoveBlock:a,canMoveBlock:c,getSettings:d,__unstableGetTemporarilyEditingAsBlocks:p,getBlockEditingMode:m,getBlockName:f,isFirstMultiSelectedBlock:h,getMultiSelectedBlockClientIds:g,hasSelectedInnerBlock:b,getBlockIndex:v,isTyping:k,isBlockMultiSelected:_,isBlockSubtreeDisabled:y,isBlockHighlighted:E,__unstableIsFullySelected:w,__unstableSelectionHasUnmergeableBlock:S,isBlockBeingDragged:C,hasBlockMovingClientId:x,canInsertBlockType:B,getBlockRootClientId:I,__unstableHasActiveBlockOverlayActive:T,__unstableGetEditorMode:M,getSelectedBlocksInitialCaretPosition:P}=le(e(wr)),R=s(t);if(!R)return;const{hasBlockSupport:N,getActiveBlockVariation:A}=e(u.store),L=o(t),O=i(n),D=a(t,n),z=c(t,n),{name:V,attributes:F,isValid:H}=R,G=(0,u.getBlockType)(V),U=A(V,F),{outlineMode:$,supportsLayout:j}=d(),W=_(t),K=b(t,!0),Z=k(),q=G?.apiVersion>1,Y=x();return{mode:r(t),isSelectionEnabled:l(),isLocked:!!O,canRemove:D,canMove:z,block:R,name:V,attributes:F,isValid:H,isSelected:L,themeSupportsLayout:j,isTemporarilyEditingAsBlocks:p()===t,blockEditingMode:m(t),mayDisplayControls:L||h(t)&&g().every((e=>f(e)===V)),mayDisplayParentControls:N(f(t),"__experimentalExposeControlsToChildren",!1)&&b(t),index:v(t),blockApiVersion:G?.apiVersion||1,blockTitle:U?.title||G?.title,isSubtreeDisabled:y(t),isOutlineEnabled:$,hasOverlay:T(t),initialPosition:L&&"edit"===M()?P():void 0,isHighlighted:E(t),isMultiSelected:W,isPartiallySelected:W&&!w()&&!S(),isReusable:(0,u.isReusableBlock)(G),isDragging:C(t),hasChildSelected:K,removeOutline:L&&$&&Z,isBlockMovingMode:!!Y,canInsertMovingBlock:Y&&B(f(Y),I(t)),isEditingDisabled:"disabled"===m(t),className:q?F.className:void 0,defaultClassName:q?(0,u.getBlockDefaultClassName)(V):void 0}}),[t,n]),{mode:r,isSelectionEnabled:l,isLocked:i,canRemove:s,canMove:c,block:d,name:m,attributes:f,isValid:h,isSelected:g,themeSupportsLayout:b,isTemporarilyEditingAsBlocks:v,blockEditingMode:k,mayDisplayControls:_,mayDisplayParentControls:y,index:E,blockApiVersion:w,blockTitle:S,isSubtreeDisabled:C,isOutlineEnabled:x,hasOverlay:B,initialPosition:I,isHighlighted:T,isMultiSelected:M,isPartiallySelected:P,isReusable:R,isDragging:N,hasChildSelected:A,removeOutline:L,isBlockMovingMode:O,canInsertMovingBlock:D,isEditingDisabled:z,className:V,defaultClassName:F}=o;if(!o)return null;const H={clientId:t,className:V,index:E,mode:r,name:m,blockApiVersion:w,blockTitle:S,isSelected:g,isSubtreeDisabled:C,isOutlineEnabled:x,hasOverlay:B,initialPosition:I,blockEditingMode:k,isHighlighted:T,isMultiSelected:M,isPartiallySelected:P,isReusable:R,isDragging:N,hasChildSelected:A,removeOutline:L,isBlockMovingMode:O,canInsertMovingBlock:D,isEditingDisabled:z,isTemporarilyEditingAsBlocks:v,defaultClassName:F,mayDisplayControls:_,mayDisplayParentControls:y,themeSupportsLayout:b};return(0,a.createElement)(o_.Provider,{value:H},(0,a.createElement)(k_,{...e,mode:r,isSelectionEnabled:l,isLocked:i,canRemove:s,canMove:c,block:d,name:m,attributes:f,isValid:h,isSelected:g}))})),E_=window.wp.htmlEntities;const w_=[(0,d.createInterpolateElement)((0,x.__)("While writing, you can press / to quickly insert new blocks."),{kbd:(0,a.createElement)("kbd",null)}),(0,d.createInterpolateElement)((0,x.__)("Indent a list by pressing space at the beginning of a line."),{kbd:(0,a.createElement)("kbd",null)}),(0,d.createInterpolateElement)((0,x.__)("Outdent a list by pressing backspace at the beginning of a line."),{kbd:(0,a.createElement)("kbd",null)}),(0,x.__)("Drag files into the editor to automatically insert media blocks."),(0,x.__)("Change a block's type by pressing the block icon on the toolbar.")];var S_=function(){const[e]=(0,d.useState)(Math.floor(Math.random()*w_.length));return(0,a.createElement)(vl.Tip,null,w_[e])};var C_=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"}));var x_=(0,a.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(Z.Path,{d:"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"}));var B_=function({title:e,icon:t,description:n,blockType:o,className:r}){o&&(w()("`blockType` property in `BlockCard component`",{since:"5.7",alternative:"`title, icon and description` properties"}),({title:e,icon:t,description:n}=o));const{parentNavBlockClientId:l}=(0,p.useSelect)((e=>{const{getSelectedBlockClientId:t,getBlockParentsByBlockName:n}=e(wr);return{parentNavBlockClientId:n(t(),"core/navigation",!0)[0]}}),[]),{selectBlock:i}=(0,p.useDispatch)(wr);return(0,a.createElement)("div",{className:dl()("block-editor-block-card",r)},l&&(0,a.createElement)(vl.Button,{onClick:()=>i(l),label:(0,x.__)("Go to parent Navigation block"),style:{minWidth:24,padding:0},icon:(0,x.isRTL)()?C_:x_,size:"small"}),(0,a.createElement)(Yf,{icon:t,showColors:!0}),(0,a.createElement)("div",{className:"block-editor-block-card__content"},(0,a.createElement)("h2",{className:"block-editor-block-card__title"},e),n&&(0,a.createElement)("span",{className:"block-editor-block-card__description"},n)))};var I_=(0,m.createHigherOrderComponent)((e=>(0,p.withRegistry)((({useSubRegistry:t=!0,registry:n,...o})=>{if(!t)return(0,a.createElement)(e,{registry:n,...o});const[r,l]=(0,d.useState)(null);return(0,d.useEffect)((()=>{const e=(0,p.createRegistry)({},n);e.registerStore(ne,Er),l(e)}),[n]),r?(0,a.createElement)(p.RegistryProvider,{value:r},(0,a.createElement)(e,{registry:r,...o})):null}))),"withRegistryProvider");const T_=()=>{};function M_({clientId:e=null,value:t,selection:n,onChange:o=T_,onInput:r=T_}){const l=(0,p.useRegistry)(),{resetBlocks:i,resetSelection:s,replaceInnerBlocks:a,setHasControlledInnerBlocks:c,__unstableMarkNextChangeAsNotPersistent:m}=l.dispatch(wr),{getBlockName:f,getBlocks:h,getSelectionStart:g,getSelectionEnd:b}=l.select(wr),v=(0,p.useSelect)((t=>!e||t(wr).areInnerBlocksControlled(e)),[e]),k=(0,d.useRef)({incoming:null,outgoing:[]}),_=(0,d.useRef)(!1),y=()=>{t&&(m(),e?l.batch((()=>{c(e,!0);const n=t.map((e=>(0,u.cloneBlock)(e)));_.current&&(k.current.incoming=n),m(),a(e,n)})):(_.current&&(k.current.incoming=t),i(t)))},E=(0,d.useRef)(r),w=(0,d.useRef)(o);(0,d.useEffect)((()=>{E.current=r,w.current=o}),[r,o]),(0,d.useEffect)((()=>{k.current.outgoing.includes(t)?k.current.outgoing[k.current.outgoing.length-1]===t&&(k.current.outgoing=[]):h(e)!==t&&(k.current.outgoing=[],y(),n&&s(n.selectionStart,n.selectionEnd,n.initialPosition))}),[t,e]),(0,d.useEffect)((()=>{v||(k.current.outgoing=[],y())}),[v]),(0,d.useEffect)((()=>{const{getSelectedBlocksInitialCaretPosition:t,isLastBlockChangePersistent:n,__unstableIsLastBlockChangeIgnored:o,areInnerBlocksControlled:r}=l.select(wr);let i=h(e),s=n(),a=!1;_.current=!0;const c=l.subscribe((()=>{if(null!==e&&null===f(e))return;if(!(!e||r(e)))return;const l=n(),c=h(e),u=c!==i;if(i=c,u&&(k.current.incoming||o()))return k.current.incoming=null,void(s=l);if(u||a&&!u&&l&&!s){s=l,k.current.outgoing.push(i);const e=s?w.current:E.current,n=En.has(i);n&&En.delete(i),e(i,{selection:{selectionStart:g(),selectionEnd:b(),initialPosition:t()},undoIgnore:n})}a=u}),wr);return()=>{_.current=!1,c()}}),[l,e]),(0,d.useEffect)((()=>()=>{m(),e?(c(e,!1),m(),a(e,[])):i([])}),[])}var P_=window.wp.keyboardShortcuts;function R_(){return null}R_.Register=function(){const{registerShortcut:e}=(0,p.useDispatch)(P_.store);return(0,d.useEffect)((()=>{e({name:"core/block-editor/duplicate",category:"block",description:(0,x.__)("Duplicate the selected block(s)."),keyCombination:{modifier:"primaryShift",character:"d"}}),e({name:"core/block-editor/remove",category:"block",description:(0,x.__)("Remove the selected block(s)."),keyCombination:{modifier:"access",character:"z"}}),e({name:"core/block-editor/insert-before",category:"block",description:(0,x.__)("Insert a new block before the selected block(s)."),keyCombination:{modifier:"primaryAlt",character:"t"}}),e({name:"core/block-editor/insert-after",category:"block",description:(0,x.__)("Insert a new block after the selected block(s)."),keyCombination:{modifier:"primaryAlt",character:"y"}}),e({name:"core/block-editor/delete-multi-selection",category:"block",description:(0,x.__)("Delete selection."),keyCombination:{character:"del"},aliases:[{character:"backspace"}]}),e({name:"core/block-editor/select-all",category:"selection",description:(0,x.__)("Select all text when typing. Press again to select all blocks."),keyCombination:{modifier:"primary",character:"a"}}),e({name:"core/block-editor/unselect",category:"selection",description:(0,x.__)("Clear selection."),keyCombination:{character:"escape"}}),e({name:"core/block-editor/multi-text-selection",category:"selection",description:(0,x.__)("Select text across multiple blocks."),keyCombination:{modifier:"shift",character:"arrow"}}),e({name:"core/block-editor/focus-toolbar",category:"global",description:(0,x.__)("Navigate to the nearest toolbar."),keyCombination:{modifier:"alt",character:"F10"}}),e({name:"core/block-editor/move-up",category:"block",description:(0,x.__)("Move the selected block(s) up."),keyCombination:{modifier:"secondary",character:"t"}}),e({name:"core/block-editor/move-down",category:"block",description:(0,x.__)("Move the selected block(s) down."),keyCombination:{modifier:"secondary",character:"y"}})}),[e]),null};var N_=R_;const A_=I_((e=>{const{children:t,settings:n,stripExperimentalSettings:o=!1}=e,{__experimentalUpdateSettings:r}=le((0,p.useDispatch)(wr));return(0,d.useEffect)((()=>{r({...n,__internalIsInitialized:!0},{stripExperimentalSettings:o,reset:!0})}),[n,o,r]),M_(e),(0,a.createElement)(vl.SlotFillProvider,{passthrough:!0},!n.__unstableIsPreviewMode&&(0,a.createElement)(N_.Register,null),(0,a.createElement)(Qu,null,t))}));var L_=e=>(0,a.createElement)(A_,{...e,stripExperimentalSettings:!0},e.children);function O_(){const{getSettings:e,hasSelectedBlock:t,hasMultiSelection:n}=(0,p.useSelect)(wr),{clearSelectedBlock:o}=(0,p.useDispatch)(wr),{clearBlockSelection:r}=e();return(0,m.useRefEffect)((e=>{if(r)return e.addEventListener("mousedown",l),()=>{e.removeEventListener("mousedown",l)};function l(r){(t()||n())&&r.target===e&&o()}}),[t,n,o,r])}function D_(e){return(0,a.createElement)("div",{ref:O_(),...e})}function z_(e){const{isMultiSelecting:t,getMultiSelectedBlockClientIds:n,hasMultiSelection:o,getSelectedBlockClientId:r,getSelectedBlocksInitialCaretPosition:l,__unstableIsFullySelected:i}=e(wr);return{isMultiSelecting:t(),multiSelectedBlockClientIds:n(),hasMultiSelection:o(),selectedBlockClientId:r(),initialPosition:l(),isFullSelection:i()}}function V_(){const{initialPosition:e,isMultiSelecting:t,multiSelectedBlockClientIds:n,hasMultiSelection:o,selectedBlockClientId:r,isFullSelection:l}=(0,p.useSelect)(z_,[]);return(0,m.useRefEffect)((r=>{const{ownerDocument:i}=r,{defaultView:s}=i;if(null==e)return;if(!o||t)return;const{length:a}=n;a<2||l&&(r.contentEditable=!0,r.focus(),s.getSelection().removeAllRanges())}),[o,t,n,r,e,l])}function F_(e,t,n,o){let r,l=Ns.focus.focusable.find(n);return t&&l.reverse(),l=l.slice(l.indexOf(e)+1),o&&(r=e.getBoundingClientRect()),l.find((function(e){if(!(e.closest("[inert]")||1===e.children.length&&s_(e,e.firstElementChild)&&"true"===e.firstElementChild.getAttribute("contenteditable"))){if(!Ns.focus.tabbable.isTabbableIndex(e))return!1;if(e.isContentEditable&&"true"!==e.contentEditable)return!1;if(o){const t=e.getBoundingClientRect();if(t.left>=r.right||t.right<=r.left)return!1}return!0}}))}function H_(){const{getMultiSelectedBlocksStartClientId:e,getMultiSelectedBlocksEndClientId:t,getSettings:n,hasMultiSelection:o,__unstableIsFullySelected:r}=(0,p.useSelect)(wr),{selectBlock:l}=(0,p.useDispatch)(wr);return(0,m.useRefEffect)((i=>{let s;function a(){s=null}function c(a){if(a.defaultPrevented)return;const{keyCode:c,target:u,shiftKey:d,ctrlKey:p,altKey:m,metaKey:f}=a,h=c===Os.UP,g=c===Os.DOWN,b=c===Os.LEFT,v=c===Os.RIGHT,k=h||b,_=b||v,y=h||g,E=_||y,w=d||p||m||f,S=y?Ns.isVerticalEdge:Ns.isHorizontalEdge,{ownerDocument:C}=i,{defaultView:x}=C;if(!E)return;if(o()){if(d)return;if(!r())return;return a.preventDefault(),void(k?l(e()):l(t(),-1))}if(!function(e,t,n){const o=t===Os.UP||t===Os.DOWN,{tagName:r}=e,l=e.getAttribute("type");if(o&&!n)return"INPUT"!==r||!["date","datetime-local","month","number","range","time","week"].includes(l);if("INPUT"===r)return["button","checkbox","number","color","file","image","radio","reset","submit"].includes(l);return"TEXTAREA"!==r}(u,c,w))return;y?s||(s=(0,Ns.computeCaretRect)(x)):s=null;const B=(0,Ns.isRTL)(u)?!k:k,{keepCaretInsideBlock:I}=n();if(d)(function(e,t){const n=F_(e,t,i);return n&&c_(n)})(u,k)&&S(u,k)&&(i.contentEditable=!0,i.focus());else if(!y||!(0,Ns.isVerticalEdge)(u,k)||m&&!(0,Ns.isHorizontalEdge)(u,B)||I){if(_&&x.getSelection().isCollapsed&&(0,Ns.isHorizontalEdge)(u,B)&&!I){const e=F_(u,B,i);(0,Ns.placeCaretAtHorizontalEdge)(e,k),a.preventDefault()}}else{const e=F_(u,k,i,!0);e&&((0,Ns.placeCaretAtVerticalEdge)(e,m?!k:k,m?void 0:s),a.preventDefault())}}return i.addEventListener("mousedown",a),i.addEventListener("keydown",c),()=>{i.removeEventListener("mousedown",a),i.removeEventListener("keydown",c)}}),[])}function G_(){const{getBlockOrder:e,getSelectedBlockClientIds:t,getBlockRootClientId:n}=(0,p.useSelect)(wr),{multiSelect:o,selectBlock:r}=(0,p.useDispatch)(wr),l=(0,P_.__unstableUseShortcutEventMatch)();return(0,m.useRefEffect)((i=>{function s(s){if(!l("core/block-editor/select-all",s))return;const a=t();if(a.length<2&&!(0,Ns.isEntirelySelected)(s.target))return;s.preventDefault();const[c]=a,u=n(c),d=e(u);a.length!==d.length?o(d[0],d[d.length-1]):u&&(i.ownerDocument.defaultView.getSelection().removeAllRanges(),r(u))}return i.addEventListener("keydown",s),()=>{i.removeEventListener("keydown",s)}}),[])}function U_(e,t){e.contentEditable=t,t&&e.focus()}function $_(){const{startMultiSelect:e,stopMultiSelect:t}=(0,p.useDispatch)(wr),{isSelectionEnabled:n,hasSelectedBlock:o,isDraggingBlocks:r,isMultiSelecting:l}=(0,p.useSelect)(wr);return(0,m.useRefEffect)((i=>{const{ownerDocument:s}=i,{defaultView:a}=s;let c,u;function d(){t(),a.removeEventListener("mouseup",d),u=a.requestAnimationFrame((()=>{if(!o())return;U_(i,!1);const e=a.getSelection();if(e.rangeCount){const{commonAncestorContainer:t}=e.getRangeAt(0);c.contains(t)&&c.focus()}}))}function p({buttons:t,target:o}){r()||1===t&&(l()||i!==o&&"true"===o.getAttribute("contenteditable")&&n()&&(c=o,e(),a.addEventListener("mouseup",d),U_(i,!0)))}return i.addEventListener("mouseout",p),()=>{i.removeEventListener("mouseout",p),a.removeEventListener("mouseup",d),a.cancelAnimationFrame(u)}}),[e,t,n,o])}function j_(e,t){e.contentEditable!==String(t)&&(e.contentEditable=t,t&&e.focus())}function W_(e){const t=e.nodeType===e.ELEMENT_NODE?e:e.parentElement;return t?.closest("[data-wp-block-attribute-key]")}function K_(){const{multiSelect:e,selectBlock:t,selectionChange:n}=(0,p.useDispatch)(wr),{getBlockParents:o,getBlockSelectionStart:r,isMultiSelecting:l}=(0,p.useSelect)(wr);return(0,m.useRefEffect)((i=>{const{ownerDocument:s}=i,{defaultView:a}=s;function c(s){const c=a.getSelection();if(!c.rangeCount)return;const u=function(e){const{anchorNode:t,anchorOffset:n}=e;return t.nodeType===t.TEXT_NODE||0===n?t:t.childNodes[n-1]}(c),d=function(e){const{focusNode:t,focusOffset:n}=e;return t.nodeType===t.TEXT_NODE||n===t.childNodes.length?t:t.childNodes[n]}(c);if(!i.contains(u)||!i.contains(d))return;const p=s.shiftKey&&"mouseup"===s.type;if(c.isCollapsed&&!p){if("true"===i.contentEditable&&!l()){j_(i,!1);let e=u.nodeType===u.ELEMENT_NODE?u:u.parentElement;e=e?.closest("[contenteditable]"),e?.focus()}return}let m=c_(u),f=c_(d);if(p){const e=r(),t=c_(s.target),n=t!==f;(m===f&&c.isCollapsed||!f||n)&&(f=t),m!==e&&(m=e)}if(void 0===m&&void 0===f)return void j_(i,!1);if(m===f)l()?e(m,m):t(m);else{const t=[...o(m),m],r=[...o(f),f],l=function(e,t){let n=0;for(;e[n]===t[n];)n++;return n}(t,r);if(t[l]!==m||r[l]!==f)return void e(t[l],r[l]);const i=W_(u),s=W_(d);if(i&&s){var h,g;const e=c.getRangeAt(0),t=(0,Y.create)({element:i,range:e,__unstableIsEditableTree:!0}),o=(0,Y.create)({element:s,range:e,__unstableIsEditableTree:!0}),r=null!==(h=t.start)&&void 0!==h?h:t.end,l=null!==(g=o.start)&&void 0!==g?g:o.end;n({start:{clientId:m,attributeKey:i.dataset.wpBlockAttributeKey,offset:r},end:{clientId:f,attributeKey:s.dataset.wpBlockAttributeKey,offset:l}})}else e(m,f)}}return s.addEventListener("selectionchange",c),a.addEventListener("mouseup",c),()=>{s.removeEventListener("selectionchange",c),a.removeEventListener("mouseup",c)}}),[e,t,n,o])}function Z_(){const{selectBlock:e}=(0,p.useDispatch)(wr),{isSelectionEnabled:t,getBlockSelectionStart:n,hasMultiSelection:o}=(0,p.useSelect)(wr);return(0,m.useRefEffect)((r=>{function l(l){if(!t()||0!==l.button)return;const i=n(),s=c_(l.target);l.shiftKey?i!==s&&(r.contentEditable=!0,r.focus()):o()&&e(s)}return r.addEventListener("mousedown",l),()=>{r.removeEventListener("mousedown",l)}}),[e,t,n,o])}function q_(){const{__unstableIsFullySelected:e,getSelectedBlockClientIds:t,__unstableIsSelectionMergeable:n,hasMultiSelection:o}=(0,p.useSelect)(wr),{replaceBlocks:r,__unstableSplitSelection:l,removeBlocks:i,__unstableDeleteSelection:s,__unstableExpandSelection:a}=(0,p.useDispatch)(wr);return(0,m.useRefEffect)((c=>{function d(e){"true"===c.contentEditable&&e.preventDefault()}function p(d){d.defaultPrevented||o()&&(d.keyCode===Os.ENTER?(c.contentEditable=!1,d.preventDefault(),e()?r(t(),(0,u.createBlock)((0,u.getDefaultBlockName)())):l()):d.keyCode===Os.BACKSPACE||d.keyCode===Os.DELETE?(c.contentEditable=!1,d.preventDefault(),e()?i(t()):n()?s(d.keyCode===Os.DELETE):a()):1!==d.key.length||d.metaKey||d.ctrlKey||(c.contentEditable=!1,n()?s(d.keyCode===Os.DELETE):(d.preventDefault(),c.ownerDocument.defaultView.getSelection().removeAllRanges())))}function m(e){o()&&(c.contentEditable=!1,n()?s():(e.preventDefault(),c.ownerDocument.defaultView.getSelection().removeAllRanges()))}return c.addEventListener("beforeinput",d),c.addEventListener("keydown",p),c.addEventListener("compositionstart",m),()=>{c.removeEventListener("beforeinput",d),c.removeEventListener("keydown",p),c.removeEventListener("compositionstart",m)}}),[])}function Y_({clipboardData:e}){let t="",n="";try{t=e.getData("text/plain"),n=e.getData("text/html")}catch(t){try{n=e.getData("Text")}catch(e){return}}n=function(e){const t="\x3c!--StartFragment--\x3e",n=e.indexOf(t);if(!(n>-1))return e;const o=(e=e.substring(n+20)).indexOf("\x3c!--EndFragment--\x3e");return o>-1&&(e=e.substring(0,o)),e}(n),n=function(e){const t="";return e.startsWith(t)?e.slice(22):e}(n);const o=(0,Ns.getFilesFromDataTransfer)(e);return o.length&&!function(e,t){if(t&&1===e?.length&&0===e[0].type.indexOf("image/")){const e=/<\s*img\b/gi;if(1!==t.match(e)?.length)return!0;const n=/<\s*img\b[^>]*\bsrc="file:\/\//i;if(t.match(n))return!0}return!1}(o,n)?{files:o}:{html:n,plainText:t,files:[]}}function X_(){const{getBlockName:e}=(0,p.useSelect)(wr),{getBlockType:t}=(0,p.useSelect)(u.store),{createSuccessNotice:n}=(0,p.useDispatch)(As.store);return(0,d.useCallback)(((o,r)=>{let l="";if(1===r.length){const n=r[0],i=t(e(n))?.title;l="copy"===o?(0,x.sprintf)((0,x.__)('Copied "%s" to clipboard.'),i):(0,x.sprintf)((0,x.__)('Moved "%s" to clipboard.'),i)}else l="copy"===o?(0,x.sprintf)((0,x._n)("Copied %d block to clipboard.","Copied %d blocks to clipboard.",r.length),r.length):(0,x.sprintf)((0,x._n)("Moved %d block to clipboard.","Moved %d blocks to clipboard.",r.length),r.length);n(l,{type:"snackbar"})}),[])}function Q_(){const{getBlocksByClientId:e,getSelectedBlockClientIds:t,hasMultiSelection:n,getSettings:o,__unstableIsFullySelected:r,__unstableIsSelectionCollapsed:l,__unstableIsSelectionMergeable:i,__unstableGetSelectedBlocksWithPartialSelection:s,canInsertBlockType:a}=(0,p.useSelect)(wr),{flashBlock:c,removeBlocks:d,replaceBlocks:f,__unstableDeleteSelection:h,__unstableExpandSelection:g,insertBlocks:b}=(0,p.useDispatch)(wr),v=X_();return(0,m.useRefEffect)((p=>{function m(m){if(m.defaultPrevented)return;const k=t();if(0===k.length)return;if(!n()){const{target:e}=m,{ownerDocument:t}=e;if("copy"===m.type||"cut"===m.type?(0,Ns.documentHasUncollapsedSelection)(t):(0,Ns.documentHasSelection)(t))return}if(!p.contains(m.target.ownerDocument.activeElement))return;m.preventDefault();const _=i(),y=l()||r(),E=!y&&!_;if("copy"===m.type||"cut"===m.type)if(1===k.length&&c(k[0]),E)g();else{let t;if(v(m.type,k),y)t=e(k);else{const[n,o]=s();t=[n,...e(k.slice(1,k.length-1)),o]}const n=m.clipboardData.getData("__unstableWrapperBlockName");n&&(t=(0,u.createBlock)(n,JSON.parse(m.clipboardData.getData("__unstableWrapperBlockAttributes")),t));const o=(0,u.serialize)(t);m.clipboardData.setData("text/plain",function(e){e=e.replace(/
/g,"\n");return(0,Ns.__unstableStripHTML)(e).trim().replace(/\n\n+/g,"\n\n")}(o)),m.clipboardData.setData("text/html",o)}if("cut"===m.type)y&&!E?d(k):(m.target.ownerDocument.activeElement.contentEditable=!1,h());else if("paste"===m.type){const{__experimentalCanUserUseUnfilteredHTML:e}=o(),{plainText:t,html:n,files:r}=Y_(m);let l=[];if(r.length){const e=(0,u.getBlockTransforms)("from");l=r.reduce(((t,n)=>{const o=(0,u.findTransform)(e,(e=>"files"===e.type&&e.isMatch([n])));return o&&t.push(o.transform([n])),t}),[]).flat()}else l=(0,u.pasteHandler)({HTML:n,plainText:t,mode:"BLOCKS",canUserUseUnfilteredHTML:e});if(1===k.length){const[e]=k;if(l.every((t=>a(t.name,e))))return void b(l,void 0,e)}f(k,l,l.length-1,-1)}}return p.ownerDocument.addEventListener("copy",m),p.ownerDocument.addEventListener("cut",m),p.ownerDocument.addEventListener("paste",m),()=>{p.ownerDocument.removeEventListener("copy",m),p.ownerDocument.removeEventListener("cut",m),p.ownerDocument.removeEventListener("paste",m)}}),[])}function J_(){const[e,t,n]=function(){const e=(0,d.useRef)(),t=(0,d.useRef)(),n=(0,d.useRef)(),{hasMultiSelection:o,getSelectedBlockClientId:r,getBlockCount:l}=(0,p.useSelect)(wr),{setNavigationMode:i,setLastFocus:s}=le((0,p.useDispatch)(wr)),c=(0,p.useSelect)((e=>e(wr).isNavigationMode()),[]),{getLastFocus:u}=le((0,p.useSelect)(wr)),f=c?void 0:"0",h=(0,d.useRef)();function g(t){if(h.current)h.current=null;else if(o())e.current.focus();else if(r())u()?.current.focus();else{i(!0);const n=e.current.ownerDocument===t.target.ownerDocument?e.current:e.current.ownerDocument.defaultView.frameElement,o=t.target.compareDocumentPosition(n)&t.target.DOCUMENT_POSITION_FOLLOWING,r=Ns.focus.tabbable.find(e.current);r.length&&(o?r[0]:r[r.length-1]).focus()}}const b=(0,a.createElement)("div",{ref:t,tabIndex:f,onFocus:g}),v=(0,a.createElement)("div",{ref:n,tabIndex:f,onFocus:g}),k=(0,m.useRefEffect)((a=>{function c(e){if(e.defaultPrevented)return;if(e.keyCode===Os.ESCAPE&&!o())return e.preventDefault(),void i(!0);if(e.keyCode!==Os.TAB)return;const l=e.shiftKey,s=l?"findPrevious":"findNext";if(!o()&&!r())return void(e.target===a&&i(!0));const c=Ns.focus.tabbable[s](e.target),u=e.target.closest("[data-block]"),d=u&&c&&(s_(u,c)||a_(u,c));if((0,Ns.isFormElement)(c)&&d)return;const p=l?t:n;h.current=!0,p.current.focus({preventScroll:!0})}function d(e){s({...u(),current:e.target});const{ownerDocument:t}=a;e.relatedTarget||t.activeElement!==t.body||0!==l()||a.focus()}function p(o){if(o.keyCode!==Os.TAB)return;if("region"===o.target?.getAttribute("role"))return;if(e.current===o.target)return;const r=o.shiftKey?"findPrevious":"findNext",l=Ns.focus.tabbable[r](o.target);l!==t.current&&l!==n.current||(o.preventDefault(),l.focus({preventScroll:!0}))}const{ownerDocument:m}=a,{defaultView:f}=m;return f.addEventListener("keydown",p),a.addEventListener("keydown",c),a.addEventListener("focusout",d),()=>{f.removeEventListener("keydown",p),a.removeEventListener("keydown",c),a.removeEventListener("focusout",d)}}),[]);return[b,(0,m.useMergeRefs)([e,k]),v]}(),o=(0,p.useSelect)((e=>e(wr).hasMultiSelection()),[]);return[e,(0,m.useMergeRefs)([t,Q_(),q_(),$_(),K_(),Z_(),V_(),G_(),H_(),(0,m.useRefEffect)((e=>{if(e.tabIndex=0,o)return e.classList.add("has-multi-selection"),e.setAttribute("aria-label",(0,x.__)("Multiple selected blocks")),()=>{e.classList.remove("has-multi-selection"),e.removeAttribute("aria-label")}}),[o])]),n]}var ey=(0,d.forwardRef)((function({children:e,...t},n){const[o,r,l]=J_();return(0,a.createElement)(a.Fragment,null,o,(0,a.createElement)("div",{...t,ref:(0,m.useMergeRefs)([r,n]),className:dl()(t.className,"block-editor-writing-flow")},e),l)}));let ty=null;function ny(e,t,n){const o={};for(const t in e)o[t]=e[t];if(e instanceof n.contentDocument.defaultView.MouseEvent){const e=n.getBoundingClientRect();o.clientX+=e.left,o.clientY+=e.top}const r=new t(e.type,o);o.defaultPrevented&&r.preventDefault();!n.dispatchEvent(r)&&e.preventDefault()}function oy(e){return(0,m.useRefEffect)((()=>{const{defaultView:t}=e;if(!t)return;const{frameElement:n}=t,o=e.documentElement,r=["dragover","mousemove"],l={};for(const e of r)l[e]=e=>{const t=Object.getPrototypeOf(e).constructor.name;ny(e,window[t],n)},o.addEventListener(e,l[e]);return()=>{for(const e of r)o.removeEventListener(e,l[e])}}))}function ry({contentRef:e,children:t,tabIndex:n=0,scale:o=1,frameSize:r=0,expand:l=!1,readonly:i,forwardedRef:s,...c}){const{resolvedAssets:u,isPreviewMode:f}=(0,p.useSelect)((e=>{const t=e(wr).getSettings();return{resolvedAssets:t.__unstableResolvedAssets,isPreviewMode:t.__unstableIsPreviewMode}}),[]),{styles:h="",scripts:g=""}=u,[b,v]=(0,d.useState)(),[k,_]=(0,d.useState)([]),y=O_(),[E,w,S]=J_(),[C,{height:B}]=(0,m.useResizeObserver)(),I=(0,m.useRefEffect)((e=>{let t;function n(e){e.preventDefault()}function o(){const{contentDocument:o,ownerDocument:r}=e,{documentElement:l}=o;t=o,y(l),_(Array.from(r.body.classList).filter((e=>e.startsWith("admin-color-")||e.startsWith("post-type-")||"wp-embed-responsive"===e))),o.dir=r.dir;for(const e of ty||(ty=Array.from(document.styleSheets).reduce(((e,t)=>{try{t.cssRules}catch(t){return e}const{ownerNode:n,cssRules:o}=t;if(null===n)return e;if(!o)return e;if("wp-reset-editor-styles-css"===n.id)return e;if(!n.id)return e;if(function e(t){return Array.from(t).find((({selectorText:t,conditionText:n,cssRules:o})=>n?e(o):t&&(t.includes(".editor-styles-wrapper")||t.includes(".wp-block"))))}(o)){const t="STYLE"===n.tagName;if(t){const t=n.id.replace("-inline-css","-css"),o=document.getElementById(t);o&&e.push(o.cloneNode(!0))}if(e.push(n.cloneNode(!0)),!t){const t=n.id.replace("-css","-inline-css"),o=document.getElementById(t);o&&e.push(o.cloneNode(!0))}}return e}),[]),ty))o.getElementById(e.id)||(o.head.appendChild(e.cloneNode(!0)),f||console.warn(`${e.id} was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,e));t.addEventListener("dragover",n,!1),t.addEventListener("drop",n,!1)}return e._load=()=>{v(e.contentDocument)},e.addEventListener("load",o),()=>{delete e._load,e.removeEventListener("load",o),t?.removeEventListener("dragover",n),t?.removeEventListener("drop",n)}}),[]),T=(0,m.useDisabled)({isDisabled:!i}),M=(0,m.useMergeRefs)([oy(b),e,y,w,T]),P=`\n\n\t\n\t\t\n\t\t